mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
-Shuttles inflict heavy brute damage instead of instagibbing
-Behaviour extended to supply shuttle
This commit is contained in:
@@ -171,24 +171,18 @@ var/global/datum/controller/supply_shuttle/supply_shuttle
|
||||
proc/send()
|
||||
var/area/from
|
||||
var/area/dest
|
||||
var/area/the_shuttles_way
|
||||
switch(at_station)
|
||||
if(1)
|
||||
from = locate(SUPPLY_STATION_AREATYPE)
|
||||
dest = locate(SUPPLY_DOCK_AREATYPE)
|
||||
the_shuttles_way = from
|
||||
at_station = 0
|
||||
if(0)
|
||||
from = locate(SUPPLY_DOCK_AREATYPE)
|
||||
dest = locate(SUPPLY_STATION_AREATYPE)
|
||||
the_shuttles_way = dest
|
||||
at_station = 1
|
||||
dest.clear_docking_area()
|
||||
moving = 0
|
||||
|
||||
//Do I really need to explain this loop?
|
||||
for(var/mob/living/unlucky_person in the_shuttles_way)
|
||||
unlucky_person.gib()
|
||||
|
||||
from.move_contents_to(dest)
|
||||
|
||||
//Check whether the shuttle is allowed to move
|
||||
|
||||
+31
-1
@@ -297,4 +297,34 @@
|
||||
// There's a gravity generator on our z level
|
||||
if(T && gravity_generators["[T.z]"] && length(gravity_generators["[T.z]"]))
|
||||
return 1
|
||||
return 0
|
||||
return 0
|
||||
|
||||
/area/proc/clear_docking_area()
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in src)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, T.z)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
//mobs take damage
|
||||
if(istype(AM, /mob/living))
|
||||
var/mob/living/living_mob = AM
|
||||
living_mob.Paralyse(10)
|
||||
living_mob.take_organ_damage(80)
|
||||
//Anything not bolted down is moved, everything else is destroyed
|
||||
if(!AM.anchored)
|
||||
AM.Move(D)
|
||||
else
|
||||
qdel(AM)
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
for(var/atom/movable/bug in src) // If someone (or something) is somehow still in the shuttle's docking area...
|
||||
qdel(bug)
|
||||
@@ -21,23 +21,7 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay)
|
||||
fromArea = locate(location) //the location of the shuttle
|
||||
toArea = locate(fromArea.destination)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in toArea)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// Destroy everything in the destination area
|
||||
for(var/turf/T in dstturfs)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.ex_act(1) //splat
|
||||
if(AM)
|
||||
qdel(AM)
|
||||
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
toArea.clear_docking_area()
|
||||
|
||||
fromArea.move_contents_to(toArea)
|
||||
location = toArea.type
|
||||
@@ -64,8 +48,6 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay)
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/machinery/computer/shuttle
|
||||
name = "Shuttle Console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
|
||||
Reference in New Issue
Block a user