diff --git a/code/datums/shuttle_controller.dm b/code/datums/shuttle_controller.dm index 23a1f155ccc..6b4925481c6 100644 --- a/code/datums/shuttle_controller.dm +++ b/code/datums/shuttle_controller.dm @@ -140,9 +140,13 @@ datum/shuttle_controller AM.throw_at(E, 1, 1) return */ + if(istype(T, /turf/simulated)) del(T) + for(var/mob/living/carbon/bug in end_location) // If someone somehow is still in the shuttle's docking area... + bug.gib() + start_location.move_contents_to(end_location) settimeleft(SHUTTLELEAVETIME) world << "The Emergency Shuttle has docked with the station! You have [timeleft()/60] minutes to board the Emergency Shuttle." @@ -151,6 +155,7 @@ datum/shuttle_controller return 1 if(1) + if(timeleft>0) return 0 diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 28cde78ffcf..806a37dd8ff 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -44,6 +44,36 @@ proc/move_mining_shuttle() else fromArea = locate(/area/shuttle/mining/station) toArea = locate(/area/shuttle/mining/outpost) + + + var/list/dstturfs = list() + var/throwy = world.maxy + + for(var/turf/T in toArea) + 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, 1) + //var/turf/E = get_step(D, SOUTH) + for(var/atom/movable/AM as mob|obj in T) + AM.Move(D) + // NOTE: Commenting this out to avoid recreating mass driver glitch + /* + spawn(0) + AM.throw_at(E, 1, 1) + return + */ + + if(istype(T, /turf/simulated)) + del(T) + + for(var/mob/living/carbon/bug in toArea) // If someone somehow is still in the shuttle's docking area... + bug.gib() + fromArea.move_contents_to(toArea) if (mining_shuttle_location) mining_shuttle_location = 0 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index b50b0eb84ee..4ca82ab7435 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -193,11 +193,13 @@ var/status = "" var/brutedamage = org.brute_dam var/burndamage = org.burn_dam + if(halloss > 0) if(prob(30)) brutedamage += halloss if(prob(30)) burndamage += halloss + if(brutedamage > 0) status = "bruised" if(brutedamage > 20) @@ -208,6 +210,7 @@ status += " and " if(burndamage > 40) status += "peeling away" + else if(burndamage > 10) status += "blistered" else if(burndamage > 0)