diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 5dfd4e0d8be..440cc680403 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -166,6 +166,43 @@ var/list/supply_groups = new() /proc/supply_can_move() if(supply_shuttle_moving) return 0 + //Check for carbon mobs - Allows simple animals. + for(var/mob/living/carbon/M in world) + var/area/A = get_area(M) + if(!A || !A.type) continue + if(A.type == /area/supply/station) + return 0 + //Check for silicon mobs - Allows simple animals. + for(var/mob/living/silicon/M in world) + var/area/A = get_area(M) + if(!A || !A.type) continue + 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 || !A.type) continue + 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 || !A.type) continue + 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 || !A.type) continue + 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 storage items developed in the future and doesn't take into account the storage 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) ) @@ -186,7 +223,7 @@ var/list/supply_groups = new() 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 @@ -475,7 +512,7 @@ var/list/supply_groups = new() 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" @@ -486,13 +523,21 @@ var/list/supply_groups = new() 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")