mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-02-08 23:39:32 +00:00
ArcMining Pr Beta: Version 1.2 (#78524) This one's not like the last one, so much so that I'm not even going to outsource the PR description to a robot this time! Basically, **You should read the PR body before assuming that everything is the same as last time. It's not.** Click the link below to see a video summary of the main features of this pull request. https://youtu.be/Aho2omR0mjY?feature=shared This pull request serves as a large rework of minerals produced by mining, and by extension mining itself. I'll try and list each change and it's associated nuance here. The biggest addition to the game with ArcMining is **Ore Vents**. Ore vents spawn as a ruin on the map, placing a randomized ore vent onto map generation. Ore vents spawn in 3 different sizes, **Small, Medium, and Large**. These vents will pick from a pool of materials they can generate, and will hang out across the map. A player can use a mining scanner to discover an ore vent, granting a small quantity of **mining points** to begin with. Once scanned, ore vents will show what minerals that ore vent will generate after they're fully tapped. Scanning the vent again will trigger the extraction process. A small drone will fly down, called the NODE drone, and buckle onto the vent. Your job during wave defense is to protect the drone and to defeat waves of randomly spawning mobs (dependent on if you're on lavaland or on icebox). The quantity, duration, and time between waves is scaled to the size of the vent you're protecting. Starting by scanning and protecting lower tier vents earlier in the shift is a safer bet than doing a large vent in the first few minutes. The drone has 500 health, and can take a good few hits, but leaving it alone will cause it to meet an unfortunate end quite quickly. Cooperation can be your best asset, as mining with allies can greatly help with wave defense, and mineral points are granted to anyone who helps with defending the ore vent equally (So 500 * size tier, regardless of how much help you receive). Once complete, the ore vent will have a mining machine constructed on top of it, and will start to dredge up **Boulders** from the earth automatically. More on boulders later. Ore vents can be located based on your mining scanner, and will provide an appropriate audio cue based on if the ore vent has been discovered or not, and once processed will no longer alert you to it's presence. **Each station comes with a free vent that produces exclusively iron and glass, free of charge.** This is to help with shifts where the station may not have shaft miners to produce minerals, and to provide the station with a baseline amount of minerals where none may exist otherwise. Mineral generation has been completely reworked. Previously, Mineral Generation had a flat 13% spawn rate in-game. Once minerals spawned, they would also have a chance to propagate their minerals to nearby tiles, resulting in a rather massive pool of minerals that could spawn throughout lavaland on the whole. This tweaks that, by making minerals in walls spawn based on their proximity to ore vents on maps that use cave generation. Both the probability, and quantity of ores spawning in walls is scaled based on distance, with ore vents looking like large caches of ores found in walls. This makes following ores found in walls and checking their quantity of minerals spawned a good indicator of how close you are to a nearby vent in-round. This means you can collect some points form both discovering ore vents first, as well as collecting their surrounding ores, turn those in for mining points, and then trading them in for gear upgrades to more effectively take on ore vents. As a result of tweaking the balance of this, the total amount of ores spawned in walls overall has been decreased. However, by making more of the process time based, we still result in a mostly balanced finished product. On station, there are now three new machines. These are the BRM, the Refinery, and the Smelter. - The BRM acts as a teleporter. Instead of needing to carry boulders back to the station, you can activate the BRM, and it will automatically pick boulders to teleport back to itself. You can use this to teleport boulders dredged up from lavaland onto the station for processing. **The BRM will only lock on to boulders that are resting on an ore vent.** Moving boulders back by hand will mean you'll have to haul it back by hand. - The refinery processes the non-metallic materials out of boulders. This process sends the materials straight to the ORM, and collects mining points from the ores smelted in the machine. Swiping with an ID card lets you withdraw those points for your own personal account, but remember that these points are for your whole team to share from. The **Mining points obtained from this process is only 75% of the amount an equivalent amount of ores would provide.** - The smelter works nearly identically, however the smelter produces metallic materials out of boulders instead. - Once a boulder has had all of it's materials extracted, it's broken down and deleted from the line. Otherwise, the boulder is spat out for the next machine to process it (either the refinery or smelter). - Once there's no minerals left in a boulder of any type, the refinery or smelter will break the boulder down. - Boulders **do not stack onto tiles with each other**, so they'll block each other when pulled or when moving on a conveyor belt. Boulders can also be processed by hand. Using a mining tool on a boulder with right click will allow you to break down a boulder into it's composite ores, but limits you to a maximum of 10 ore per boulder, where the full amount can be extracted using the proper processing machines. Also, processing by hand does deal small amounts of stamina damage over time, do breaking a full large boulder can be particularly taxing. Additional Boulder Processing Machines can be built, with the BRM board being obtained from the Protolathe, while the Smelter and Refinery boards being obtainable from the Autolathe instead. A _boulder processing beacon_ can also be obtained from the mining points vendor as a reward to assist with boulder processing. Boulder processing beacons can be used to spawn in a new BRM, refinery, and smelter on the tile the user is standing on, however **you'll still need to link them to the ORM**! All three machines can be upgraded with Stock Parts, allowing for **more boulders to be processed at a time**. It does not, however, increase the amount of minerals received from boulders, or points earned. Mining borgs have been given some minor adjustments to compensate for the changes to mining. Their mineral scanner, which now has an active component to gameplay, is now a module as opposed to built into the mob. This module allows for the same ability to discover and start waves of monsters to fight. Mining modules will find that their PKA now has a total of 90% mod capacity as compared to the 80% they had before, to allow for more robust defense of ore vents. In addition, all borgs and AIs can interact with the BRM for boulder collection. Mining Mechs have had their utility tweaked as a result of these changes as well. Mineral scanners to be used on mining mechs now have a larger radius by comparison to their handheld cousins. Similarly, it now has an active scanning button, which will actively discovery nearby ore vents. To begin wave defense, you will need to hop out and scan a second time however, so that you can properly accept the risks of drawing a horde of bloodthirsty wildlife towards you and your companions. Mechs can also manually process boulders, similar to mining tools using their drill. Golems, being more gentle and less aggressive than humans, while being made out of LITERAL ROCKS, have a greater need to secure access to ores and minerals to eat. As such, they have adapted to be able to do two new things: - Golems may now right click ore vents to be able to manually haul a boulder out of the vent. This costs a hefty amount of stamina, but it allows for golems to avoid combat during regular gameplay. - Golems may now left click a boulder with an open hand in order to manually process a boulder like a pickaxe. While not faster, it is consistent and prevents golems from starving if they have access to a vent, but no ores, somehow. The labor camp, being a camp for rehabilitation and ~~excessive manual labor~~ has been tweaked. Boulders now replace the random minerals located on their island, and to acquire their prizes inside, much be excavated and then broken out of the rock. Now YOU TOO can excavate minerals and become a true mineral hero by working your way to freedom. As a result of fewer mining points being available across the map due to the new ore spawning mechanics, and the shift in how and when ores will be coming in, almost every progress based mining point cost has been reduced by around 10-20%. Many numbers are still subject to change at present, but the idea is that core progress unlocks should be made a bit more available earlier in the round before players can start to solo or duo larger or more difficult ore vents, after which they'll be rolling in ores. Every once in awhile, an unusual boulder will get hauled up from the mineral rich depths of lavaland. These **Artifact boulders** can occasionally produce rare items, but for now they've mostly just been pulling up **Strange objects** for science. Nanotrasen Natural Sciences department will reward you extra points to be collected by boulder processing machines for successfully extracting one. In the future, this opens up a passive reward space that mining can reward to the station, like providing cytology DNA samples, ancient seeds, or other artifacts. - Boulders can be stored in all varieties of ore boxes (ground, mech) should you choose, however as mentioned it's best to leave them where they spawn and teleport them to the station for convenience. - Maps that are not subject to cave generation will find that they are largely untouched in terms of mineral balance. - Future or existing ruins can now be tweaked to have a mineral balance cost, as the ore vent ruin does. This will allow us to spawn in more interesting ruins for pre-made combat challenges. - There are unique ore vents that spawn across the map, that will summon a boss mob relevant to that map. If the boss mob is defeated, that vent will spawn large boulders pulling from every possible ore type that can spawn. Not for the faint of heart! - Similarly, the number of ore vents and mineral budget is now adjustable in the cave generation procs, so maps may spawn with more or less ore vents as desired for balance. - Artifact boulders opens up a LOT of room for possible future content like archaeology, xenoarch, artisci, and other design spaces! - Megafauna STILL SPAWN ON THE MAP. They just happen to spawn in addition to boss ore vents. - **I'll add more to this as I get asked questions and remember things, this is a huge PR and I'm confident I've missed at least something** I outlined a lot of this in #78040, so I'll try and keep this relatively snappy this time, while noting that I've made some concessions to make the whole system a lot more playable while not trying to break out design decisions that are at the end of the day, better for the game and the overall resource balance in round. Minerals are a very poorly balanced system, and have been since their inception many years ago. We heavily rely on mineral balance in round, and yet we've really only balanced it by introducing so much supply that there's no equivalent exchange for materials that doesn't just heavily flood the exchanged material. For example, items printed from materials that are otherwise considered "rare" on master exist in such quantities and they'll never practically run out in our allotted 90 minute time slot design. This PR adjusts how ores spawn to a point where we can minimize the amount of ores that need to exist on the map for mining to be able to progress, while still providing enough resources for the station that it covers the needs of the station adequately. Miners will need to be more strategic about what resources they've collected, and be able to make decisions about which vents are worth the risk of attempting to fight, how to prepare for a wave defense, and when to head back up for upgrades, while finally giving them at least some kind of incentive to work together and use different equipment. Resonators make cleaning up the caves around vent easy, sandbags set up easy defenses for your vent, mechs can serve as a wider range radar while mining, all while still providing a new gameplay loop to mining. By limiting the amount of ores that can enter the round from the massive, massive amounts that were coming into the round beforehand (see gameplay to the processing of minerals. I have some plans for that, however this PR already got bloated really REALLY badly due to scope creep and the number of intersecting systems that rammed into each other to make this PR possible. So that'll be next. Plus, as I've mentioned, we open up places for ore processing to find fossils, relics, and other things that can implemented down the line. Overall, I don't expect this PR to save or kill ore balance, but we gain a LOT more control over it through the use of our mining defines attached to this PR, and at the end of the day, that's a great place to start off of. 🆑 add: Added ore vents. Scanning them with mining scanners shows what minerals they contain. Scan again to fight off a horde of beasts as your drone assistant excavates the vent, so the ore vent will produce mineral boulders! bal: Ores that spawn in walls now spawn based on their proximity to ore vents, with their chance to spawn and their minerals contained scaling from low to high. add: Added the BRM, Refinery, and Smelter. These pieces of equipment are used to process ore boulders into minerals for the station. Stock Part upgrades allow more boulders to be processed at one time. They collect mining points as well, to be redeemed with an ID card swipe. add: Boulders are teleported to the station via the BRM if left untouched. Boulders can also be cracked open for a reduced amount of ore using pickaxes or golems hands. add: All stations come equipt with a pre-excavated ore vent, which produces a basic supply of iron and glass only. Scan other vents for your critical resources! add: Look there's a shit ton of changes on mining, for more detail check out the Pull Request: https://github.com/tgstation/tgstation/pull/78524. sound: New sounds and noises for your high octane factorio-like gameplay! image: All new boulder sprites for the new minerals and rocks added to the mining gameplay loop, as well as mining machines! image: Overlays appear over vents when scanned to let you know their contents at a glance when actively scanned with any mining scanners. /🆑 --------- Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
321 lines
12 KiB
Plaintext
321 lines
12 KiB
Plaintext
//Defines for atom layers and planes
|
|
//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE
|
|
|
|
//NEVER HAVE ANYTHING BELOW THIS PLANE ADJUST IF YOU NEED MORE SPACE
|
|
#define LOWEST_EVER_PLANE -50
|
|
|
|
// Doesn't really layer, just throwing this in here cause it's the best place imo
|
|
#define FIELD_OF_VISION_BLOCKER_PLANE -45
|
|
#define FIELD_OF_VISION_BLOCKER_RENDER_TARGET "*FIELD_OF_VISION_BLOCKER_RENDER_TARGET"
|
|
|
|
#define CLICKCATCHER_PLANE -40
|
|
|
|
#define PLANE_SPACE -21
|
|
#define PLANE_SPACE_PARALLAX -20
|
|
|
|
#define GRAVITY_PULSE_PLANE -12
|
|
#define GRAVITY_PULSE_RENDER_TARGET "*GRAVPULSE_RENDER_TARGET"
|
|
|
|
#define RENDER_PLANE_TRANSPARENT -11 //Transparent plane that shows openspace underneath the floor
|
|
|
|
#define TRANSPARENT_FLOOR_PLANE -10
|
|
|
|
#define FLOOR_PLANE -6
|
|
|
|
#define WALL_PLANE -5
|
|
#define GAME_PLANE -4
|
|
#define ABOVE_GAME_PLANE -3
|
|
///Slightly above the game plane but does not catch mouse clicks. Useful for certain visuals that should be clicked through, like seethrough trees
|
|
#define SEETHROUGH_PLANE -2
|
|
|
|
#define RENDER_PLANE_GAME_WORLD -1
|
|
|
|
#define DEFAULT_PLANE 0 //Marks out the default plane, even if we don't use it
|
|
|
|
#define AREA_PLANE 2
|
|
#define MASSIVE_OBJ_PLANE 3
|
|
#define GHOST_PLANE 4
|
|
#define POINT_PLANE 5
|
|
|
|
//---------- LIGHTING -------------
|
|
///Normal 1 per turf dynamic lighting underlays
|
|
#define LIGHTING_PLANE 10
|
|
|
|
///Lighting objects that are "free floating"
|
|
#define O_LIGHTING_VISUAL_PLANE 11
|
|
#define O_LIGHTING_VISUAL_RENDER_TARGET "O_LIGHT_VISUAL_PLANE"
|
|
|
|
#define EMISSIVE_PLANE 13
|
|
/// This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
|
|
#define EMISSIVE_RENDER_PLATE 14
|
|
#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE"
|
|
// Ensures all the render targets that point at the emissive plate layer correctly
|
|
#define EMISSIVE_Z_BELOW_LAYER 1
|
|
#define EMISSIVE_FLOOR_LAYER 2
|
|
#define EMISSIVE_SPACE_LAYER 3
|
|
#define EMISSIVE_WALL_LAYER 4
|
|
|
|
#define RENDER_PLANE_LIGHTING 15
|
|
|
|
/// Masks the lighting plane with turfs, so we never light up the void
|
|
/// Failing that, masks emissives and the overlay lighting plane
|
|
#define LIGHT_MASK_PLANE 16
|
|
#define LIGHT_MASK_RENDER_TARGET "*LIGHT_MASK_PLANE"
|
|
|
|
///Things that should render ignoring lighting
|
|
#define ABOVE_LIGHTING_PLANE 17
|
|
|
|
///---------------- MISC -----------------------
|
|
|
|
///Pipecrawling images
|
|
#define PIPECRAWL_IMAGES_PLANE 20
|
|
|
|
///AI Camera Static
|
|
#define CAMERA_STATIC_PLANE 21
|
|
|
|
///Anything that wants to be part of the game plane, but also wants to draw above literally everything else
|
|
#define HIGH_GAME_PLANE 22
|
|
|
|
#define FULLSCREEN_PLANE 23
|
|
|
|
///--------------- FULLSCREEN RUNECHAT BUBBLES ------------
|
|
|
|
///Popup Chat Messages
|
|
#define RUNECHAT_PLANE 30
|
|
/// Plane for balloon text (text that fades up)
|
|
#define BALLOON_CHAT_PLANE 31
|
|
|
|
//-------------------- HUD ---------------------
|
|
//HUD layer defines
|
|
#define HUD_PLANE 35
|
|
#define ABOVE_HUD_PLANE 36
|
|
|
|
///Plane of the "splash" icon used that shows on the lobby screen
|
|
#define SPLASHSCREEN_PLANE 37
|
|
|
|
// The largest plane here must still be less than RENDER_PLANE_GAME
|
|
|
|
//-------------------- Rendering ---------------------
|
|
#define RENDER_PLANE_GAME 40
|
|
/// If fov is enabled we'll draw game to this and do shit to it
|
|
#define RENDER_PLANE_GAME_MASKED 41
|
|
/// The bit of the game plane that is let alone is sent here
|
|
#define RENDER_PLANE_GAME_UNMASKED 42
|
|
#define RENDER_PLANE_NON_GAME 45
|
|
|
|
// Only VERY special planes should be here, as they are above not just the game, but the UI planes as well.
|
|
|
|
/// Plane related to the menu when pressing Escape.
|
|
/// Needed so that we can apply a blur effect to EVERYTHING, and guarantee we are above all UI.
|
|
#define ESCAPE_MENU_PLANE 46
|
|
|
|
#define RENDER_PLANE_MASTER 50
|
|
|
|
// Lummox I swear to god I will find you
|
|
// NOTE! You can only ever have planes greater then -10000, if you add too many with large offsets you will brick multiz
|
|
// Same can be said for large multiz maps. Tread carefully mappers
|
|
#define HIGHEST_EVER_PLANE RENDER_PLANE_MASTER
|
|
/// The range unique planes can be in
|
|
/// Try and keep this to a nice whole number, so it's easy to look at a plane var and know what's going on
|
|
#define PLANE_RANGE (HIGHEST_EVER_PLANE - LOWEST_EVER_PLANE)
|
|
|
|
// PLANE_SPACE layer(s)
|
|
#define SPACE_LAYER 1.8
|
|
|
|
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define. Most floors (FLOOR_PLANE) and walls (WALL_PLANE) use this.
|
|
|
|
//FLOOR_PLANE layers
|
|
#define TURF_PLATING_DECAL_LAYER 2.001
|
|
#define TURF_DECAL_LAYER 2.009 //Makes turf decals appear in DM how they will look inworld.
|
|
#define CULT_OVERLAY_LAYER 2.01
|
|
#define MID_TURF_LAYER 2.02
|
|
#define HIGH_TURF_LAYER 2.03
|
|
#define LATTICE_LAYER 2.04
|
|
#define DISPOSAL_PIPE_LAYER 2.042
|
|
#define WIRE_LAYER 2.044
|
|
#define GLASS_FLOOR_LAYER 2.046
|
|
#define TRAM_RAIL_LAYER 2.047
|
|
#define ABOVE_OPEN_TURF_LAYER 2.049
|
|
|
|
//WALL_PLANE layers
|
|
#define CLOSED_TURF_LAYER 2.05
|
|
|
|
// GAME_PLANE layers
|
|
#define BULLET_HOLE_LAYER 2.06
|
|
#define ABOVE_NORMAL_TURF_LAYER 2.08
|
|
#define GAS_PIPE_HIDDEN_LAYER 2.35 //layer = initial(layer) + piping_layer / 1000 in atmospherics/update_icon() to determine order of pipe overlap
|
|
#define WIRE_BRIDGE_LAYER 2.44
|
|
#define WIRE_TERMINAL_LAYER 2.45
|
|
#define GAS_SCRUBBER_LAYER 2.46
|
|
#define GAS_PIPE_VISIBLE_LAYER 2.47 //layer = initial(layer) + piping_layer / 1000 in atmospherics/update_icon() to determine order of pipe overlap
|
|
#define GAS_FILTER_LAYER 2.48
|
|
#define GAS_PUMP_LAYER 2.49
|
|
#define PLUMBING_PIPE_VISIBILE_LAYER 2.495//layer = initial(layer) + ducting_layer / 3333 in atmospherics/handle_layer() to determine order of duct overlap
|
|
#define BOT_PATH_LAYER 2.497
|
|
#define LOW_OBJ_LAYER 2.5
|
|
///catwalk overlay of /turf/open/floor/plating/catwalk_floor
|
|
#define CATWALK_LAYER 2.51
|
|
#define LOW_SIGIL_LAYER 2.52
|
|
#define SIGIL_LAYER 2.53
|
|
#define HIGH_PIPE_LAYER 2.54
|
|
// Anything above this layer is not "on" a turf for the purposes of washing
|
|
// I hate this life of ours
|
|
#define FLOOR_CLEAN_LAYER 2.55
|
|
#define TRAM_STRUCTURE_LAYER 2.57
|
|
#define TRAM_FLOOR_LAYER 2.58
|
|
#define TRAM_WALL_LAYER 2.59
|
|
|
|
#define BELOW_OPEN_DOOR_LAYER 2.6
|
|
///Anything below this layer is to be considered completely (visually) under water by the immerse layer.
|
|
#define WATER_LEVEL_LAYER 2.61
|
|
#define BLASTDOOR_LAYER 2.65
|
|
#define OPEN_DOOR_LAYER 2.7
|
|
#define DOOR_ACCESS_HELPER_LAYER 2.71 //keep this above OPEN_DOOR_LAYER, special layer used for /obj/effect/mapping_helpers/airlock/access
|
|
#define DOOR_HELPER_LAYER 2.72 //keep this above DOOR_ACCESS_HELPER_LAYER and OPEN_DOOR_LAYER since the others tend to have tiny sprites that tend to be covered up.
|
|
#define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible
|
|
#define TABLE_LAYER 2.8
|
|
#define GATEWAY_UNDERLAY_LAYER 2.85
|
|
#define BELOW_OBJ_LAYER 2.9
|
|
#define LOW_ITEM_LAYER 2.95
|
|
//#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define
|
|
#define CLOSED_DOOR_LAYER 3.1
|
|
#define CLOSED_FIREDOOR_LAYER 3.11
|
|
#define ABOVE_OBJ_LAYER 3.2
|
|
#define CLOSED_BLASTDOOR_LAYER 3.3 // ABOVE WINDOWS AND DOORS
|
|
#define SHUTTER_LAYER 3.3 // HERE BE DRAGONS
|
|
#define ABOVE_WINDOW_LAYER 3.3
|
|
#define SIGN_LAYER 3.4
|
|
#define CORGI_ASS_PIN_LAYER 3.41
|
|
#define NOT_HIGH_OBJ_LAYER 3.5
|
|
#define HIGH_OBJ_LAYER 3.6
|
|
#define BELOW_MOB_LAYER 3.7
|
|
#define LOW_MOB_LAYER 3.75
|
|
#define LYING_MOB_LAYER 3.8
|
|
#define VEHICLE_LAYER 3.9
|
|
#define MOB_BELOW_PIGGYBACK_LAYER 3.94
|
|
//#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define
|
|
#define MOB_SHIELD_LAYER 4.01
|
|
#define MOB_ABOVE_PIGGYBACK_LAYER 4.06
|
|
#define MOB_UPPER_LAYER 4.07
|
|
#define HITSCAN_PROJECTILE_LAYER 4.09
|
|
#define ABOVE_MOB_LAYER 4.1
|
|
#define WALL_OBJ_LAYER 4.25
|
|
#define TRAM_SIGNAL_LAYER 4.26
|
|
#define EDGED_TURF_LAYER 4.3
|
|
#define ON_EDGED_TURF_LAYER 4.35
|
|
#define SPACEVINE_LAYER 4.4
|
|
#define LARGE_MOB_LAYER 4.5
|
|
#define SPACEVINE_MOB_LAYER 4.6
|
|
|
|
// Intermediate layer used by both GAME_PLANE and ABOVE_GAME_PLANE
|
|
#define ABOVE_ALL_MOB_LAYER 4.7
|
|
|
|
// ABOVE_GAME_PLANE layers
|
|
#define NAVIGATION_EYE_LAYER 4.9
|
|
//#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define
|
|
#define GASFIRE_LAYER 5.05
|
|
#define RIPPLE_LAYER 5.1
|
|
|
|
/**
|
|
* The layer of the visual overlay used in the submerge element.
|
|
* The vis overlay inherits the planes of the movables it's attached to (that also have KEEP_TOGETHER added)
|
|
* We just have to make sure the visual overlay is rendered above all the other overlays of those movables.
|
|
*/
|
|
#define WATER_VISUAL_OVERLAY_LAYER 1000
|
|
|
|
// SEETHROUGH_PLANE layers here, tho it has no layer values
|
|
|
|
//---------- LIGHTING -------------
|
|
|
|
// LIGHTING_PLANE layers
|
|
// The layer of turf underlays starts at 0.01 and goes up by 0.01
|
|
// Based off the z level. No I do not remember why, should check that
|
|
/// Typically overlays, that "hide" portions of the turf underlay layer
|
|
/// I'm allotting 100 z levels before this breaks. That'll never happen
|
|
/// --Lemon
|
|
#define LIGHTING_MASK_LAYER 10
|
|
/// Misc things that draw on the turf lighting plane
|
|
/// Space, solar beams, etc
|
|
#define LIGHTING_PRIMARY_LAYER 15
|
|
/// Stuff that needs to draw above everything else on this plane
|
|
#define LIGHTING_ABOVE_ALL 20
|
|
|
|
|
|
//---------- EMISSIVES -------------
|
|
//Layering order of these is not particularly meaningful.
|
|
//Important part is the seperation of the planes for control via plane_master
|
|
|
|
/// The layer you should use if you _really_ don't want an emissive overlay to be blocked.
|
|
#define EMISSIVE_LAYER_UNBLOCKABLE 9999
|
|
|
|
///--------------- FULLSCREEN IMAGES ------------
|
|
|
|
#define FLASH_LAYER 1
|
|
#define FULLSCREEN_LAYER 2
|
|
#define UI_DAMAGE_LAYER 3
|
|
#define BLIND_LAYER 4
|
|
#define CRIT_LAYER 5
|
|
#define CURSE_LAYER 6
|
|
#define ECHO_LAYER 7
|
|
#define PARRY_LAYER 8
|
|
|
|
#define FOV_EFFECT_LAYER 100
|
|
|
|
///--------------- FULLSCREEN RUNECHAT BUBBLES ------------
|
|
/// Bubble for typing indicators
|
|
#define TYPING_LAYER 500
|
|
|
|
#define RADIAL_BACKGROUND_LAYER 0
|
|
///1000 is an unimportant number, it's just to normalize copied layers
|
|
#define RADIAL_CONTENT_LAYER 1000
|
|
|
|
#define ADMIN_POPUP_LAYER 1
|
|
|
|
///Layer for screentips
|
|
#define SCREENTIP_LAYER 4
|
|
|
|
/// Layer for tutorial instructions
|
|
#define TUTORIAL_INSTRUCTIONS_LAYER 5
|
|
|
|
/// Layer for light overlays
|
|
#define LIGHT_DEBUG_LAYER 6
|
|
|
|
#define LOBBY_BACKGROUND_LAYER 3
|
|
#define LOBBY_BUTTON_LAYER 4
|
|
|
|
///Layer for lobby menu collapse button
|
|
#define LOBBY_BELOW_MENU_LAYER 2
|
|
///Layer for lobby menu background image and main buttons (Join/Ready, Observe, Charater Prefs)
|
|
#define LOBBY_MENU_LAYER 3
|
|
///Layer for lobby menu shutter, which covers up the menu to collapse/expand it
|
|
#define LOBBY_SHUTTER_LAYER 4
|
|
///Layer for lobby menu buttons that are hanging away from and lower than the main panel
|
|
#define LOBBY_BOTTOM_BUTTON_LAYER 5
|
|
|
|
///cinematics are "below" the splash screen
|
|
#define CINEMATIC_LAYER -1
|
|
|
|
///Plane master controller keys
|
|
#define PLANE_MASTERS_GAME "plane_masters_game"
|
|
#define PLANE_MASTERS_NON_MASTER "plane_masters_non_master"
|
|
#define PLANE_MASTERS_COLORBLIND "plane_masters_colorblind"
|
|
|
|
//Plane master critical flags
|
|
//Describes how different plane masters behave when they are being culled for performance reasons
|
|
/// This plane master will not go away if its layer is culled. useful for preserving effects
|
|
#define PLANE_CRITICAL_DISPLAY (1<<0)
|
|
/// This plane master will temporarially remove relays to all other planes
|
|
/// Allows us to retain the effects of a plane while cutting off the changes it makes
|
|
#define PLANE_CRITICAL_NO_RELAY (1<<1)
|
|
/// We assume this plane master has a render target starting with *, it'll be removed, forcing it to render in place
|
|
#define PLANE_CRITICAL_CUT_RENDER (1<<2)
|
|
|
|
#define PLANE_CRITICAL_FUCKO_PARALLAX (PLANE_CRITICAL_DISPLAY|PLANE_CRITICAL_NO_RELAY|PLANE_CRITICAL_CUT_RENDER)
|
|
|
|
/// A value of /datum/preference/numeric/multiz_performance that disables the option
|
|
#define MULTIZ_PERFORMANCE_DISABLE -1
|
|
/// We expect at most 3 layers of multiz
|
|
/// Increment this define if you make a huge map. We unit test for it too just to make it easy for you
|
|
/// If you modify this, you'll need to modify the tsx file too
|
|
#define MAX_EXPECTED_Z_DEPTH 3
|