From ce2a5bec2b4ded65b1ff97fb7ff15bd2b594cbcc Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Wed, 3 Apr 2019 16:48:50 +0200 Subject: [PATCH] Destroy Engines ability rework + changes to shadowling end rounds messages --- code/game/gamemodes/shadowling/shadowling.dm | 4 ++++ .../shadowling/shadowling_abilities.dm | 22 ++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 3f408e08f3b..f8f2680ffd7 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -262,15 +262,19 @@ Made by Xhuis /datum/game_mode/shadowling/declare_completion() if(check_shadow_victory() && SSshuttle.emergency.mode >= SHUTTLE_ESCAPE) //Doesn't end instantly - this is hacky and I don't know of a better way ~X feedback_set_details("round_end_result","shadowling win - shadowling ascension") + to_chat(world, "Shadowling Victory") to_chat(world, "The shadowlings have ascended and taken over the station!") else if(shadowling_dead && !check_shadow_victory()) //If the shadowlings have ascended, they can not lose the round feedback_set_details("round_end_result","shadowling loss - shadowling killed") + to_chat(world, "Crew Major Victory") to_chat(world, "The shadowlings have been killed by the crew!") else if(!check_shadow_victory() && SSshuttle.emergency.mode >= SHUTTLE_ESCAPE) feedback_set_details("round_end_result","shadowling loss - crew escaped") + to_chat(world, "Crew Minor Victory") to_chat(world, "The crew escaped the station before the shadowlings could ascend!") else feedback_set_details("round_end_result","shadowling loss - generic failure") + to_chat(world, "Crew Major Victory") to_chat(world, "The shadowlings have failed!") ..() return 1 diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 02b3be7adca..387c8ca3abf 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -620,23 +620,28 @@ /obj/effect/proc_holder/spell/targeted/shadowling_extend_shuttle name = "Destroy Engines" - desc = "Extends the time of the emergency shuttle's arrival by fifteen minutes. This can only be used once." + desc = "Extends the time of the emergency shuttle's arrival by ten minutes using a life force of our enemy. Shuttle will be unable to be recalled. This can only be used once." panel = "Shadowling Abilities" range = 1 clothes_req = 0 charge_max = 600 action_icon_state = "extend_shuttle" + var/global/extendlimit = 0 /obj/effect/proc_holder/spell/targeted/shadowling_extend_shuttle/cast(list/targets, mob/user = usr) if(!shadowling_check(user)) charge_counter = charge_max return + if(extendlimit == 1) + to_chat(user, "Shuttle was already delayed.") + charge_counter = charge_max + return for(var/mob/living/carbon/human/target in targets) if(target.stat) charge_counter = charge_max return - if(!is_thrall(target)) - to_chat(user, "[target] must be a thrall.") + if(is_shadow_or_thrall(target)) + to_chat(user, "[target] must not be an ally.") charge_counter = charge_max return if(SSshuttle.emergency.mode != SHUTTLE_CALL) @@ -648,7 +653,9 @@ "You begin to draw [M]'s life force.") M.visible_message("[M]'s face falls slack, [M.p_their()] jaw slightly distending.", \ "You are suddenly transported... far, far away...") - if(!do_after(user, 50, target = M)) + extendlimit = 1 + if(!do_after(user, 150, target = M)) + extendlimit = 0 to_chat(M, "You are snapped back to reality, your haze dissipating!") to_chat(user, "You have been interrupted. The draw has failed.") return @@ -657,10 +664,9 @@ "...speeding by... ...pretty blue glow... ...touch it... ...no glow now... ...no light... ...nothing at all...") M.death() if(SSshuttle.emergency.mode == SHUTTLE_CALL) - var/more_minutes = 9000 - var/timer = SSshuttle.emergency.timeLeft() - timer += more_minutes - event_announcement.Announce("Major system failure aboard the emergency shuttle. This will extend its arrival time by approximately 15 minutes and the shuttle is unable to be recalled.", "System Failure", 'sound/misc/notice1.ogg') + var/more_minutes = 6000 + var/timer = SSshuttle.emergency.timeLeft(1) + more_minutes + event_announcement.Announce("Major system failure aboard the emergency shuttle. This will extend its arrival time by approximately 10 minutes and the shuttle is unable to be recalled.", "System Failure", 'sound/misc/notice1.ogg') SSshuttle.emergency.setTimer(timer) SSshuttle.emergency.canRecall = FALSE user.mind.spell_list.Remove(src) //Can only be used once!