mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-20 03:30:01 +01:00
## About The Pull Request The emergency shuttle maintains its security level coefficient and does the calculation instead of outside procs that aren't aware of what alert it was when the shuttle was first called. If the shuttle auto-call timer should be capped at the current security level timer, that can be done in a different PR. ## Why It's Good For The Game Fixes https://github.com/tgstation/tgstation/issues/78159 ## Changelog 🆑 LT3 fix: Emergency shuttle should correctly scale timer up/down when changing security levels /🆑
123 lines
4.5 KiB
Plaintext
123 lines
4.5 KiB
Plaintext
//shuttle mode defines
|
|
#define SHUTTLE_IDLE "idle"
|
|
#define SHUTTLE_IGNITING "igniting"
|
|
#define SHUTTLE_RECALL "recalled"
|
|
#define SHUTTLE_CALL "called"
|
|
#define SHUTTLE_DOCKED "docked"
|
|
#define SHUTTLE_STRANDED "stranded"
|
|
#define SHUTTLE_DISABLED "disabled"
|
|
#define SHUTTLE_ESCAPE "escape"
|
|
#define SHUTTLE_ENDGAME "endgame: game over"
|
|
#define SHUTTLE_RECHARGING "recharging"
|
|
#define SHUTTLE_PREARRIVAL "landing"
|
|
|
|
#define EMERGENCY_IDLE_OR_RECALLED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_IDLE) || (SSshuttle.emergency.mode == SHUTTLE_RECALL)))
|
|
#define EMERGENCY_ESCAPED_OR_ENDGAMED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_ESCAPE) || (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)))
|
|
#define EMERGENCY_AT_LEAST_DOCKED (SSshuttle.emergency && SSshuttle.emergency.mode != SHUTTLE_IDLE && SSshuttle.emergency.mode != SHUTTLE_RECALL && SSshuttle.emergency.mode != SHUTTLE_CALL)
|
|
#define EMERGENCY_PAST_POINT_OF_NO_RETURN ((SSshuttle.emergency && SSshuttle.emergency.mode == SHUTTLE_CALL && !SSshuttle.canRecall()) || EMERGENCY_AT_LEAST_DOCKED)
|
|
|
|
// Shuttle return values
|
|
#define SHUTTLE_CAN_DOCK "can_dock"
|
|
#define SHUTTLE_NOT_A_DOCKING_PORT "not a docking port"
|
|
#define SHUTTLE_DWIDTH_TOO_LARGE "docking width too large"
|
|
#define SHUTTLE_WIDTH_TOO_LARGE "width too large"
|
|
#define SHUTTLE_DHEIGHT_TOO_LARGE "docking height too large"
|
|
#define SHUTTLE_HEIGHT_TOO_LARGE "height too large"
|
|
#define SHUTTLE_ALREADY_DOCKED "we are already docked"
|
|
#define SHUTTLE_SOMEONE_ELSE_DOCKED "someone else docked"
|
|
|
|
//Launching Shuttles to CentCom
|
|
#define NOLAUNCH -1
|
|
#define UNLAUNCHED 0
|
|
/// This shuttle launched to head to end game (or has arrived there), it will not update further
|
|
#define ENDGAME_LAUNCHED 1
|
|
#define EARLY_LAUNCHED 2
|
|
/// "Endgame transit" denotes shuttles which "fly into the sunset" when the round ends, such as the whiteship.
|
|
/// These shuttles leave when the main emergency shuttle does but don't dock anywhere (to save space), so this counts as "escaped".
|
|
#define ENDGAME_TRANSIT 3
|
|
|
|
//positive value = cannot puchase
|
|
#define SHUTTLEPURCHASE_PURCHASABLE 0 //station can buy a shuttle
|
|
#define SHUTTLEPURCHASE_PURCHASED 1 //station has already bought a shuttle, so cannot
|
|
#define SHUTTLEPURCHASE_FORCED 2 //station was given a new shuttle through events or other shenanigans
|
|
|
|
// Ripples, effects that signal a shuttle's arrival
|
|
#define SHUTTLE_RIPPLE_TIME 100
|
|
|
|
#define TRANSIT_REQUEST 1
|
|
#define TRANSIT_READY 2
|
|
|
|
#define SHUTTLE_TRANSIT_BORDER 16
|
|
|
|
#define PARALLAX_LOOP_TIME 25
|
|
#define HYPERSPACE_END_TIME 5
|
|
|
|
#define HYPERSPACE_WARMUP 1
|
|
#define HYPERSPACE_LAUNCH 2
|
|
#define HYPERSPACE_END 3
|
|
|
|
#define CALL_SHUTTLE_REASON_LENGTH 12
|
|
|
|
//Engine related
|
|
#define ENGINE_COEFF_MIN 0.5
|
|
#define ENGINE_COEFF_MAX 2
|
|
#define ENGINE_DEFAULT_MAXSPEED_ENGINES 5
|
|
|
|
// Alert level related
|
|
#define ALERT_COEFF_AUTOEVAC_NORMAL 2.5
|
|
#define ALERT_COEFF_GREEN 2
|
|
#define ALERT_COEFF_BLUE 1
|
|
#define ALERT_COEFF_RED 0.5
|
|
#define ALERT_COEFF_AUTOEVAC_CRITICAL 0.4
|
|
#define ALERT_COEFF_DELTA 0.25
|
|
|
|
//Docking error flags
|
|
#define DOCKING_SUCCESS 0
|
|
#define DOCKING_BLOCKED (1<<0)
|
|
#define DOCKING_IMMOBILIZED (1<<1)
|
|
#define DOCKING_AREA_EMPTY (1<<2)
|
|
#define DOCKING_NULL_DESTINATION (1<<3)
|
|
#define DOCKING_NULL_SOURCE (1<<4)
|
|
|
|
//Docking turf movements
|
|
#define MOVE_TURF 1
|
|
#define MOVE_AREA 2
|
|
#define MOVE_CONTENTS 4
|
|
|
|
//Rotation params
|
|
#define ROTATE_DIR 1
|
|
#define ROTATE_SMOOTH 2
|
|
#define ROTATE_OFFSET 4
|
|
|
|
#define SHUTTLE_DOCKER_LANDING_CLEAR 1
|
|
#define SHUTTLE_DOCKER_BLOCKED_BY_HIDDEN_PORT 2
|
|
#define SHUTTLE_DOCKER_BLOCKED 3
|
|
|
|
//Shuttle defaults
|
|
#define SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE /area/shuttle
|
|
#define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space
|
|
|
|
/// Shuttle unlocks
|
|
// Needs Alien Technology researched.
|
|
#define SHUTTLE_UNLOCK_ALIENTECH "abductor"
|
|
// Needs bubblegum to die.
|
|
#define SHUTTLE_UNLOCK_BUBBLEGUM "bubblegum"
|
|
// Needs one to set the holodeck to Medieval Sim.
|
|
#define SHUTTLE_UNLOCK_MEDISIM "holodeck"
|
|
// Needs a rune to be cleared by a null rod.
|
|
#define SHUTTLE_UNLOCK_NARNAR "narnar"
|
|
// Needs someone to be polymorphed - Pride Mirror, Magic Mirror, Race Swap, Polymorph Staff/Wand. Badmin Mirror doesn't count, neither does xenobio.
|
|
#define SHUTTLE_UNLOCK_WABBAJACK "wabbajack"
|
|
// Needs cargo budget to be almost empty to be purchasable.
|
|
#define SHUTTLE_UNLOCK_SCRAPHEAP "scrapheap"
|
|
|
|
//Shuttle Events
|
|
|
|
///Self destruct if this is returned in process
|
|
#define SHUTTLE_EVENT_CLEAR 2
|
|
|
|
///spawned stuff should float by the window and not hit the shuttle
|
|
#define SHUTTLE_EVENT_MISS_SHUTTLE 1 << 0
|
|
///spawned stuff should hit the shuttle
|
|
#define SHUTTLE_EVENT_HIT_SHUTTLE 1 << 1
|