mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge pull request #582 from Fox-McCloud/Escape-Pods
Escape Pod Fixes and Tweaks
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user