Merge pull request #692 from Citadel-Station-13/upstream-merge-26738
[MIRROR] Small fixes to spatial gateways
This commit is contained in:
@@ -15,9 +15,8 @@
|
|||||||
var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one
|
var/obj/effect/clockwork/spatial_gateway/linked_gateway //The gateway linked to this one
|
||||||
var/timerid
|
var/timerid
|
||||||
|
|
||||||
/obj/effect/clockwork/spatial_gateway/New()
|
/obj/effect/clockwork/spatial_gateway/Initialize()
|
||||||
..()
|
. = ..()
|
||||||
update_light()
|
|
||||||
addtimer(CALLBACK(src, .proc/check_setup), 1)
|
addtimer(CALLBACK(src, .proc/check_setup), 1)
|
||||||
|
|
||||||
/obj/effect/clockwork/spatial_gateway/Destroy()
|
/obj/effect/clockwork/spatial_gateway/Destroy()
|
||||||
@@ -99,12 +98,12 @@
|
|||||||
if(severity == 1 && uses)
|
if(severity == 1 && uses)
|
||||||
uses = 0
|
uses = 0
|
||||||
visible_message("<span class='warning'>[src] is disrupted!</span>")
|
visible_message("<span class='warning'>[src] is disrupted!</span>")
|
||||||
animate(src, alpha = 0, transform = matrix()*2, time = 10)
|
animate(src, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW)
|
||||||
deltimer(timerid)
|
deltimer(timerid)
|
||||||
timerid = QDEL_IN(src, 10)
|
timerid = QDEL_IN(src, 10)
|
||||||
linked_gateway.uses = 0
|
linked_gateway.uses = 0
|
||||||
linked_gateway.visible_message("<span class='warning'>[linked_gateway] is disrupted!</span>")
|
linked_gateway.visible_message("<span class='warning'>[linked_gateway] is disrupted!</span>")
|
||||||
animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10)
|
animate(linked_gateway, alpha = 0, transform = matrix()*2, time = 10, flags = ANIMATION_END_NOW)
|
||||||
deltimer(linked_gateway.timerid)
|
deltimer(linked_gateway.timerid)
|
||||||
linked_gateway.timerid = QDEL_IN(linked_gateway, 10)
|
linked_gateway.timerid = QDEL_IN(linked_gateway, 10)
|
||||||
return TRUE
|
return TRUE
|
||||||
@@ -131,9 +130,9 @@
|
|||||||
playsound(src, 'sound/effects/EMPulse.ogg', 50, 1)
|
playsound(src, 'sound/effects/EMPulse.ogg', 50, 1)
|
||||||
playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1)
|
playsound(linked_gateway, 'sound/effects/EMPulse.ogg', 50, 1)
|
||||||
transform = matrix() * 1.5
|
transform = matrix() * 1.5
|
||||||
animate(src, transform = matrix() / 1.5, time = 10)
|
animate(src, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
||||||
linked_gateway.transform = matrix() * 1.5
|
linked_gateway.transform = matrix() * 1.5
|
||||||
animate(linked_gateway, transform = matrix() / 1.5, time = 10)
|
animate(linked_gateway, transform = matrix() / 1.5, time = 10, flags = ANIMATION_END_NOW)
|
||||||
A.forceMove(get_turf(linked_gateway))
|
A.forceMove(get_turf(linked_gateway))
|
||||||
if(!no_cost)
|
if(!no_cost)
|
||||||
uses = max(0, uses - 1)
|
uses = max(0, uses - 1)
|
||||||
|
|||||||
@@ -44,45 +44,50 @@
|
|||||||
|
|
||||||
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user)
|
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/attack_hand(mob/living/user)
|
||||||
if(!is_servant_of_ratvar(user) || total_accessable_power() < hierophant_cost || !anchored)
|
if(!is_servant_of_ratvar(user) || total_accessable_power() < hierophant_cost || !anchored)
|
||||||
to_chat(user, "<span class='warning'>You place your hand on the obelisk, but it doesn't react.</span>")
|
to_chat(user, "<span class='warning'>You place your hand on [src], but it doesn't react.</span>")
|
||||||
return
|
return
|
||||||
var/choice = alert(user,"You place your hand on the obelisk...",,"Hierophant Broadcast","Spatial Gateway","Cancel")
|
var/choice = alert(user,"You place your hand on [src]...",,"Hierophant Broadcast","Spatial Gateway","Cancel")
|
||||||
switch(choice)
|
switch(choice)
|
||||||
if("Hierophant Broadcast")
|
if("Hierophant Broadcast")
|
||||||
if(active)
|
if(active)
|
||||||
to_chat(user, "<span class='warning'>The obelisk is sustaining a gateway and cannot broadcast!</span>")
|
to_chat(user, "<span class='warning'>[src] is sustaining a gateway and cannot broadcast!</span>")
|
||||||
return
|
return
|
||||||
if(!user.can_speak_vocal())
|
if(!user.can_speak_vocal())
|
||||||
to_chat(user, "<span class='warning'>You cannot speak through the obelisk!</span>")
|
to_chat(user, "<span class='warning'>You cannot speak through [src]!</span>")
|
||||||
return
|
return
|
||||||
var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "")
|
var/input = stripped_input(usr, "Please choose a message to send over the Hierophant Network.", "Hierophant Broadcast", "")
|
||||||
if(!is_servant_of_ratvar(user) || !input || !user.canUseTopic(src, !issilicon(user)))
|
if(!is_servant_of_ratvar(user) || !input || !user.canUseTopic(src, !issilicon(user)))
|
||||||
return
|
return
|
||||||
|
if(anchored)
|
||||||
|
to_chat(user, "<span class='warning'>[src] is no longer secured!</span>")
|
||||||
|
return FALSE
|
||||||
if(active)
|
if(active)
|
||||||
to_chat(user, "<span class='warning'>The obelisk is sustaining a gateway and cannot broadcast!</span>")
|
to_chat(user, "<span class='warning'>[src] is sustaining a gateway and cannot broadcast!</span>")
|
||||||
return
|
|
||||||
if(!try_use_power(hierophant_cost))
|
|
||||||
to_chat(user, "<span class='warning'>The obelisk lacks the power to broadcast!</span>")
|
|
||||||
return
|
return
|
||||||
if(!user.can_speak_vocal())
|
if(!user.can_speak_vocal())
|
||||||
to_chat(user, "<span class='warning'>You cannot speak through the obelisk!</span>")
|
to_chat(user, "<span class='warning'>You cannot speak through [src]!</span>")
|
||||||
|
return
|
||||||
|
if(!try_use_power(hierophant_cost))
|
||||||
|
to_chat(user, "<span class='warning'>[src] lacks the power to broadcast!</span>")
|
||||||
return
|
return
|
||||||
clockwork_say(user, text2ratvar("Hierophant Broadcast, activate! [html_decode(input)]"))
|
clockwork_say(user, text2ratvar("Hierophant Broadcast, activate! [html_decode(input)]"))
|
||||||
titled_hierophant_message(user, input, "big_brass", "large_brass")
|
titled_hierophant_message(user, input, "big_brass", "large_brass")
|
||||||
if("Spatial Gateway")
|
if("Spatial Gateway")
|
||||||
if(active)
|
if(active)
|
||||||
to_chat(user, "<span class='warning'>The obelisk is already sustaining a gateway!</span>")
|
to_chat(user, "<span class='warning'>[src] is already sustaining a gateway!</span>")
|
||||||
return
|
|
||||||
if(!try_use_power(gateway_cost))
|
|
||||||
to_chat(user, "<span class='warning'>The obelisk lacks the power to open a gateway!</span>")
|
|
||||||
return
|
return
|
||||||
if(!user.can_speak_vocal())
|
if(!user.can_speak_vocal())
|
||||||
to_chat(user, "<span class='warning'>You need to be able to speak to open a gateway!</span>")
|
to_chat(user, "<span class='warning'>You need to be able to speak to open a gateway!</span>")
|
||||||
return
|
return
|
||||||
if(procure_gateway(user, round(100 * get_efficiency_mod(), 1), round(5 * get_efficiency_mod(), 1), 1) && !active)
|
if(!try_use_power(gateway_cost))
|
||||||
clockwork_say(user, text2ratvar("Spatial Gateway, activate!"))
|
to_chat(user, "<span class='warning'>[src] lacks the power to open a gateway!</span>")
|
||||||
else
|
return
|
||||||
return_power(gateway_cost)
|
if(procure_gateway(user, round(100 * get_efficiency_mod(), 1), round(5 * get_efficiency_mod(), 1), 1))
|
||||||
|
process()
|
||||||
|
if(!active)
|
||||||
|
clockwork_say(user, text2ratvar("Spatial Gateway, activate!"))
|
||||||
|
return
|
||||||
|
return_power(gateway_cost) //if we didn't return above, ie, successfully create a gateway, we give the power back
|
||||||
|
|
||||||
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/process()
|
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/process()
|
||||||
if(!anchored)
|
if(!anchored)
|
||||||
|
|||||||
Reference in New Issue
Block a user