mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-25 09:31:13 +00:00
Magboot Shuttlerides (#7294)
You can use an activated magboot to stay upright during shuttle movements now.
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user