diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 530cce68444..fcfab2788ee 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -144,9 +144,37 @@ var/ordernum=0 supply_shuttle_moving = 0 send_supply_shuttle() + /proc/supply_can_move() if(supply_shuttle_moving) return 0 + //Check for mobs + for(var/mob/living/M in world) + var/area/A = get_area(M) + if(A.type == /area/supply/station) + return 0 + //Check for beacons + for(var/obj/item/device/radio/beacon/B in world) + var/area/A = get_area(B) + if(A.type == /area/supply/station) + return 0 + //Check for mechs. I think this was added because people were somehow on centcomm and bringing back centcomm mechs. + for(var/obj/mecha/Mech in world) + var/area/A = get_area(Mech) + if(A.type == /area/supply/station) + return 0 + //Check for nuke disk This also prevents multiple nuke disks from being made -Nodrak + for(var/obj/item/weapon/disk/nuclear/N) + var/area/A = get_area(N) + if(A.type == /area/supply/station) + return 0 + return 1 +/* +Teleport beacon -> wrapping paper -> backpack -> bodybag -> crate -> wrapping paper -> loaded on a mulebot +That would be a teleport beacon inside of 6-layers deep in contents. Meaning you would have to add more loops or more checks. +This method wont take into account items developed in the future and doesn't take into account the items we have currently. +-Nodrak + var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE for(var/turf/T in get_area_turfs(shuttleat) ) @@ -166,7 +194,7 @@ var/ordernum=0 if((locate(/obj/mecha ) in ATMM)) return 0 if((locate(/obj/structure/closet/body_bag) in ATMM)) return 0 return 1 - +*/ /proc/sell_crates() var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE @@ -438,7 +466,7 @@ var/ordernum=0 if(!supply_shuttle_at_station || supply_shuttle_moving) return if (!supply_can_move()) - usr << "\red The supply shuttle can not transport station employees, exosuits, or homing beacons." + usr << "\red The supply shuttle can not transport station employees, exosuits, classified nuclear codes or homing beacons." return src.temp = "Shuttle sent.

OK" @@ -449,13 +477,21 @@ var/ordernum=0 supply_shuttle_shoppinglist = new/list() sell_crates() + + //Remove anything or anyone that was either left behind or that bypassed supply_can_move() -Nodrak + for(var/area/supply/station/A in world) + for(var/obj/item/I in A.contents) + del(I) + for(var/mob/living/M in A.contents) + del(M) + send_supply_shuttle() else if (href_list["sendtostation"]) if(supply_shuttle_at_station || supply_shuttle_moving) return if (!supply_can_move()) - usr << "\red The supply shuttle can not transport station employees or homing beacons." + usr << "\red The supply shuttle can not transport station employees, exosuits, classified nuclear codes or homing beacons." return post_signal("supply") @@ -581,7 +617,7 @@ var/ordernum=0 if (supply_shuttle_moving) return if (!supply_can_move()) - usr << "\red The supply shuttle can not transport station employees or homing beacons." + usr << "\red The supply shuttle can not transport station employees, exosuits, classified nuclear codes, or homing beacons." return var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE