diff --git a/code/__DEFINES/~darkpack/traits/macros.dm b/code/__DEFINES/~darkpack/traits/macros.dm
index e69de29bb2d1..864a9e0b1ae6 100644
--- a/code/__DEFINES/~darkpack/traits/macros.dm
+++ b/code/__DEFINES/~darkpack/traits/macros.dm
@@ -0,0 +1,2 @@
+/// Trait applied by element
+#define DISCIPLINE_TRAIT(source) "discipline_trait_[source]"
diff --git a/code/__DEFINES/~darkpack/traits/sources.dm b/code/__DEFINES/~darkpack/traits/sources.dm
index 6402f89925de..a440d2ae7ea7 100644
--- a/code/__DEFINES/~darkpack/traits/sources.dm
+++ b/code/__DEFINES/~darkpack/traits/sources.dm
@@ -2,7 +2,6 @@
/// Trait given by a vampire's Clan
#define CLAN_TRAIT "clan"
-#define DISCIPLINE_TRAIT "discipline"
#define STAKE_TRAIT "stake"
#define DAMAGE_TRAIT "damage"
diff --git a/modular_darkpack/modules/deprecated/icons/UI/actions.dmi b/modular_darkpack/modules/deprecated/icons/UI/actions.dmi
index e767f06b944a..a89e8088cc58 100644
Binary files a/modular_darkpack/modules/deprecated/icons/UI/actions.dmi and b/modular_darkpack/modules/deprecated/icons/UI/actions.dmi differ
diff --git a/modular_darkpack/modules/powers/code/discipline/auspex/auspex.dm b/modular_darkpack/modules/powers/code/discipline/auspex/auspex.dm
index 48a88e37241c..08873bd00d17 100644
--- a/modular_darkpack/modules/powers/code/discipline/auspex/auspex.dm
+++ b/modular_darkpack/modules/powers/code/discipline/auspex/auspex.dm
@@ -48,18 +48,18 @@
if(SENSE_VISION in output_senses)
owner.client?.view_size?.setTo(2) // This increases the view size of the player by 2 tiles in each direction. I dont know why it's called Set if it Adds.
- ADD_TRAIT(owner, TRAIT_REFLECTIVE_EYES, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_REFLECTIVE_EYES, DISCIPLINE_TRAIT(type))
var/obj/item/organ/eyes/kindred_eyes = owner.get_organ_slot(ORGAN_SLOT_EYES)
if(kindred_eyes)
kindred_eyes.flash_protect = max(kindred_eyes.flash_protect += -2, FLASH_PROTECTION_HYPER_SENSITIVE)
if(SENSE_HEARING in output_senses)
- ADD_TRAIT(owner, TRAIT_GOOD_HEARING, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_GOOD_HEARING, DISCIPLINE_TRAIT(type))
var/obj/item/organ/ears/kindred_ears = owner.get_organ_slot(ORGAN_SLOT_EARS)
kindred_ears.damage_multiplier = kindred_ears.damage_multiplier + 1
if(SENSE_SMELL in output_senses)
- owner.dna?.add_mutation(/datum/mutation/olfaction, DISCIPLINE_TRAIT)
+ owner.dna?.add_mutation(/datum/mutation/olfaction, DISCIPLINE_TRAIT(type))
if(SENSE_TASTE in output_senses)
- ADD_TRAIT(owner, TRAIT_REAGENT_SCANNER, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_REAGENT_SCANNER, DISCIPLINE_TRAIT(type))
if(SENSE_TOUCH in output_senses)
RegisterSignals(owner, list(COMSIG_CARBON_HELP_ACT, COMSIG_ON_CARBON_SLIP, COMSIG_LIVING_DISARM_HIT, COMSIG_LIVING_TRYING_TO_PULL), PROC_REF(on_touch))
owner.AddComponent(/datum/component/heartbeat_sensing, color_path = /datum/client_colour/psyker)
@@ -73,17 +73,17 @@
if(mutation)
owner.dna?.remove_mutation(mutation, mutation.sources)
// Hearing
- REMOVE_TRAIT(owner, TRAIT_GOOD_HEARING, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_GOOD_HEARING, DISCIPLINE_TRAIT(type))
var/obj/item/organ/ears/kindred_ears = owner.get_organ_slot(ORGAN_SLOT_EARS)
kindred_ears.damage_multiplier = initial(kindred_ears.damage_multiplier)
// Vision
owner.client?.view_size?.resetToDefault()
- REMOVE_TRAIT(owner, TRAIT_REFLECTIVE_EYES, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_REFLECTIVE_EYES, DISCIPLINE_TRAIT(type))
var/obj/item/organ/eyes/kindred_eyes = owner.get_organ_slot(ORGAN_SLOT_EYES)
if(kindred_eyes)
kindred_eyes.flash_protect = max(kindred_eyes.flash_protect += 2, FLASH_PROTECTION_NONE)
// Taste
- REMOVE_TRAIT(owner, TRAIT_REAGENT_SCANNER, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_REAGENT_SCANNER, DISCIPLINE_TRAIT(type))
// Touch
UnregisterSignal(owner, list(COMSIG_CARBON_HELP_ACT, COMSIG_ON_CARBON_SLIP, COMSIG_LIVING_DISARM_HIT, COMSIG_LIVING_TRYING_TO_PULL))
qdel(owner.GetComponent(/datum/component/heartbeat_sensing))
diff --git a/modular_darkpack/modules/powers/code/discipline/healer_valeren.dm b/modular_darkpack/modules/powers/code/discipline/healer_valeren.dm
deleted file mode 100644
index e87e80955ba0..000000000000
--- a/modular_darkpack/modules/powers/code/discipline/healer_valeren.dm
+++ /dev/null
@@ -1,154 +0,0 @@
-/datum/discipline/valeren
- name = "Healer Valeren"
- desc = "Use your third eye in healing or protecting needs."
- icon_state = "valeren"
- clan_restricted = TRUE
- power_type = /datum/discipline_power/valeren
-
-/datum/discipline_power/valeren
- name = "Valeren power name"
- desc = "Valeren power description"
-
- activate_sound = 'modular_darkpack/modules/deprecated/sounds/valeren.ogg'
-
-//SENSE VITALITY
-/datum/discipline_power/valeren/sense_vitality
- name = "Sense Vitality"
- desc = "Discipline power description"
-
- level = 1
- check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE | DISC_CHECK_FREE_HAND
- target_type = TARGET_MOB
- range = 1
-
- cooldown_length = 5 SECONDS
-
-/datum/discipline_power/valeren/sense_vitality/activate(mob/living/target)
- . = ..()
- healthscan(owner, target, 1, FALSE)
- chemscan(owner, target)
- to_chat(owner, "[target] has [num2text(target.bloodpool)]/[target.maxbloodpool] blood points.")
- to_chat(owner, "[target] has a rating of [target.humanity] on their path.")
-
-//ANESTHETIC TOUCH
-/datum/discipline_power/valeren/anesthetic_touch
- name = "Anesthetic Touch"
- desc = "Soothe your patient's pain, or put them to peaceful sleep."
-
- level = 2
- 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 = 20 SECONDS
-
-/datum/discipline_power/valeren/anesthetic_touch/activate(mob/living/target)
- . = ..()
- //I'm not a fan of how punishing this is towards human players, but not my job to rework it
- if (ismundane(target))
- target.SetSleeping(15 SECONDS)
- else
- target.add_confusion(5)
- target.drowsyness += 4
-
-//CORPORE SANO
-/datum/discipline_power/valeren/corpore_sano
- name = "Corpore Sano"
- desc = "Lay hands on your patient and heal their wounds."
-
- level = 3
- check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_FREE_HAND | DISC_CHECK_IMMOBILE
- target_type = TARGET_LIVING
- range = 1
-
- violates_masquerade = TRUE
-
- cooldown_length = 5 SECONDS
-
-/datum/discipline_power/valeren/corpore_sano/activate(mob/living/target)
- . = ..()
- owner.Beam(target, icon_state="sm_arc", time = 5 SECONDS, maxdistance = 9, beam_type = /obj/effect/ebeam/medical)
-
- target.heal_ordered_damage(60, list(BRUTE, TOX, BURN, AGGRAVATED, OXY, BRAIN))
- if(ishuman(target))
- var/mob/living/carbon/human/human_target = target
- if(length(human_target.all_wounds))
- var/datum/wound/wound = pick(human_target.all_wounds)
- wound.remove_wound()
-
- target.update_damage_overlays()
- target.update_health_hud()
-
-//SHEPHERD'S WATCH
-/datum/discipline_power/valeren/shepherds_watch
- name = "Shepherd's Watch"
- desc = "Create a supernatural barrier to protect yourself from harm."
-
- level = 4
-
- cooldown_length = 40 SECONDS
-
-/datum/discipline_power/valeren/shepherds_watch/activate()
- . = ..()
- for (var/turf/turf in orange(1, get_turf(owner)))
- new /obj/effect/forcefield/wizard(turf, owner)
-
-//UNBURDEN THE BESTIAL SOUL
-/datum/discipline_power/valeren/unburden_the_bestial_soul
- name = "Unburden The Bestial Soul"
- desc = "Draw out a Kindred's soul and heal it of impurities."
-
- level = 5
- check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE | DISC_CHECK_FREE_HAND
- target_type = TARGET_LIVING
- range = 1
-
- cooldown_length = 5 SECONDS
-
- var/points_can_restore = 3
-
-/datum/discipline_power/valeren/unburden_the_bestial_soul/can_activate_untargeted(alert)
- . = ..()
-
- if (points_can_restore <= 0)
- if (alert)
- to_chat(owner, span_warning("You've exhausted yourself too much to cleanse more souls."))
- return FALSE
-
- return .
-
-/datum/discipline_power/valeren/unburden_the_bestial_soul/can_activate(mob/living/target, alert)
- . = ..()
-
- if (!iskindred(target))
- if (alert)
- to_chat(owner, span_warning("[src] can only be used on Kindred."))
- return FALSE
-
- if (!target.client)
- if (alert)
- to_chat(owner, span_warning("[target] does not have a soul to cleanse!"))
- return FALSE
-
- if (target.humanity >= 10 && !target.client?.prefs?.enlightenment)
- if (alert)
- to_chat(owner, span_warning("[target]'s soul is already completely pure."))
- return FALSE
-
- return .
-
-/datum/discipline_power/valeren/unburden_the_bestial_soul/pre_activation_checks(mob/living/carbon/human/target)
- to_chat(owner, span_warning("You begin cleansing [target]'s soul..."))
- if (do_mob(owner, target, 10 SECONDS))
- return TRUE
-
-/datum/discipline_power/valeren/unburden_the_bestial_soul/activate(mob/living/carbon/human/target)
- . = ..()
- to_chat(owner, span_notice("You have healed [target]'s soul slightly."))
- SEND_SIGNAL(owner, COMSIG_PATH_HIT, 1, 10, FALSE)
- points_can_restore--
-
-
diff --git a/modular_darkpack/modules/powers/code/discipline/necromancy.dm b/modular_darkpack/modules/powers/code/discipline/necromancy.dm
index 6001934b793f..e4da9a6f6749 100644
--- a/modular_darkpack/modules/powers/code/discipline/necromancy.dm
+++ b/modular_darkpack/modules/powers/code/discipline/necromancy.dm
@@ -12,7 +12,7 @@
owner.add_faction(VAMPIRE_CLAN_GIOVANNI)
var/datum/action/ritual_drawing/necromancy/ritualist = new()
- ADD_TRAIT(owner, TRAIT_NECROMANCY_KNOWLEDGE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_NECROMANCY_KNOWLEDGE, DISCIPLINE_TRAIT(type))
ritualist.Grant(owner)
ritualist.level = level
diff --git a/modular_darkpack/modules/powers/code/discipline/obeah.dm b/modular_darkpack/modules/powers/code/discipline/obeah.dm
new file mode 100644
index 000000000000..4d6615d48ce3
--- /dev/null
+++ b/modular_darkpack/modules/powers/code/discipline/obeah.dm
@@ -0,0 +1,139 @@
+/datum/discipline/obeah
+ name = "Obeah"
+ desc = "Use your third eye in healing or protecting needs."
+ icon_state = "obeah"
+ clan_restricted = TRUE
+ power_type = /datum/discipline_power/obeah
+
+/datum/discipline_power/obeah
+ name = "Valeren power name"
+ desc = "Valeren power description"
+
+ activate_sound = 'modular_darkpack/modules/powers/sounds/obeah.ogg'
+
+//SENSE VITALITY
+/datum/discipline_power/obeah/sense_vitality
+ name = "Sense Vitality"
+ desc = "Focus your senses to read the vitality of a target."
+
+ level = 1
+ check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_FREE_HAND
+ target_type = TARGET_MOB | TARGET_SELF
+ range = 1
+ vitae_cost = 0
+ cooldown_length = 1 TURNS
+
+// perception + empathy at diff 7
+// 1 success = splat
+// 2 success = splat + vitals
+// 3 success = splat + vital + current bloodpool
+/datum/discipline_power/obeah/sense_vitality/activate(mob/living/target)
+ . = ..()
+ var/datum/storyteller_roll/sense_vitality_roll = new()
+ sense_vitality_roll.applicable_stats = list(STAT_PERCEPTION, STAT_EMPATHY)
+ sense_vitality_roll.difficulty = 7
+ sense_vitality_roll.numerical = TRUE
+ sense_vitality_roll.roll_output_type = ROLL_PRIVATE_ADMIN
+ var/roll_result = sense_vitality_roll.st_roll(owner)
+
+ var/list/render_list = list()
+ render_list = do_roll_results(target, roll_result)
+ to_chat(owner, custom_boxed_message("blue_box", jointext(render_list, "")), type = MESSAGE_TYPE_INFO)
+
+/datum/discipline_power/obeah/sense_vitality/proc/do_roll_results(mob/living/target, roll_result)
+ var/list/render_list = list()
+ if(roll_result < 1)
+ render_list += span_danger("You fail to sense anything.\n")
+ return render_list
+
+ // One Success.
+ var/datum/splat/sensed_splat = LAZYACCESS(target.splats, 1)
+ render_list += span_notice("You identify them to be a [sensed_splat ? sensed_splat.name : "Human"].\n")
+
+ if(roll_result < 2)
+ return render_list
+ // Two Successes.
+ render_list += custom_boxed_message("blue_box", healthscan(user = owner, target = target, mode = SCANNER_VERBOSE, advanced = TRUE, tochat = FALSE))
+
+ if(roll_result < 3)
+ return render_list
+ // Three Successes.
+ var/mob/living/carbon/human/target_human = target
+ var/bloodpool = target_human?.bloodpool
+ render_list += span_notice("You sense they have [bloodpool ? bloodpool : "no"] Vitae remaining.\n")
+ return render_list
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//ANESTHETIC TOUCH
+/datum/discipline_power/obeah/anesthetic_touch
+ name = "Anesthetic Touch"
+ desc = "Soothe your patient's pain, or put them to peaceful sleep."
+
+ level = 2
+ check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_FREE_HAND
+ target_type = TARGET_LIVING
+ range = 1
+ cooldown_length = 1 TURNS
+
+// TO DO, make this use two mouse buttons instead of radial menu.
+// LMB: Block someone's pain
+// RMB: Put mortal to sleep.
+/datum/discipline_power/obeah/anesthetic_touch/activate(mob/living/target)
+ . = ..()
+ var/chosen_option = show_radial_menu(owner, target, list("Soothe Pain", "Put To Sleep"), radius = 38, require_near = TRUE)
+ switch(chosen_option)
+ if("Soothe Pain")
+ ADD_TRAIT(target, TRAIT_IGNORESLOWDOWN, DISCIPLINE_TRAIT(type))
+ addtimer(CALLBACK(src, PROC_REF(end_soothe_pain), target), 1 SCENES)
+ if("Put To Sleep")
+ if(iskindred(target))
+ to_chat(owner, span_warning("You can't put a Kindred to sleep with this power!"))
+ return TRUE
+ target.SetSleeping(10 SCENES) // 30 minutes if left alone
+ target.adjust_blood_pool(1) // Mortal regains a blood point.
+ return TRUE
+
+/datum/discipline_power/obeah/anesthetic_touch/proc/end_soothe_pain(mob/living/target)
+ REMOVE_TRAIT(target, TRAIT_IGNORESLOWDOWN, DISCIPLINE_TRAIT(type))
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/*
+//CORPORE SANO
+/datum/discipline_power/obeah/corpore_sano
+ name = "Corpore Sano"
+ desc = "Lay hands on your patient and heal their wounds."
+
+ level = 3
+ check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_FREE_HAND | DISC_CHECK_IMMOBILE
+ target_type = TARGET_LIVING
+ range = 1
+
+ violates_masquerade = TRUE
+
+ cooldown_length = 5 SECONDS
+
+
+//SHEPHERD'S WATCH
+/datum/discipline_power/obeah/shepherds_watch
+ name = "Shepherd's Watch"
+ desc = "Create a supernatural barrier to protect yourself from harm."
+
+ level = 4
+
+ cooldown_length = 40 SECONDS
+
+//UNBURDEN THE BESTIAL SOUL
+/datum/discipline_power/obeah/unburden_the_bestial_soul
+ name = "Unburden The Bestial Soul"
+ desc = "Draw out a Kindred's soul and heal it of impurities."
+
+ level = 5
+ check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE | DISC_CHECK_FREE_HAND
+ target_type = TARGET_LIVING
+ range = 1
+
+ cooldown_length = 5 SECONDS
+
+*/
diff --git a/modular_darkpack/modules/powers/code/discipline/obtenebration.dm b/modular_darkpack/modules/powers/code/discipline/obtenebration.dm
index 30572b4a214f..24b77c7a9071 100644
--- a/modular_darkpack/modules/powers/code/discipline/obtenebration.dm
+++ b/modular_darkpack/modules/powers/code/discipline/obtenebration.dm
@@ -10,7 +10,7 @@
var/datum/action/ritual_drawing/mysticism/mystic = new()
mystic.Grant(owner)
mystic.level = level
- ADD_TRAIT(owner, TRAIT_MYSTICISM_KNOWLEDGE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_MYSTICISM_KNOWLEDGE, DISCIPLINE_TRAIT(type))
/datum/discipline_power/obtenebration
diff --git a/modular_darkpack/modules/powers/code/discipline/quietus/fields/silence_of_death_aoe.dm b/modular_darkpack/modules/powers/code/discipline/quietus/fields/silence_of_death_aoe.dm
index 5864674617d7..de258b8f4431 100644
--- a/modular_darkpack/modules/powers/code/discipline/quietus/fields/silence_of_death_aoe.dm
+++ b/modular_darkpack/modules/powers/code/discipline/quietus/fields/silence_of_death_aoe.dm
@@ -9,13 +9,13 @@
. = ..()
silenced_mobs = list()
if(ishuman(_host))
- ADD_TRAIT(_host, TRAIT_SILENCED, DISCIPLINE_TRAIT)
+ ADD_TRAIT(_host, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
silenced_mobs |= _host
/datum/proximity_monitor/advanced/silence_of_death/Destroy()
for(var/mob/living/carbon/human/H in silenced_mobs)
- REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT)
- REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
+ REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT(type))
silenced_mobs = null
return ..()
@@ -29,10 +29,10 @@
return
var/mob/living/carbon/human/H = entered
- ADD_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT)
+ ADD_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
if(H != host)
- ADD_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT(type))
H.adjust_confusion_up_to(15 SECONDS, 15 SECONDS)
@@ -50,16 +50,16 @@
return
var/mob/living/carbon/human/H = gone
- REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT)
- REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
+ REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT(type))
silenced_mobs -= H
/datum/proximity_monitor/advanced/silence_of_death/on_z_change()
if(QDELETED(src))
return
for(var/mob/living/carbon/human/H in silenced_mobs)
- REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT)
- REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
+ REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT(type))
silenced_mobs.Cut()
/datum/proximity_monitor/advanced/silence_of_death/cleanup_field_turf(turf/target)
@@ -67,6 +67,6 @@
return
for(var/mob/living/carbon/human/H in target.contents)
if((H in silenced_mobs) && H != host)
- REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT)
- REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_SILENCED, DISCIPLINE_TRAIT(type))
+ REMOVE_TRAIT(H, TRAIT_MUTE, DISCIPLINE_TRAIT(type))
silenced_mobs -= H
diff --git a/modular_darkpack/modules/powers/code/discipline/serpentis.dm b/modular_darkpack/modules/powers/code/discipline/serpentis.dm
index ae576f3aec15..1384f25c69d9 100644
--- a/modular_darkpack/modules/powers/code/discipline/serpentis.dm
+++ b/modular_darkpack/modules/powers/code/discipline/serpentis.dm
@@ -117,10 +117,10 @@
if(choice == "Obvious")
owner.st_add_stat_mod(STAT_INTIMIDATION, 2, "Serpentis") // 'reduce intimidation difficulties by two' placeholder
owner.st_add_stat_mod(STAT_STAMINA, 3, "Serpentis") // 'reduces all soak difficulty to 5' placeholder
- ADD_TRAIT(owner, TRAIT_MASQUERADE_VIOLATING_FACE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_MASQUERADE_VIOLATING_FACE, DISCIPLINE_TRAIT(type))
else
owner.st_add_stat_mod(STAT_STAMINA, 2, "Serpentis") // permanently on with no downsides according to dav20. its staying at fort one bro
- ADD_TRAIT(owner, TRAIT_SERPENTIS_SKIN, DISCIPLINE_TRAIT) //ideally this would either be blatantly obvious or not so much depending on the choice. I guess masq violating face trait will work for obvious.
+ ADD_TRAIT(owner, TRAIT_SERPENTIS_SKIN, DISCIPLINE_TRAIT(type)) //ideally this would either be blatantly obvious or not so much depending on the choice. I guess masq violating face trait will work for obvious.
owner.st_add_stat_mod(STAT_APPEARANCE, -(owner.st_get_stat(STAT_APPEARANCE) - 1), "Serpentis")
/*
owner.Stun(duration_length)
@@ -132,10 +132,10 @@
if(choice == "Obvious")
owner.st_remove_stat_mod(STAT_INTIMIDATION, 2, "Serpentis")
owner.st_remove_stat_mod(STAT_STAMINA, 3, "Serpentis")
- REMOVE_TRAIT(owner, TRAIT_MASQUERADE_VIOLATING_FACE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_MASQUERADE_VIOLATING_FACE, DISCIPLINE_TRAIT(type))
else
owner.st_remove_stat_mod(STAT_STAMINA, 2, "Serpentis")
- REMOVE_TRAIT(owner, TRAIT_SERPENTIS_SKIN, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_SERPENTIS_SKIN, DISCIPLINE_TRAIT(type))
owner.st_remove_stat_mod(STAT_APPEARANCE, "Serpentis")
@@ -246,7 +246,7 @@
owner.dna.species.inherent_traits |= TRAIT_STUNIMMUNE
owner.dna.species.inherent_traits |= TRAIT_SLEEPIMMUNE
owner.dna.species.inherent_traits |= TRAIT_NOSOFTCRIT
- ADD_TRAIT(owner, TRAIT_STAKE_IMMUNE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_STAKE_IMMUNE, DISCIPLINE_TRAIT(type))
urn = new(owner.loc)
urn.own = owner
//var/obj/item/organ/heart/heart = owner.get_organ_slot(ORGAN_SLOT_HEART) DARKPACK TODO - Vampire Organs need to be made useless
@@ -256,7 +256,7 @@
owner.dna.species.inherent_traits -= TRAIT_STUNIMMUNE
owner.dna.species.inherent_traits -= TRAIT_SLEEPIMMUNE
owner.dna.species.inherent_traits -= TRAIT_NOSOFTCRIT
- REMOVE_TRAIT(owner, TRAIT_STAKE_IMMUNE, DISCIPLINE_TRAIT)
+ REMOVE_TRAIT(owner, TRAIT_STAKE_IMMUNE, DISCIPLINE_TRAIT(type))
//for(var/obj/item/organ/heart/heart in urn)
//heart.forceMove(owner)
//heart.Insert(owner)
diff --git a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm
index 839b6e4bb325..a811e90c4688 100644
--- a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm
+++ b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm
@@ -13,7 +13,7 @@
/datum/discipline_power/temporis/activate()
. = ..()
- ADD_TRAIT(owner, TRAIT_TIMEWARPER, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_TIMEWARPER, DISCIPLINE_TRAIT(type))
/datum/discipline_power/temporis/proc/celerity_explode(datum/source, datum/discipline_power/power, atom/target)
SIGNAL_HANDLER
diff --git a/modular_darkpack/modules/powers/code/discipline/thaumaturgy/path_of_blood.dm b/modular_darkpack/modules/powers/code/discipline/thaumaturgy/path_of_blood.dm
index 172e5df29b76..ff211930d1da 100644
--- a/modular_darkpack/modules/powers/code/discipline/thaumaturgy/path_of_blood.dm
+++ b/modular_darkpack/modules/powers/code/discipline/thaumaturgy/path_of_blood.dm
@@ -11,7 +11,7 @@
var/datum/action/ritual_drawing/thaumaturgy/thaumaturgy = new()
thaumaturgy.Grant(owner)
thaumaturgy.level = level
- ADD_TRAIT(owner, TRAIT_THAUMATURGY_KNOWLEDGE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_THAUMATURGY_KNOWLEDGE, DISCIPLINE_TRAIT(type))
add_verb(owner, /mob/living/carbon/human/proc/check_research_points)
/datum/discipline_power/thaumaturgy
diff --git a/modular_darkpack/modules/powers/code/discipline/vicissitude/vicissitude.dm b/modular_darkpack/modules/powers/code/discipline/vicissitude/vicissitude.dm
index 6054c713b9a6..1e89c00a33be 100644
--- a/modular_darkpack/modules/powers/code/discipline/vicissitude/vicissitude.dm
+++ b/modular_darkpack/modules/powers/code/discipline/vicissitude/vicissitude.dm
@@ -8,7 +8,7 @@
/datum/discipline/vicissitude/post_gain()
. = ..()
owner.faction |= VAMPIRE_CLAN_TZIMISCE
- ADD_TRAIT(owner, TRAIT_VICISSITUDE_KNOWLEDGE, DISCIPLINE_TRAIT)
+ ADD_TRAIT(owner, TRAIT_VICISSITUDE_KNOWLEDGE, DISCIPLINE_TRAIT(type))
/datum/discipline_power/vicissitude
name = "Vicissitude power name"
diff --git a/modular_darkpack/modules/deprecated/sounds/valeren.ogg b/modular_darkpack/modules/powers/sounds/obeah.ogg
similarity index 100%
rename from modular_darkpack/modules/deprecated/sounds/valeren.ogg
rename to modular_darkpack/modules/powers/sounds/obeah.ogg
diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/blood_power.dm b/modular_darkpack/modules/vampire_the_masquerade/code/blood_power.dm
index b49b8a0ad234..4f845727c2b0 100644
--- a/modular_darkpack/modules/vampire_the_masquerade/code/blood_power.dm
+++ b/modular_darkpack/modules/vampire_the_masquerade/code/blood_power.dm
@@ -60,7 +60,7 @@
human_owner.adjust_blood_pool(-current_bp_cost(human_owner))
- ADD_TRAIT(human_owner, TRAIT_IGNORESLOWDOWN, MAGIC_TRAIT)
+ ADD_TRAIT(human_owner, TRAIT_IGNORESLOWDOWN, DISCIPLINE_TRAIT(type))
addtimer(CALLBACK(src, PROC_REF(end_bloodpower)), cooldown_time)
@@ -84,7 +84,7 @@
human_owner.st_remove_stat_mod(STAT_DEXTERITY, "blood_power")
human_owner.st_remove_stat_mod(STAT_STAMINA, "blood_power")
- REMOVE_TRAIT(human_owner, TRAIT_IGNORESLOWDOWN, MAGIC_TRAIT)
+ REMOVE_TRAIT(human_owner, TRAIT_IGNORESLOWDOWN, DISCIPLINE_TRAIT(type))
/datum/action/cooldown/blood_power/proc/set_usage()
var/turns = tgui_input_number(owner, "Set turns ([1 TURNS / 10] seconds per turn) to use blood for.", "Set Bloodpower Turns", turns_activated, TURNS_PER_SCENE, 1)
diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/salubri.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/salubri.dm
index afb4b00d3df6..297650e159cb 100644
--- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/salubri.dm
+++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/salubri.dm
@@ -7,7 +7,7 @@
clan_disciplines = list(
/datum/discipline/auspex,
/datum/discipline/fortitude,
- // /datum/discipline/valeren
+ /datum/discipline/obeah
)
clan_traits = list(
TRAIT_CONSENSUAL_FEEDING_ONLY,
diff --git a/tgstation.dme b/tgstation.dme
index e857ed933c51..6889da0c5742 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -7386,6 +7386,7 @@
#include "modular_darkpack\modules\powers\code\discipline\animalism.dm"
#include "modular_darkpack\modules\powers\code\discipline\dementation.dm"
#include "modular_darkpack\modules\powers\code\discipline\necromancy.dm"
+#include "modular_darkpack\modules\powers\code\discipline\obeah.dm"
#include "modular_darkpack\modules\powers\code\discipline\obtenebration.dm"
#include "modular_darkpack\modules\powers\code\discipline\serpentis.dm"
#include "modular_darkpack\modules\powers\code\discipline\torpor.dm"