diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 83a9d379434..2e966288fac 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -18,7 +18,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle var/deny_shuttle = 0 //allows admins to prevent the shuttle from being called var/departed = 0 //if the shuttle has left the station at least once - + var/datum/announcement/priority/emergency_shuttle_docked = new(0, new_sound = sound('sound/AI/shuttledock.ogg')) var/datum/announcement/priority/emergency_shuttle_called = new(0, new_sound = sound('sound/AI/shuttlecalled.ogg')) var/datum/announcement/priority/emergency_shuttle_recalled = new(0, new_sound = sound('sound/AI/shuttlerecalled.ogg')) @@ -34,7 +34,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle if(is_stranded()) priority_announcement.Announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.") wait_for_launch = 0 - return + return //launch the pods! for (var/datum/shuttle/ferry/escape_pod/pod in escape_pods) if (!pod.arming_controller || pod.arming_controller.armed) @@ -57,10 +57,9 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle priority_announcement.Announce("The scheduled Crew Transfer Shuttle has docked with the station. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.") //arm the escape pods - if (evac) - for (var/datum/shuttle/ferry/escape_pod/pod in escape_pods) - if (pod.arming_controller) - pod.arming_controller.arm() + for (var/datum/shuttle/ferry/escape_pod/pod in escape_pods) + if (pod.arming_controller) + pod.arming_controller.arm() //begins the launch countdown and sets the amount of time left until launch /datum/emergency_shuttle_controller/proc/set_launch_countdown(var/seconds) @@ -186,7 +185,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle /datum/emergency_shuttle_controller/proc/has_eta() return (wait_for_launch || shuttle.moving_status != SHUTTLE_IDLE && shuttle.moving_status != SHUTTLE_STRANDED) - + /datum/emergency_shuttle_controller/proc/is_stranded() return (shuttle.moving_status == SHUTTLE_STRANDED) @@ -224,10 +223,10 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle var/timeleft = emergency_shuttle.estimate_launch_time() return "ETD-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]" - + if (is_stranded()) return "ETA-ERR" - + return "" /* Some slapped-together star effects for maximum spess immershuns. Basically consists of a diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 9eb45f5d8d6..ac24812f285 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -46,7 +46,7 @@ var/global/datum/shuttle_controller/shuttle_controller shuttle.dock_target_station = "escape_pod_1_berth" shuttle.dock_target_offsite = "escape_pod_1_recovery" shuttle.transit_direction = NORTH - shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one + shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN process_shuttles += shuttle shuttles["Escape Pod 1"] = shuttle @@ -60,7 +60,7 @@ var/global/datum/shuttle_controller/shuttle_controller shuttle.dock_target_station = "escape_pod_2_berth" shuttle.dock_target_offsite = "escape_pod_2_recovery" shuttle.transit_direction = NORTH - shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one + shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN process_shuttles += shuttle shuttles["Escape Pod 2"] = shuttle @@ -74,7 +74,7 @@ var/global/datum/shuttle_controller/shuttle_controller shuttle.dock_target_station = "escape_pod_3_berth" shuttle.dock_target_offsite = "escape_pod_3_recovery" shuttle.transit_direction = EAST - shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one + shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN process_shuttles += shuttle shuttles["Escape Pod 3"] = shuttle @@ -90,7 +90,7 @@ var/global/datum/shuttle_controller/shuttle_controller shuttle.dock_target_station = "escape_pod_5_berth" shuttle.dock_target_offsite = "escape_pod_5_recovery" shuttle.transit_direction = EAST //should this be WEST? I have no idea. - shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN + rand(-30, 60) //randomize this so it seems like the pods are being picked up one by one + shuttle.move_time = SHUTTLE_TRANSIT_DURATION_RETURN process_shuttles += shuttle shuttles["Escape Pod 5"] = shuttle diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3c9a0a2d1a8..0dcc68dd51b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -208,7 +208,7 @@ icon = 'icons/obj/doors/Dooruranium.dmi' mineral = "uranium" var/last_event = 0 - + /obj/machinery/door/airlock/process() // Deliberate no call to parent. if(main_power_lost_until > 0 && world.time >= main_power_lost_until) @@ -300,6 +300,11 @@ hackProof = 1 aiControlDisabled = 1 +/obj/machinery/door/airlock/shuttle + name = "shuttle airlock" + icon = 'icons/obj/doors/doorshuttle.dmi' + assembly_type = /obj/structure/door_assembly/door_assembly_shuttle + /obj/machinery/door/airlock/alien name = "Alien Airlock" desc = "A mysterious alien airlock with a complicated opening mechanism." @@ -319,7 +324,7 @@ else user << "You do not know how to operate this airlock's mechanism." return - + /* @@ -388,7 +393,7 @@ About the new airlock wires panel: if(mainPowerCablesCut() && backupPowerCablesCut()) return 1 return 0 - + /obj/machinery/door/airlock/proc/mainPowerCablesCut() return src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1) || src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2) @@ -426,7 +431,7 @@ About the new airlock wires panel: // Restore backup power only if main power is offline, otherwise permanently disable backup_power_lost_until = main_power_lost_until == 0 ? -1 : 0 update_icon() - + /obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0) var/message = "" if(src.isWireCut(AIRLOCK_WIRE_ELECTRIFY) && arePowerSystemsOn()) @@ -475,7 +480,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/update_icon() if(overlays) overlays.Cut() overlays = list() - if(emergency && arePowerSystemsOn()) + if(emergency && arePowerSystemsOn()) overlays += image('icons/obj/doors/doorint.dmi', "elights") if(density) if(locked && lights) @@ -494,7 +499,7 @@ About the new airlock wires panel: icon_state = "door_open" return - + /obj/machinery/door/airlock/do_animate(animation) switch(animation) @@ -918,7 +923,7 @@ About the new airlock wires panel: var/obj/structure/window/killthis = (locate(/obj/structure/window) in turf) if(killthis) killthis.ex_act(2)//Smashin windows - + if(density) return 1 operating = 1 @@ -1049,7 +1054,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/CanAStarPass(var/obj/item/weapon/card/id/ID) //Airlock is passable if it is open (!density), bot has access, and is not bolted shut) return !density || (check_access(ID) && !locked) - + /obj/machinery/door/airlock/emp_act(var/severity) if(prob(40/severity)) var/duration = world.time + SecondsToTicks(30 / severity) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 1c178848899..eff4159c867 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -101,6 +101,12 @@ obj/structure/door_assembly airlock_type = "/highsecurity" glass = -1 + door_assembly_shuttle + base_icon_state = "shuttle" + base_name = "shuttle airlock" + airlock_type = "/shuttle" + glass = -1 + multi_tile icon = 'icons/obj/doors/door_assembly2x1.dmi' dir = EAST diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index 3cc3b44b4a3..877daf4f736 100644 Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ diff --git a/icons/obj/doors/doorshuttle.dmi b/icons/obj/doors/doorshuttle.dmi new file mode 100644 index 00000000000..a32899e4221 Binary files /dev/null and b/icons/obj/doors/doorshuttle.dmi differ