Magboot Shuttlerides (#7294)

You can use an activated magboot to stay upright during shuttle movements now.
This commit is contained in:
Geeves
2019-11-02 22:10:18 +02:00
committed by Erki
parent 1d1c6b2f4f
commit 6e0d841dee
2 changed files with 45 additions and 11 deletions

View File

@@ -1,3 +1,6 @@
#define DO_BOOT 1
#define DO_BUCKLE 2
//These lists are populated in /datum/shuttle_controller/New()
//Shuttle controller is instantiated in master_controller.dm.
@@ -114,18 +117,42 @@
origin.move_contents_to(destination)
for(var/mob/M in destination)
if(M.client)
spawn(0)
if(M.buckled)
to_chat(M, "<span class='warning'>Sudden acceleration presses you into your chair!</span>")
shake_camera(M, 3, 1)
else
to_chat(M, "<span class='warning'>The floor lurches beneath you!</span>")
shake_camera(M, 10, 1)
if(istype(M, /mob/living/carbon))
if(!M.buckled)
M.Weaken(3)
var/effect = FALSE
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(istype(H.shoes, /obj/item/clothing/shoes/magboots))
var/obj/item/clothing/shoes/magboots/boots = H.shoes
if(boots.magpulse)
effect = DO_BOOT
if(!effect)
if(M.buckled)
effect = DO_BUCKLE
if(effect == DO_BOOT)
magboot_effect(M)
else if(effect == DO_BUCKLE)
buckled_effect(M)
else // If they have neither of the former, then it'll always be loose (at the time of writing this, oh god)
loose_effect(M)
/datum/shuttle/proc/magboot_effect(mob/M)
to_chat(M, span("warning","You manage to maintain your footing with the magboots!"))
shake_camera(M, 5, 1)
/datum/shuttle/proc/buckled_effect(mob/M)
to_chat(M, span("warning","Sudden acceleration presses you into your chair!"))
shake_camera(M, 3, 1)
/datum/shuttle/proc/loose_effect(mob/M)
to_chat(M, span("warning","You lose your footing as the floor lurches beneath you!"))
shake_camera(M, 10, 1)
M.Weaken(3)
//returns 1 if the shuttle has a valid arrive time
/datum/shuttle/proc/has_arrive_time()
return (moving_status == SHUTTLE_INTRANSIT)
#undef DO_BOOT
#undef DO_BUCKLE