mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-18 21:15:21 +00:00
## About The Pull Request Lepton Violet (wabbajack) shuttle must be unlocked by having some form of polymorph happen in-game first (Pride Mirror or the cursed springs are the most accessible sources) Scrapheap shuttle can only be bought if the Cargo budget is below 600 credits, and the shuttle has just less than half of its usual refueling time left. However, it gives the cargo budget an influx of 3000 credits! Uncle Pete's Rollerdome has had its price increased, and the disco machine is no longer unbreakable. ## Why It's Good For The Game First off, here is my reasoning for why these need altering at all. Players will always naturally gravitate to the wackiest and most-out-there options, in this case this applies to shuttles. It's why the Monastery or the Asteroid or Daniel are reasonably common sights, more common than some of the 'boring' shuttle options that don't need unlock with an emag. The problem here, as I see it, is that there is no incentive what-so-ever to NOT purchase these 'wacky' shuttles. Some of the shuttles in the code are just way too stupid to be seen on most or even some rounds (Arena, Disco Inferno?), so they require rare unlocks to occur. Wacky shuttles being spammed round after round are bad due to several reasons: 1. Players will run every joke to the ground. Wacky conditionless shuttles take up a large amount of space in the shuttle memeplex, so they are disproportionately seen in comparison to any of the less-extravagant but more grounded and actually interesting options. (Medisim? Monkeys anyone?). This ends up making the wacky shuttles actually *less* wacky and just the stale and boring options. 2. Wacky shuttles affect the end-round quite a lot. This is fine, of course, but not when these wacky shuttles can be seen every round. 3. These wacky shuttles don't have proper facilities. None of them have a good medical section, or emergency supplies, or enough room. This gets pretty annoying pretty fast. 4. One Funny Guy (the quintessential example being the clown with a dead captain's ID) is all but guaranteed to try to buy the funniest and most annoying shuttle to piss off the rest of the crew. With how Funny and Annoying these shuttles are, not to mention how dirt-cheap they are (or literally give you money!), they're easily the most seen alternate shuttles, which isn't good when they alter how the round-end plays so heavily. > Lepton Violet (wabbajack) shuttle must be unlocked by having some form of polymorph happen in-game first (Pride Mirror is the most accessible source) The Wabbajack has a endless source of voluntary Polymorphs with a comically low price, which means it is purchased endlessly by crew, not to mention being literally a source of free syndiborgs and xenos. While I'm not a balanceposter, this does come with some annoyances especially for antagonists who just randomly get blown up by an assault borg. This is fine and fun every so often, but not as a common occurrence, not as a guaranteed every-round option. I think it's an excellent candidate for an unlock condition. > Scrapheap shuttle can only be bought if the Cargo budget is below 600 credits, and the emergency shuttle is more than halfway refueled. However, it gives the cargo budget an influx of 3000 credits! This is LITERALLY 'haha grief shuttle', I have no idea how it even got in as a condition-less shuttle. You see the captain buy it For No Raisin Lul 2 minutes in, sigh to yourself, and secure an EVA suit when the shuttle lands to try to survive in the unbelievably cramped space. (Someone always blows it up.) Instead of being JUST Grief Shuttle, now it has some interesting reasons to exist. Revs and you're dirt-poor? Nukies just declared war after the Clown bought ten crates of creampie dufflebags? Buy this shuttle and get an influx of money. > Uncle Pete's Rollerdome has had its price increased, and the disco machine is no longer unbreakable. This one isn't as egregious as the above, but I believe my personal dislike of it extends to a game design level, to an extent. One person can buy this shuttle and the crew as a whole are left to groan as they prepare for a noisy, confusing shuttle in which everyone is ten tiles shifted to their left as their sprite does the most ridiculous dance seen in SS13 history. 'Just turn the music off!': I'm glad this is an option, but it doesn't change how much this shuttle alters things. It's fine as a sendoff to a nice, chill greenshift, but as a constant sight in red shifts it's just... frustrating. And purchased BECAUSE it's frustrating, to the short-lived schadenfreude of one person and the frustration of others. And then the unbreakable disco machine. Why is it unbreakable. If the crew doesn't want to listen to the thing, let them break it? Buy Disco Inferno if you want an unbreakable disco. Some of these changes are probably over-the-top, but remember that these will still be seen in-game, just a bit rarer. Worst case scenario the shuttle replacement event will let them have their time in the limelight. ## Changelog 🆑 balance: Lepton Violet (wabbajack) shuttle must be unlocked by having some form of polymorph happen in-game first (Pride Mirror or the cursed springs are the most accessible sources) balance: Scrapheap shuttle can only be bought if the Cargo budget is below 600 credits, and the shuttle has just less than half of its usual refueling time left. However, it gives the cargo budget an influx of 3000 credits! qol: Uncle Pete's Rollerdome has had its price increased, and the disco machine is no longer unbreakable. /🆑
115 lines
4.3 KiB
Plaintext
115 lines
4.3 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
|
|
|
|
//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
|