diff --git a/code/__DEFINES/~darkpack/signals_kindred.dm b/code/__DEFINES/~darkpack/signals_kindred.dm index 3c3d6987dad7..2b4f66a68af1 100644 --- a/code/__DEFINES/~darkpack/signals_kindred.dm +++ b/code/__DEFINES/~darkpack/signals_kindred.dm @@ -5,3 +5,6 @@ #define COMSIG_MOB_VAMPIRE_SUCKED "mob_vampire_sucked" ///vampire suck resisted #define COMPONENT_RESIST_VAMPIRE_KISS (1<<0) + +///baali demons have touched the target, time to apply the effect from daimonion 4 +#define COMSIG_BAALI_DEMON_REACHED_TARGET "baali_demon_reached_target" diff --git a/code/__DEFINES/~darkpack/status_effects_debuffs.dm b/code/__DEFINES/~darkpack/status_effects_debuffs.dm index 39d256922dfe..6a0f22c5e325 100644 --- a/code/__DEFINES/~darkpack/status_effects_debuffs.dm +++ b/code/__DEFINES/~darkpack/status_effects_debuffs.dm @@ -1,6 +1,13 @@ #define STATUS_EFFECT_AWE /datum/status_effect/awe +/// daimoinon 5 (condemnation) baali curses +#define STATUS_EFFECT_LYING_WEAKNESS /datum/status_effect/condemnation/lying_weakness +#define STATUS_EFFECT_PHYSICAL_WEAKNESS /datum/status_effect/condemnation/physical_weakness +#define STATUS_EFFECT_MENTAL_WEAKNESS /datum/status_effect/condemnation/mental_weakness +#define STATUS_EFFECT_OFFSPRING_WEAKNESS /datum/status_effect/condemnation/offspring_weakness +#define STATUS_EFFECT_SUCCESS_WEAKNESS /datum/status_effect/condemnation/success_weakness + #define STATUS_EFFECT_PUTREFACTION /datum/status_effect/putrefaction #define STATUS_EFFECT_PUTREFACTIONTWO /datum/status_effect/putrefaction/two #define STATUS_EFFECT_PUTREFACTIONTHREE /datum/status_effect/putrefaction/three diff --git a/modular_darkpack/modules/powers/code/discipline/__discipline.dm b/modular_darkpack/modules/powers/code/discipline/__discipline.dm index 12f01c8600af..3249ecdeae15 100644 --- a/modular_darkpack/modules/powers/code/discipline/__discipline.dm +++ b/modular_darkpack/modules/powers/code/discipline/__discipline.dm @@ -34,6 +34,8 @@ var/mob/living/carbon/human/owner ///If this Discipline has been assigned before and post_gain effects have already been applied. var/post_gain_applied + /// Signature clan that "owns" the discipline. + var/signature_clan //TODO: rework this and set_level to use proper loadouts instead of a default set every time /datum/discipline/New(level) diff --git a/modular_darkpack/modules/powers/code/discipline/daimonion.dm b/modular_darkpack/modules/powers/code/discipline/daimonion.dm deleted file mode 100644 index 079de741a733..000000000000 --- a/modular_darkpack/modules/powers/code/discipline/daimonion.dm +++ /dev/null @@ -1,186 +0,0 @@ -/datum/discipline/daimonion - name = "Daimonion" - desc = "Get a help from the Hell creatures, resist THE FIRE, transform into an imp. Violates Masquerade." - icon_state = "daimonion" - clan_restricted = TRUE - power_type = /datum/discipline_power/daimonion - -/datum/discipline_power/daimonion - name = "Daimonion power name" - desc = "Daimonion power description" - - activate_sound = 'modular_darkpack/modules/deprecated/sounds/protean_activate.ogg' - deactivate_sound = 'modular_darkpack/modules/deprecated/sounds/protean_deactivate.ogg' - -//SENSE THE SIN -/datum/discipline_power/daimonion/sense_the_sin - name = "Sense the Sin" - desc = "Become supernaturally resistant to fire." - - level = 1 - - cancelable = TRUE - duration_length = 20 SECONDS - cooldown_length = 10 SECONDS - -/datum/discipline_power/daimonion/sense_the_sin/activate() - . = ..() - owner.physiology.burn_mod /= 100 - owner.color = "#884200" - -/datum/discipline_power/daimonion/sense_the_sin/deactivate() - . = ..() - owner.color = initial(owner.color) - owner.physiology.burn_mod *= 100 - -//FEAR OF THE VOID BELOW -/datum/discipline_power/daimonion/fear_of_the_void_below - name = "Fear of the Void Below" - desc = "Sprout wings and become able to fly." - - level = 2 - check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_LYING | DISC_CHECK_IMMOBILE - - violates_masquerade = TRUE - - cancelable = TRUE - duration_length = 30 SECONDS - cooldown_length = 20 SECONDS - -/datum/discipline_power/daimonion/fear_of_the_void_below/activate() - . = ..() - owner.dna.species.GiveSpeciesFlight(owner) - -/datum/discipline_power/daimonion/fear_of_the_void_below/deactivate() - . = ..() - owner.dna.species.RemoveSpeciesFlight(owner) - -//CONFLAGRATION -/datum/discipline_power/daimonion/conflagration - name = "Conflagration" - desc = "Fireball." - - level = 3 - check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE - - violates_masquerade = TRUE - - cancelable = TRUE - duration_length = 30 SECONDS - cooldown_length = 10 SECONDS - -// DARKPACK TODO - Make it so this doesnt give you infinite 0 blood cost fireballs -/datum/discipline_power/daimonion/conflagration/activate() - . = ..() - -/datum/discipline_power/daimonion/conflagration/deactivate() - . = ..() - -/datum/discipline_power/daimonion/conflagration/post_gain() - . = ..() - var/obj/effect/proc_holder/spell/aimed/fireball/baali/balefire = new(owner) - owner.mind.AddSpell(balefire) - -/obj/effect/proc_holder/spell/aimed/fireball/baali - name = "Infernal Fireball" - desc = "This spell fires an explosive fireball at a target." - school = "evocation" - charge_max = 60 - clothes_req = FALSE - invocation = "FR BRTH" - invocation_type = INVOCATION_WHISPER - range = 20 - cooldown_min = 20 //10 deciseconds reduction per rank - projectile_type = /obj/projectile/magic/aoe/fireball/baali - base_icon_state = "infernaball" - action_icon_state = "infernaball0" - sound = 'sound/magic/fireball.ogg' - active_msg = "You prepare to cast your fireball spell!" - deactive_msg = "You extinguish your fireball... for now." - active = FALSE - -//PSYCHOMACHIA -/datum/discipline_power/daimonion/psychomachia - name = "Psychomachia" - desc = "Become a bat." - - level = 4 - check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE | DISC_CHECK_LYING - - violates_masquerade = TRUE - - duration_length = 30 SECONDS - cooldown_length = 10 SECONDS - grouped_powers = list(/datum/discipline_power/daimonion/condemnation) - - var/datum/action/cooldown/spell/shapeshift/bat/bat_shapeshift - -/datum/discipline_power/daimonion/psychomachia/activate() - . = ..() - if(!bat_shapeshift) - bat_shapeshift = new(owner) - - owner.drop_all_held_items() - bat_shapeshift.Shapeshift(owner) - -/datum/discipline_power/daimonion/psychomachia/deactivate() - . = ..() - bat_shapeshift.Restore(bat_shapeshift.myshape) - owner.Stun(1.5 SECONDS) - owner.do_jitter_animation(30) - -//CONDEMNTATION -/datum/discipline_power/daimonion/condemnation - name = "Condemnation" - desc = "Become a bat." - - level = 5 - check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE | DISC_CHECK_LYING - - violates_masquerade = TRUE - - duration_length = 30 SECONDS - cooldown_length = 10 SECONDS - grouped_powers = list(/datum/discipline_power/daimonion/psychomachia) - - var/datum/action/cooldown/spell/shapeshift/bat/bat_shapeshift - -/datum/discipline_power/daimonion/condemnation/activate() - . = ..() - if(!bat_shapeshift) - bat_shapeshift = new(owner) - - owner.drop_all_held_items() - bat_shapeshift.Shapeshift(owner) - -/datum/discipline_power/daimonion/condemnation/deactivate() - . = ..() - bat_shapeshift.Restore(bat_shapeshift.myshape) - owner.Stun(1.5 SECONDS) - owner.do_jitter_animation(30) - -/datum/discipline_power/daimonion/condemnation/post_gain() - . = ..() - var/datum/action/antifrenzy/antifrenzy_contract = new() - antifrenzy_contract.Grant(owner) - -/datum/action/antifrenzy - name = "Resist Beast" - desc = "Resist Frenzy and Rotshreck by signing a contract with Demons." - button_icon_state = "resist" - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_LYING|AB_CHECK_CONSCIOUS - vampiric = TRUE - var/used = FALSE - -/datum/action/antifrenzy/Trigger() - var/mob/living/carbon/human/user = owner - if(user.stat >= UNCONSCIOUS || user.IsSleeping() || user.IsUnconscious() || user.IsParalyzed() || user.IsKnockdown() || user.IsStun() || HAS_TRAIT(user, TRAIT_RESTRAINED) || !isturf(user.loc)) - return - if(used) - to_chat(owner, span_warning("You've already signed this contract!")) - return - used = TRUE - user.antifrenzy = TRUE - SEND_SOUND(owner, sound('sound/magic/curse.ogg', volume = 50)) - to_chat(owner, span_warning("You feel control over your Beast, but at what cost...")) - qdel(src) diff --git a/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion.dm b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion.dm new file mode 100644 index 000000000000..63cf0cdb7cd2 --- /dev/null +++ b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion.dm @@ -0,0 +1,294 @@ +/datum/discipline/daimoinon + name = "Daimoinon" + desc = "Draw power from the demons and infernal nature of Hell. Use subtle power to manipulate people and when you must, draw upon fire itself and protect yourself." + icon_state = "daimonion" + clan_restricted = TRUE + power_type = /datum/discipline_power/daimoinon + signature_clan = VAMPIRE_CLAN_BAALI + +/datum/discipline_power/daimoinon + name = "Daimoinon power name" + desc = "Daimoinon power description" + + activate_sound = 'modular_darkpack/modules/deprecated/sounds/protean_activate.ogg' + deactivate_sound = 'modular_darkpack/modules/deprecated/sounds/protean_deactivate.ogg' + +//SENSE THE SIN +/datum/discipline_power/daimoinon/sense_the_sin + name = "Sense the Sin" + desc = "Sense the sins and cruelties of your victim." + + target_type = TARGET_HUMAN + range = 7 + level = 1 + + cancelable = TRUE + var/datum/storyteller_roll/sense_the_sin/sense_the_sin_roll + +/datum/storyteller_roll/sense_the_sin + bumper_text = "sense the sin" + applicable_stats = list(STAT_PERCEPTION, STAT_EMPATHY) + roll_output_type = ROLL_PRIVATE + +/datum/discipline_power/daimoinon/sense_the_sin/pre_activation_checks(mob/living/target) + if(!sense_the_sin_roll) + sense_the_sin_roll = new() + sense_the_sin_roll.difficulty = max(target.st_get_stat(STAT_SELF_CONTROL), target.st_get_stat(STAT_INSTINCT)) + 4 + var/roll = sense_the_sin_roll.st_roll(owner, target) + if(roll != ROLL_SUCCESS) + return FALSE + else + return TRUE + +/datum/discipline_power/daimoinon/sense_the_sin/activate(mob/living/carbon/human/target) + . = ..() + if(target.st_get_stat(STAT_CHARISMA) <= 2) + to_chat(owner, span_notice("They are not social or influencing.")) + if(target.st_get_stat(STAT_PERMANENT_WILLPOWER) <= 2) + to_chat(owner, span_notice("They lack appropiate willpower.")) + if(target.st_get_stat(STAT_STRENGTH) <= 2) + to_chat(owner, span_notice("Their body is weak and feeble.")) + if(target.st_get_stat(STAT_DEXTERITY) <= 2) + to_chat(owner, span_notice("They lack coordination.")) + if(get_garou_splat(target)) + to_chat(owner, span_notice("Their natural banishment is silver...")) + if(get_kindred_splat(target)) + var/datum/subsplat/vampire_clan/target_clan = target.get_clan() + if(!target_clan) + return + var/target_sense_the_sin_weakness = target_clan.sense_the_sin_text + baali_get_stolen_disciplines(target, owner) + if(target_sense_the_sin_weakness) + to_chat(target, span_notice("[target.name] [target_sense_the_sin_weakness]")) + /* DARKPACK TODO - bloodbonds + if(isghoul(target)) + var/mob/living/carbon/human/ghoul = target + + if(ghoul.mind.enslaved_to) + to_chat(owner, span_notice("Victim is addicted to vampiric vitae and its true master is [ghoul.mind.enslaved_to]")) + else + to_chat(owner, span_notice("Victim is addicted to vampiric vitae, but is independent and free.")) + */ + /* DARKPACK TODO : Kuei-Jin + if(iscathayan(target)) + if(target.mind.dharma?.Po == "Legalist") + to_chat(owner, span_notice("[target] hates to be controlled!")) + if(target.mind.dharma?.Po == "Rebel") + to_chat(owner, span_notice("[target] doesn't like to be touched.")) + if(target.mind.dharma?.Po == "Monkey") + to_chat(owner, span_notice("[target] is too focused on money, toys and other sources of easy pleasure.")) + if(target.mind.dharma?.Po == "Demon") + to_chat(owner, span_notice("[target] is addicted to pain, as well as to inflicting it to others.")) + if(target.mind.dharma?.Po == "Fool") + to_chat(owner, span_notice("[target] doesn't like to be pointed at!")) + */ + if(!get_kindred_splat(target) && !get_ghoul_splat(target) && !get_shifter_splat(target) /*&& !iscathayan(target)*/) + to_chat(owner, span_notice("[target] is a feeble worm with no strengths or visible weaknesses, a mere human.")) + + + /* DARKPACK TODO: Warrior Salubri / Salubri Warrior + if(VAMPIRE_CLAN_SALUBRI_WARRIOR) + to_chat(owner, span_notice("[target] pursues an endless revenge.")) + return + */ + +/datum/discipline_power/daimoinon/sense_the_sin/proc/baali_get_stolen_disciplines(mob/living/target, mob/living/owner) + if(!owner || !target) + return + var/datum/splat/vampire/kindred/vampire = get_kindred_splat(target) + if(!vampire) + return + var/datum/subsplat/vampire_clan/target_clan = vampire.clan + for(var/datum/action/discipline/disc_action as anything in vampire.powers) + var/datum/discipline/discipline = disc_action.discipline + if(!discipline?.selectable) + continue + var/signature_clan = discipline.signature_clan + if(!signature_clan) + continue + if(signature_clan != target_clan.id) + to_chat(owner, span_warning("[target] has stolen [discipline.name]!")) + +//FEAR OF THE VOID BELOW +/datum/discipline_power/daimoinon/fear_of_the_void_below + name = "Fear of the Void Below" + desc = "Induce fear in a target." + + level = 2 + check_flags = DISC_CHECK_CONSCIOUS + + target_type = TARGET_HUMAN + range = 7 + + duration_length = 3 SECONDS + var/datum/storyteller_roll/fear_of_the_void_below/fear_of_the_void_below_roll + +/datum/storyteller_roll/fear_of_the_void_below + bumper_text = "fear of the void below" + applicable_stats = list(STAT_WITS, STAT_INTIMIDATION) + roll_output_type = ROLL_PRIVATE + +/datum/discipline_power/daimoinon/fear_of_the_void_below/pre_activation_checks(mob/living/target) + if(!fear_of_the_void_below_roll) + fear_of_the_void_below_roll = new() + fear_of_the_void_below_roll.difficulty = target.st_get_stat(STAT_COURAGE) + 4 + var/roll = fear_of_the_void_below_roll.st_roll(owner, target) + if(roll != ROLL_SUCCESS) + to_chat(owner, span_warning("[target] has too much willpower to induce fear into them!")) + return FALSE + return TRUE + +/datum/discipline_power/daimoinon/fear_of_the_void_below/activate(mob/living/carbon/human/target) + . = ..() + to_chat(target, span_warning("Your mind is enveloped by your greatest fear!")) + if(prob(50)) // REPLACE THIS - the people hate hardstuns + target.Paralyze(6 SECONDS) + else + target.Sleeping(6 SECONDS) + +//CONFLAGRATION +/datum/discipline_power/daimoinon/conflagration + name = "Conflagration" + desc = "Draw out the destructive essence of the Beyond." + + level = 3 + check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE + target_type = TARGET_LIVING + range = 7 + activate_sound = 'modular_darkpack/modules/powers/sounds/daimonion_fireball.ogg' + aggravating = TRUE + hostile = TRUE + violates_masquerade = TRUE + +/obj/projectile/flames/baali + color = "#1c1f1d" + damage = 25 + damage_type = AGGRAVATED + +/datum/discipline_power/daimoinon/conflagration/activate(mob/living/target) + . = ..() + var/turf/start = get_turf(owner) + var/obj/projectile/flames/baali/created_fireball = new(start) + created_fireball.firer = owner + var/angle = get_angle(owner, target) + created_fireball.fire(angle, target) + +//PSYCHOMANIA +/datum/discipline_power/daimoinon/psychomania + name = "Psychomania" + desc = "Bring forth the target's greatest fear." + + level = 4 + check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE + target_type = TARGET_LIVING + range = 7 + + violates_masquerade = FALSE + var/datum/storyteller_roll/psychomania/psychomania_roll + +/datum/storyteller_roll/psychomania + bumper_text = "psychomania" + roll_output_type = ROLL_PRIVATE + +/datum/discipline_power/daimoinon/psychomania/pre_activation_checks(mob/living/target) + if(!psychomania_roll) + psychomania_roll = new() + + //forces the subject's player to roll her lowest Virtue + var/datum/st_stat/virtue/lowest_virtue + for(var/virtue_type in subtypesof(/datum/st_stat/virtue)) + var/datum/st_stat/virtue/target_stat = target.storyteller_stats["[virtue_type]"] + if(!lowest_virtue || target_stat.get_score() < lowest_virtue.get_score()) + lowest_virtue = target_stat + + psychomania_roll.applicable_stats = list(lowest_virtue) + var/roll = psychomania_roll.st_roll(target, owner) + + if(roll != ROLL_SUCCESS) + to_chat(owner, span_cult("[target] will suffer greatly.")) + return TRUE + + to_chat(owner, span_warning("[target] is too pure to manifest their fears!")) + return FALSE + +/datum/discipline_power/daimoinon/psychomania/activate(mob/living/target) + . = ..() + + var/datum/splat/werewolf/shifter/garou_splat = get_shifter_splat(target) + if(garou_splat) + garou_splat.tribe.psychomania_effect(target, owner) + return + + var/datum/splat/vampire/kindred/kindred_splat = get_kindred_splat(target) + if(kindred_splat) + kindred_splat.clan.psychomania_effect(target, owner) + return + + var/ghoul_splat = get_ghoul_splat(target) + if(ghoul_splat) + to_chat(target, span_cult("SOMETHING IS COMING, WHAT IS IT?!!")) + var/obj/effect/client_image_holder/baali_demon/demon = new(get_turf(target), list(target)) + RegisterSignal(demon, COMSIG_BAALI_DEMON_REACHED_TARGET, PROC_REF(on_demon_contact)) + return + + to_chat(target, span_cult("MY WORST NIGHTMARES FLASH BEFORE MY EYES")) + target.Paralyze(7 SECONDS) + +/datum/discipline_power/daimoinon/psychomania/proc/on_demon_contact(obj/effect/client_image_holder/baali_demon/source, mob/living/victim) + SIGNAL_HANDLER + source.on_contact(victim) + step_away(victim, get_turf(source)) + +//CONDEMNATION +/datum/discipline_power/daimoinon/condemnation + name = "Condemnation" + desc = "Condemn a soul to suffering." + + level = 5 + check_flags = DISC_CHECK_CONSCIOUS | DISC_CHECK_CAPABLE | DISC_CHECK_IMMOBILE + target_type = TARGET_LIVING + range = 7 + violates_masquerade = TRUE + var/datum/storyteller_roll/condemnation/condemnation_roll + var/list/available_curses + +/datum/storyteller_roll/condemnation + bumper_text = "condemnation" + applicable_stats = list(STAT_INTELLIGENCE, STAT_OCCULT) + roll_output_type = ROLL_PRIVATE + +/datum/discipline_power/daimoinon/condemnation/activate(mob/living/target) + . = ..() + + if(target.has_status_effect(/datum/status_effect/condemnation)) + to_chat(owner, span_warning("They are already damned!")) + return + + var/datum/splat/vampire/kindred/kindred_splat = get_kindred_splat(owner) + if(!available_curses) + for(var/curse_type in subtypesof(/datum/status_effect/condemnation)) + var/datum/status_effect/condemnation/curse = curse_type + if(kindred_splat.generation <= curse.genrequired) + LAZYSET(available_curses, curse.name, curse_type) + + var/chosen_curse_name = tgui_input_list(owner, "What curse shall befall the damned?", "Curse Selection", available_curses) + if(!chosen_curse_name) + return + + var/datum/status_effect/condemnation/chosen_curse_datum = available_curses[chosen_curse_name] + + if(!condemnation_roll) + condemnation_roll = new() + + condemnation_roll.difficulty = target.st_get_stat(STAT_TEMPORARY_WILLPOWER) + var/roll = condemnation_roll.st_roll(owner, target) + if(roll != ROLL_SUCCESS) + to_chat(owner, span_warning("You fail to pierce their mind and the target remains free of your curse.")) + //not sure if target should get a to_chat? + return + + target.apply_status_effect(chosen_curse_datum) + owner.maxbloodpool -= chosen_curse_datum.bloodcost + owner.bloodpool = clamp(owner.bloodpool, 0, owner.maxbloodpool) + + diff --git a/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_curses.dm b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_curses.dm new file mode 100644 index 000000000000..2a10cfcd1121 --- /dev/null +++ b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_curses.dm @@ -0,0 +1,79 @@ +/datum/movespeed_modifier/daimoinon_curse + multiplicative_slowdown = 0.4 + +/datum/status_effect/condemnation + abstract_type = /datum/status_effect/condemnation + id = null + tick_interval = STATUS_EFFECT_NO_TICK + alert_type = /atom/movable/screen/alert/status_effect/daimoinon_condemnation + var/name = "Condemnation" + var/genrequired = 13 + var/bloodcost = 1 + +/datum/status_effect/condemnation/lying_weakness + id = "lying_weakness" + name = "No Lying Tongue" + genrequired = 13 + bloodcost = 1 + +/datum/status_effect/condemnation/lying_weakness/on_apply() + . = ..() + if(ishuman(owner)) + var/mob/living/carbon/human/human_owner = owner + human_owner.gain_trauma(/datum/brain_trauma/mild/mind_echo, TRAUMA_RESILIENCE_ABSOLUTE) + to_chat(owner, span_userdanger(span_bold("You feel like a great curse was placed on you!"))) + +/datum/status_effect/condemnation/physical_weakness + id = "physical_weakness" + name = "Baby Strength" + genrequired = 12 + bloodcost = 2 + +/datum/status_effect/condemnation/physical_weakness/on_apply() + . = ..() + owner.st_add_stat_mod(STAT_STRENGTH, -1, "physical_weakness") + var/mob/living/carbon/human/vampire = owner + for (var/datum/action/cooldown/blood_power/blood_power in vampire.actions) + blood_power.Remove(vampire) + to_chat(owner, span_userdanger(span_bold("You feel like a great curse was placed on you!"))) + +/datum/status_effect/condemnation/mental_weakness + id = "mental_weakness" + name = "Reap Mentality" + genrequired = 11 + bloodcost = 3 + +/datum/status_effect/condemnation/mental_weakness/on_apply() + . = ..() + owner.st_add_stat_mod(STAT_CHARISMA, -1, "mental_weakness") + owner.st_add_stat_mod(STAT_TEMPORARY_WILLPOWER, -1, "mental_weakness") + to_chat(owner, span_userdanger(span_bold("You feel like a great curse was placed on you!"))) + +/datum/status_effect/condemnation/offspring_weakness + id = "offspring_weakness" + name = "Sterile Vitae" + genrequired = 10 + bloodcost = 4 + +/datum/status_effect/condemnation/offspring_weakness/on_apply() + . = ..() + var/mob/living/carbon/human/vampire = owner + for (var/datum/action/cooldown/mob_cooldown/give_vitae/give_vitae in vampire.actions) + give_vitae.Remove(vampire) + to_chat(owner, span_userdanger(span_bold("You feel like a great curse was placed on you!"))) + +/datum/status_effect/condemnation/success_weakness + id = "success_weakness" + name = "The Mark Of Doom" + genrequired = 10 + bloodcost = 5 + +/datum/status_effect/condemnation/success_weakness/on_apply() + . = ..() + owner.add_movespeed_modifier(/datum/movespeed_modifier/daimoinon_curse) + to_chat(owner, span_userdanger(span_bold("You feel like a great curse was placed on you!"))) + +/atom/movable/screen/alert/status_effect/daimoinon_condemnation + name = "Condemnation" + desc = "You've been cursed by infernal magic - permanently weakening your body." + icon_state = "crucible" diff --git a/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_hallucination.dm b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_hallucination.dm new file mode 100644 index 000000000000..60f787b29e3d --- /dev/null +++ b/modular_darkpack/modules/powers/code/discipline/daimonion/daimonion_hallucination.dm @@ -0,0 +1,90 @@ +/obj/effect/client_image_holder/baali_demon + name = "infernal demon" + image_icon = 'modular_darkpack/modules/deprecated/icons/32x48.dmi' + image_state = "baali" + var/mob/living/target //person who had daimoinon 4 used on them + COOLDOWN_DECLARE(move_cooldown) + +/obj/effect/client_image_holder/baali_demon/Initialize(mapload, list/mobs_which_see_us) + . = ..() + for(var/mob/living/possible_target as anything in mobs_which_see_us) + target = possible_target + break // daimoinon only has a demon chasing after one target at a time but parent init asks for a list. + var/turf/closed/wall = locate(/turf/closed) in range(7, target) + if(!wall) + return INITIALIZE_HINT_QDEL + forceMove(wall) + target.playsound_local(wall, 'sound/effects/meteorimpact.ogg', 150, TRUE) + RegisterSignal(src, COMSIG_BAALI_DEMON_REACHED_TARGET, PROC_REF(on_reached_target)) + START_PROCESSING(SSfastprocess, src) + +/obj/effect/client_image_holder/baali_demon/Destroy() + STOP_PROCESSING(SSfastprocess, src) + target = null + return ..() + +/obj/effect/client_image_holder/baali_demon/process() + if(QDELETED(target) || target.stat == DEAD) + qdel(src) + return + if(!COOLDOWN_FINISHED(src, move_cooldown)) + return + setDir(get_dir(src, target)) + forceMove(get_step_towards(src, target)) + target.playsound_local(get_turf(src), 'sound/effects/meteorimpact.ogg', 150, TRUE) + if(Adjacent(target)) + SEND_SIGNAL(src, COMSIG_BAALI_DEMON_REACHED_TARGET, target) + qdel(src) + COOLDOWN_START(src, move_cooldown, 0.4 SECONDS) + +/obj/effect/client_image_holder/baali_demon/proc/on_reached_target(datum/source, mob/living/victim) + SIGNAL_HANDLER + on_contact(victim) + step_away(victim, get_turf(src)) + +/obj/effect/client_image_holder/baali_demon/spectre + name = "specter" + image_icon = 'modular_darkpack/modules/deprecated/icons/mob.dmi' + image_state = "shade" + +/obj/effect/client_image_holder/baali_demon/wyrm + name = "wyrmic avatar" + image_icon = 'modular_darkpack/modules/deprecated/icons/48x64.dmi' + image_state = "bigskeleton" + +/obj/effect/client_image_holder/baali_demon/tremere + name = "RECLAIMER" + image_icon = 'modular_darkpack/modules/deprecated/icons/48x64.dmi' + image_state = "4armstzi" + +/obj/effect/client_image_holder/baali_demon/banu + name = "LOREMASTER" + image_icon = 'modular_darkpack/modules/antediluvian_sarcophagus/icons/the_antediluvian.dmi' + image_state = "eva" + +/obj/effect/client_image_holder/baali_demon/proc/on_contact(mob/living/victim) + victim.visible_message(span_warning("[victim] falls on their knees"), span_warning("[src.name] grasps your head with its hands")) + victim.Paralyze(7 SECONDS) + victim.adjust_stamina_loss(200) + victim.playsound_local(src, 'modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg', 50, FALSE) + to_chat(victim, span_cult("HELL IS REAL, IT HAS TOUCHED ME")) + +/obj/effect/client_image_holder/baali_demon/spectre/on_contact(mob/living/victim) + victim.visible_message(span_warning("[victim] collapses onto the ground"), span_warning("[src.name] touches you with an outstretched hand")) + victim.Paralyze(7 SECONDS) + victim.adjust_stamina_loss(200) + to_chat(victim, span_cult("THE SPIRIT HAS TAKEN SOMETHING FROM ME")) + +/obj/effect/client_image_holder/baali_demon/wyrm/on_contact(mob/living/victim) + victim.visible_message(span_warning("[victim] whines in animalistic fear"), span_cult("THE WYRM HAS NOTICED ME")) + victim.Paralyze(5 SECONDS) + victim.playsound_local(src, 'modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg', 50, FALSE) + +/obj/effect/client_image_holder/baali_demon/banu/on_contact(mob/living/victim) + victim.visible_message(span_warning("[victim] grasps their chest, feeling for a hole"), span_cult("THE [src.name] PLUCKS OUT YOUR HEART")) + victim.Paralyze(7 SECONDS) + +/obj/effect/client_image_holder/baali_demon/tremere/on_contact(mob/living/victim) + victim.visible_message(span_warning("[victim] collapses onto the ground, convulsing"), span_cult("THE [src.name] TAKES YOUR VITAE")) + victim.playsound_local(src, 'modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg', 50, FALSE) + victim.Paralyze(7 SECONDS) diff --git a/modular_darkpack/modules/powers/code/discipline/dementation.dm b/modular_darkpack/modules/powers/code/discipline/dementation.dm index 8d3a90df4ad1..20d366793e77 100644 --- a/modular_darkpack/modules/powers/code/discipline/dementation.dm +++ b/modular_darkpack/modules/powers/code/discipline/dementation.dm @@ -4,6 +4,7 @@ icon_state = "dementation" clan_restricted = TRUE power_type = /datum/discipline_power/dementation + signature_clan = VAMPIRE_CLAN_MALKAVIAN /datum/discipline/dementation/post_gain() . = ..() diff --git a/modular_darkpack/modules/powers/code/discipline/necromancy.dm b/modular_darkpack/modules/powers/code/discipline/necromancy.dm index c3ba22dfb762..4bdd3d4d19a6 100644 --- a/modular_darkpack/modules/powers/code/discipline/necromancy.dm +++ b/modular_darkpack/modules/powers/code/discipline/necromancy.dm @@ -6,6 +6,7 @@ icon_state = "necromancy" clan_restricted = TRUE power_type = /datum/discipline_power/necromancy + signature_clan = VAMPIRE_CLAN_GIOVANNI /datum/discipline/necromancy/post_gain() . = ..() diff --git a/modular_darkpack/modules/powers/code/discipline/obtenebration/obtenebration.dm b/modular_darkpack/modules/powers/code/discipline/obtenebration/obtenebration.dm index 5f896b6ba512..0dfdc8c1f479 100644 --- a/modular_darkpack/modules/powers/code/discipline/obtenebration/obtenebration.dm +++ b/modular_darkpack/modules/powers/code/discipline/obtenebration/obtenebration.dm @@ -4,6 +4,7 @@ icon_state = "obtenebration" clan_restricted = TRUE power_type = /datum/discipline_power/obtenebration + signature_clan = VAMPIRE_CLAN_LASOMBRA /datum/discipline/obtenebration/post_gain() . = ..() diff --git a/modular_darkpack/modules/powers/code/discipline/protean/protean.dm b/modular_darkpack/modules/powers/code/discipline/protean/protean.dm index c1c8828d89d3..51ef52443724 100644 --- a/modular_darkpack/modules/powers/code/discipline/protean/protean.dm +++ b/modular_darkpack/modules/powers/code/discipline/protean/protean.dm @@ -4,6 +4,7 @@ icon_state = "protean" clan_restricted = TRUE power_type = /datum/discipline_power/protean + signature_clan = VAMPIRE_CLAN_GANGREL /datum/discipline_power/protean name = "Protean power name" diff --git a/modular_darkpack/modules/powers/code/discipline/quietus/quietus.dm b/modular_darkpack/modules/powers/code/discipline/quietus/quietus.dm index 2c3d2df1e085..c2b2b00ba203 100644 --- a/modular_darkpack/modules/powers/code/discipline/quietus/quietus.dm +++ b/modular_darkpack/modules/powers/code/discipline/quietus/quietus.dm @@ -4,6 +4,7 @@ icon_state = "quietus" clan_restricted = TRUE power_type = /datum/discipline_power/quietus + signature_clan = VAMPIRE_CLAN_BANU_HAQIM /datum/discipline_power/quietus name = "Quietus power name" diff --git a/modular_darkpack/modules/powers/code/discipline/serpentis.dm b/modular_darkpack/modules/powers/code/discipline/serpentis.dm index ae576f3aec15..e051d57a88bd 100644 --- a/modular_darkpack/modules/powers/code/discipline/serpentis.dm +++ b/modular_darkpack/modules/powers/code/discipline/serpentis.dm @@ -4,6 +4,7 @@ icon_state = "serpentis" clan_restricted = TRUE power_type = /datum/discipline_power/serpentis + signature_clan = VAMPIRE_CLAN_SETITE /datum/discipline_power/serpentis name = "Serpentis power name" diff --git a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm index 839b6e4bb325..9be7a744ee81 100644 --- a/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm +++ b/modular_darkpack/modules/powers/code/discipline/temporis/temporis.dm @@ -4,6 +4,7 @@ icon_state = "temporis" clan_restricted = TRUE power_type = /datum/discipline_power/temporis + signature_clan = VAMPIRE_CLAN_TRUE_BRUJAH /datum/discipline_power/temporis name = "Temporis power name" diff --git a/modular_darkpack/modules/powers/code/discipline/thaumaturgy/paths/lure_of_flames.dm b/modular_darkpack/modules/powers/code/discipline/thaumaturgy/paths/lure_of_flames.dm index 229b155b58c6..f9a544d98c60 100644 --- a/modular_darkpack/modules/powers/code/discipline/thaumaturgy/paths/lure_of_flames.dm +++ b/modular_darkpack/modules/powers/code/discipline/thaumaturgy/paths/lure_of_flames.dm @@ -147,10 +147,9 @@ if(.) return var/turf/start = get_turf(owner) - var/obj/projectile/flames/flamebolt/H = new(start) + var/obj/projectile/flames/H = new(start) H.firer = owner H.damage = 25 + owner.thaum_damage_plus + success_count - H.level = 3 var/angle = get_angle(owner, target) H.fire(angle, target) to_chat(target, span_danger("A bolt of searing flame flies toward you!")) @@ -312,13 +311,8 @@ light_color = COLOR_ORANGE ricochets_max = 0 ricochet_chance = 0 - var/level = 1 -/obj/projectile/flames/flamebolt - name = "flame bolt" - damage = 20 - -/obj/projectile/flames/flamebolt/on_hit(atom/target, blocked = FALSE, pierce_hit) +/obj/projectile/flames/on_hit(atom/target, blocked = FALSE, pierce_hit) . = ..() if(!isliving(target)) return diff --git a/modular_darkpack/modules/powers/sounds/daimonion_fireball.ogg b/modular_darkpack/modules/powers/sounds/daimonion_fireball.ogg new file mode 100644 index 000000000000..e6dbad210b19 Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_fireball.ogg differ diff --git a/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg new file mode 100644 index 000000000000..b7af1e2f4499 Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg differ diff --git a/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh2.ogg b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh2.ogg new file mode 100644 index 000000000000..0432dbaf864e Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh2.ogg differ diff --git a/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg new file mode 100644 index 000000000000..4caa10e14424 Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg differ diff --git a/modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg b/modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg new file mode 100644 index 000000000000..08ddc1c3f640 Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg differ diff --git a/modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg b/modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg new file mode 100644 index 000000000000..9c87041360f0 Binary files /dev/null and b/modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg differ diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/preferences/morality/paths.dm b/modular_darkpack/modules/vampire_the_masquerade/code/preferences/morality/paths.dm index 3edf576c0cef..b89a1bc9866f 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/preferences/morality/paths.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/preferences/morality/paths.dm @@ -128,7 +128,7 @@ /datum/morality/ashirra name = "Sharia El-Sama" - desc = "In 623 AD, a Cainite named Suleiman ibn Abdullah visited the city of Medina, seeking to make a hunt of sorts, and feed, on the Prophet Muhammad. Suleiman asked for an audience with the Prophet, and, when granted one, was absolutely stunned by the man's divinity, and bowed before him, overhwlemed by the man's divinity as God's messenger. Suleiman Ibn Abdullah became the first of the Ahirra, the Brotherhood, Vampires who swore to uphold God's holy law as set forth by His Final and Greatest Prophet. In this way, the demon within, the Beast, may be silenced, and a vampire may seek forgiveness from God through prayer and unshakeable faith. Sins include failing to observe the Five Pillars of Islam nightly, not spreading the Faith of Islam, failing to be charitable when necessary, embracing a non-believer, enslaving someone, breaking an oath, murder. Do not feed from an unbeliever. It is preferable to feed from animals. Do not embrace a non-believer, and do not embrace believers, lest they have given consent. The blood bond is slavery - only non-believers must be subjected to it, and if they show true piety to God, they may be released. Follow God in all things, and the Beast inside will be purged. Blood magic is looked down upon by followers of this Path, with Serpentis, Daimonion and Vicissitude completely forbidden." + desc = "In 623 AD, a Cainite named Suleiman ibn Abdullah visited the city of Medina, seeking to make a hunt of sorts, and feed, on the Prophet Muhammad. Suleiman asked for an audience with the Prophet, and, when granted one, was absolutely stunned by the man's divinity, and bowed before him, overhwlemed by the man's divinity as God's messenger. Suleiman Ibn Abdullah became the first of the Ahirra, the Brotherhood, Vampires who swore to uphold God's holy law as set forth by His Final and Greatest Prophet. In this way, the demon within, the Beast, may be silenced, and a vampire may seek forgiveness from God through prayer and unshakeable faith. Sins include failing to observe the Five Pillars of Islam nightly, not spreading the Faith of Islam, failing to be charitable when necessary, embracing a non-believer, enslaving someone, breaking an oath, murder. Do not feed from an unbeliever. It is preferable to feed from animals. Do not embrace a non-believer, and do not embrace believers, lest they have given consent. The blood bond is slavery - only non-believers must be subjected to it, and if they show true piety to God, they may be released. Follow God in all things, and the Beast inside will be purged. Blood magic is looked down upon by followers of this Path, with Serpentis, daimoinon and Vicissitude completely forbidden." alignment = MORALITY_HUMANITY bearing = BEARING_FAITH diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/__vampire_clan.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/__vampire_clan.dm index 27e345aafe18..9ee8086ec70d 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/__vampire_clan.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/__vampire_clan.dm @@ -39,6 +39,9 @@ /// If this Clan needs a whitelist to select and play var/whitelisted = FALSE + /// daimoinon 1 text + var/sense_the_sin_text = "has been abandoned by the cold ocean of the night with nobody to keep them afloat." + /** * Applies Clan-specific effects to the mob * gaining this Clan. Will alter the mob's @@ -111,6 +114,12 @@ var/obj/item/clothing/mask/vampire/venetian_mask/fancy/new_mask = new(joining.loc) joining.equip_to_appropriate_slot(new_mask, FALSE) +/// effect from daimonion psychomania +/datum/subsplat/vampire_clan/proc/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("THE BEAST SCREAMS IN MY MIND TO RUN")) + new /obj/effect/client_image_holder/baali_demon(get_turf(target), list(target)) + + /** * Gives the human a vampiric Clan, applying * on_gain effects and post_gain effects if the @@ -152,3 +161,4 @@ /mob/living/proc/is_clan(clan_type) return istype(get_clan(), clan_type) + diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/baali/baali.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/baali/baali.dm index ae6b7df14876..882c54bd4437 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/baali/baali.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/baali/baali.dm @@ -4,11 +4,11 @@ desc = "The Baali are a bloodline of vampires associated with demon worship. Because of their affinity with the unholy, the Baali are particularly vulnerable to holy iconography, holy ground and holy water. They are highly vulnerable to True Faith." icon = "baali" curse = "Fear of the Religion." - + sense_the_sin_text = "is scared of the lord's presence." clan_disciplines = list( /datum/discipline/obfuscate, /datum/discipline/presence, - ///datum/discipline/daimonion + /datum/discipline/daimoinon ) clan_traits = list( @@ -23,5 +23,9 @@ /datum/subsplat/vampire_clan/baali/on_gain(mob/living/carbon/human/gaining_mob, datum/splat/gaining_splat, joining_round) . = ..() gaining_mob.AddElement(/datum/element/holy_weakness) - gaining_mob.gain_trauma(new /datum/brain_trauma/mild/phobia/religion, TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/subsplat/vampire_clan/baali/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_notice("The sacred icons appearing before you lack the true substance of faith")) + new /datum/hallucination/delusion(target, TRUE, "repent", 200, 0) + to_chat(owner, span_notice("Your illusions are easily dispelled by [target]")) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/banu_haqim.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/banu_haqim.dm index 77f8d7b383fd..f3f70f172036 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/banu_haqim.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/banu_haqim.dm @@ -4,6 +4,7 @@ desc = "Banu Haqim, also known as Assamites, are traditionally seen by Western Kindred as dangerous assassins and diablerists, but in truth they are guardians, warriors, and scholars who seek to distance themselves from the Jyhad." icon = "banu_haqim" curse = "Blood Addiction." + sense_the_sin_text = "sees themselves as absolute judgement." clan_disciplines = list( /datum/discipline/celerity, /datum/discipline/obfuscate, @@ -15,3 +16,7 @@ male_clothes = /obj/item/clothing/under/vampire/bandit female_clothes = /obj/item/clothing/under/vampire/bandit subsplat_keys = /obj/item/vamp/keys/banuhaqim + +/datum/subsplat/vampire_clan/banu_haqim/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("An overwhelming presence manifests around me..")) + new /obj/effect/client_image_holder/baali_demon/banu(get_turf(target), list(target)) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/brujah.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/brujah.dm index 5f3e9c212765..e16580134eae 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/brujah.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/brujah.dm @@ -4,6 +4,7 @@ desc = "The Brujah are a clan of radicals and troublemakers, Embracing those willing to put someone in their place if the situation calls for it. Most see themselves as warriors with a cause, and these Rebels are guided by their passions, strength, and dedication to their ideals — whatever those may be." icon = "brujah" curse = "Increased frenzy chances and time." + sense_the_sin_text = "is cursed to anger for their shame at carthage.." clan_disciplines = list( /datum/discipline/celerity, /datum/discipline/potence, @@ -15,3 +16,9 @@ male_clothes = /obj/item/clothing/under/vampire/brujah female_clothes = /obj/item/clothing/under/vampire/brujah/female subsplat_keys = /obj/item/vamp/keys/brujah + + +/datum/subsplat/vampire_clan/brujah/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_warning("You see visions of an underground stone monument weeping blood.")) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg", 50, FALSE) + to_chat(target, span_cult("THE BEAST RAGES AGAINST THIS VISION!!")) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/cappadocian.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/cappadocian.dm index fccfe372da41..f2381c5ea983 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/cappadocian.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/cappadocian.dm @@ -4,6 +4,7 @@ desc = "A presumed-to-be-extinct Clan of necromancers, the Cappadocians studied death specifically in the physical world. The Giovanni were Embraced into their line to help further their studies into the underworld. They were rewarded with Diablerie and the destruction of their Clan and founder." icon = "cappadocian" curse = "Pale and gaunt complexion that cannot be made to look more human by expending blood." + sense_the_sin_text = "will never escape the appearance of a rotting corpse." clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/fortitude, @@ -16,6 +17,7 @@ /datum/subsplat/vampire_clan/cappadocian/on_gain(mob/living/carbon/human/gaining_mob, datum/splat/gaining_splat, joining_round) . = ..() + apply_rot_curse(gaining_mob, gaining_mob.chronological_age) /datum/subsplat/vampire_clan/cappadocian/proc/apply_rot_curse(mob/living/carbon/human/H, chronological_age) @@ -42,3 +44,8 @@ H.rot_body(3) if (500 to INFINITY) H.rot_body(4) + +/datum/subsplat/vampire_clan/cappadocian/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("Freshly manifest despair enters your decaying flesh as you feel a hauntingly empty presence.")) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg", 50, FALSE) + new /obj/effect/client_image_holder/baali_demon/spectre(get_turf(target), list(target)) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/doc.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/doc.dm index cbd42c88046b..fccfc3ecc697 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/doc.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/doc.dm @@ -4,6 +4,7 @@ desc = "Currently composed mostly of women (due to the associated difficulty in educating someone with the vocal range of most males), the Daughters practice Melpominee, a Discipline which allows the Daughters to invoke strange effects through singing. The Daughters are the choralistes par excellence of the undead, and hosting a gathering of them is worth high prestige for the Toreador." icon = "daughters_of_cacophony" curse = "Hear more than should." + sense_the_sin_text = "has a mind that is envelopped by nonstopping music." clan_disciplines = list( /datum/discipline/fortitude, /datum/discipline/melpominee, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gangrel.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gangrel.dm index 3773f4706b82..002520c4e02b 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gangrel.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gangrel.dm @@ -4,6 +4,7 @@ desc = "Often closer to beasts than other vampires, the Gangrel style themselves apex predators. These Ferals prowl the wilds as easily as the urban jungle, and no clan of vampires can match their ability to endure, survive, and thrive in any environment. Often fiercely territorial, their shapeshifting abilities even give the undead pause." icon = "gangrel" curse = "Start with lower humanity." + sense_the_sin_text = "is unable to control their impulses." clan_disciplines = list( /datum/discipline/animalism, /datum/discipline/fortitude, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gargoyle.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gargoyle.dm index 2c50be3a53e9..ca328fbe656a 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gargoyle.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/gargoyle.dm @@ -4,6 +4,7 @@ desc = "The Gargoyles are a vampiric bloodline created by the Tremere as their servitors. Although technically not a Tremere bloodline, the bloodline is largely under their control. In the Final Nights, Gargoyle populations seem to be booming; this is largely because older, free Gargoyles are coming out of hiding to join the Camarilla, because more indentured Gargoyles break free from the clutches of the Tremere, and because the free Gargoyles have also begun to Embrace more mortals on their own." icon = "gargoyle" curse = "All Gargoyles, much like the Nosferatu, are hideous to look at, a byproduct of their occult origins (and the varied Kindred stock from which they originate). This means that Gargoyles, just like the Nosferatu, have to hide their existence from common mortals, as their mere appearance is a breach of the Masquerade. In addition, the nature of the bloodline's origin manifests itself in the fact that Gargoyles are highly susceptible to mind control of any source. This weakness is intentional; a flaw placed into all Gargoyles by the Tremere in the hope that it would make them easier to control (and less likely to rebel)." + sense_the_sin_text = "has a mind like a fortress with gates open and unbarred. " clan_disciplines = list( /datum/discipline/fortitude, /datum/discipline/potence, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/giovanni.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/giovanni.dm index 995198facc07..0b87333c12d9 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/giovanni.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/giovanni.dm @@ -4,6 +4,7 @@ desc = "The Giovanni are the usurpers of Clan Cappadocian and one of the youngest clans. The Giovanni has historically been both a clan and a family. They Embrace almost exclusively within their family, and are heavily focused on the goals of money and necromantic power." icon = "giovanni" curse = "Harmful bites." + sense_the_sin_text = "never considers any action too great for their family." clan_disciplines = list( /datum/discipline/potence, /datum/discipline/dominate, @@ -17,5 +18,9 @@ /datum/subsplat/vampire_clan/giovanni/on_join_round(mob/living/carbon/human/joining) . = ..() - joining.grant_language(/datum/language/italian) + +/datum/subsplat/vampire_clan/giovanni/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("A sense of profound dread enters you as soundless words enter your mind")) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg", 50, FALSE) + new /obj/effect/client_image_holder/baali_demon/spectre(get_turf(target), list(target)) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/kiasyd/kiasyd.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/kiasyd/kiasyd.dm index 7ca3aeb2c24c..13a431f2b5a4 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/kiasyd/kiasyd.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/kiasyd/kiasyd.dm @@ -4,7 +4,7 @@ desc = "The Kiasyd are a bloodline of the Lasombra founded after a mysterious \"accident\" involving the Lasombra Marconius of Strasbourg. The \"accident\", involving faeries and the blood of \"Zeernebooch, a god of the Underworld\", resulted in Marconius gaining several feet in height, turning chalky white and developing large, elongated black eyes." icon = "kiasyd" curse = "At a glance they look unsettling or perturbing to most, their appearance closely resembles fae from old folklore. Kiasyd are also in some way connected with changelings and they are vulnerable to cold iron." - + sense_the_sin_text = "is afraid of cold iron." clan_disciplines = list( /datum/discipline/dominate, /datum/discipline/obtenebration, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/lasombra/lasombra.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/lasombra/lasombra.dm index faf767806635..cfe59d76f8c3 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/lasombra/lasombra.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/lasombra/lasombra.dm @@ -4,6 +4,7 @@ desc = "The Lasombra exist for their own success, fighting for personal victories rather than solely for a crown to wear or a throne to sit upon. They believe that might makes right, and are willing to sacrifice anything to achieve their goals. A clan that uses spirituality as a tool rather than seeking honest enlightenment, their fickle loyalties are currently highlighted by half their clan's defection from the Sabbat." icon = "lasombra" curse = "Technology refuse." + sense_the_sin_text = "fears change itself evermore." clan_disciplines = list( /datum/discipline/potence, /datum/discipline/dominate, @@ -18,6 +19,12 @@ enlightenment = TRUE subsplat_keys = /obj/item/vamp/keys/lasombra + +/datum/subsplat/vampire_clan/lasombra/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("THE SHADOWS BETRAY ME, SEEKING MY LIFE")) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/eldritchlaugh.ogg", 50, FALSE) + target.Paralyze(6 SECONDS) + // Not TTRPG accurate and is pending a rework to use real rolls after #633 /proc/scramble_lasombra_message(message, mob/living/lasombra) var/static/list/zalgo_letters = list( diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/malkavian/malkavian.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/malkavian/malkavian.dm index 497c580e9ed1..89e450ce5963 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/malkavian/malkavian.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/malkavian/malkavian.dm @@ -4,6 +4,7 @@ desc = "Derided as Lunatics by other vampires, the Blood of the Malkavians lets them perceive and foretell truths hidden from others. Like the �wise madmen� of poetry their fractured perspective stems from seeing too much of the world at once, from understanding too deeply, and feeling emotions that are just too strong to bear." icon = "malkavian" curse = "Insanity." + sense_the_sin_text = "frightens people near them." clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/dementation, @@ -21,6 +22,7 @@ var/datum/action/cooldown/malk_speech/malk_font = new(gaining_mob) hivemind.Grant(gaining_mob) malk_font.Grant(gaining_mob) + gaining_mob.add_quirk(/datum/quirk/derangement) // Madness Network handling LAZYADD(madness_network, gaining_mob) @@ -107,3 +109,9 @@ StartCooldown() mad_speak = spooky_font_replace(mad_speak) // replace some letters to make the font more closely resemble that of vtm: bloodlines' malkavian dialogue clicker.say(mad_speak, spans = list(malkavian_spans)) + +/datum/subsplat/vampire_clan/malkavian/psychomania_effect(mob/living/target, mob/living/owner) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/malklaugh.ogg", 50, FALSE) + target.Paralyze(6 SECONDS) + target.visible_message(span_warning("[target] repeatedly bashes their head against the ground"), span_cult("THE WHISPERS ARE OVERTAKING ME")) + target.apply_damage(50, BRUTE, BODY_ZONE_HEAD) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nagaraja.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nagaraja.dm index 942dcdbefda9..2dc50c8fff9b 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nagaraja.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nagaraja.dm @@ -4,6 +4,7 @@ desc = "The Nagaraja are a mysterious bloodline, created through a ritual rather than having any Antediluvian to call their own. They are feared and reviled for both their expertise in the arts of necromancy, and their hunger for flesh." curse = "Instead of consuming blood like most kindred, the Nagaraja are only able to subsist off of the flesh and viscera of their prey, earning the nickname of 'Flesh-Eaters' among their bretheren." icon = "nagaraja" + sense_the_sin_text = "hungers for flesh" clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/dominate, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nosferatu.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nosferatu.dm index 0338b31eebc1..d62b22aa1789 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nosferatu.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/nosferatu.dm @@ -4,6 +4,7 @@ desc = "The Nosferatu wear their curse on the outside. Their bodies horribly twisted and deformed through the Embrace, they lurk on the fringes of most cities, acting as spies and brokers of information. Using animals and their own supernatural capacity to hide, nothing escapes the eyes of the so-called Sewer Rats." icon = "nosferatu" curse = "Masquerade-violating appearance." + sense_the_sin_text = "is entranced by that which is unknown." alt_sprite = "nosferatu" clan_disciplines = list( /datum/discipline/animalism, 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 01265a1292e9..bb5a518a1cfb 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 @@ -4,6 +4,7 @@ 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. Consequently, the modern Salubri would Embrace, teach a childe the basics of the route, leave clues for the childe to follow to achieve Golconda, and then have their childe diablerize them." icon = "salubri" curse = "Hunted and consensual feeding." + sense_the_sin_text = "is ruled by consent." clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/fortitude, @@ -39,3 +40,10 @@ eye_icon_state = "salubri" blink_animation = FALSE + +/datum/subsplat/vampire_clan/salubri/psychomania_effect(mob/living/target, mob/living/owner) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg", 50, FALSE) + to_chat(target, span_warning("My third eye begins to reflexively open..")) + target.visible_message(span_warning("[target] tightly grasps their forehead, trying to conceal something"), span_cult("I MUST HIDE MY NATURE")) + target.apply_damage(50, BRUTE, BODY_ZONE_HEAD) + target.Paralyze(6 SECONDS) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/setite.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/setite.dm index 15c2d1d88cce..cda9a72f2595 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/setite.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/setite.dm @@ -4,6 +4,7 @@ desc = "The Followers of Set, also called the Ministry of Set, Ministry, or Setites, are a clan of vampires who believe their founder was the Egyptian god Set." icon = "followers_of_set" curse = "Decreased moving speed in lighted areas." + sense_the_sin_text = "believes every stain of sin is a virtue." clan_disciplines = list( /datum/discipline/obfuscate, /datum/discipline/presence, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/toreador.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/toreador.dm index 67976ef36196..0c45e90fa480 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/toreador.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/toreador.dm @@ -4,6 +4,7 @@ desc = "Known for their seductive nature, enthralling demeanor, and eloquent grace to the point of obsession, Toreador vampires Embrace artists and lovers into their ranks, forever trying to stir their own deadened hearts. Supernaturally graceful and charming, the Divas are always looking for the next thrill, leaving a detritus of discarded lovers and victims in their wake." icon = "toreador" curse = "Doubled humanity changes." + sense_the_sin_text = "is obsessive to a fault." clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/celerity, @@ -15,3 +16,9 @@ male_clothes = /obj/item/clothing/under/vampire/toreador female_clothes = /obj/item/clothing/under/vampire/toreador/female subsplat_keys = /obj/item/vamp/keys/toreador + +/datum/subsplat/vampire_clan/toreador/psychomania_effect(mob/living/target, mob/living/owner) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh2.ogg", 50, FALSE) + new /datum/hallucination/fire(target, TRUE) + to_chat(target, span_cult("FLAMES ENGULF MY BEAUTY")) + target.Paralyze(5 SECONDS) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tremere.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tremere.dm index 3014c6308f29..e231fc96b5d0 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tremere.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tremere.dm @@ -4,6 +4,7 @@ desc = "The arcane Clan Tremere were once a house of mortal mages who sought immortality but found only undeath. As vampires, they’ve perfected ways to bend their own Blood to their will, employing their sorceries to master and ensorcel both the mortal and vampire world. Their power makes them valuable, but few vampires trust their scheming ways." icon = "tremere" curse = "Blood magic." + sense_the_sin_text = "has a sense of perfectionism by their own actions." clan_disciplines = list( /datum/discipline/auspex, /datum/discipline/dominate, @@ -11,3 +12,7 @@ ) male_clothes = /obj/item/clothing/under/vampire/tremere female_clothes = /obj/item/clothing/under/vampire/tremere/female + +/datum/subsplat/vampire_clan/tremere/psychomania_effect(mob/living/target, mob/living/owner) + to_chat(target, span_cult("Blood pours out from my body, manifesting into a grotesque form")) + new /obj/effect/client_image_holder/baali_demon/tremere(get_turf(target), list(target)) diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/true_brujah.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/true_brujah.dm index ce657335b858..c1119f8bfb83 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/true_brujah.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/true_brujah.dm @@ -4,6 +4,7 @@ desc = "The True Brujah are a bloodline of Clan Brujah that claim to be descendants of the original Antediluvian founder of the lineage and not his diablerist/childe Troile. They are also noted for their calm, detached behavior, which puts them in contrast to the main lineage who are known for their rather short, violent tempers and anti-establishment attitudes. " icon = "true_brujah" curse = "Absence of passion." + sense_the_sin_text = "cant express emotions." clan_disciplines = list( /datum/discipline/potence, /datum/discipline/presence, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tzimisce/tzimisce.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tzimisce/tzimisce.dm index 619e07f0dbc7..add68fe85c1d 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tzimisce/tzimisce.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/tzimisce/tzimisce.dm @@ -15,9 +15,15 @@ accessories = list("spines", "spines_slim", "animal_skull", "none") accessories_layers = list("spines" = BODY_ADJ_LAYER, "spines_slim" = BODY_ADJ_LAYER, "animal_skull" = BODY_ADJ_LAYER, "none" = BODY_ADJ_LAYER) +/datum/subsplat/vampire_clan/tzimisce/psychomania_effect(mob/living/target, mob/living/owner) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg", 50, FALSE) + to_chat(target, span_cult("I SEE VISIONS OF FLAME ENGULFING MY DOMAIN")) + new /datum/hallucination/fire(target, TRUE) + target.Paralyze(6 SECONDS) + /datum/subsplat/vampire_clan/tzimisce/on_join_round(mob/living/carbon/human/joining) . = ..() - + sense_the_sin_text = "[joining.name] is consumed by a singular desire." var/obj/item/ground_heir/heirloom = new(get_turf(joining)) var/list/slots = list( LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, diff --git a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/ventrue.dm b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/ventrue.dm index 913b2a8c3a94..c7348f708b2c 100644 --- a/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/ventrue.dm +++ b/modular_darkpack/modules/vampire_the_masquerade/code/vampire_clan/clans/ventrue.dm @@ -4,6 +4,7 @@ desc = "The Ventrue are not called the Clan of Kings for nothing. Carefully choosing their progeny from mortals familiar with power, wealth, and influence, the Ventrue style themselves the aristocrats of the vampire world. Their members are expected to assume command wherever possible, and they’re willing to endure storms for the sake of leading from the front." icon = "ventrue" curse = "Low-rank and animal blood is disgusting." + sense_the_sin_text = "finds no pleasure in poor's blood." clan_disciplines = list( /datum/discipline/dominate, /datum/discipline/fortitude, @@ -15,3 +16,4 @@ male_clothes = /obj/item/clothing/under/vampire/ventrue female_clothes = /obj/item/clothing/under/vampire/ventrue/female subsplat_keys = /obj/item/vamp/keys/ventrue + diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/_tribe.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/_tribe.dm index 5113ada3fba9..3d94fec0d898 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/_tribe.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/_tribe.dm @@ -62,3 +62,16 @@ /mob/living/proc/is_tribe(tribe_type) return istype(get_our_tribe(), tribe_type) + + +/datum/subsplat/werewolf/tribe/proc/psychomania_effect(mob/living/target, mob/living/owner) + var/datum/splat/werewolf/shifter/garou_splat = get_shifter_splat(target) + if(garou_splat?.rage > 4) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh1.ogg", 50, FALSE) + to_chat(target, span_cult("THE WYRMFOE IS ALL AROUND ME")) + new /datum/hallucination/delusion(target, TRUE, "dancer", 200, 0) + //target.rollfrenzy() DARKPACK TODO: Frenzy + else + to_chat(target, span_cult("I can feel a overwhelming presence.. I NEED TO RUN!!")) + new /obj/effect/client_image_holder/baali_demon/wyrm(get_turf(target), list(target)) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh2.ogg", 50, FALSE) diff --git a/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/garou.dm b/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/garou.dm index f434d04a3478..12a972a6b652 100644 --- a/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/garou.dm +++ b/modular_darkpack/modules/werewolf_the_apocalypse/code/subsplats/tribes/garou.dm @@ -141,6 +141,11 @@ // /datum/action/gift/burning_scars = 3 // ) +/datum/subsplat/werewolf/tribe/garou/blackspiraldancers/psychomania_effect(mob/living/target, mob/living/owner) + target.playsound_local(target, "modular_darkpack/modules/powers/sounds/daimonion_laughs/demonlaugh3.ogg", 50, FALSE) + target.visible_message(span_warning("[target] whines in animalistic fear"), span_cult("VISIONS OF BRIMSTONE AND FLAME FLASH BEFORE MY EYES")) + target.Paralyze(5 SECONDS) + /datum/subsplat/werewolf/tribe/garou/ronin name = TRIBE_RONIN desc = "Garou who, for one reason or another, find themselves as outcasts of the Nation." diff --git a/tgstation.dme b/tgstation.dme index 5fa60003c0be..33ca8537afd4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7449,6 +7449,9 @@ #include "modular_darkpack\modules\powers\code\discipline\celerity\celerity.dm" #include "modular_darkpack\modules\powers\code\discipline\celerity\celerity_movespeed_modifier.dm" #include "modular_darkpack\modules\powers\code\discipline\celerity\celerity_status_effect.dm" +#include "modular_darkpack\modules\powers\code\discipline\daimonion\daimonion.dm" +#include "modular_darkpack\modules\powers\code\discipline\daimonion\daimonion_curses.dm" +#include "modular_darkpack\modules\powers\code\discipline\daimonion\daimonion_hallucination.dm" #include "modular_darkpack\modules\powers\code\discipline\dominate\dominate.dm" #include "modular_darkpack\modules\powers\code\discipline\dominate\possession\possession_datums.dm" #include "modular_darkpack\modules\powers\code\discipline\dominate\status_effects\conditioning_status_effect.dm"