mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-07 07:09:17 +01:00
561df29ff770fdfd39bb0f1e95b332ef46da6975
2189 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5543a44882 |
[MIRROR] ArcMining Pr Beta: Version 1.2 (#26205)
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> |
||
|
|
c41dd0e2f4 |
[MIRROR] Saves some free lag by removing some in area (in world) loops [MDB IGNORE] (#25977)
* Saves some free lag by removing some in area (in world) loops (#80644) ## About The Pull Request Goes through and changes some `in area` / `in a` loops to use `get_contained_turfs` to cut down on `in_world` loops. Saves some free lag. ## Changelog 🆑 Melbert fix: Some things which affect everything in an area are less laggy, the "all lights are broken" station trait especially /🆑 * Saves some free lag by removing some in area (in world) loops --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
e6bd089ef7 |
[MIRROR] Refactors Crystal Warp Theme datum to use Dimensional Theme datum [MDB IGNORE] (#25934)
* Refactors Crystal Warp Theme datum to use Dimensional Theme datum (#80661) ## About The Pull Request `/datum/crystal_warp_theme` and `/datum/dimension_theme` both do very similar, if not identical behaviors, so we can combine them pretty painlessly. ## Why It's Good For The Game This gives the crystal more options for themes to pick from, and the dimensional anomaly more wacky themes to pick from. ## Changelog 🆑 Melbert refactor: Refactored the area transformation colossus crystal effect to use the same system dimensional anomalies use. That means the colossus crystal now has access to some dimensional themes (bamboo, plasma, glass) and the dimensional anomaly now has access to some colossus themes (jungle, alien). /🆑 * Refactors Crystal Warp Theme datum to use Dimensional Theme datum --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
bb3f42b103 |
[MIRROR] Dimensional anomaly converting airlocks preserves old name [MDB IGNORE] (#25914)
* Dimensional anomaly converting airlocks preserves old name (#80654) ## Why It's Good For The Game the name of an airlock indicates what area it is, also generic names like "gold airlock" look dull Fixes https://github.com/tgstation/tgstation/issues/80655 ## Changelog 🆑 fix: Dimensional anomlies converting airlocks preserves the old name /🆑 * Dimensional anomaly converting airlocks preserves old name --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> |
||
|
|
1433ad9fa4 |
[MIRROR] Fixes being able to fish up qdeleted spawners [MDB IGNORE] (#25908)
* Fixes being able to fish up qdeleted spawners (#80646) ## About The Pull Request Fixes https://github.com/NovaSector/NovaSector/issues/152 This is mostly a downstream issue, I think, but should a spawner ever get added to the fish tables here this bug will be present. Basically spawners, when created, do their item spawning behavior on the src loc and then immediately qdel themselves. If you try to forceMove() the spawners out of nullspace, like what was happening with fishing, you'd end up with an unmovable broken item that cannot be easily admin deleted. This PR also adds a stack_trace when you forceMove() a qdeleted spawner, because this is not the first time I've seen this issue come up. It doesn't stop it from happening, though, because it's easier to visually see the bug that way. This just provides some useful feedback as to why the bug is happening should you check the debug logs. ## Why It's Good For The Game Fixes a bug ## Changelog 🆑 fix: fishing up a spawner will now give you the spawned item instead of a broken, undeletable spawner object code: adds a warning to the stack trace when something tries to forceMove() a qdeleted spawner /🆑 * Fixes being able to fish up qdeleted spawners --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
75cd7f69f6 |
[MIRROR] A "postal workers strike" negative station trait. (can be positive) [MDB IGNORE] (#25874)
* A "postal workers strike" negative station trait. (can be positive) * Update shuttle_loan_datum.dm --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
922ec66ee7 |
[MIRROR] Better Ghost Selection [MDB IGNORE] (#25789)
* Better Ghost Selection * yes * oldcode updates and compat --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
9a3fb5c5c1 |
[MIRROR] FOV is Dead (Long Live FOV) [MDB IGNORE] (#25600)
* FOV is Dead (Long Live FOV) * Update _megafauna.dm * Update _vehicle.dm * FOV Hotfix: Actually offsets gameplane render relays * removes redundant visual_shadow * removes GAME_PLANE_UPPER references * Update mob_movement.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
903cf1d211 |
[MIRROR] Holiday Supermatter [MDB IGNORE] (#25575)
* Holiday Supermatter (#80254) ## About The Pull Request Adds some festive season cheer to the SM. Santa hat not included.  ## Changelog 🆑 LT3, Majkl-J image: SM now has holiday lights image: You can now put a santa hat on the SM /🆑 --------- Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Holiday Supermatter * Update code/modules/power/supermatter/supermatter.dm Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> |
||
|
|
3658c80e57 |
[MIRROR] Explodes device.dmi [MDB IGNORE] (#25523)
* Explodes device.dmi * Demodularize these * Update traitordevices.dm * Update traitordevices.dm * Modularizes hypnotic flash * Modular dmi repath * Modular dmi repath --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
013003e732 |
[MIRROR] The maintenance crate spawning crate is now a spawner [MDB IGNORE] (#25417)
* The maintenance crate spawning crate is now a spawner (#80083) ## About The Pull Request `/obj/structure/closet/crate/maint` was a type of crate that spawned a completely different crate, and then deleted itself. I have decided to swap this out for an actual spawning effect. I have also did some subtypery to remove some duplicate code that handled randomly opening the spawned closet/crate (through I am not that satisfied with `/obj/effect/spawner/random/structure/closet_empty/crate/with_loot` as a sensible typepath name, I would like to ask for suggestions). I also removed a loot define, because it was no longer needed as its contents were used on a single page. ## Why It's Good For The Game Things that act like spawners should be spawners. Maybe this fixes the CI issue on northstar where a mousetrap box gets deleted before it initializes during create and destroy? It was placed above a spawner that spawned one of these self deleting crates. I am unsure, I could not replicate this issue during testing. ## Changelog Nothing player facing. * The maintenance crate spawning crate is now a spawner * UpdatePaths * Update Blueshift.dmm --------- Co-authored-by: Profakos <profakos@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
4eb17420b5 |
[MIRROR] Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis [MDB IGNORE] (#25404)
* Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis (#80032) ## About The Pull Request ### Cogitandi Fidis Creates a holy violin that gives an analysis of songs played on it. This lets you check how long the song is for final effects, to make sure they trigger without the hassle of trying a rite with a song until you get one that works. 20 Favor, looks neat too! ### Portable Song Tuning Rite to empower an instrument with the ability to invoke specifically song tuning rites, 5 charges before you need to go back to a proper altar. Helps a chaplain stay on the move, since songs are interruptable and sometimes an altar can be incredibly far. 10 Favor for 5 charges. ### Illuminating Solo  New free invocation that lets you light up the way with your music! The finishing effect applies a weaker glow to all listeners for a minute. ### Other Misc Changes The threshold for getting a final effect on a song is now lower, 220 -> 170. As a reminder, this threshold is lines * tempo. I think the threshold was simply too high ## Why It's Good For The Game Changes were made from https://tgstation13.org/phpBB/viewtopic.php?f=10&t=35381 statistics and feedback about sects. I think, overall, Festival Sect is in a very good place and doesn't need a whole lot but a few rites that help with a quality of life would really cut down on the amount of time a chappy is spending doing nothing but running allllll the way back to the chapel to load up some new songs ## Changelog 🆑 add: Festival Sect has 3 new rites: Cogitandi Fidis, Portable Song Tuning, and Illuminating Solo. balance: lowers threshold for triggering a final effect. Consult your Cogitandi Fidis for more information /🆑 * Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis --------- Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> |
||
|
|
96e280edfb |
[MIRROR] Slime type datum, and cleans up slime related code [MDB IGNORE] (#25250)
* Slime type datum, and cleans up slime related code * Resolves Conflict, Preserves SR Edit * Update code/game/objects/items/devices/scanners/slime_scanner.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --------- Co-authored-by: Profakos <profakos@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com> |
||
|
|
3fa98bd2cc |
[MIRROR] Adds UPSIDE_DOWN movetype for negative gravity / makes Atrocinator affected by less things [MDB IGNORE] (#25155)
* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things (#79785) ## About The Pull Request Fixes #79764 I was going to tackle this issue by slamming `TRAIT_NO_SLIP_ALL` on Atrocinator users and calling it a day, but like, that didn't feel proper. So I thought hey, we could just give them the flying movetype, even though they technically aren't flying it means they're unaffected by things that flying would make you unaffected by. Nope, this means the mob technically "negates gravity", so no falling and no feetsteps. Let's try floating - this give us feetsteps but no falling upwards. So instead of going back to square one, with `TRAIT_NO_SLIP_ALL`, I decided to go for the more complex route of just adding a movetype. Hence, move type `UPSIDE_DOWN`. This covers situations where a mob would be "floating" above the ground, but still walking. ...Negative gravity. This means overall the Atrociator acts more as you'd expect - you don't slip on ice, you don't trigger bear traps or mouse traps, you can walk over railings, unaffected by conveyor belts, etc. ## Why It's Good For The Game Makes the Atrocinator a lot more consistent with how you'd expect for it to work. Admittedly it is a bit niche use of movetypes, but it can possibly be expanded to more things in the future, who knows? I applied it to mobs on meat spikes (even though they don't move), just for proof of concept. ## Changelog 🆑 Melbert fix: Atrocinating mobs will now behave more as you'd expect. Meaning they don't slip on wet patches, can't trigger bear traps / landmines / mouse traps, ignore conveyors, and can walk over tables and railings. fix: Floating mobs are unaffected by conveyor belts, acid (on the ground), glass tables fix: Floating mobs won't squish stuff like roaches anymore fix: Fixes bear traps triggering on floating / flying mobs /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
558c466b81 |
[MIRROR] Splits placeontop proc [MDB IGNORE] (#25103)
* Splits placeontop proc (#79702) ## About The Pull Request I find the proc hard to read honestly. There's no reason we can't split this into two functions - the secondary functionality is used only once, in reader.dmm. ## Why It's Good For The Game Code improvement Glorious snake case ## Changelog N/A nothing player facing --------- Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com> * Splits placeontop proc * Update brass_spreader.dm --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
94c339ce8c |
[MIRROR] TGUI for Safes and Secure briefcases (Safes are now a structure, too) [MDB IGNORE] (#25059)
* TGUI for Safes and Secure briefcases (Safes are now a structure, too) (#79594) * TGUI for Safes and Secure briefcases (Safes are now a structure, too) * Modular * UpdatePaths * Modular --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
5209631c68 |
[MIRROR] Adds wibbles to certain anomalous entities [MDB IGNORE] (#24851)
* Adds wibbles to certain anomalous entities (#79549) ## About The Pull Request Adds wibble animation to portals, some anomalies, and bluespace rifts. https://github.com/tgstation/tgstation/assets/51863163/9355dc53-590e-4558-82a3-15145829ce16 ## Why It's Good For The Game It looks kinda cool. Helps cement these as anomalous, wacky things that don't necessarily fit in our plane of existence. ## Changelog 🆑 Melbert add: Anomalies, portals, and bluespace rifts will now wibble a bit. /🆑 * Adds wibbles to certain anomalous entities --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
f432051f79 |
[MIRROR] Adds a sleeve of tiling colors for several holidays. [MDB IGNORE] (#24831)
* Adds a sleeve of tiling colors for several holidays. (#79188) ## About The Pull Request Inspired by #79108. This concerns Christmas, many national holidays and a few gimmicky ones where it'd make sense. Oh, yeah, I've also added "Sacrebleu" to the list of possible station prefixes for the Bastille day, since "Merde" is already there. <details> <summary>some screenshots (got tired of restarting the server over and over halfway through)</summary> ### St. Patrick (Ireland) :  ### Bastille Day (France) :  ### Waitangi Day (Union Jack colors, New Zealand) : **No, it isn't the french flag again, it's the tram tiles that always display the pattern in vertical stripes...**  ### Christmas (Before I realized it looks like the italian flag so I've removed the white) :  </details> ## Why It's Good For The Game Implemeting a smidge of festivity and/or celebration to several holidays. Open to suggestions and thoughts. ## Changelog 🆑 image: Several holidays now have themed floor and tram tiling. /🆑 * Adds a sleeve of tiling colors for several holidays. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
58b117c39c |
[MIRROR] Changes the description of mothic rations poster (lore pr) (very important) [MDB IGNORE] (#24746)
* Changes the description of mothic rations poster (lore pr) (very important) (#79440) ## About The Pull Request Swaps windgrass for sparkweed in the description of the mothing rations poster ## Why It's Good For The Game EOB asked me to change this since windgrass was meant to be a similar future addition but we have more fleshed out lore for sparkweed now See here for more information https://github.com/tgstation/common_core/pull/44 🆑 spellcheck: The Mothic Rations Chart poster description now mentions Sparkweed Cigarettes rather than Windgrass /🆑 * Changes the description of mothic rations poster (lore pr) (very important) --------- Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com> |
||
|
|
0c24d20c54 |
[MIRROR] [NO GBP] Fix fireplace smoke particles to work properly with all directions [MDB IGNORE] (#24744)
* [NO GBP] Fix fireplace smoke particles to work properly with all directions (#79417) ## About The Pull Request I wasn't aware we had different icon dir states for fireplaces. Although it seems that no icon state exists for `NORTH` dir fireplaces. Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/24626 ## Why It's Good For The Game  ## Changelog 🆑 fix: Fix fireplace smoke particles to work properly with all directions /🆑 * [NO GBP] Fix fireplace smoke particles to work properly with all directions --------- Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
eb75696ae9 |
[MIRROR] [NO GBP]Fixes tesla zaps. [MDB IGNORE] (#24698)
* [NO GBP]Fixes tesla zaps. (#79398) ## About The Pull Request Closes #79297 Closes #79312 Due to the new cutoff parameter being added to tesla_zap() (from #78310), and most callers used positional arguments instead of keywords, the zap flags was getting fed the shocked_targets list and maybe other junk. This caused a bunch of unusual phenomena. This is fixed by using keyword arguments. Tesla zaps that use the grid were significantly weaker in terms of damage than they're supposed to be. This was a byproduct of trying to convert everything to joules and removing unnecessary power multipliers. This is fixed by reverting the damage scaling and zap power of zap sources that aren't based on grid. Technically this will cause the zaps from other sources to have less power, but these tend to not be able to put power on grid, so this wouldn't have any change other than what a grounding rod displays. Doesn't really matter. Logs machine explosions from zap_act. Not the most helpful log (would take a lot of effort to add an extra parameter to pass the source), but better than nothing. Probably other stuff I did, lol. ## Why It's Good For The Game Stops zap fuckery. Admins can now find the explosions when a 9GeV engine decides to go haywire or whatever. ## Changelog 🆑 fix: Fixes tesla zaps being weird. admin: Logs explosions from explosive zaps. /🆑 * [NO GBP]Fixes tesla zaps. --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> |
||
|
|
b2921af343 |
[MIRROR] Dehardcodes microwave cleaning, allows spray cleaner to work on dense objects such as windows [MDB IGNORE] (#24684)
* Dehardcodes microwave cleaning, allows spray cleaner to work on dense objects such as windows (#79354) ## About The Pull Request - Dehardcodes microwave cleaning - Instead of hard istyping for a rag, soap, or space cleaner, we just use `wash`. - Gets rid of a redundant signal - `COMSIG_ATOM_WASHED`: not only was it misleading (only sent to items), but it was pointless because `COMSIG_COMPONENT_CLEAN_ACT` is the same signal. - Improves microwave attackby code, splitting tool stuff into tool-procs - Allows spray cleaner to work on dense objects such as windows - Clicking on a dense object or mob adjacent to you with spray cleaner will spawn the puff cloud on the target, rather than on your own position. - This will skip the moveloop and just clean everything on the target turf alone. - This means you can spray down a bloody window with a spray bottle, as janitor gods intended. - It also means you can fill the spray with other stuff to spray onto dense objects directly, which might be worth noting. Especially for stuff like Napalm. Fixes #79261 ## Why It's Good For The Game Opens up the sandbox to allow more objects to clean microwaves + better code. ## Changelog 🆑 Melbert qol: Clicking on an adjacent dense object (or mob) with Spray Cleaner will now spritz it rather than doing nothing. This means you can use Spray Cleaner to clean bloodied windows, as the janitor gods intended. It also means you can fill a spray bottle with Napalm, I guess. refactor: Any cleaning object can now clean a microwave. /🆑 * Dehardcodes microwave cleaning, allows spray cleaner to work on dense objects such as windows --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
4dae17f5f9 |
[MIRROR] Spider Infestation Balance Rebalance Expansion Part 2 [MDB IGNORE] (#24678)
* Spider Infestation Balance Rebalance Expansion Part 2 (#78705) ## About The Pull Request Balances 1. Spiders now slow down equivalent to their health 2. Tarantulas can no longer put web passages or solid webs and destroy walls outside of charge attack 3. Young spiders now cant pull objects do to being too weak and become slower outside of webs as they should be 4. Makes pneumatic airlock seal unable to be destroyed by spiders 5. All Broodmother eggs now have a cooldown timer Normal Eggs: 20 seconds Abnormal Eggs: 180 Seconds Enriched Eggs: 60 seconds Expansions 1. Added a new abnormal egg category 2. Broodmothers can now lay abnormal eggs 3. 2 new spiders added 6. A new web type: Reflective silk screen # Breacher    - Low damaging with High wound bonuses meant to debilitate enemies to take ground for the nest - Has the ability to breach areas by destroying walls with menson vision to map out strategic breachings - Immune to harsh environments with the ability to lay solid webs to protect the nest environment - Can send in warnings for the entire nest to hear Will Help the nest get out of being closed off by small construction attempts and fix some space breaches plus some back up by making enemies slower and scarring them off with some bloodloss # Tank   - Extremely low damaging build to absorb damage to hold ground for the nest - With the ability to lay down silk screen reflectors to protect the nest from missile attacks - Can heal itself at a slow rate Will provide great support to keep the nest at bay from range attacks at some extent and act as a damage absorber in dier situations # Abnormal Eggs   - They can only be made once every 180 Seconds - Hold the two new spider types ## Why It's Good For The Game New spiders to contribute to the general spider antag team dynamic, balances for spiders are always good making them funner to play against and bringing up challenges on their gameplay making them act less like murdering simple mobs and more like an actual nest trying to survive in the station. How? 1. **Cooldown egg laying:** broodmothers now have to be more strategic on where they place their eggs with an average of 3 eggs per minute per broodmother 2. **Spider slowdown on damage:** Spiders now will become slower the longer they stay out of the nest in battle making them have to retreat back to the nest shortening their time out murdering giving incentives to expand the nest 3. **Spider More Brute Damage:** Gives a reason to use melee against spiders although more dangerous it gives more reward due to the higher damage outputs since spiders are pretty much big bugs with delicate bodies no bones no good structural consistency equal more damage to blunt attacks 4. **Tarantula Nerfs:** Tarantulas shouldnt be able to destroy this many walls at this rate and be able to lay so many defensive webs I don't know why they had this abilities but their strong enough as is ## Changelog 🆑 add: Added Abnormal Eggs add: Added Two new spiders del: Some Tarantula abilities balance: Spiders speed are now connected to health balance: Spiders now take more brute damage balance: All egg laying now has a cooldown /🆑 --------- Co-authored-by: Jacquerel <hnevard@ gmail.com> * Spider Infestation Balance Rebalance Expansion Part 2 --------- Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
ef625efcd1 |
[MIRROR] Add smoke particles to fireplace [MDB IGNORE] (#24581)
* Add smoke particles to fireplace (#79228) ## About The Pull Request Adds some smoke particles to the fireplace while it's burning. ## Why It's Good For The Game  ## Changelog 🆑 qol: Add smoke particles to burning fireplace /🆑 * Add smoke particles to fireplace --------- Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
4b4119e4b6 |
[MIRROR] New Muzzle Flash + Temperature gun Baking beam change [MDB IGNORE] (#24557)
* New Muzzle Flash + Temperature gun Baking beam change * Update _energy.dm --------- Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
8abecdc5db |
[MIRROR] gives bitrunner landmarks an icon [MDB IGNORE] (#24538)
* gives bitrunner landmarks an icon (#79182) ## About The Pull Request  ## Why It's Good For The Game visual clarity i guess ## Changelog only mapper facing * gives bitrunner landmarks an icon --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> |
||
|
|
b6da56408e |
[MIRROR] A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc [MDB IGNORE] (#24430)
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024) ## About The Pull Request - Refactored `bullet_act`. Adds `should_call_parent` and refactors associated children to support that. - Fixes silicons sparking off when hit by disabler fire. - Desnowflakes firing range target integrity and cleans up its bullet-hole code a bit. - Cleans up changeling tentacle code a fair bit and fixes it not taking off throw mode if you fail to catch something. - The Sleeping Carp deflection is now signalized - Nightmare projectile dodging is now signalized and sourced from the Nightmare's brain rather than species - Refactored how cardboard cutouts get knocked over to be less snowflaked / use integrity - Also adds projectile `on_hit` `should_call_parent` and cleans up a bit of that, particularly their arguments. - On hit arguments were passed wrong this entire time, it's a good thing nothing relied on that. ## Why It's Good For The Game This is cringe. https://github.com/tgstation/tgstation/blob/1863eb2cd82e7cee4fdfff37b42d3fd0c7edd797/code/modules/mob/living/carbon/human/_species.dm#L1430-L1442 Bullets should overall act more consistent across mob types and objects. ## Changelog 🆑 Melbert fix: Silicons don't spark when shot by disablers fix: Changelings who fail to catch something with a tencacle will have throw mode disabled automatically fix: Fixes occasions where you can reflect with Sleeping Carp when you shouldn't be able to fix: Fixes some projectiles causing like 20x less eye blur than they should be refactor: Refactored bullet-mob interactions refactor: Nightmare "shadow dodge" projectile ability is now sourced from their brain /🆑 * A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc * Modular changes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
1dd5011776 |
[MIRROR] Adds pathmaps, refactors pathfinding a bit [MDB IGNORE] (#24414)
* Adds pathmaps, refactors pathfinding a bit (#78684) ## About The Pull Request Implements /datum/pathfind/sssp, which generates /datum/path_map /datum/path_maps allow us to very efficently generate paths to any turf they contain from their central point. We're effectively running the single source shortest paths algorithm. We expand from the center turf, adding turfs as they're found, and then processing them in order of addition. As we go, we remember what turf "found" us first. Reversing this chain gives us the shortest possible path from the center turf to any turf in its range (or the inverse). This isn't all that useful on its own, outside of a few niche cases (Like if we wanted to get the farthest reachable turf from the center) but if we could reuse the map more then once, we'd be able to swarm to/from a point very easily. Reuse is a bit troublesome, reqiures a timeout system and a way to compare different movables trying to get paths. I've implemented it tho. I've refactored CanAStarPass to take a datum, /datum/can_pass_info. This is built from a movable and a list of access, and copies all the properties that would impact pathfinding over onto itself. There is one case where we don't do this, pathing over openspace requires checking if we'd fall through the openspace, and the proc for that takes an atom. So instead we use the weakref to the owner that we hold onto, and hold copies of all the values that would impact the check on the datum. When someone requests a swarmed path their pass info is compared with the pass info of all other path_maps centered on their target turf. If it matches and their requested timeout isn't too short, we just reuse the map. Timeout is a tricky thing because the longer a map exists the more out of date it gets. I've added a few age defines that let you modulate your level of risk here. We default to only allowing maps that are currently being generated, or finished generating in our tick. Hopefully this prevents falling into trouble, but consumers will need to allow "failed" movements. As a part of this datumized pass info, I've refactored pathfinding to use access lists, rather then id cards directly. This also avoids some dumbass harddel oppertunities, and prevents an idcard from changing mid path. Did a few things to the zPass procs, they took args that they did NOT need, and I thought it'd be better to yeet em. If you'd all like I could undo the caching/can_pass_info stuff if you'd all like. I think it's useful generally because it avoids stuff changing mid pathfind attempt, but if it's too clunky I could nuke it. Oh also I added optional args to jps that constricts how it handles diagonals. I've used this to fix bot paths. ## Why It's Good For The Game Much of this is redundant currently. I'm adding it because it could have saved hugglebippers, and because I get the feeling it'll be useful for "grouping" mobs like bees and such. We're doing more basic mob work currently and I want to provide extra tools for that work. https://github.com/tgstation/tgstation/assets/58055496/66aca1f9-c6e7-4173-9c38-c40516d6d853 ## Changelog 🆑 add: Adds swarmed pathfinding, trading accuracy for potential optimization of used correctly fix: Bots will no longer take diagonal paths, preventing weirdo looking path visuals refactor: Refactored bits of pathfinding code, hopefully easier to add new pathfinding strategies now /🆑 * Adds pathmaps, refactors pathfinding a bit --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
6e677a2bbd |
[MIRROR] Invisibility refactor [MDB IGNORE] (#24405)
* Invisibility refactor (#78908) This adds a tracker for sources of invisibility and a priority system. I needed this for another thing so I'm doing this first since it touches a lot of code. As for the bugs fixed in the changelog, it's only what I noticed while going through everything and there's likely a few more things fixed with this. This should be testmerged for a while, I'll bring this out of draft when it feels safe. 🆑 admin: Invisimin can now be used on mobs that are already invisible, whether through temporary or permanent effects. fix: Monkeyize/Humanize mob transformations no longer permanently reveal invisible mobs if they had effects making them invisible otherwise. fix: Objects with the undertile element that have been made invisible through other means are no longer revealed by being uncovered. /🆑 * Invisibility refactor --------- Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> |
||
|
|
e6d08225d2 |
[MIRROR] General code maintenance for rcd devices and their DEFINE file [MDB IGNORE] (#24300)
* General code maintenance for rcd devices and their DEFINE file * Update window.dm * Update window.dm * Update window.dm --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
981503afc6 |
[MIRROR] Microwave upgrades: Microwave PDA charging, power cells [MDB IGNORE] (#24283)
* Microwave upgrades: Microwave PDA charging, power cells * skyrat edit --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
ac45950aae |
[MIRROR] Flesh Spiders Regenerate + QoL [MDB IGNORE] (#24276)
* Flesh Spiders Regenerate + QoL (#78704) ## About The Pull Request Replaces the Healing Touch component on Changeling-spawned Flesh Spiders with the Regenerator component, as the comment helpfully suggests. Flesh Spiders can no longer touch themselves to heal, instead they automatically begin regenerating their health if they go four seconds without taking damage. It takes 6 seconds to fully regenerate, so 10 seconds to fully heal from the edge of death (less if you're not that injured).  Also I changed the sprite for flesh spider eggs to a different one we already had rather than regular spider eggs tinted red, just because I felt like it. Would be cool to give the spiders their own sprite some time, but that's for another PR.  _Additionally_ the flavour text for flesh spiders was kind of messed up by being shoved into the objectives box and claiming that it was a directive from a spider queen you don't have, so I gave them their own slightly different antag datum to compensate. It also actually mentions how you heal yourself, which previously was down to trial and error or codediving. In the course of doing this I decided to just... move flesh spiders to their own type path. It _sort of_ made sense for them to be part of the giant spider typepath, but they keep being modified by changes targetted at "balancing the Giant Spiders antagonist" which this mob isn't related to and doesn't have any reason to follow. The fact that a mob has similar stats to another one isn't automatically a reason to share a typepath, and now that I have looked a little at this mob I'm sort of interested in branching it further away from "it's a spider mob but spawned a different way" in the future. Finally, this spider egg cluster and the midwife one would prompt ghosts with a radial menu with a single option on it... that's a bit pointless, so we'll bypass that menu if there is only one possible outcome. ## Why It's Good For The Game Currently Flesh Spiders heal by clicking on themselves and standing still for two seconds, restoring 50% of their HP. This means they can fully regenerate over 4 seconds unless you stun them, and with 90 HP you're not _that_ likely to kill one during the channel time. This just feels like an odd way for the creature to operate, regenerating instead gives it a hit-and-run strategy and adds more use to their webs (maybe we should give them meatier or bloody webs at some point? Might be cool). Also clicking yourself to heal is just unintuitive and I suspect several players just didn't realise they could do it in the first place. ## Changelog 🆑 balance: Flesh Spiders heal automatically over time if they go a short time without taking damage, instead of healing large chunks by clicking themselves and waiting two seconds. qol: Spider egg clusters which only hatch into one kind of spider don't ask you to select that one type from a radial menu with one option on it. qol: As a Flesh Spider, the game now tells you how you can heal yourself. /🆑 * Flesh Spiders Regenerate + QoL --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
c8486617af |
[MIRROR] Spider Type Check Fix [MDB IGNORE] (#24184)
* Spider Type Check Fix (#78817) ## About The Pull Request Fixes bug, I am running out of gbp plz merge ## Why It's Good For The Game Fixes #78802 ## Changelog 🆑 fix: Spider types get properly checked again. /🆑 * Spider Type Check Fix --------- Co-authored-by: Comxy <tijntensen@gmail.com> |
||
|
|
897b7faab2 |
[MIRROR] Adds a passive scan to the Active Sonar module [MDB IGNORE] (#24117)
* Adds a passive scan to the Active Sonar module (#78734) ## About The Pull Request Adds a passive, radial scan to the Active Sonar module. This will scan a 1/8th slice around the player for any creatures, and place a much smaller marker over them for the player to see. These small markers do not update their location when the scanned creature moves, unlike the normal markers. Activating the module initiates the normal full scan, which scans the entire radius at once rather than just a slice. Doing so will put _both_ scans in cooldown. https://github.com/tgstation/tgstation/assets/66052067/96226090-fa32-42d5-99f4-a8dbdc36cf98 ## Why It's Good For The Game Honestly I still felt the Active Sonar was a little weak even after I tried to buff it a little. I wanted to initially find a way to make the large scan effects smoothly move with whoever you're following, but since I couldn't manage to figure that out instead I went with a recommendation from ninjanomnom to make a radial scan. I think this is far more interesting either way ## Changelog 🆑 Wallem add: Buffs the Active Sonar module with a radial scan, and makes the power costs more in-line with other modules. /🆑 * Adds a passive scan to the Active Sonar module --------- Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com> |
||
|
|
4d7c92c5d7 |
[MIRROR] Removes all spawn locations of the awakened plush except the bus ruin [MDB IGNORE] (#24033)
* Removes all spawn locations of the awakened plush except the bus ruin (#78559) It's supposed to be a coderbus easter egg, stop putting it elsewhere. I want it to stay rare enough that it confuses people when it makes it to the station. The secure closet had it on the loot table and due to how that's coded it has to have something replace the slot (or rework the loot spawning code there) so I put a live bomb in the slot instead. 🆑 ninjanomnom del: An easter egg plushie that was spawning where it shouldn't has been brought back home. add: The secure closet can now spawn live gibtonite, enjoy your free bomb. /🆑 * Removes all spawn locations of the awakened plush except the bus ruin --------- Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> |
||
|
|
58c20a99fb |
[MIRROR] Basic blob mobs [MDB IGNORE] (#23938)
* Basic blob mobs * Update blackmesa.dmm * Modular update --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
964fc99589 |
[MIRROR] Feature: bitrunner, a new supply role (READY) [MDB IGNORE] (#23865)
* Feature: bitrunner, a new supply role (READY) * Delete bepis.dm * Conflicts * Update dynamic_rulesets_midround.dm * Fixing this invalid icon file path It was trying to use the aesthetics one * Bepis is dead * New digi sprites courtesy of CandleJaxx!! Now in the correct branch! * Fixing merge conflict * bitrunning hotfixes [NO GBP] * Modular health adjustments * Revert "Modular health adjustments" This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86. * Modular health adjustments Only this one should be necessary * The screenshot test * Bitrunner den for voidraptor (FOR #23865) (#23891) * no shower in sight * lets bitrunners actually get to their room and spawn there * New digi sprites courtesy of CandleJaxx!! * Revert "New digi sprites courtesy of CandleJaxx!!" This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9. --------- Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> * Removes bitrunning unit tests (#78607) ## About The Pull Request Removes the fraction of unit tests I thought would be safe. Not thrilled that I have to exclude ALL unit tests now, but hey. The issue is that atmos attempts to process on a turf which hasn't initialized yet. ## Why It's Good For The Game Other PRs can pass checks now ## Changelog N/A * Update birdshot.dmm * Tweaks the BEPIS category of the bitrunning order console * Adds back the flashdark that we had skyrat edited in * Update tgstation.dme * Fixes Voidraptor bitrunning den not being connected to the powergrid --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com> Co-authored-by: Profakos <profakos@gmail.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com> |
||
|
|
37a8f73ae3 |
[MIRROR] Basic Legion & Hivelord [MDB IGNORE] (#23964)
* Basic Legion & Hivelord * Update modular + fix diffs * Fixing diffs * More diffs * Adds an AI behavior to replace the 'wander = 0' varedit for the hivelord gate guardians --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
f5eb6b48b8 |
[MIRROR] [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. [MDB IGNORE] (#23887)
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. (#78310) ## About The Pull Request Zap strength is now measured in joules. Scales everything to account for this. NT CIMS will now display the zap power transmission in watts, instead of a modifier. This will allow you to actually see how much power the supermatter is generating accurately, without knowledge of hidden multipliers. NT CIMs will also show the internal energy gain from heat in eV/K/s, so you can easily figure out how internal energy gain works, and how much energy gain it actually gives. The internal energy measurement will also adjust its prefix. Internal energy is now a measure of internal energy, rather than internal energy density, removing the "/cm^3". Here is what it looked like:  This image was created on an earlier commit where the numbers were wrong due to a hidden multiplier that got removed later, so keep that in mind. Also fixes inactive supermatters unnecessarily scaling delta time. The high energy (>5GeV) additional zaps now also scale with delta time. The code in this PR is absolute garbage trash and there are some major issues, so I'm drafting this for now. ## Why It's Good For The Game Makes it more clear what the factors add, and also how much power the SM is releasing. Zap strength being measured in joules will simplify a lot of things, making power balance more clear rather than guessimating. Adjusting the prefix for internal energy is just the natural thing to do. The per cubic centimeter part of internal energy would imply it is energy density, however it is functionally not. It would probably confuse people thinking the volume of the turf or the size of the supermatter actually matters for what the internal energy does, when it does not (except for gas absorption I guess, which changes heating/mol requirements, but nothing else), so I am removing that part. ## Changelog 🆑 qol: NT CIMs shows how much power the supermatter is releasing. qol: NT CIMs internal energy will adjust its prefix. qol: Energy displays (such as multitooling grid) will use the full range of SI prefixes available, up to the peta prefix if you somehow managed to reach that. del: Removes the per cubic centimeter part of internal energy. fix: Fix unnecessary delta time scaling on inactive supermatters. fix: Fix high energy zaps not scaling with delta time. fix: Fixes grounding rods lying about potential power you can generate. code: Convert supermatter_zap() and tesla_zap() zap_str argument unit to be in joules, and scales everything that uses that argument. /🆑 * [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. --------- Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com> |
||
|
|
54a00d6347 |
[MIRROR] adds crushed can, jelly doughnut, and shipping container random spawners [MDB IGNORE] (#23870)
* adds crushed can, jelly doughnut, and shipping container random spawners (#78444) ## About The Pull Request i got bored so i made some new spawners, mainly for mappers but maybe an admin will use them too. pics here:  firstly, this adds crushed can spawners, for if you want a random crushed can sprite in your map, and don't really care which it is. if you _do_ care, however - you can set the var/random_icon field on one of these to 0, in your copy of strongdmm. then just change the icon state to whatever specific can design you'd like it to be (ie: "wellcheers") here you can see a few of them in action  secondly, this adds doughnut, jelly doughnut, and slime jelly doughnut spawners - pictured below these use a weighted list based on flavor - more down to earth flavors are more common, while more interesting and unique flavors like bungo and blumpkin are a bit rarer.  thirdly, this adds a shipping container spawner. this one uses a weighted list so the super obvious syndi corps are rare, less obvious ones are less rare, and regular corporate ones are common. here you can see a few.  ## Why It's Good For The Game more flexibility for mappers, more dynamic spawns... what's not to love? ## Changelog 🆑 not player facing /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * adds crushed can, jelly doughnut, and shipping container random spawners --------- Co-authored-by: Lamb <110322848+CoiledLamb@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
3836aaad45 |
[MIRROR] basicmob clowns [MDB IGNORE] (#23867)
* basicmob clowns (#78448) ## About The Pull Request this is a mostly 1 to 1 port of simpleanimal clowns to basicmob clowns this means they have 1 more brain cell and they waddle https://github.com/tgstation/tgstation/assets/70376633/0c5f01c7-fea2-4d8c-9fc1-764c1557e1b8 ## Why It's Good For The Game  ## Changelog 🆑 refactor: clowns are basicmobs now /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> * basicmob clowns --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
7509292edd |
[MIRROR] Basic Mob Brimdemon [MDB IGNORE] (#23863)
* Basic Mob Brimdemon (#78424) ## About The Pull Request Fixes #71330 The brimdemon was basically already perfect (well, it has a novel means of attacking) so I didn't get too fancy with this one, it's _largely_ just a straightforward conversion. Following this change it's a little slower to back off, but better at lining up with people in order to blast them. Additionally, its beam is now a mob ability so you can give it to other mobs if you so desire. Because I can't help doing a _little_ tinkering, Brimdemons now explode 2.5 seconds after they die, after a brief warning animation. ## Why It's Good For The Game Simple mobs must die ## Changelog 🆑 add: Brimdemon corpses release an explosion shortly after death, just to keep you on your toes. refactor: Brimdemons now use the basic mob framework which (should) improve their pathfinding somewhat. Please bug report any unusual behaviour. admin: The brimdemon's beam ability can be given to any mob, for your Binding of Isaac event /🆑 * Basic Mob Brimdemon * Modular --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
b5f951d9c6 |
[MIRROR] seedling basic mobs [MDB IGNORE] (#23857)
* seedling basic mobs (#78224) ## About The Pull Request this is a mob that was removed from the game since years ago. this pr refactors them and readds them to the game. seedlings now can have different colored petals!  to obtain this monster, botany can now grow them out of 'seedling' seeds that they can find in the exotic seeds crate. this mob loves to help all plants and when its grown out of the seed, it will help the botanists look after their plants. it can water plants (if it finds a bucket), remove weeds and remove dead plants. they will also use their solarbeam ability to provide small healing to damaged plants. it will try to refill its bucket with water if there is a water source near by. it will also follow the orders of whoever harvested it.  traitors can buy a seed from the uplink that grows an evil version of the seedlings, they can command them to attack people and use abilities and to cause chaos on the station. ## Why It's Good For The Game refacotrs the seedlings into basic mobs ## Changelog 🆑 refactor: seedlings have been refactored into basic mobs please report any bugs add: seedlings now can have different colored petals and can look after botanys plants add: seedlings are re-added to the game! they grow out of seedling seeds obtainable from exotic seed crates or traitor uplink /🆑 * seedling basic mobs --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> |
||
|
|
d9624bdf97 |
[MIRROR] Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse [MDB IGNORE] (#23794)
* Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse * Update hilbertshotel.dm * Modular proc ref --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
06691fc603 |
[MIRROR] Converts vomit() to use bitflags [MDB IGNORE] (#23642)
* Converts `vomit()` to use bitflags * Update turf.dm * Modular * Modular fix * Update _hemophage_defines.dm --------- Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
55135555a0 |
[MIRROR] Nuclear Operative Jump Jets [MDB IGNORE] (#23659)
* Nuclear Operative Jump Jets (#78088) ## About The Pull Request This PR gives operative MODsuits access to "jump jets". This is an activated module (starts pinned) with a 30 second cooldown which removes your personal gravity for 5 seconds and (if possible) pushes you upwards by one z level. In combination with your regular jetpack this allows you to fly over gaps, and (most importantly) out of pits such as you may inadvertently find yourself wandering into on Icebox. I have a few other changes I want to make specifically targetted at the experience of Icebox station destruction causing people to fall several z levels and get trapped, but this is the first one. You have to stand still for 1 second to activate the jump jet. This is because jetpack movement without gravity is actually usually faster than an operative will walk, and I don't want them to just toggle it as a sprint button while running around. If people find other tactical uses for this though I think that's cool. This module currently isn't available to crew on the tech web, although maybe someone could add it later if they wanted to. It's not quite so useful if you don't _also_ have a jetpack though. I bumped the available complexity of the suits I attached it to up by the complexity cost of this module so it's not taking up previously available space. ## Why It's Good For The Game It's funny when the whole ops team falls in a hole after an explosion they caused and gets stuck in there fighting Snow Legions but they should probably have some method for dealing with that. It also lets them pop back up from the tram hole, a risky proposition because any flying mob hit by the tram dies almost instantly. ## Changelog 🆑 add: Operative MODsuits now have an attached "jump jet" which sends you upwards and allows you to use your jetpack under gravity for a few seconds, perfect for navigating the pits and valleys of Icebox Station. /🆑 * Nuclear Operative Jump Jets --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
2c5c5fa46e |
[MIRROR] Desouls Hivelord [MDB IGNORE] (#23609)
* Desouls Hivelord (#78213) ## About The Pull Request  Replaces the sprite of the hivelord with a new one, in my continuing quest to annihilate the old asteroid mob sprites. A (never completed) asteroid mob resprite was actually my first PR, this one is my 200th. I am also planning on fucking with basic mob versions of these mobs some time but the sprites can be atomised out. In addition to replacing the old-ass MSPaint sprites, this PR also adds a short death animation effect to the hivelord brood (from hivelords or legions) which looks nicer than them just vanishing instantly upon death. Look at this video for an example of the animation: https://www.youtube.com/watch?v=cKaskN5-y2A ## Why It's Good For The Game Looks nicer. ## Changelog 🆑 image: Hivelords have a new sprite. image: Hivelord and Legion brood have a death animation. /🆑 * Desouls Hivelord --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
5f829cffac |
[MIRROR] Medical/roller beds [MDB IGNORE] (#23520)
* Medical/roller beds * medical beds * Update ninja_den.dmm * medicell --------- Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> |
||
|
|
87bfa7a61a |
[MIRROR] Fixes typo 'transfered', olive oil reaction repath [MDB IGNORE] (#23469)
* Fixes typo 'transfered', olive oil reaction repath * Modular * Update condiment.dm * Update recipes_guide.dm * Update _cup.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
f0b265b6bb |
[MIRROR] Foodening [MDB IGNORE] (#23440)
* Foodening * Update chem_dispenser.dm * Juicening? * Update big_mortar.dm * Adds crafting complexities to modular foods * Olive oil repath * Cooking oil repath --------- Co-authored-by: Andrew <mt.forspam@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |