diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 9cd47403d1..a2f534115a 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -533,6 +533,38 @@ if(100) H.adjustOrganLoss(ORGAN_SLOT_BRAIN,20) +/datum/status_effect/corrosion_curse/lesser + id = "corrosion_curse_lesser" + duration = 20 SECONDS + +/datum/status_effect/corrosion_curse/lesser/tick() + . = ..() + if(!ishuman(owner)) + return + var/mob/living/carbon/human/H = owner + var/chance = rand(0,100) + switch(chance) + if(0 to 19) + H.adjustBruteLoss(6) + if(20 to 29) + H.Dizzy(10) + if(30 to 39) + H.adjustOrganLoss(ORGAN_SLOT_LIVER,2) + if(40 to 49) + H.adjustOrganLoss(ORGAN_SLOT_HEART,2) + if(50 to 59) + H.adjustOrganLoss(ORGAN_SLOT_STOMACH,2) + if(60 to 69) + H.adjustOrganLoss(ORGAN_SLOT_EYES,5) + if(70 to 79) + H.adjustOrganLoss(ORGAN_SLOT_EARS,5) + if(80 to 89) + H.adjustOrganLoss(ORGAN_SLOT_LUNGS,5) + if(90 to 99) + H.adjustOrganLoss(ORGAN_SLOT_TONGUE,5) + if(100) + H.adjustOrganLoss(ORGAN_SLOT_BRAIN,10) + /datum/status_effect/amok id = "amok" status_type = STATUS_EFFECT_REPLACE diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index 79dfbdd7c3..81bc090460 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -30,6 +30,7 @@ /datum/antagonist/heretic/on_gain() var/mob/living/current = owner.current + owner.teach_crafting_recipe(/datum/crafting_recipe/heretic/codex) if(ishuman(current)) forge_primary_objectives() gain_knowledge(/datum/eldritch_knowledge/spell/basic) @@ -41,7 +42,6 @@ START_PROCESSING(SSprocessing,src) if(give_equipment) equip_cultist() - owner.teach_crafting_recipe(/datum/crafting_recipe/heretic/codex) return ..() /datum/antagonist/heretic/on_removal() @@ -111,17 +111,12 @@ P.find_target(owners,assasination) protection += P.target objectives += P - var/datum/objective/sacrifice_ecult/SE = new SE.owner = owner SE.update_explanation_text() objectives += SE - var/datum/objective/escape/escape_objective = new - escape_objective.owner = owner - objectives += escape_objective - /datum/antagonist/heretic/apply_innate_effects(mob/living/mob_override) . = ..() var/mob/living/current = owner.current diff --git a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm index 899e588bda..99794024f1 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm @@ -20,9 +20,11 @@ if(!is_in_use) INVOKE_ASYNC(src, .proc/activate , user) -/obj/effect/eldritch/attacked_by(obj/item/I, mob/living/user) +/obj/effect/eldritch/attackby(obj/item/I, mob/living/user) . = ..() - if(istype(I,/obj/item/nullrod)) + if(istype(I, /obj/item/storage/book/bible) || istype(I, /obj/item/nullrod)) + user.say("BEGONE FOUL MAGICKS!!", forced = "bible") + to_chat(user, "You disrupt the magic of [src] with [I].") qdel(src) /obj/effect/eldritch/proc/activate(mob/living/user) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index 4dab6d789d..2052a2fbb3 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -16,16 +16,19 @@ return var/dist = get_dist(user.loc,target.loc) var/dir = get_dir(user.loc,target.loc) - - switch(dist) - if(0 to 15) - to_chat(user,"[target.real_name] is near you. They are to the [dir2text(dir)] of you!") - if(16 to 31) - to_chat(user,"[target.real_name] is somewhere in your vicinty. They are to the [dir2text(dir)] of you!") - if(32 to 127) - to_chat(user,"[target.real_name] is far away from you. They are to the [dir2text(dir)] of you!") - else - to_chat(user,"[target.real_name] is beyond our reach.") + + if(user.z != target.z) + to_chat(user,"[target.real_name] is beyond our reach.") + else + switch(dist) + if(0 to 15) + to_chat(user,"[target.real_name] is near you. They are to the [dir2text(dir)] of you!") + if(16 to 31) + to_chat(user,"[target.real_name] is somewhere in your vicinty. They are to the [dir2text(dir)] of you!") + if(32 to 127) + to_chat(user,"[target.real_name] is far away from you. They are to the [dir2text(dir)] of you!") + else + to_chat(user,"[target.real_name] is beyond our reach.") if(target.stat == DEAD) to_chat(user,"[target.real_name] is dead. Bring them onto a transmutation rune!") @@ -86,8 +89,8 @@ desc = "A crescent blade born from a fleshwarped creature. Keenly aware, it seeks to spread to others the excruciations it has endured from dead origins." icon_state = "flesh_blade" item_state = "flesh_blade" - wound_bonus = 5 - bare_wound_bonus = 15 + wound_bonus = 10 + bare_wound_bonus = 20 /obj/item/clothing/neck/eldritch_amulet name = "warm eldritch medallion" diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm index 065844bedf..27868a3e3e 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm @@ -224,7 +224,7 @@ name = "Break of Dawn" desc = "Starts your journey in the mansus. Allows you to select a target using a living heart on a transmutation rune." gain_text = "Gates of Mansus open up to your mind." - next_knowledge = list(/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh) + next_knowledge = list(/datum/eldritch_knowledge/base_rust,/datum/eldritch_knowledge/base_ash,/datum/eldritch_knowledge/base_flesh,/datum/eldritch_knowledge/spell/silence) cost = 0 spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/mansus_grasp required_atoms = list(/obj/item/living_heart) @@ -301,3 +301,11 @@ required_atoms = list(/obj/item/shard,/obj/item/stack/rods) result_atoms = list(/obj/item/melee/sickly_blade) route = "Start" + +/datum/eldritch_knowledge/spell/silence + name = "Silence" + desc = "Allows you to use the power of the Mansus to force an individual's tongue to be held down for up to twenty seconds. They'll notice quickly, however." + gain_text = "They must hold their tongues, for they do not understand." + cost = 1 + spell_to_add = /obj/effect/proc_holder/spell/pointed/trigger/mute/eldritch + route = PATH_SIDE diff --git a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm index d84a997e28..799667999e 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm @@ -43,8 +43,9 @@ /obj/item/melee/touch_attack/mansus_fist name = "Mansus Grasp" desc = "A sinister looking aura that distorts the flow of reality around it. Causes knockdown, major stamina damage aswell as some Brute. It gains additional beneficial effects with certain knowledges you can research." - icon_state = "disintegrate" - item_state = "disintegrate" + icon = 'icons/obj/eldritch.dmi' + icon_state = "mansus_grasp" + item_state = "mansus" catchphrase = "T'IESA SIE'KTI VISATA" /obj/item/melee/touch_attack/mansus_fist/afterattack(atom/target, mob/user, proximity_flag, click_parameters) @@ -118,6 +119,7 @@ /obj/item/melee/touch_attack/blood_siphon name = "Blood Siphon" desc = "A sinister looking aura that distorts the flow of reality around it." + color = RUNE_COLOR_RED icon_state = "disintegrate" item_state = "disintegrate" catchphrase = "SUN'AI'KINI'MAS" @@ -260,41 +262,82 @@ /obj/effect/proc_holder/spell/pointed/cleave/long charge_max = 650 -/obj/effect/proc_holder/spell/pointed/touch/mad_touch +/obj/effect/proc_holder/spell/targeted/touch/mad_touch name = "Touch of Madness" - desc = "Touch spell that drains your enemies sanity." - school = "transmutation" - charge_max = 150 + desc = "Touch spell that allows you to force the knowledge of the mansus upon your foes." + hand_path = /obj/item/melee/touch_attack/mad_touch + school = "evocation" + charge_max = 1800 clothes_req = FALSE - invocation_type = "none" - range = 2 action_icon = 'icons/mob/actions/actions_ecult.dmi' action_icon_state = "mad_touch" action_background_icon_state = "bg_ecult" -/obj/effect/proc_holder/spell/pointed/touch/mad_touch/can_target(atom/target, mob/user, silent) - . = ..() - if(!.) - return FALSE - if(!istype(target,/mob/living/carbon/human)) - if(!silent) - to_chat(user, "You are unable to touch [target]!") - return FALSE - return TRUE +/obj/item/melee/touch_attack/mad_touch + name = "Touch of Madness" + desc = "A sinister looking aura that shatters your enemies minds." + icon = 'icons/obj/eldritch.dmi' + icon_state = "mad_touch" + item_state = "madness" + catchphrase = "SUNA'IKINTI PROTA" -/obj/effect/proc_holder/spell/pointed/touch/mad_touch/cast(list/targets, mob/user) - . = ..() - for(var/mob/living/carbon/target in targets) - if(ishuman(targets)) - var/mob/living/carbon/human/tar = target - if(tar.anti_magic_check()) - tar.visible_message("Spell bounces off of [target]!","The spell bounces off of you!") - return - if(target.mind && !target.mind.has_antag_datum(/datum/antagonist/heretic)) - to_chat(user,"[target.name] has been cursed!") - SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus) +/obj/item/melee/touch_attack/mad_touch/afterattack(atom/target, mob/user, proximity_flag, click_parameters) -/obj/effect/proc_holder/spell/pointed/ash_final + if(!proximity_flag || target == user) + return + if(ishuman(target)) + var/mob/living/carbon/human/tar = target + if(tar.anti_magic_check()) + tar.visible_message("Spell bounces off of [target]!","The spell bounces off of you!") + return ..() + + if(iscarbon(target)) + playsound(user, 'sound/effects/curseattack.ogg', 75, TRUE) + var/mob/living/carbon/C = target + C.adjustOrganLoss(ORGAN_SLOT_BRAIN,35) + C.DefaultCombatKnockdown(50, override_stamdmg = 0) + C.gain_trauma(/datum/brain_trauma/mild/phobia) + to_chat(user,"[target.name] has been cursed!") + SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gates_of_mansus", /datum/mood_event/gates_of_mansus) + return ..() + +/obj/effect/proc_holder/spell/targeted/touch/grasp_of_decay + name = "Grasp of Decay" + desc = "A sinister looking touch that rots your foes from the inside out for twenty seconds." + hand_path = /obj/item/melee/touch_attack/grasp_of_decay + school = "evocation" + charge_max = 1200 + clothes_req = FALSE + action_icon = 'icons/mob/actions/actions_ecult.dmi' + action_icon_state = "mansus_grasp" + action_background_icon_state = "bg_ecult" + +/obj/item/melee/touch_attack/grasp_of_decay + name = "Grasp of Decay" + desc = "A sinister looking aura that rots your foes from the inside out." + icon = 'icons/obj/eldritch.dmi' + icon_state = "mansus_grasp" + item_state = "mansus" + catchphrase = "SKILI'EDUONIS" + +/obj/item/melee/touch_attack/grasp_of_decay/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + + if(!proximity_flag || target == user) + return + if(ishuman(target)) + var/mob/living/carbon/human/tar = target + if(tar.anti_magic_check()) + tar.visible_message("Spell bounces off of [target]!","The spell bounces off of you!") + return ..() + + if(iscarbon(target)) + playsound(user, 'sound/effects/curseattack.ogg', 75, TRUE) + var/mob/living/carbon/C = target + C.DefaultCombatKnockdown(50, override_stamdmg = 0) + C.apply_status_effect(/datum/status_effect/corrosion_curse/lesser) + return ..() + +/obj/effect/proc_holder/spell/pointed/nightwatchers_rite name = "Nightwatcher's Rite" desc = "Powerful spell that releases 5 streams of fire away from you." school = "transmutation" @@ -307,7 +350,7 @@ action_icon_state = "flames" action_background_icon_state = "bg_ecult" -/obj/effect/proc_holder/spell/pointed/ash_final/cast(list/targets, mob/user) +/obj/effect/proc_holder/spell/pointed/nightwatchers_rite/cast(list/targets, mob/user) for(var/X in targets) var/T T = line_target(-25, range, X, user) @@ -322,11 +365,12 @@ INVOKE_ASYNC(src, .proc/fire_line, user,T) return ..() -/obj/effect/proc_holder/spell/pointed/ash_final/proc/line_target(offset, range, atom/at , atom/user) +/obj/effect/proc_holder/spell/pointed/nightwatchers_rite/proc/line_target(offset, range, atom/at , atom/user) if(!at) return var/angle = ATAN2(at.x - user.x, at.y - user.y) + offset var/turf/T = get_turf(user) + playsound(user,'sound/magic/fireball.ogg', 200, 1) for(var/i in 1 to range) var/turf/check = locate(user.x + cos(angle) * i, user.y + sin(angle) * i, user.z) if(!check) @@ -334,7 +378,7 @@ T = check return (getline(user, T) - get_turf(user)) -/obj/effect/proc_holder/spell/pointed/ash_final/proc/fire_line(atom/source, list/turfs) +/obj/effect/proc_holder/spell/pointed/nightwatchers_rite/proc/fire_line(atom/source, list/turfs) var/list/hit_list = list() for(var/turf/T in turfs) if(istype(T, /turf/closed)) @@ -347,8 +391,8 @@ if(L in hit_list || L == source) continue hit_list += L - L.adjustFireLoss(20) - to_chat(L, "You're hit by [source]'s fire breath!") + L.adjustFireLoss(15) + to_chat(L, "You're hit by a blast of fire!") new /obj/effect/hotspot(T) T.hotspot_expose(700,50,1) @@ -368,7 +412,7 @@ possible_shapes = list(/mob/living/simple_animal/mouse,\ /mob/living/simple_animal/pet/dog/corgi,\ /mob/living/simple_animal/hostile/carp,\ - /mob/living/simple_animal/bot/secbot, \ + /mob/living/simple_animal/bot/secbot,\ /mob/living/simple_animal/pet/fox,\ /mob/living/simple_animal/pet/cat ) @@ -430,7 +474,7 @@ action_background_icon_state = "bg_ecult" range = -1 include_user = TRUE - charge_max = 700 + charge_max = 1200 action_icon = 'icons/mob/actions/actions_ecult.dmi' action_icon_state = "fire_ring" ///how long it lasts @@ -595,6 +639,39 @@ invocation = "AK'LIS" action_background_icon_state = "bg_ecult" +/obj/effect/proc_holder/spell/pointed/trigger/mute/eldritch + name = "Silence" + desc = "Using the power of the mansus, silences a selected unbeliever for twenty seconds." + school = "transmutation" + charge_max = 1800 + clothes_req = FALSE + invocation = "VIS'TIEK TAVO'LIZUVIS" + invocation_type = "whisper" + message = "It feels as if your tongue is being held down by an unseen force!" + starting_spells = list("/obj/effect/proc_holder/spell/targeted/genetic/mute") + ranged_mousepointer = 'icons/effects/mouse_pointers/mute_target.dmi' + action_background_icon_state = "bg_ecult" + action_icon = 'icons/mob/actions/actions_ecult.dmi' + action_icon_state = "mute" + active_msg = "You prepare to silence a target..." + +/obj/effect/proc_holder/spell/targeted/genetic/mute + mutations = list(MUT_MUTE) + duration = 200 + charge_max = 1200 // needs to be higher than the duration or it'll be permanent + sound = 'sound/magic/blind.ogg' + +/obj/effect/proc_holder/spell/pointed/trigger/mute/can_target(atom/target, mob/user, silent) + . = ..() + if(!.) + return FALSE + if(!isliving(target)) + if(!silent) + to_chat(user, "You can only silence living beings!") + return FALSE + return TRUE + + /obj/effect/temp_visual/dir_setting/entropic icon = 'icons/effects/160x160.dmi' icon_state = "entropic_plume" diff --git a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm index 8efd9837a9..425052de2a 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/ash_lore.dm @@ -95,7 +95,30 @@ desc = "Drains nearby alive people that are engulfed in flames. It heals 10 of each damage type per person. If a person is in critical condition it finishes them off." cost = 1 spell_to_add = /obj/effect/proc_holder/spell/targeted/fiery_rebirth - next_knowledge = list(/datum/eldritch_knowledge/spell/cleave,/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/final/ash_final) + next_knowledge = list(/datum/eldritch_knowledge/spell/cleave,/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/flame_immunity) + route = PATH_ASH + +/datum/eldritch_knowledge/flame_immunity + name = "Nightwatcher's Blessing" + gain_text = "The True Light will destroy and make something anew of any individual. If only they accepted it." + desc = "Becoming one with the ash, you become immune to fire and heat, allowing you to thrive in a more extreme environment.." + cost = 2 + next_knowledge = list(/datum/eldritch_knowledge/spell/nightwatchers_rite) + route = PATH_ASH + var/list/trait_list = list(TRAIT_RESISTHEAT,TRAIT_NOFIRE) + +/datum/eldritch_knowledge/flame_immunity/on_gain(mob/living/user) + to_chat(user, "[gain_text]") + for(var/X in trait_list) + ADD_TRAIT(user,X,MAGIC_TRAIT) + +/datum/eldritch_knowledge/spell/nightwatchers_rite + name = "Nightwatcher's Rite" + gain_text = "When the Glory of the Lantern scorches and sears their skin, nothing will protect them from the ashes." + desc = "Fire off five streams of fire from your hand, each setting ablaze targets hit and scorching them upon contact." + cost = 2 + spell_to_add = /obj/effect/proc_holder/spell/pointed/nightwatchers_rite + next_knowledge = list(/datum/eldritch_knowledge/final/ash_final) route = PATH_ASH /datum/eldritch_knowledge/ash_blade_upgrade @@ -167,7 +190,7 @@ required_atoms = list(/mob/living/carbon/human) cost = 5 route = PATH_ASH - var/list/trait_list = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_BOMBIMMUNE) + var/list/trait_list = list(TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_GENELESS,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_BOMBIMMUNE) /datum/eldritch_knowledge/final/ash_final/on_finished_recipe(mob/living/user, list/atoms, loc) priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# Fear the blaze, for Ashbringer [user.real_name] has come! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') diff --git a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm index 9684e1fa0c..5e32cf1b4e 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm @@ -70,7 +70,7 @@ desc = "Empowers your Mansus Grasp to be able to create a single ghoul out of a dead player. You cannot raise the same person twice. Ghouls have only 50 HP and look like husks." cost = 1 next_knowledge = list(/datum/eldritch_knowledge/flesh_ghoul) - var/ghoul_amt = 6 + var/ghoul_amt = 4 var/list/spooky_scaries route = PATH_FLESH @@ -177,7 +177,7 @@ cost = 1 required_atoms = list(/obj/item/kitchen/knife,/obj/item/reagent_containers/food/snacks/grown/poppy,/obj/item/pen,/obj/item/paper) mob_to_summon = /mob/living/simple_animal/hostile/eldritch/stalker - next_knowledge = list(/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/summon/rusty,/datum/eldritch_knowledge/final/flesh_final) + next_knowledge = list(/datum/eldritch_knowledge/summon/ashy,/datum/eldritch_knowledge/summon/rusty,/datum/eldritch_knowledge/flesh_blade_upgrade_2) route = PATH_FLESH /datum/eldritch_knowledge/summon/ashy @@ -250,3 +250,28 @@ carbon_user.gib() return ..() + +/datum/eldritch_knowledge/flesh_blade_upgrade_2 + name = "Remembrance" + gain_text = "Pain isn't something easily forgotten." + desc = "Your blade remembers more, and remembers how easily bones broke just as its flesh did, guaranteeing dislocated, or broken bones." + cost = 2 + next_knowledge = list(/datum/eldritch_knowledge/spell/touch_of_madness) + route = PATH_FLESH + +/datum/eldritch_knowledge/flesh_blade_upgrade_2/on_eldritch_blade(target,user,proximity_flag,click_parameters) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/carbon_target = target + var/obj/item/bodypart/bodypart = pick(carbon_target.bodyparts) + var/datum/wound/blunt/moderate/moderate_wound = new + moderate_wound.apply_wound(bodypart) + +/datum/eldritch_knowledge/spell/touch_of_madness + name = "Touch of Madness" + gain_text = "The ignorant mind that inhabits their feeble bodies will crumble when they acknowledge - willingly or not, the truth." + desc = "By forcing the knowledge of the Mansus upon my foes, I can show them things that would drive any normal man insane." + cost = 2 + spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/mad_touch + next_knowledge = list(/datum/eldritch_knowledge/final/flesh_final) + route = PATH_FLESH diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 74b3753b69..f5c54dd7bf 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -27,8 +27,13 @@ if(E) E.on_effect() H.adjustOrganLoss(pick(ORGAN_SLOT_BRAIN,ORGAN_SLOT_EARS,ORGAN_SLOT_EYES,ORGAN_SLOT_LIVER,ORGAN_SLOT_LUNGS,ORGAN_SLOT_STOMACH,ORGAN_SLOT_HEART),25) + else + for(var/X in user.mind.spell_list) + if(!istype(X,/obj/effect/proc_holder/spell/targeted/touch/mansus_grasp)) + continue + var/obj/effect/proc_holder/spell/targeted/touch/mansus_grasp/MG = X + MG.charge_counter = min(round(MG.charge_counter + MG.charge_max * 0.75),MG.charge_max) target.rust_heretic_act() - target.emp_act(EMP_HEAVY) return TRUE /datum/eldritch_knowledge/spell/area_conversion @@ -43,7 +48,7 @@ /datum/eldritch_knowledge/spell/rust_wave name = "Patron's Reach" desc = "You can now send a bolt of rust that corrupts the immediate area, and poisons the first target hit." - gain_text = "Messengers of hope fear the rustbringer." + gain_text = "Messengers of hope fear the Rustbringer." cost = 1 spell_to_add = /obj/effect/proc_holder/spell/aimed/rust_wave route = PATH_RUST @@ -92,19 +97,20 @@ banned_knowledge = list(/datum/eldritch_knowledge/ash_blade_upgrade,/datum/eldritch_knowledge/flesh_blade_upgrade) route = PATH_RUST -/datum/eldritch_knowledge/rust_blade_upgrade/on_eldritch_blade(target,user,proximity_flag,click_parameters) +/datum/eldritch_knowledge/rust_blade_upgrade/on_eldritch_blade(mob/target,user,proximity_flag,click_parameters) . = ..() - if(iscarbon(target)) - var/mob/living/carbon/carbon_target = target - carbon_target.reagents.add_reagent(/datum/reagent/eldritch, 5) + if(!IS_HERETIC(target)) + if(iscarbon(target)) + var/mob/living/carbon/carbon_target = target + carbon_target.reagents.add_reagent(/datum/reagent/eldritch, 5) /datum/eldritch_knowledge/spell/entropic_plume name = "Entropic Plume" desc = "You can now send a befuddling plume that blinds, poisons and makes enemies strike each other, while also converting the immediate area into rust." - gain_text = "Messengers of hope fear the rustbringer." + gain_text = "If they knew, the truth would turn them against eachother." cost = 1 spell_to_add = /obj/effect/proc_holder/spell/cone/staggered/entropic_plume - next_knowledge = list(/datum/eldritch_knowledge/final/rust_final,/datum/eldritch_knowledge/spell/cleave,/datum/eldritch_knowledge/summon/rusty) + next_knowledge = list(/datum/eldritch_knowledge/rust_fist_upgrade,/datum/eldritch_knowledge/spell/cleave,/datum/eldritch_knowledge/summon/rusty) route = PATH_RUST /datum/eldritch_knowledge/armor @@ -119,12 +125,38 @@ /datum/eldritch_knowledge/essence name = "Priest's Ritual" desc = "You can now transmute a tank of water into a bottle of eldritch fluid." - gain_text = "This is an old recipe, i got it from an owl." + gain_text = "This is an old recipe, I got it from an owl." cost = 1 next_knowledge = list(/datum/eldritch_knowledge/rust_regen,/datum/eldritch_knowledge/spell/ashen_shift) required_atoms = list(/obj/structure/reagent_dispensers/watertank) result_atoms = list(/obj/item/reagent_containers/glass/beaker/eldritch) +/datum/eldritch_knowledge/rust_fist_upgrade + name = "Vile Grip" + desc = "Empowers your Mansus Grasp further, sickening your foes and making them vomit, while also strengthening the rate at which your hand decays objects." + gain_text = "A sickly diseased touch that was, yet, so welcoming." + cost = 2 + next_knowledge = list(/datum/eldritch_knowledge/spell/grasp_of_decay) + var/rust_force = 750 + var/static/list/blacklisted_turfs = typecacheof(list(/turf/closed,/turf/open/space,/turf/open/lava,/turf/open/chasm,/turf/open/floor/plating/rust)) + route = PATH_RUST + +/datum/eldritch_knowledge/rust_fist_upgrade/on_mansus_grasp(atom/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(ishuman(target)) + var/mob/living/carbon/human/H = target + H.set_disgust(75) + return TRUE + +/datum/eldritch_knowledge/spell/grasp_of_decay + name = "Grasp of Decay" + desc = "Applying your knowledge of rust to the human body, a knowledge that could decay your foes from the inside out, resulting in organ failure, vomiting, or eventual death through peeling flesh." + gain_text = "Decay, similar to Rust, yet so much more terribly uninviting." + cost = 2 + spell_to_add = /obj/effect/proc_holder/spell/targeted/touch/grasp_of_decay + next_knowledge = list(/datum/eldritch_knowledge/final/rust_final) + route = PATH_RUST + /datum/eldritch_knowledge/final/rust_final name = "Rustbringer's Oath" desc = "Bring three corpses onto a transmutation rune. After you finish the ritual, rust will now automatically spread from the rune. Your healing on rust is also tripled, while you become more resilient overall." diff --git a/icons/effects/mouse_pointers/mute_target.dmi b/icons/effects/mouse_pointers/mute_target.dmi new file mode 100644 index 0000000000..8e3c278d3b Binary files /dev/null and b/icons/effects/mouse_pointers/mute_target.dmi differ diff --git a/icons/mob/actions/actions_ecult.dmi b/icons/mob/actions/actions_ecult.dmi index 0a130f006e..d083206454 100644 Binary files a/icons/mob/actions/actions_ecult.dmi and b/icons/mob/actions/actions_ecult.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 315ca5e924..0a82845910 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 6af883f2e8..abfbb18f84 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/eldritch.dmi b/icons/obj/eldritch.dmi index 50c2913708..294deda628 100644 Binary files a/icons/obj/eldritch.dmi and b/icons/obj/eldritch.dmi differ