Repository: Near-Web/The-Final-Nights
Pull request #419: Warrior Salubri PR (and Added Third Eyes to Salubris and minor edit to Healer Salubri)
Author: login: TheTrueSilverRat
Labels: name: New Feature
description: Adds a new feature
Created: 2025-05-08T06:02:53Z | Merged: 2025-05-24T18:25:11Z

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull request process. -->

## About The Pull Request

Warrior Salubris, since the previous coder isn't gonna finishing it., I'm gonna go do the do do. They didn't answer on queries so just doing it myself. Shout out to them at https://github.com/Near-Web/The-Final-Nights/pull/348/ though

Currently Finished but not yet finalised cause reviewing and testing:

Current stuff Done:

- Warrior Salubri as a Clan are implemented, They get the same Haven as Healer Salubri
- Added their iconic Road of Morality. The Code of Samiel
- Added the Third Eyes to Salubri as they should have, they can close it but usage of their signature discipline at rank 3 and above forcibly opens it (This also affects anyone who learns their disciplines)
- Warrior Salubri have the same jobs as Healer Salubri (Except Endron  BUT THATS BECAUSE I WILL BE REMOVING IT IN ANOTHER PR!!!)

- Warrior Salubri's weakness is also done (they need to make a target soft crit or stamina stunned so that they can feed on them to mimic their need to fight their opponnent to properly feed on them. They can still feed on bloodbags though)
- The Warrior Valeren Discipline has been implemented
- Rank 1 Makes them Detect the Blood Pool of Ghouls and Kindred, While also allowing them to see the armor of a person (including the main armor they're wearing and innate physiology armor), it also shows them their forittude rating
- Morphean Blow is similar to the Rank 2 of Salubri but also allows you to ignore damage slowdown for a minute when used on you
- Burning Touch auto aggressive grabs the target and as long as you contineu to hold the target, you continously deal Stamina damage to them
- Armor of Caine's Fury rolls a dice pool equal to Fortitude+Physique to a difficulty of 7, With each sucesses equalling an active level of Fortitude (except no Fire Armor), it also is visibly masq-breaching, in exchange it lasts a lot longer than Fortitude does
- Rank 5 allows you to target an enemy in range and deliver a devestating attack that either boosts your punch damage or melee attack

- Also adds it so that Healer Valeren can heal corpses like Theurge's Mother Touch, they're not meant to be dead dead and thus revived lore wise, just in death's door kind of deal. So it seems fine enough

NEW ADDITION: Salubri of their respective paths can learn each other's Valeren abilities at a slightly  higher cost (Can be increased for balance purposes)

<!-- Describe The Pull Request. Please be sure every change is documented or this can delay review and even discourage maintainers from merging your PR! -->

## Why It's Good For The Game

More content for Vampires. Giving the Salubri healers their valarous and warrior like siblings to help in protecting them, also more content is fun!

<!-- Argue for the merits of your changes and how they benefit the game, especially if they are controversial and/or far reaching. If you can't actually explain WHY what you are doing will improve the game, then it probably isn't good for the game in the first place. -->

## Testing Photographs and Procedure
<!-- Include any screenshots/videos/debugging steps of the modified code functioning successfully, ideally including edge cases. -->
<!-- You can uncomment line 1 @ _maps/_basemap.dm to boot up a test map that loads much faster. -->
<details>

WIP on Footage for Warrior Salubri

<summary>Screenshots&Videos</summary>

![image](https://github.com/user-attachments/assets/5ad43c21-a5bd-467f-af68-7e5d2e4f3549)

![image](https://github.com/user-attachments/assets/8e248064-8d96-4cc3-b51e-13f90a2425b9)

![image](https://github.com/user-attachments/assets/29ed8fb4-c8ab-492b-bf22-4e03e70e2c2b)

![image](https://github.com/user-attachments/assets/b69b63c7-b882-49a7-b791-e1073f470a79)

![image](https://github.com/user-attachments/assets/efb6a618-0b5d-402b-86c0-0eb8e2e4376f)

New Icon Sprite for Healer Valeren
![image](https://github.com/user-attachments/assets/3209bf0d-d89a-4389-a6fe-bdae71856c45)


OPENING AND CLOSING THE THIRD EYE:


https://github.com/user-attachments/assets/e4da8e6b-7e5d-4699-ba61-d106d9a7a159

![image](https://github.com/user-attachments/assets/31824cee-5df6-44a7-acb6-37d8bd5fbb49)


RANK 3 ABILITIES CAN ONLY WORK IF YOUR THIRD EYE IS OPENED

![image](https://github.com/user-attachments/assets/28ac7d63-4048-41d5-8ead-891816bb9922)

# WARRIOR VALEREN VABILITIES

RANK 1 SENSE DEATH (For Humans) [Detects both innate armor as well as armor from main armor worn]
![image](https://github.com/user-attachments/assets/dd930429-fc13-4866-9183-12b788b60a6d)

RANK 1 SENSE DEATH (FOR KINDREDS/GHOULS [It shows you the Blood Pool they have])

![image](https://github.com/user-attachments/assets/c3f9a540-e948-4c5f-b73a-e875c40b215c)

RANK 2 MORPHEAN BLOW (When used on self it makes you ignore damage slowdown for a minute at the cost of not being able to use your rank 2 for the duration)


https://github.com/user-attachments/assets/34432475-ace0-4646-be8e-568a96bee4ba


RANK 3 BURNING TOUCH (Causes people to get continual stam damage so long as you continue to hold them


https://github.com/user-attachments/assets/69927697-d2ad-43c1-88a0-6a0b95c4f7b1


RANK 4 ARMOR OF CAINE'S FURY (Rolls dice and takes up to five successes and gives you armor based on the successes in exchange for lasting longer than Fortitude)

![image](https://github.com/user-attachments/assets/84f8a622-6c7c-46ec-87ad-767981596d12)

![image](https://github.com/user-attachments/assets/92405bf0-3236-407a-a149-930a744eb753)

Rank 5 Samiel's Vengeance  (Can be both Fist or with Weapon)


https://github.com/user-attachments/assets/d029728e-6b40-42fd-a56a-a3469d398fc7

![image](https://github.com/user-attachments/assets/4b748b29-927d-47bf-842c-708dc98c46db)


With Weapon

![image](https://github.com/user-attachments/assets/8ca23c51-0715-4d7c-aa63-f2e3906aaead)

https://github.com/user-attachments/assets/8db12ae0-d1d3-4188-8faa-03bc4635abb0

![image](https://github.com/user-attachments/assets/20dc0fcf-04f3-4567-9034-e7259e8eafec)




Put screenshots and videos here with an empty line between the screenshots and the `<details>` tags.

</details>

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely observed by players or admins you should add a changelog. If your change does NOT meet this description, remove this section. Be sure to properly mark your PRs to prevent unnecessary GBP loss. You can read up on GBP and its effects on PRs in the tgstation guides for contributors. Please note that maintainers freely reserve the right to remove and add tags should they deem it appropriate. You can attempt to finagle the system all you want, but it's best to shoot for clear communication right off the bat. -->

:cl:
add: Added Warrior Salubri Clan
add: Added Warrior Valeren
icon: added new icon for Valeren Healing
add: Added Code of Samiel to the Morality Stuff
qol: Healer Valeren 3 can heal corpses now like Theurge's Mother Touch
add: Salubri Third Eyes wohoo
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put your name to the right of the first :cl: if you want to overwrite your GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. -->



Diff:
diff --git a/code/__DEFINES/tfn/vtm_defines.dm b/code/__DEFINES/tfn/vtm_defines.dm
index 37f8f0966cf..827c693b2c8 100644
--- a/code/__DEFINES/tfn/vtm_defines.dm
+++ b/code/__DEFINES/tfn/vtm_defines.dm
@@ -55,6 +55,7 @@
 #define CLAN_DAUGHTERS_OF_CACOPHONY "Daughters of Cacophony"
 #define CLAN_CAPPADOCIAN "Cappadocian"
 #define CLAN_NAGARAJA "Nagaraja"
+#define CLAN_SALUBRI_WARRIOR "Salubri Warrior"
 
 /**
  * Auspex aura defines
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index de61092149a..e930517660c 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -188,6 +188,8 @@
 #define TRAIT_GULLET			"gullet"
 #define TRAIT_CHARMER			"charmer"
 #define TRAIT_ORGANOVORE		"organovore"
+#define TRAIT_SALUBRI_EYE_OPEN	"eye_open" //This is for Salubri Stuff in regards to oepning and closing it
+#define TRAIT_SALUBRI_EYE		"salubri_eye" //This is for whhen you want to like actually know if you have the eye or not
 #define TRAIT_UNMASQUERADE		"unmasquerade"	//For tzi clothing
 #define TRAIT_NONMASQUERADE		"nonmasquerade"	//For tzi mods
 #define TRAIT_GUNFIGHTER        "gunfighter"    //Halves firing delay and cooldown between burst fire shots
diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm
index 7bc37f6f67d..a51a7962d2e 100644
--- a/code/__DEFINES/traits/sources.dm
+++ b/code/__DEFINES/traits/sources.dm
@@ -41,6 +41,8 @@
 #define LYING_DOWN_TRAIT "lying-down"
 /// Trait associated to lacking electrical power.
 #define POWER_LACK_TRAIT "power-lack"
+/// Trait associated to stuff that came from Clan based stuff
+#define TRAIT_CLAN "clan"
 
 // unique trait sources, still defines
 #define CLONING_POD_TRAIT "cloning-pod"
@@ -139,4 +141,8 @@
 /// Trait when something was labelled by the /datum/element/tool_renaming element.
 #define RENAMING_TOOL_LABEL_TRAIT "renaming_tool_label"
 
+//salubri stuff
+#define SALUBRI_EYE_TRAIT "Salubri Eye"
+
+
 // END TRAIT DEFINES
diff --git a/code/__DEFINES/wod13/status_effects_debuffs.dm b/code/__DEFINES/wod13/status_effects_debuffs.dm
index 3f2c630c4d3..ab07b3a55de 100644
--- a/code/__DEFINES/wod13/status_effects_debuffs.dm
+++ b/code/__DEFINES/wod13/status_effects_debuffs.dm
@@ -3,3 +3,4 @@
 #define STATUS_EFFECT_SILVER_SLOWDOWN /datum/status_effect/silver_slowdown //slows down any mobs with a bane to silver.
 #define STATUS_EFFECT_AWE /datum/status_effect/awe
 #define STATUS_EFFECT_DIABLERIE_HIGH /datum/status_effect/diablerie_high
+#define STATUS_EFFECT_BURNING_TOUCH /datum/status_effect/burning_touch
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 1c920a62acd..c33afe7504a 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -227,7 +227,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
 		"TRAIT_UNDENSE" = TRAIT_UNDENSE,
 		"TRAIT_LEANING" = TRAIT_LEANING,
 		"TRAIT_OBFUSCATED" = TRAIT_OBFUSCATED,
-		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER
+		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER,
+		"TRAIT_SALUBRI_EYE_OPEN" = TRAIT_SALUBRI_EYE_OPEN,
+		"TRAIT_SALUBRI_EYE" = TRAIT_SALUBRI_EYE
 	),
 	/obj/item/bodypart = list(
 		"TRAIT_PARALYSIS" = TRAIT_PARALYSIS,
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 9745dea7fb1..4c7bb1a27c2 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -725,6 +725,25 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 					if (possible_new_disciplines.len && (player_experience >= 10))
 						dat += "<a href='byond://?_src_=prefs;preference=newdiscipline;task=input'>Learn a new Discipline (10)</a><BR>"
 
+				switch(clane.name)
+
+					if("Salubri")
+
+						var/list/possible_new_valerens = list(/datum/discipline/valeren, /datum/discipline/valeren_warrior)
+						possible_new_valerens -= discipline_types
+
+						if (possible_new_valerens.len && (player_experience >= 10))
+							dat += "<a href='byond://?_src_=prefs;preference=newvaleren;task=input'>Learn a new Valeren Path (10)</a><BR>"
+
+					if("Salubri Warrior")
+
+						var/list/possible_new_valerens = list(/datum/discipline/valeren, /datum/discipline/valeren_warrior)
+						possible_new_valerens -= discipline_types
+
+						if (possible_new_valerens.len && (player_experience >= 10))
+							dat += "<a href='byond://?_src_=prefs;preference=newvaleren;task=input'>Learn a new Valeren Path (10)</a><BR>"
+
+
 			if(pref_species.name == "Ghoul")
 				for (var/i in 1 to discipline_types.len)
 					var/discipline_type = discipline_types[i]
@@ -2327,6 +2346,20 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 						player_experience -= 10
 						experience_used_on_character += 10
 
+				if("newvaleren")
+					if((player_experience < 10) || !(pref_species.id == "kindred") || !((clane.name == "Salubri") || (clane.name == "Salubri Warrior")))
+						return
+
+					var/list/possible_new_valerens = list(/datum/discipline/valeren, /datum/discipline/valeren_warrior)
+					possible_new_valerens -= discipline_types
+
+					var/new_discipline = tgui_input_list(user, "Select your new Valeren Path", "Discipline Selection", sort_list(possible_new_valerens))
+					if(new_discipline)
+						discipline_types += new_discipline
+						discipline_levels += 1
+						player_experience -= 10
+						experience_used_on_character += 10
+
 				if("newghouldiscipline")
 					if((player_experience < 10) || !(pref_species.id == "ghoul"))
 						return
@@ -2463,7 +2496,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 						var/a = GLOB.clanes_list[i]
 						var/datum/vampireclane/V = new a
 						if (V.whitelisted)
-							if (SSwhitelists.is_whitelisted(user.ckey, V.name))
+							if (SSwhitelists.is_whitelisted(user.ckey, TRUSTED_PLAYER))
 								available_clans[V.name] += GLOB.clanes_list
 						else
 							available_clans[V.name] += GLOB.clanes_list[i]
@@ -2505,6 +2538,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 									morality_path = new /datum/morality/heart()
 								if(CLAN_BAALI)
 									morality_path = new /datum/morality/hive()
+								if(CLAN_SALUBRI_WARRIOR)
+									morality_path = new /datum/morality/samiel()
 						path_score = morality_path.score
 						if(clane.no_hair)
 							hairstyle = "Bald"
@@ -2623,6 +2658,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 							cost = 10
 						else if (clane.name == "Caitiff")
 							cost = discipline_level * 6
+						else if (clane.common_disciplines.Find(discipline_types[i]))
+							cost = discipline_level * 6
 						else if (clane.clane_disciplines.Find(discipline_types[i]))
 							cost = discipline_level * 5
 
diff --git a/code/modules/mob/living/carbon/human/init_signals.dm b/code/modules/mob/living/carbon/human/init_signals.dm
new file mode 100644
index 00000000000..aaddd51a784
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/init_signals.dm
@@ -0,0 +1,14 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri/salubri_eye = new()
+		salubri_eye.Insert(src, TRUE, FALSE)
+	else
+		var/obj/item/organ/eyes/salubri/salubri_eyes = getorganslot(ORGAN_SLOT_EYES)
+		salubri_eyes.Remove(src)
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index d3da660b1ea..7bd67640c8d 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -94,9 +94,23 @@
 	actions_types = list(/datum/action/item_action/organ_action/use)
 	var/night_vision = TRUE
 
-/obj/item/organ/eyes/night_vision/salubri
+/obj/item/organ/eyes/salubri
 	eye_icon_state = "salubri"
+/obj/item/organ/eyes/salubri
+	eye_icon_state = "salubri"
+	var/datum/action/salubri_eye/salubri_opener
+
+/obj/item/organ/eyes/salubri/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE, initialising)
+	. = ..()
+	salubri_opener = new()
+	salubri_opener.Grant(M)
 
+/obj/item/organ/eyes/salubri/Remove(mob/living/carbon/M, special = 0)
+	. = ..()
+	if(salubri_opener)
+		salubri_opener.Remove(M)
+	if(HAS_TRAIT(M, TRAIT_SALUBRI_EYE_OPEN))
+		REMOVE_TRAIT(M, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
 /obj/item/organ/eyes/night_vision/kiasyd
 	eye_icon_state = "kiasyd"
 
diff --git a/code/modules/vtmb/jobs/anarchs/bouncer.dm b/code/modules/vtmb/jobs/anarchs/bouncer.dm
index bb97514230f..bea8b06f93c 100644
--- a/code/modules/vtmb/jobs/anarchs/bouncer.dm
+++ b/code/modules/vtmb/jobs/anarchs/bouncer.dm
@@ -22,7 +22,7 @@
 	my_contact_is_important = TRUE
 	known_contacts = list("Baron","Bouncer","Emissary","Sweeper")
 	allowed_species = list("Vampire", "Ghoul")
-	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Toreador", "Tremere", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri", "Nagaraja")
+	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Toreador", "Tremere", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri", "Nagaraja", "Salubri Warrior")
 	species_slots = list("Ghoul" = 3)
 
 	v_duty = "You are the enforcer of the Anarchs. The baron is always in need of muscle power. Enforce the Traditions - in the anarch way."
diff --git a/code/modules/vtmb/jobs/anarchs/emissary.dm b/code/modules/vtmb/jobs/anarchs/emissary.dm
index 88378d95546..e31a64b7bf0 100644
--- a/code/modules/vtmb/jobs/anarchs/emissary.dm
+++ b/code/modules/vtmb/jobs/anarchs/emissary.dm
@@ -21,7 +21,7 @@
 	display_order = JOB_DISPLAY_ORDER_EMISSARY
 	my_contact_is_important = TRUE
 	known_contacts = list("Baron","Bouncer","Emissary","Sweeper","Prince","Sheriff")
-	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Tremere", "Toreador", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri")
+	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Tremere", "Toreador", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri", "Salubri Warrior")
 
 	v_duty = "You are a diplomat for the anarchs. Make deals, keep the peace, all through words, not violence. But the latter may come to pass if the former fails."
 	minimal_masquerade = 2
diff --git a/code/modules/vtmb/jobs/anarchs/sweeper.dm b/code/modules/vtmb/jobs/anarchs/sweeper.dm
index ed71da02057..1c59374ec68 100644
--- a/code/modules/vtmb/jobs/anarchs/sweeper.dm
+++ b/code/modules/vtmb/jobs/anarchs/sweeper.dm
@@ -21,7 +21,7 @@
 	display_order = JOB_DISPLAY_ORDER_SWEEPER
 	my_contact_is_important = TRUE
 	known_contacts = list("Baron","Bouncer","Emissary","Sweeper")
-	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Tremere", "Toreador", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri", "Nagaraja")
+	allowed_bloodlines = list("Daughters of Cacophony", "True Brujah", "Brujah", "Nosferatu", "Gangrel", "Tremere", "Toreador", "Malkavian", "Banu Haqim", "Tzimisce", "Caitiff", "Ventrue", "Lasombra", "Gargoyle", "Kiasyd", "Cappadocian", "Ministry", "Salubri Warrior", "Salubri", "Nagaraja")
 
 	v_duty = "You are the observer of the anarchs. You watch out for any new kindred, suspicious individuals, and any new rumors near the anarch turf, and then report it to your anarchs."
 	minimal_masquerade = 2
diff --git a/code/modules/vtmb/jobs/bloodlines/salubri.dm b/code/modules/vtmb/jobs/bloodlines/salubri.dm
index 7e0a571775f..b11380ebd7a 100644
--- a/code/modules/vtmb/jobs/bloodlines/salubri.dm
+++ b/code/modules/vtmb/jobs/bloodlines/salubri.dm
@@ -23,7 +23,7 @@
 	v_duty = "One of the few Healer Salubri left within the city, maybe even in the world! You operate the Vet for any diseased or sick animals. You may have been an escaped member of The Seven or not. Regardless, you must hide and lay low."
 	duty = "You work in the local privately owned Veterinary Clinic, in the old ghetto. You might notice some oddities with the other workers, but they help people and are generally nice, right? Either way, you don't care enough to out them."
 	minimal_masquerade = 0
-	allowed_bloodlines = list("Salubri")
+	allowed_bloodlines = list("Salubri", "Salubri Warrior")
 
 /datum/outfit/job/salubri
 	name = "salubri"
diff --git a/code/modules/vtmb/jobs/doctor.dm b/code/modules/vtmb/jobs/doctor.dm
index 40e1526d0a3..796e856eb87 100644
--- a/code/modules/vtmb/jobs/doctor.dm
+++ b/code/modules/vtmb/jobs/doctor.dm
@@ -26,7 +26,7 @@
 	v_duty = "Help your fellow kindred in all matters medicine related. Sell blood. Keep your human colleagues ignorant. Remember, this is a Malkavian Domain."
 	duty = "You are on the night shift at the local clinic. Your eccentric bosses seem to be keeping a close eye on your work."
 	experience_addition = 15
-	allowed_bloodlines = list("Daughters of Cacophony", "Salubri", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd")
+	allowed_bloodlines = list("Daughters of Cacophony", "Salubri", "Nagaraja", "Salubri Warrior", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd")
 	known_contacts = list("Clinic Director")
 
 /datum/outfit/job/vdoctor
diff --git a/code/modules/vtmb/jobs/graveyard_keeper.dm b/code/modules/vtmb/jobs/graveyard_keeper.dm
index 0ee0f67e0ba..66fb44d45af 100644
--- a/code/modules/vtmb/jobs/graveyard_keeper.dm
+++ b/code/modules/vtmb/jobs/graveyard_keeper.dm
@@ -24,7 +24,7 @@
 	minimal_masquerade = 0
 	experience_addition = 15
 	allowed_species = list("Vampire", "Ghoul", "Kuei-Jin")
-	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Cappadocian", "Gargoyle")
+	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri",  "Salubri Warrior", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Cappadocian", "Gargoyle")
 
 /datum/outfit/job/graveyard
 	name = "Graveyard Keeper"
diff --git a/code/modules/vtmb/jobs/janitor.dm b/code/modules/vtmb/jobs/janitor.dm
index 586ef569f04..991da0c6c3a 100644
--- a/code/modules/vtmb/jobs/janitor.dm
+++ b/code/modules/vtmb/jobs/janitor.dm
@@ -18,7 +18,7 @@
 	allowed_species = list("Vampire", "Ghoul", "Human")
 
 	display_order = JOB_DISPLAY_ORDER_STREETJAN
-	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff")
+	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri", "Nagaraja", "Salubri Warrior", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff")
 
 	v_duty = "Clean up all traces of Masquerade violations as the Camarilla has instructed you to."
 	duty = "Keep the streets clean. You are paid to keep your mouth shut about the things you see."
diff --git a/code/modules/vtmb/jobs/priest.dm b/code/modules/vtmb/jobs/priest.dm
index 8f439cde285..da52c063936 100644
--- a/code/modules/vtmb/jobs/priest.dm
+++ b/code/modules/vtmb/jobs/priest.dm
@@ -18,7 +18,7 @@
 	exp_type_department = EXP_TYPE_CHURCH
 
 	allowed_species = list("Human", "Ghoul", "Vampire")
-	allowed_bloodlines = list("Lasombra", "Toreador", "Malkavian", "Salubri", "Nagaraja", "Cappadocian", "Banu Haqim", "Caitiff")
+	allowed_bloodlines = list("Lasombra", "Toreador", "Malkavian", "Salubri", "Salubri Warrior", "Nagaraja", "Cappadocian", "Banu Haqim", "Caitiff")
 	species_slots = list("Vampire" = 2)
 	minimal_generation = 13
 
diff --git a/code/modules/vtmb/jobs/stripper.dm b/code/modules/vtmb/jobs/stripper.dm
index bcad9ce8d2e..06098433f82 100644
--- a/code/modules/vtmb/jobs/stripper.dm
+++ b/code/modules/vtmb/jobs/stripper.dm
@@ -20,7 +20,7 @@
 	v_duty = "Offer strip club services to humans, undead or anything else that walks through the door."
 	duty = "Offer strip club services. Some of your clientele may be... Unusual, but you are either addicted to vampire bites, or bribed to listen little and say even less."
 	minimal_masquerade = 3
-	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd")
+	allowed_bloodlines = list("True Brujah", "Daughters of Cacophony", "Salubri", "Nagaraja", "Salubri Warrior", "Baali", "Brujah", "Tremere", "Ventrue", "Nosferatu", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd")
 	experience_addition = 10
 
 /datum/outfit/job/strip
diff --git a/code/modules/vtmb/jobs/taxi.dm b/code/modules/vtmb/jobs/taxi.dm
index 9bd825b175e..b1c3a72df08 100644
--- a/code/modules/vtmb/jobs/taxi.dm
+++ b/code/modules/vtmb/jobs/taxi.dm
@@ -22,7 +22,8 @@
 	duty = "Drive people in the city."
 	minimal_masquerade = 0
 	experience_addition = 10
-	allowed_bloodlines = list("Daughters of Cacaphony", "Salubri", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd", "Cappadocian")
+	allowed_bloodlines = list("Daughters of Cacaphony", "Salubri", "Salubri Warrior", "Nagaraja", "Baali", "Brujah", "Tremere", "Ventrue", "Gangrel", "Toreador", "Malkavian", "Banu Haqim", "Giovanni", "Ministry", "Tzimisce", "Lasombra", "Caitiff", "Kiasyd", "Cappadocian")
+
 
 /datum/job/vamp/taxi/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
 	..()
diff --git a/code/modules/vtmb/kindred_species.dm b/code/modules/vtmb/kindred_species.dm
index 89650dc0aa1..0bba1330974 100644
--- a/code/modules/vtmb/kindred_species.dm
+++ b/code/modules/vtmb/kindred_species.dm
@@ -868,7 +868,7 @@
 
 		//skip this if they can't access it due to whitelists
 		if (clan_checking.whitelisted)
-			if (!SSwhitelists.is_whitelisted(checked_ckey = vampire_checking.ckey, checked_whitelist = clan_checking.name))
+			if (!SSwhitelists.is_whitelisted(checked_ckey = vampire_checking.ckey, checked_whitelist = TRUSTED_PLAYER))
 				qdel(clan_checking)
 				continue
 
diff --git a/code/modules/vtmb/magic/pyramid.dm b/code/modules/vtmb/magic/pyramid.dm
index 0510cf01250..50be0a0dab1 100644
--- a/code/modules/vtmb/magic/pyramid.dm
+++ b/code/modules/vtmb/magic/pyramid.dm
@@ -521,6 +521,8 @@
 		message += "The blood is cold and static... It's hard to feel any emotion within it."
 	else if(clan == "Salubri")
 		message += "The cursed blood of the Salubri! The owner of this blood must be slain."
+	else if(clan == "Salubri Warrior")
+		message += "The avatar of Samiel's vengeance stands before you, do you dare return their bitter hatred?"
 	else if(clan == "Giovanni" || clan == "Cappadocian")
 		message += "The blood is very cold and filled with death. The owner must be a necromancer."
 	else if(clan == "Kiasyd")
diff --git a/code/modules/vtmb/vampire_clane/clane.dm b/code/modules/vtmb/vampire_clane/clane.dm
index b51e7c39bbe..cd24ce6de50 100644
--- a/code/modules/vtmb/vampire_clane/clane.dm
+++ b/code/modules/vtmb/vampire_clane/clane.dm
@@ -9,6 +9,7 @@ And it also helps for the character set panel
 	var/desc = "The clanless. The rabble. Of no importance."
 	var/list/clane_disciplines = list() //discipline datums
 	var/list/restricted_disciplines = list()
+	var/list/common_disciplines = list() //Discs that you don't start with but are easier to purchase like catiff instead of non clan discs
 	var/datum/outfit/clane_outfit
 	var/curse = "None."
 	var/list/allowed_jobs = list()
diff --git a/code/modules/vtmb/vampire_clane/salubri.dm b/code/modules/vtmb/vampire_clane/salubri.dm
index a42ca00609b..3a666fb5ee0 100644
--- a/code/modules/vtmb/vampire_clane/salubri.dm
+++ b/code/modules/vtmb/vampire_clane/salubri.dm
@@ -7,7 +7,40 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
-	whitelisted = FALSE
+	whitelisted = TRUE
 	clan_keys = /obj/item/vamp/keys/salubri
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_CLAN)
+
+
+/datum/action/salubri_eye
+	name = "Open or Close the Third Eye"
+	desc = "Open or Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(!iskindred(owner))
+		return
+	var/obj/item/organ/eyes/salubri/salubri = owner.getorganslot(ORGAN_SLOT_EYES)
+	if(!salubri)
+		return
+
+	if(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN))
+		salubri.eye_icon_state = "eyes"
+		owner.update_body()
+		owner.visible_message(span_danger("[owner]'s Third Eye sinks back into their head"), span_userdanger("You close your third eye!"))
+		REMOVE_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+	else
+		salubri.eye_icon_state = "salubri"
+		owner.update_body()
+		owner.visible_message(span_danger("[owner] sprouts a Third Eye on their Forehead!"), span_userdanger("Your third eye forcibly awakens!"))
+		ADD_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
diff --git a/code/modules/vtmb/vampire_clane/salubri_warrior.dm b/code/modules/vtmb/vampire_clane/salubri_warrior.dm
new file mode 100644
index 00000000000..523ed2c8b62
--- /dev/null
+++ b/code/modules/vtmb/vampire_clane/salubri_warrior.dm
@@ -0,0 +1,14 @@
+/datum/vampireclane/salubri_warrior
+	name = CLAN_SALUBRI_WARRIOR
+	desc = "The Salubri are one of the original 13 clans of the vampiric descendants of Caine. Salubri believe that vampiric existence is torment from which Golconda or death is the only escape. Wherein the Healer Caste of the Salubri would tend towards the sickly and dying out of mercy. The Warrior Caste are valorous defenders of the other castes and furiously slay those who cannot be saved: demon-worshipers, inhumane vampires, and those who seek to disturb the delicate symbiosis engendered by the children of Saulot."
+	curse = "They must feed upon those who have been bested within a fight."
+	clane_disciplines = list(
+		/datum/discipline/auspex,
+		/datum/discipline/fortitude,
+		/datum/discipline/valeren_warrior
+	)
+	common_disciplines = list(/datum/discipline/valeren)
+	male_clothes = /obj/item/clothing/under/vampire/salubri
+	female_clothes = /obj/item/clothing/under/vampire/salubri/female
+	whitelisted = TRUE
+	clan_keys = /obj/item/vamp/keys/salubri
diff --git a/code/modules/wod13/UI/actions.dmi b/code/modules/wod13/UI/actions.dmi
index fe961ff341e..c06704bbe15 100644
Binary files a/code/modules/wod13/UI/actions.dmi and b/code/modules/wod13/UI/actions.dmi differ
diff --git a/code/modules/wod13/bloodsucking.dm b/code/modules/wod13/bloodsucking.dm
index 3cd3503d772..0e16151e7a5 100644
--- a/code/modules/wod13/bloodsucking.dm
+++ b/code/modules/wod13/bloodsucking.dm
@@ -103,7 +103,7 @@
 					client.images -= suckbar
 				qdel(suckbar)
 				return
-		if(HAS_TRAIT(src, TRAIT_ORGANOVORE)) // think this is fine?
+		if(HAS_TRAIT(src, TRAIT_ORGANOVORE))
 			mob.adjustBruteLoss(20, TRUE) // sharp teeth
 			to_chat(src, span_warning("You can't drink this disgusting <b>BLOOD</b>. Go find something meatier!"))
 			visible_message(span_danger("[src] throws up!"), span_userdanger("You throw up!"))
@@ -115,6 +115,14 @@
 				client.images -= suckbar
 			qdel(suckbar)
 			return
+		if(clane.name == "Salubri Warrior" && (ishumanbasic(mob) || isghoul(mob))) //passes by if it's not a supernatural
+			if( (!HAS_TRAIT_FROM(mob, TRAIT_INCAPACITATED, STAMINA)) && mob.stat < SOFT_CRIT) //Needs to be KO'd to feed on
+				to_chat(src, span_warning("I HAVE NOT BESTED THIS ONE IN COMBAT!! I FEED ON WARRIORS, NOT CATTLE!!"))
+				stop_sound_channel(CHANNEL_BLOOD)
+				if(client)
+					client.images -= suckbar
+				qdel(suckbar)
+				return
 		if(iskindred(mob))
 			to_chat(src, "<span class='userlove'>[mob]'s blood tastes HEAVENLY...</span>")
 			adjustBruteLoss(-25, TRUE)
diff --git a/code/modules/wod13/datums/powers/discipline/healer_valeren.dm b/code/modules/wod13/datums/powers/discipline/healer_valeren.dm
index 0db6773ce9f..96c8d053943 100644
--- a/code/modules/wod13/datums/powers/discipline/healer_valeren.dm
+++ b/code/modules/wod13/datums/powers/discipline/healer_valeren.dm
@@ -1,7 +1,7 @@
 /datum/discipline/valeren
 	name = "Healer Valeren"
 	desc = "Use your third eye in healing or protecting needs."
-	icon_state = "valeren"
+	icon_state = "healer"
 	clan_restricted = TRUE
 	power_type = /datum/discipline_power/valeren
 
@@ -11,6 +11,19 @@
 
 	activate_sound = 'code/modules/wod13/sounds/valeren.ogg'
 
+/datum/discipline/valeren/post_gain()
+	. = ..()
+	if(level >= 2)
+		ADD_TRAIT(owner, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+
+/datum/discipline_power/valeren/can_activate_untargeted(alert)
+	. = ..()
+	if(level >=3 && !(HAS_TRAIT_FROM(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
+		if(alert)
+			to_chat(owner, span_warning("You can only use this ability with your third eye open!"))
+		return FALSE
+
+
 //SENSE VITALITY
 /datum/discipline_power/valeren/sense_vitality
 	name = "Sense Vitality"
@@ -28,7 +41,8 @@
 	. = ..()
 	healthscan(owner, target, 1, FALSE)
 	chemscan(owner, target)
-	to_chat(owner, "<b>[target]</b> has <b>[num2text(target.bloodpool)]/[target.maxbloodpool]</b> blood points.")
+	if(iskindred(target) || isghoul(target))
+		to_chat(owner, "<b>[target]</b> has <b>[num2text(target.bloodpool)]/[target.maxbloodpool]</b> blood points.")
 	if(iskindred(target))
 		to_chat(owner, "<b>[target]</b> has a rating of <b>[target.morality_path?.score]</b> on their path.")
 
@@ -64,7 +78,7 @@
 
 	level = 3
 	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_FREE_HAND | DISC_CHECK_IMMOBILE
-	target_type = TARGET_LIVING
+	target_type = TARGET_MOB
 	range = 1
 
 	violates_masquerade = TRUE
diff --git a/code/modules/wod13/datums/powers/discipline/warrior_valeren.dm b/code/modules/wod13/datums/powers/discipline/warrior_valeren.dm
new file mode 100644
index 00000000000..699bc856b85
--- /dev/null
+++ b/code/modules/wod13/datums/powers/discipline/warrior_valeren.dm
@@ -0,0 +1,197 @@
+/datum/discipline/valeren_warrior
+	name = "Warrior Valeren"
+	desc = "Use your third eye in warding and delivering retribution."
+	icon_state = "valeren"
+	clan_restricted = TRUE
+	power_type = /datum/discipline_power/valeren_warrior
+
+
+/datum/discipline/valeren_warrior/post_gain()
+	. = ..()
+	if(level >= 2)
+		ADD_TRAIT(owner, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+		owner.update_body()
+
+
+
+/datum/discipline_power/valeren_warrior
+	name = "Valeren power name"
+	desc = "Valeren power description"
+
+	activate_sound = 'code/modules/wod13/sounds/valeren.ogg'
+
+/datum/discipline_power/valeren_warrior/can_activate_untargeted(alert)
+	. = ..()
+	if(level >=3 && !(HAS_TRAIT_FROM(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
+		if(alert)
+			to_chat(owner, span_warning("You can only use this ability with your third eye open!"))
+		return FALSE
+
+
+//SENSE DEATH
+/datum/discipline_power/valeren_warrior/sense_death
+	name = "Sense Death"
+	desc = "Detect at a glance the extent of your foe's defenses, as well as their vitae reserves."
+
+	level = 1
+	vitae_cost = 0
+	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_SEE
+	target_type = TARGET_LIVING
+	range = 7
+
+	cooldown_length = 5 SECONDS
+
+/datum/discipline_power/valeren_warrior/sense_death/activate(mob/living/carbon/human/target)
+	. = ..()
+	if(ishuman(target))
+		var/armor_melee_addon = 0
+		var/armor_bullet_addon = 0
+		var/armor_fire_addon = 0
+		if(target.wear_suit)
+			var/obj/item/clothing/suit/protec = target.wear_suit
+			armor_melee_addon += protec.armor.melee
+			armor_bullet_addon += protec.armor.bullet
+			armor_fire_addon += protec.armor.fire
+		var/melee_armor = target.physiology.armor.melee + armor_melee_addon
+		var/bullet_armor = 	target.physiology.armor.bullet + armor_bullet_addon
+		var/fire_armor =  target.physiology.armor.fire + armor_fire_addon
+		to_chat(owner, "<b>[target]</b> has a defense rating of <b>[num2text(melee_armor)]</b> against melee attacks ")
+		to_chat(owner, "<b>[target]</b> has a defense rating of <b>[num2text(bullet_armor)]</b> against ranged attacks ")
+		to_chat(owner, "<b>[target]</b> has a defense rating of <b>[num2text(fire_armor)]</b> against fire")
+	if(iskindred(target) || isghoul(target))
+		to_chat(owner, "<b>[target]</b> has <b>[num2text(target.bloodpool)]/[target.maxbloodpool]</b> blood points.")
+		for(var/datum/action/discipline/D in target.actions)
+			if(D.discipline.name == "Fortitude")
+				to_chat(owner, "<b>[target]</b> has a Fortitude rating of [D.discipline.level]")
+
+
+//MORPHEAN BLOW
+/datum/discipline_power/valeren_warrior/morphean_blow
+	name = "Morphean Blow"
+	desc = "Blunt the sensation of your own wounds, drive foes into slumber."
+
+	level = 2
+	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_LYING | DISC_CHECK_FREE_HAND
+	target_type = TARGET_SELF | TARGET_LIVING
+	range = 1
+
+	aggravating = TRUE
+	hostile = TRUE
+
+	cooldown_length = 10 SECONDS
+	duration_length = 1 MINUTES
+	var/morphean_check
+
+/datum/discipline_power/valeren_warrior/morphean_blow/activate(mob/living/target)
+	. = ..()
+	if(target == owner)
+		ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_GENERIC)
+		ADD_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAIT_GENERIC)
+
+		morphean_check = TRUE
+		return
+	if (ishumanbasic(target))
+		target.SetSleeping(15 SECONDS)
+	else
+		target.add_confusion(5)
+		target.drowsyness += 4
+
+/datum/discipline_power/valeren_warrior/morphean_blow/deactivate(atom/target, direct)
+	. = ..()
+	if(morphean_check == TRUE)
+		REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_GENERIC)
+		REMOVE_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAIT_GENERIC)
+
+//BURNING TOUCH
+/datum/discipline_power/valeren_warrior/burning_touch
+	name = "Burning Touch"
+	desc = "Inflict grievous pain on a target for as long as you touch them."
+
+	level = 3
+	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_LYING | DISC_CHECK_FREE_HAND
+	target_type = TARGET_LIVING
+	range = 1
+
+	aggravating = TRUE
+	hostile = TRUE
+
+	cooldown_length = 10 SECONDS
+
+/datum/discipline_power/valeren_warrior/burning_touch/activate(mob/living/carbon/target)
+	. = ..()
+	target.grabbedby(owner)
+	target.grippedby(owner, instant = TRUE)
+	target.apply_status_effect(STATUS_EFFECT_BURNING_TOUCH, owner)
+
+//ARMOR OF CAINE'S FURY
+/datum/discipline_power/valeren_warrior/armor_of_caines_fury
+	name = "Armor of Caine's Fury"
+	desc = "Flare open your third eye, shrouding yourself in a protective crimson halo."
+
+	level = 4
+	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE
+	vitae_cost = 2
+
+	violates_masquerade = TRUE
+
+	cancelable = TRUE
+	duration_length = 1 SCENES
+	cooldown_length = 30 SECONDS
+	var/lastmypower
+
+/datum/discipline_power/valeren_warrior/armor_of_caines_fury/activate()
+	. = ..()
+	var/fortitudelevel
+	var/totaldice
+	for(var/datum/action/discipline/Disc in owner.actions)
+		if(Disc.discipline.name == "Fortitude")
+			fortitudelevel = Disc.discipline.level
+	totaldice = (owner.get_total_physique() + fortitudelevel)
+	var/mypower = SSroll.storyteller_roll(totaldice, difficulty = 7, mobs_to_show_output = owner, numerical = TRUE)
+	mypower = clamp(mypower, 1, 5)
+	owner.physiology.armor.melee += (15*mypower)
+	owner.physiology.armor.bullet += (15*mypower)
+	animate(owner, color = "#b86262", time = 1 SECONDS, loop = 1)
+	lastmypower = mypower
+
+/datum/discipline_power/valeren_warrior/armor_of_caines_fury/deactivate()
+	. = ..()
+	playsound(owner.loc, 'sound/magic/voidblink.ogg', 50, FALSE)
+	owner.physiology.armor.melee -= (15*lastmypower)
+	owner.physiology.armor.bullet -= (15*lastmypower)
+	animate(owner, color = initial(owner.color), time = 1 SECONDS, loop = 1)
+
+//SAMIEL'S VENGEANCE
+/datum/discipline_power/valeren_warrior/samiels_vengeance
+	name = "Samiel's Vengeance"
+	desc = "Open your third eye and let it guide your weapon, striking with unerring accuracy and lethality."
+	level = 5
+	check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE
+	vitae_cost = 3 //Basically can't miss, hence same cost as tabletop.
+	target_type = TARGET_LIVING
+	range = 1
+
+	aggravating = TRUE
+	hostile = TRUE
+
+	cooldown_length = 10 SECONDS
+
+/datum/discipline_power/valeren_warrior/samiels_vengeance/activate(mob/target)
+	. = ..()
+	var/obj/item/I = owner.get_active_held_item()
+	if(!I)
+		owner.dna.species.punchdamagelow += 100
+		owner.dna.species.punchdamagehigh += 100
+		owner.visible_message(span_bolddanger("[owner]'s third eye flashes open, delivering a masterful unarmed strike to [target]!"))
+		owner.a_intent = INTENT_HARM
+		owner.dna.species.harm(owner, target)
+		if(!ishuman(target))
+			target.attack_hand(owner)
+		owner.dna.species.punchdamagelow -= 100
+		owner.dna.species.punchdamagehigh -= 100
+	else
+		owner.dna.species.meleemod += 3 //4x damage baseline, additive.
+		owner.visible_message(span_bolddanger("[owner]'s third eye flashes open, delivering a masterful blow to [target] with [I]!"))
+		playsound(target.loc, I.hitsound, 100, FALSE)
+		target.attacked_by(I, owner)
+		owner.dna.species.meleemod -= 3
diff --git a/code/modules/wod13/status_effects/debuffs.dm b/code/modules/wod13/status_effects/debuffs.dm
index 71963a02f4b..1618adb38c1 100644
--- a/code/modules/wod13/status_effects/debuffs.dm
+++ b/code/modules/wod13/status_effects/debuffs.dm
@@ -1043,3 +1043,33 @@
 	owner.additional_mentality += 1
 	if(HAS_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN))
 		REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, SPECIES_TRAIT)
+
+
+//WARRIOR VALEREN 3 - BURNING TOUCH
+/datum/status_effect/burning_touch
+	id = "burning_touch"
+	status_type = STATUS_EFFECT_REFRESH
+	duration = 6 SECONDS //Two turns
+	tick_interval = 1 SECONDS
+	alert_type = /atom/movable/screen/alert/status_effect/burning_touch
+	var/mob/living/carbon/human/source
+
+/atom/movable/screen/alert/status_effect/burning_touch
+	name = "Burning Touch"
+	desc = "THE PAIN!!! IT HURTS!!!"
+	icon_state = "fire"
+
+/datum/status_effect/burning_touch/on_creation(mob/living/carbon/new_owner, mob/living/carbon/human/new_source)
+	. = ..()
+	source = new_source
+
+/datum/status_effect/burning_touch/tick()
+	var/mob/living/carbon/grabber = owner
+	if(source.pulling == grabber)
+		grabber.adjustStaminaLoss(60, forced = TRUE)
+		grabber.emote("scream")
+		grabber.apply_status_effect(STATUS_EFFECT_BURNING_TOUCH, owner)
+
+/datum/status_effect/burning_touch/Destroy()
+	source = null
+	return ..()
diff --git a/modular_tfn/modules/morality/morality.dm b/modular_tfn/modules/morality/morality.dm
index 5210b1f072c..5637520279a 100644
--- a/modular_tfn/modules/morality/morality.dm
+++ b/modular_tfn/modules/morality/morality.dm
@@ -85,3 +85,9 @@
 	desc = "The Path of the Beast is a Path of Enlightenment practiced especially by members of Clan Gangrel. It controls the Beast by accepting its urges as natural and accepting their role as a hunter among hunters. Adherents are called Bestials or Beasts."
 	alignment = MORALITY_ENLIGHTENMENT
 	bearing = BEARING_MENACE
+
+/datum/morality/samiel
+	name = "Code of Samiel"
+	desc = "The Code of Samiel is a doctrine that formalized the tenets of the Warrior Salubri and of the Path of Retribution. It was designed by Saulot's greatest childe warrior, Samiel himself. Adherents swear to bring retribution to all manner of evil, chief among which are Infernalists, Demons and the Followers of Set. Vengeance, vigilance and righteousness are all held as core virtues."
+	alignment = MORALITY_ENLIGHTENMENT
+	bearing = BEARING_JUSTICE //I have no idea what this actually does
diff --git a/tgstation.dme b/tgstation.dme
index d16f4854b8e..8798a0fafb8 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2400,6 +2400,7 @@
 #include "code\modules\mob\living\carbon\human\human_movement.dm"
 #include "code\modules\mob\living\carbon\human\human_say.dm"
 #include "code\modules\mob\living\carbon\human\human_update_icons.dm"
+#include "code\modules\mob\living\carbon\human\init_signals.dm"
 #include "code\modules\mob\living\carbon\human\inventory.dm"
 #include "code\modules\mob\living\carbon\human\life.dm"
 #include "code\modules\mob\living\carbon\human\physiology.dm"
@@ -3427,6 +3428,7 @@
 #include "code\modules\vtmb\vampire_clane\nosferatu.dm"
 #include "code\modules\vtmb\vampire_clane\old_clan_tzimisce.dm"
 #include "code\modules\vtmb\vampire_clane\salubri.dm"
+#include "code\modules\vtmb\vampire_clane\salubri_warrior.dm"
 #include "code\modules\vtmb\vampire_clane\toreador.dm"
 #include "code\modules\vtmb\vampire_clane\tremere.dm"
 #include "code\modules\vtmb\vampire_clane\true_brujah.dm"
@@ -3511,6 +3513,7 @@
 #include "code\modules\wod13\datums\powers\discipline\thaumaturgy.dm"
 #include "code\modules\wod13\datums\powers\discipline\vicissitude.dm"
 #include "code\modules\wod13\datums\powers\discipline\visceratika.dm"
+#include "code\modules\wod13\datums\powers\discipline\warrior_valeren.dm"
 #include "code\modules\wod13\datums\curses\__curse.dm"
 #include "code\modules\wod13\datums\curses\daimonion_curses.dm"
 #include "code\modules\wod13\datums\powers\discipline\celerity.dm"


Reviews:
user: login: XeonMations
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-11T13:33:16Z
user: login: Nitro-Badger
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-11T13:37:27Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:12:41Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:12:49Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:13:17Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:13:33Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:13:48Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:14:07Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:19:18Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:19:26Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:30:14Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:30:22Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:30:33Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:32:08Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:32:16Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:32:20Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:32:55Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:33:12Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T11:34:19Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T13:43:19Z
user: login: XeonMations
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-13T06:49:24Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:16:01Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:16:07Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T07:16:18Z
user: login: XeonMations
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-13T17:00:17Z
user: login: TheTrueSilverRat
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T07:47:44Z
user: login: XeonMations
body: lgtm
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-14T09:23:12Z
user: login: XeonMations
state: CHANGES_REQUESTED
author_association: COLLABORATOR
submitted_at: 2025-05-23T12:25:22Z
user: login: XeonMations
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-24T18:24:54Z

Review comments:
diff_hunk: @@ -1,4 +1,4 @@
-//#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
+#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
path: _maps/_basemap.dm
user: login: XeonMations
body: If the PR is currently not in a functional and able to-be-merged state, draft it. Otherwise, commented this.
created_at: 2025-05-11T10:58:10Z
author_association: COLLABORATOR
diff_hunk: @@ -188,6 +188,8 @@
 #define TRAIT_GULLET			"gullet"
 #define TRAIT_CHARMER			"charmer"
 #define TRAIT_ORGANOVORE		"organovore"
+#define TRAIT_SALUBRI_EYE_OPEN			"eye_open" //This is for Salubri Stuff in regards to oepning and closing it
path: code/__DEFINES/traits/declarations.dm
user: login: XeonMations
body: Dont forget to change the trait globalvars list.
created_at: 2025-05-11T10:58:42Z
author_association: COLLABORATOR
diff_hunk: @@ -722,6 +722,29 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 					if (possible_new_disciplines.len && (player_experience >= 10))
 						dat += "<a href='byond://?_src_=prefs;preference=newdiscipline;task=input'>Learn a new Discipline (10)</a><BR>"
 
+				if (clane.name == "Salubri Warrior" || "Salubri")
+					var/list/possible_new_valerens = list(/datum/discipline/valeren, /datum/discipline/valeren_warrior)
+					possible_new_valerens -= discipline_types
+
+
+/*
+
+					for(var/datum/discipline/valeren in discipline_types)
path: code/modules/client/preferences.dm
user: login: XeonMations
body: Commented code?
created_at: 2025-05-11T10:59:03Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: XeonMations
body: ```suggestion
		var/obj/item/organ/eyes/salubri = getorgan(/obj/item/organ/eyes/salubri)
```
Presumably you dont want to remove the salubri warrior's actual eyes, and instead the salubri third eye.
created_at: 2025-05-11T10:59:52Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
+
+		if(salubri)
+			salubri.Remove(TRUE, FALSE)
+		update_body()
+		if(!(HAS_TRAIT_FROM(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
+			salubri_opener.Grant(src)
+			ADD_TRAIT(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+	else
+		var/obj/item/organ/eyes/salubri/salubri = new()
+		salubri.Insert(TRUE, FALSE)
+		update_body()
+		salubri_opener.Remove(src)
+		REMOVE_TRAIT(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+
+/*
+		if(!(HAS_TRAIT_FROM(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: XeonMations
body: commented code?
created_at: 2025-05-11T11:01:16Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
+
+		if(salubri)
+			salubri.Remove(TRUE, FALSE)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: XeonMations
body: ```suggestion
		salubri?.Remove(TRUE, FALSE)
```
created_at: 2025-05-11T11:02:00Z
author_association: COLLABORATOR
diff_hunk: @@ -94,7 +94,7 @@
 	actions_types = list(/datum/action/item_action/organ_action/use)
 	var/night_vision = TRUE
 
-/obj/item/organ/eyes/night_vision/salubri
+/obj/item/organ/eyes/salubri
path: code/modules/surgery/organs/eyes.dm
user: login: XeonMations
body: You are removing the salubri's night vision with this.
created_at: 2025-05-11T11:02:29Z
author_association: COLLABORATOR
diff_hunk: @@ -521,6 +521,8 @@
 		message += "The blood is cold and static... It's hard to feel any emotion within it."
 	else if(clan == "Salubri")
 		message += "The cursed blood of the Salubri! The owner of this blood must be slain."
+	else if(clan == "Salubri Warrior")
+		message += "No...It can't be. The Warriors of the Salubri were dead a long time ago!!"
path: code/modules/vtmb/magic/pyramid.dm
user: login: XeonMations
body: ```suggestion
		message += "No... It can't be... The Warriors of the Salubri were dead a long time ago!"
```
created_at: 2025-05-11T11:03:09Z
author_association: COLLABORATOR
diff_hunk: @@ -33,6 +34,7 @@ And it also helps for the character set panel
 	var/accessories_layers = list()
 	var/current_accessory
 	var/clan_keys //Keys to your hideout
+	var/salubri = FALSE //used to determine if they're a Salubri or not for the Common Valeren Paths
path: code/modules/vtmb/vampire_clane/clane.dm
user: login: XeonMations
body: Dont do this. use ``TRAIT_SALUBRI`` Maybe replacing ``TRAIT_SALUBRI_EYE`` since all salubri have salubri eyes, and non-salubri cant have salubri eyes.
created_at: 2025-05-11T11:03:51Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: You dont need to call this proc, the signal triggers it already.
created_at: 2025-05-11T11:05:03Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: ```suggestion
	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_CLAN)
```

Note: You need to add TRAIT_CLAN in trait sources file.
created_at: 2025-05-11T11:05:35Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: ```suggestion
	name = "Open or close the Third Eye"
	desc = "Open or close the Third Eye."
```
created_at: 2025-05-11T11:06:06Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: ```suggestion
	if(!ishuman(owner))
	   return
```

Dont forget to unindent the lower lines.
created_at: 2025-05-11T11:06:39Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
+		var/obj/item/organ/eyes/salubri = owner.getorgan(/obj/item/organ/eyes)
+
+		if(!(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN)))
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: Please swap the code here so there is no negation in the if check.
created_at: 2025-05-11T11:07:08Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
+		var/obj/item/organ/eyes/salubri = owner.getorgan(/obj/item/organ/eyes)
+
+		if(!(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN)))
+			salubri.eye_icon_state = "salubri"
+			owner.update_body()
+			owner.visible_message(span_danger("[owner] sprouts a Third Eye on their Forehead!"), span_userdanger("Your third eye forcibly awakens!"))
+			ADD_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+			return
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: You dont need these returns.
created_at: 2025-05-11T11:07:27Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
+		var/obj/item/organ/eyes/salubri = owner.getorgan(/obj/item/organ/eyes)
+
+		if(!(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN)))
+			salubri.eye_icon_state = "salubri"
+			owner.update_body()
+			owner.visible_message(span_danger("[owner] sprouts a Third Eye on their Forehead!"), span_userdanger("Your third eye forcibly awakens!"))
+			ADD_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+			return
+		else
+			salubri.eye_icon_state = "eyes"
+			owner.update_body()
+			owner.visible_message(span_danger("[owner]'s Third Eye sinks back into their head"), span_userdanger("You close your third eye!"))
+			REMOVE_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+			return
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: see above
created_at: 2025-05-11T11:07:32Z
author_association: COLLABORATOR
diff_hunk: @@ -103,7 +103,7 @@
 					client.images -= suckbar
 				qdel(suckbar)
 				return
-		if(HAS_TRAIT(src, TRAIT_ORGANOVORE)) // think this is fine?
+		if(HAS_TRAIT(src, TRAIT_ORGANOVORE) && (ishumanbasic(mob) || isghoul(mob))) // think this is fine?  //Edited to make
path: code/modules/wod13/bloodsucking.dm
user: login: XeonMations
body: Why are you touching this?
created_at: 2025-05-11T11:16:55Z
author_association: COLLABORATOR
diff_hunk: @@ -115,6 +115,14 @@
 				client.images -= suckbar
 			qdel(suckbar)
 			return
+		if(clane.name == "Salubri Warrior" && (ishumanbasic(mob) || isghoul(mob))) //passes by if it's not a supernatural
path: code/modules/wod13/bloodsucking.dm
user: login: XeonMations
body: ```suggestion
		if(clane.name == "Salubri Warrior")
```
created_at: 2025-05-11T11:18:30Z
author_association: COLLABORATOR
diff_hunk: @@ -11,6 +11,20 @@
 
 	activate_sound = 'code/modules/wod13/sounds/valeren.ogg'
 
+/datum/discipline/valeren/post_gain()
+	. = ..()
+	if(level >= 3)
path: code/modules/wod13/datums/powers/discipline/healer_valeren.dm
user: login: XeonMations
body: > The third eye appears at the time the vampire masters the second level of Valeren. 
created_at: 2025-05-11T13:30:12Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: Nitro-Badger
body: i cant see im legaly blind
created_at: 2025-05-11T13:37:27Z
author_association: NONE
diff_hunk: @@ -1,4 +1,4 @@
-//#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
+#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
path: _maps/_basemap.dm
user: login: TheTrueSilverRat
body: Fixing this
created_at: 2025-05-12T11:12:41Z
author_association: CONTRIBUTOR
diff_hunk: @@ -188,6 +188,8 @@
 #define TRAIT_GULLET			"gullet"
 #define TRAIT_CHARMER			"charmer"
 #define TRAIT_ORGANOVORE		"organovore"
+#define TRAIT_SALUBRI_EYE_OPEN			"eye_open" //This is for Salubri Stuff in regards to oepning and closing it
path: code/__DEFINES/traits/declarations.dm
user: login: TheTrueSilverRat
body: added it
created_at: 2025-05-12T11:12:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -722,6 +722,29 @@ GLOBAL_LIST_EMPTY(preferences_datums)
 					if (possible_new_disciplines.len && (player_experience >= 10))
 						dat += "<a href='byond://?_src_=prefs;preference=newdiscipline;task=input'>Learn a new Discipline (10)</a><BR>"
 
+				if (clane.name == "Salubri Warrior" || "Salubri")
+					var/list/possible_new_valerens = list(/datum/discipline/valeren, /datum/discipline/valeren_warrior)
+					possible_new_valerens -= discipline_types
+
+
+/*
+
+					for(var/datum/discipline/valeren in discipline_types)
path: code/modules/client/preferences.dm
user: login: TheTrueSilverRat
body: removed the commented stuff
created_at: 2025-05-12T11:13:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: TheTrueSilverRat
body: fixed this
created_at: 2025-05-12T11:13:32Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
+
+		if(salubri)
+			salubri.Remove(TRUE, FALSE)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: TheTrueSilverRat
body: Did the do, thanks for teaching me about ?.
created_at: 2025-05-12T11:13:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
+
+		if(salubri)
+			salubri.Remove(TRUE, FALSE)
+		update_body()
+		if(!(HAS_TRAIT_FROM(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
+			salubri_opener.Grant(src)
+			ADD_TRAIT(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+	else
+		var/obj/item/organ/eyes/salubri/salubri = new()
+		salubri.Insert(TRUE, FALSE)
+		update_body()
+		salubri_opener.Remove(src)
+		REMOVE_TRAIT(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+
+/*
+		if(!(HAS_TRAIT_FROM(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: TheTrueSilverRat
body: removed comments
created_at: 2025-05-12T11:14:06Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,7 +94,7 @@
 	actions_types = list(/datum/action/item_action/organ_action/use)
 	var/night_vision = TRUE
 
-/obj/item/organ/eyes/night_vision/salubri
+/obj/item/organ/eyes/salubri
path: code/modules/surgery/organs/eyes.dm
user: login: TheTrueSilverRat
body: Lore team said not to give
created_at: 2025-05-12T11:19:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,30 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+		var/obj/item/organ/eyes/salubri = src.getorgan(/obj/item/organ/eyes)
+
+		if(salubri)
+			salubri.Remove(TRUE, FALSE)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: TheTrueSilverRat
body: Fixed this, thank you for teachng me about ?.
created_at: 2025-05-12T11:19:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: TheTrueSilverRat
body: added and added TRAIT_CLAN to trait soruces
created_at: 2025-05-12T11:30:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: TheTrueSilverRat
body: removed on_salubri_eye()
created_at: 2025-05-12T11:30:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -521,6 +521,8 @@
 		message += "The blood is cold and static... It's hard to feel any emotion within it."
 	else if(clan == "Salubri")
 		message += "The cursed blood of the Salubri! The owner of this blood must be slain."
+	else if(clan == "Salubri Warrior")
+		message += "No...It can't be. The Warriors of the Salubri were dead a long time ago!!"
path: code/modules/vtmb/magic/pyramid.dm
user: login: TheTrueSilverRat
body: adeded sugestion
created_at: 2025-05-12T11:30:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -521,6 +521,8 @@
 		message += "The blood is cold and static... It's hard to feel any emotion within it."
 	else if(clan == "Salubri")
 		message += "The cursed blood of the Salubri! The owner of this blood must be slain."
+	else if(clan == "Salubri Warrior")
+		message += "No...It can't be. The Warriors of the Salubri were dead a long time ago!!"
path: code/modules/vtmb/magic/pyramid.dm
user: login: TheTrueSilverRat
body: changed it to what Augustus suggsted 
![image](https://github.com/user-attachments/assets/fdbe8a57-2ce3-4753-b1e2-1b48aa3237bb)

created_at: 2025-05-12T11:32:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: TheTrueSilverRat
body: added
created_at: 2025-05-12T11:32:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: TheTrueSilverRat
body: did th do
created_at: 2025-05-12T11:32:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -7,7 +7,41 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+	salubri = TRUE
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_GENERIC)
+	H.on_salubri_eye()
+
+
+/datum/action/salubri_eye
+	name = "Close the Third Eye"
+	desc = "Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(istype(owner, /mob/living/carbon/human))
+		var/obj/item/organ/eyes/salubri = owner.getorgan(/obj/item/organ/eyes)
+
+		if(!(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN)))
+			salubri.eye_icon_state = "salubri"
+			owner.update_body()
+			owner.visible_message(span_danger("[owner] sprouts a Third Eye on their Forehead!"), span_userdanger("Your third eye forcibly awakens!"))
+			ADD_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
+			return
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: TheTrueSilverRat
body: remved returns
created_at: 2025-05-12T11:32:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -103,7 +103,7 @@
 					client.images -= suckbar
 				qdel(suckbar)
 				return
-		if(HAS_TRAIT(src, TRAIT_ORGANOVORE)) // think this is fine?
+		if(HAS_TRAIT(src, TRAIT_ORGANOVORE) && (ishumanbasic(mob) || isghoul(mob))) // think this is fine?  //Edited to make
path: code/modules/wod13/bloodsucking.dm
user: login: TheTrueSilverRat
body: removing this for atomization and adding it in a seperate thing if it hasn't been done yet
created_at: 2025-05-12T11:33:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,6 +11,20 @@
 
 	activate_sound = 'code/modules/wod13/sounds/valeren.ogg'
 
+/datum/discipline/valeren/post_gain()
+	. = ..()
+	if(level >= 3)
path: code/modules/wod13/datums/powers/discipline/healer_valeren.dm
user: login: TheTrueSilverRat
body: Adjusted stuff
created_at: 2025-05-12T11:34:19Z
author_association: CONTRIBUTOR
diff_hunk: @@ -11,6 +11,20 @@
 
 	activate_sound = 'code/modules/wod13/sounds/valeren.ogg'
 
+/datum/discipline/valeren/post_gain()
+	. = ..()
+	if(level >= 3)
path: code/modules/wod13/datums/powers/discipline/healer_valeren.dm
user: login: TheTrueSilverRat
body: Changed it to second eye
created_at: 2025-05-12T13:43:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,4 +1,4 @@
-//#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
+// #define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
path: _maps/_basemap.dm
user: login: XeonMations
body: bro..
created_at: 2025-05-13T06:44:18Z
author_association: COLLABORATOR
diff_hunk: @@ -227,7 +227,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
 		"TRAIT_UNDENSE" = TRAIT_UNDENSE,
 		"TRAIT_LEANING" = TRAIT_LEANING,
 		"TRAIT_OBFUSCATED" = TRAIT_OBFUSCATED,
-		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER
+		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER,
+		"TRAIT_SALUBRI_EYE_OPEN" = TRAIT_SALUBRI_EYE_OPEN
path: code/_globalvars/traits/_traits.dm
user: login: XeonMations
body: and ``TRAIT_SALUBRI_EYE``
created_at: 2025-05-13T06:44:48Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,38 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_CLAN)
+
+
+/datum/action/salubri_eye
+	name = "Open or Close the Third Eye"
+	desc = "Open or Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(!iskindred(owner))
+		return
+	var/obj/item/organ/eyes/salubri = owner.getorgan(/obj/item/organ/eyes)
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: ```suggestion
	var/obj/item/organ/eyes/salubri/salubri = owner.getorgan(/obj/item/organ/eyes/salubri)
```
created_at: 2025-05-13T06:46:41Z
author_association: COLLABORATOR
diff_hunk: @@ -1043,3 +1043,33 @@
 	owner.additional_mentality += 1
 	if(HAS_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN))
 		REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, SPECIES_TRAIT)
+
+
+//WARRIOR VALEREN 3 - BURNING TOUCH
+/datum/status_effect/burning_touch
+	id = "burning_touch"
+	status_type = STATUS_EFFECT_REFRESH
+	duration = 6 SECONDS //Two turns
+	tick_interval = 1 SECONDS
+	alert_type = /atom/movable/screen/alert/status_effect/burning_touch
+	var/mob/living/carbon/human/source
+
+/atom/movable/screen/alert/status_effect/burning_touch
+	name = "Burning Touch"
+	desc = "THE PAIN!!! IT HURTS!!!"
+	icon_state = "fire"
+
+/datum/status_effect/burning_touch/on_creation(mob/living/carbon/new_owner, mob/living/carbon/human/new_source)
+	. = ..()
+	source = new_source
+
+/datum/status_effect/burning_touch/tick()
+	var/mob/living/carbon/grabber = owner
+	if(source.pulling == grabber)
+		grabber.adjustStaminaLoss(60, forced = TRUE)
path: code/modules/wod13/status_effects/debuffs.dm
user: login: XeonMations
body: isnt burning_touch supposed to... deal damage? this is just stamina loss.
created_at: 2025-05-13T06:49:02Z
author_association: COLLABORATOR
diff_hunk: @@ -1043,3 +1043,33 @@
 	owner.additional_mentality += 1
 	if(HAS_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN))
 		REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, SPECIES_TRAIT)
+
+
+//WARRIOR VALEREN 3 - BURNING TOUCH
+/datum/status_effect/burning_touch
+	id = "burning_touch"
+	status_type = STATUS_EFFECT_REFRESH
+	duration = 6 SECONDS //Two turns
+	tick_interval = 1 SECONDS
+	alert_type = /atom/movable/screen/alert/status_effect/burning_touch
+	var/mob/living/carbon/human/source
+
+/atom/movable/screen/alert/status_effect/burning_touch
+	name = "Burning Touch"
+	desc = "THE PAIN!!! IT HURTS!!!"
+	icon_state = "fire"
+
+/datum/status_effect/burning_touch/on_creation(mob/living/carbon/new_owner, mob/living/carbon/human/new_source)
+	. = ..()
+	source = new_source
+
+/datum/status_effect/burning_touch/tick()
+	var/mob/living/carbon/grabber = owner
+	if(source.pulling == grabber)
+		grabber.adjustStaminaLoss(60, forced = TRUE)
path: code/modules/wod13/status_effects/debuffs.dm
user: login: TheTrueSilverRat
body: Not fixing this since this is intended
created_at: 2025-05-13T07:16:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -227,7 +227,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
 		"TRAIT_UNDENSE" = TRAIT_UNDENSE,
 		"TRAIT_LEANING" = TRAIT_LEANING,
 		"TRAIT_OBFUSCATED" = TRAIT_OBFUSCATED,
-		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER
+		"TRAIT_CUFFBREAKER" = TRAIT_CUFFBREAKER,
+		"TRAIT_SALUBRI_EYE_OPEN" = TRAIT_SALUBRI_EYE_OPEN
path: code/_globalvars/traits/_traits.dm
user: login: TheTrueSilverRat
body: addded it
created_at: 2025-05-13T07:16:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,4 +1,4 @@
-//#define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
+// #define LOWMEMORYMODE //uncomment this to load just titlescreen and runtime town
path: _maps/_basemap.dm
user: login: TheTrueSilverRat
body: woops my bad
created_at: 2025-05-13T07:16:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -188,6 +188,8 @@
 #define TRAIT_GULLET			"gullet"
 #define TRAIT_CHARMER			"charmer"
 #define TRAIT_ORGANOVORE		"organovore"
+#define TRAIT_SALUBRI_EYE_OPEN			"eye_open" //This is for Salubri Stuff in regards to oepning and closing it
path: code/__DEFINES/traits/declarations.dm
user: login: XeonMations
body: oepning
created_at: 2025-05-13T16:34:34Z
author_association: COLLABORATOR
diff_hunk: @@ -94,7 +94,7 @@
 	actions_types = list(/datum/action/item_action/organ_action/use)
 	var/night_vision = TRUE
 
-/obj/item/organ/eyes/night_vision/salubri
+/obj/item/organ/eyes/salubri
 	eye_icon_state = "salubri"
 
path: code/modules/surgery/organs/eyes.dm
user: login: XeonMations
body: ```suggestion
/obj/item/organ/eyes/salubri
   eye_icon_state = "salubri"
   var/datum/action/salubri_eye/salubri_opener

/obj/item/organ/eyes/salubri/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE, initialising)
	. = ..()
	salubri_opener = new()
	salubri_opener.Grant(M)

/obj/item/organ/eyes/salubri/Remove(mob/living/carbon/M, special = 0)
   . = ..()
   if(salubri_opener)
		salubri_opener.Remove(M)
```
created_at: 2025-05-13T16:51:51Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,38 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_CLAN)
+
+
+/datum/action/salubri_eye
+	name = "Open or Close the Third Eye"
+	desc = "Open or Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(!iskindred(owner))
+		return
+	var/obj/item/organ/eyes/salubri/salubri = owner.getorgan(/obj/item/organ/eyes/salubri)
+
+	if(!(HAS_TRAIT(owner, TRAIT_SALUBRI_EYE_OPEN)))
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: remove the ! and change up the code bellow, its hard ot understand code that has uncessecary negations
created_at: 2025-05-13T16:52:42Z
author_association: COLLABORATOR
diff_hunk: @@ -7,7 +7,38 @@
 		/datum/discipline/fortitude,
 		/datum/discipline/valeren
 	)
+	common_disciplines = list(/datum/discipline/valeren_warrior)
 	male_clothes = /obj/item/clothing/under/vampire/salubri
 	female_clothes = /obj/item/clothing/under/vampire/salubri/female
 	whitelisted = FALSE
 	clan_keys = /obj/item/vamp/keys/salubri
+
+/datum/vampireclane/salubri/on_gain(mob/living/carbon/human/H)
+	..()
+	ADD_TRAIT(H, TRAIT_SALUBRI_EYE, TRAIT_CLAN)
+
+
+/datum/action/salubri_eye
+	name = "Open or Close the Third Eye"
+	desc = "Open or Close the Third Eye."
+	button_icon_state = "auspex"
+	button_icon = 'code/modules/wod13/UI/actions.dmi'
+	background_icon_state = "discipline"
+	icon_icon = 'code/modules/wod13/UI/actions.dmi'
+	check_flags = AB_CHECK_CONSCIOUS
+
+/datum/action/salubri_eye/Trigger()
+	if(!iskindred(owner))
+		return
+	var/obj/item/organ/eyes/salubri/salubri = owner.getorgan(/obj/item/organ/eyes/salubri)
path: code/modules/vtmb/vampire_clane/salubri.dm
user: login: XeonMations
body: ```suggestion
	var/obj/item/organ/eyes/salubri/salubri = getorganslot(ORGAN_SLOT_SALUBRI_EYES)
	if(!salubri)
	   return
```
created_at: 2025-05-13T16:53:57Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,19 @@
+/mob/living/carbon/human/register_init_signals()
+	. = ..()
+	RegisterSignal(src, list(SIGNAL_ADDTRAIT(TRAIT_SALUBRI_EYE), SIGNAL_REMOVETRAIT(TRAIT_SALUBRI_EYE)), PROC_REF(on_salubri_eye))
+
+/mob/living/carbon/human/proc/on_salubri_eye()
+	SIGNAL_HANDLER
+
+
+	var/datum/action/salubri_eye/salubri_opener = new()
+	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
+
+
+		if(!(HAS_TRAIT_FROM(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)))
+			var/obj/item/organ/eyes/salubri/salubri_eye = new()
+			salubri_eye.Insert(src, TRUE, FALSE)
+			salubri_opener.Grant(src)
+			salubri_eye.eye_icon_state = "salubri"
+			update_body()
+			ADD_TRAIT(src, TRAIT_SALUBRI_EYE_OPEN, SALUBRI_EYE_TRAIT)
path: code/modules/mob/living/carbon/human/init_signals.dm
user: login: XeonMations
body: ```suggestion
	if(HAS_TRAIT(src, TRAIT_SALUBRI_EYE))
		var/obj/item/organ/eyes/salubri/salubri_eye = new()
		salubri_eye.Insert(src, TRUE, FALSE)
	else
		var/obj/item/organ/eyes/salubri/salubri_eyes = getorganslot(ORGAN_SLOT_SALUBRI_EYES)
		salubri_eyes.Remove(src)		
```
created_at: 2025-05-13T16:54:45Z
author_association: COLLABORATOR
diff_hunk: @@ -115,6 +115,14 @@
 				client.images -= suckbar
 			qdel(suckbar)
 			return
+		if(clane.name == "Salubri Warrior" && (ishumanbasic(mob) || isghoul(mob))) //passes by if it's not a supernatural
+			if( (!HAS_TRAIT_FROM(mob, TRAIT_INCAPACITATED, STAMINA)) && mob.stat < SOFT_CRIT) //Needs to be KO'd to feed on
+				to_chat(src, span_warning("I HAVE NOT BESTED THIS ONE IN COMBAT!! I FEED ON WARRIORS NOT CATTLE!!"))
path: code/modules/wod13/bloodsucking.dm
user: login: XeonMations
body: ```suggestion
				to_chat(src, span_warning("I HAVE NOT BESTED THIS ONE IN COMBAT!! I FEED ON WARRIORS, NOT CATTLE!!"))
```
created_at: 2025-05-13T16:59:17Z
author_association: COLLABORATOR
diff_hunk: @@ -188,6 +188,8 @@
 #define TRAIT_GULLET			"gullet"
 #define TRAIT_CHARMER			"charmer"
 #define TRAIT_ORGANOVORE		"organovore"
+#define TRAIT_SALUBRI_EYE_OPEN			"eye_open" //This is for Salubri Stuff in regards to oepning and closing it
path: code/__DEFINES/traits/declarations.dm
user: login: TheTrueSilverRat
body: fixed it oops
created_at: 2025-05-14T07:47:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -94,9 +94,21 @@
 	actions_types = list(/datum/action/item_action/organ_action/use)
 	var/night_vision = TRUE
 
-/obj/item/organ/eyes/night_vision/salubri
+/obj/item/organ/eyes/salubri
 	eye_icon_state = "salubri"
+/obj/item/organ/eyes/salubri
+	eye_icon_state = "salubri"
+	var/datum/action/salubri_eye/salubri_opener
+
+/obj/item/organ/eyes/salubri/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE, initialising)
+	. = ..()
+	salubri_opener = new()
+	salubri_opener.Grant(M)
 
+/obj/item/organ/eyes/salubri/Remove(mob/living/carbon/M, special = 0)
+	. = ..()
+	if(salubri_opener)
+		salubri_opener.Remove(M)
path: code/modules/surgery/organs/eyes.dm
user: login: XeonMations
body: make sure to add a check for TRAIT_SALUBRI_EYE_OPEN here, and if so, remove the trait
created_at: 2025-05-23T12:25:19Z
author_association: COLLABORATOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-05-23T01:49:15Z
body: This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself
author_association: CONTRIBUTOR
user: login: XeonMations
created_at: 2025-05-24T18:24:42Z
body: annoying PR to keep on the TM. Merging.
author_association: COLLABORATOR