From 82e4421cde3f951f424c8fe04053e716b020817b Mon Sep 17 00:00:00 2001 From: keronshb Date: Sun, 9 May 2021 20:01:30 -0400 Subject: [PATCH] Ports Break in hand from tg 58526 --- .../eldritch_cult/eldritch_items.dm | 57 ++++++------------- 1 file changed, 16 insertions(+), 41 deletions(-) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index 0dd9cf6bea..2e5a1c80d7 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -44,35 +44,6 @@ if(target.stat == DEAD) to_chat(user,"[target.real_name] is dead. Bring them onto a transmutation rune!") -/datum/action/innate/heretic_shatter - name = "Shattering Offer" - desc = "After a brief delay, you will be granted salvation from a dire situation at the cost of your blade. (Teleports you to a random safe turf on your current z level after a windup, but destroys your blade.)" - background_icon_state = "bg_ecult" - button_icon_state = "shatter" - icon_icon = 'icons/mob/actions/actions_ecult.dmi' - check_flags = MOBILITY_HOLD|MOBILITY_MOVE|MOBILITY_USE - var/mob/living/carbon/human/holder - var/obj/item/melee/sickly_blade/sword - -/datum/action/innate/heretic_shatter/Grant(mob/user, obj/object) - sword = object - holder = user - //i know what im doing - return ..() - -/datum/action/innate/heretic_shatter/IsAvailable() - if(IS_HERETIC(holder) || IS_HERETIC_MONSTER(holder)) - return TRUE - else - return FALSE - -/datum/action/innate/heretic_shatter/Activate() - if(do_after(holder,10, target = holder)) - var/turf/safe_turf = find_safe_turf(zlevels = sword.z, extended_safety_checks = TRUE) - do_teleport(holder,safe_turf,forceMove = TRUE,channel=TELEPORT_CHANNEL_MAGIC) - to_chat(holder,"You feel a gust of energy flow through your body... the Rusted Hills heard your call...") - qdel(sword) - /obj/item/melee/sickly_blade name = "sickly blade" desc = "A sickly green crescent blade, decorated with an ornamental eye. You feel like you're being watched..." @@ -90,11 +61,6 @@ throwforce = 10 hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "tore", "lacerated", "ripped", "diced", "rended") - var/datum/action/innate/heretic_shatter/linked_action - -/obj/item/melee/sickly_blade/Initialize() - . = ..() - linked_action = new(src) /obj/item/melee/sickly_blade/attack(mob/living/target, mob/living/user) if(!(IS_HERETIC(user) || IS_HERETIC_MONSTER(user))) @@ -109,13 +75,17 @@ return return ..() -/obj/item/melee/sickly_blade/pickup(mob/user) - . = ..() - linked_action.Grant(user, src) - -/obj/item/melee/sickly_blade/dropped(mob/user, silent) - . = ..() - linked_action.Remove(user, src) +/obj/item/melee/sickly_blade/attack_self(mob/user) + var/turf/safe_turf = find_safe_turf(zlevels = z, extended_safety_checks = TRUE) + if(IS_HERETIC(user) || IS_HERETIC_MONSTER(user)) + if(do_teleport(user, safe_turf, forceMove = TRUE, channel = TELEPORT_CHANNEL_MAGIC)) + to_chat(user,"As you shatter [src], you feel a gust of energy flow through your body. The Rusted Hills heard your call...") + else + to_chat(user,"You shatter [src], but your plea goes unanswered.") + else + to_chat(user,"You shatter [src].") + playsound(src, "shatter", 70, TRUE) //copied from the code for smashing a glass sheet onto the ground to turn it into a shard + qdel(src) /obj/item/melee/sickly_blade/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() @@ -130,6 +100,11 @@ else eldritch_knowledge_datum.on_ranged_attack_eldritch_blade(target,user,click_parameters) +/obj/item/melee/sickly_blade/examine(mob/user) + . = ..() + if(IS_HERETIC(user) || IS_HERETIC_MONSTER(user)) + . += "A heretic (or a servant of one) can shatter this blade to teleport to a random, mostly safe location by activating it in-hand." + /obj/item/melee/sickly_blade/rust name = "rusted blade" desc = "This crescent blade is decrepit, wasting to rust. Yet still it bites, ripping flesh and bone with jagged, rotten teeth."