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!