mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-25 16:45:42 +00:00
fc4646eeb93aedfeb48c40d489d528c58bb1183a
2176 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
002051a3d5 |
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.** ## Video Summary Click the link below to see a video summary of the main features of this pull request. https://youtu.be/Aho2omR0mjY?feature=shared ## About The Pull Request 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. ### Ore Vents 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 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. ### Boulder Processing 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 Borg Tweaks 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 Mech Tweaks 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. ### Golem Tweaks 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. ### Gulag Tweaks 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. ### Mining Point Changes 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. ### Rarities 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. ### Misc notes - 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** ## Why It's Good For The Game 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 #78346 ), we can make ore processing more meaningful by adding more 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. ## Changelog 🆑 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: 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> |
||
|
|
279904e079 |
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 /🆑 |
||
|
|
af4fddfbd2 |
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). /🆑 |
||
|
|
e0cb22e913 |
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 /🆑 |
||
|
|
8077108012 |
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 /🆑 |
||
|
|
cdaa1d29a4 |
A "postal workers strike" negative station trait. (can be positive) (#80213)
## About The Pull Request Added a negative station trait, which blocks the mail like it's sunday or a official holiday. However! If it's actually sunday or a official holiday, when the mail would be normally blocked already, instead it'll unblock it. It was done this way because it's easier (station traits are loaded before the events and economy subsystems are initialized) and cooler. ## Why It's Good For The Game Granted there are quite a few station traits around cargo already, features interacting with other features is honestly a good thing. ## Changelog 🆑 add: Added a "postal workers strike" negative station trait. In the case of holidays and sunday though, it'll be a "postal system overtime" instead. /🆑 --------- Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
908d6f1a2b |
Better Ghost Selection (#80283)
## About The Pull Request Revived my old PR https://github.com/tgstation/tgstation/pull/68901 Replaces the annoying tgui alert popup "Do you want to be X? | Yes | No | Never for this round" that is hard to read and steals window focus, with a nice clean alert in the top right that counts down. If it's the same event/mob they stack with 2x, 3x, etc. It also shows how many candidates/ghosts are signed up. The poll alerts have screentips too, they countdown and show if you're signed up, how many people are signed up, if you chose "never for this round" (which is cancelable) ## Why It's Good For The Game  Way easier to see what role is available, you get a nice pic of the role and get it's name in big text, you can cancel "never for this round", and you can cancel signing up for a role before the timer is up ## Changelog 🆑 refactor: Ghost roles now offer ghosts a clickable poll button. Ghosts can select a role, deselect it, alt-click it for "Never For This Round", can cancel "Never", can see the countdown, and can see how many other people are signed up for the role poll. /🆑 |
||
|
|
f03084c1ca |
FOV is Dead (Long Live FOV) (#80062)
## About The Pull Request FOV as it is currently implemented is incompatible* with wallening. I'm doin wallening, so we gotta redo things here. The issue is the masking of mobs. Wallening relies on sidemap (layering based off physical position), which only works on things on the same plane (because planes are basically sheets we render down onto) So rather then masking mobs, let's reuse the masking idea from old fov, and use it to cut out a bit of the game render plane, and blur/over-saturate the bit that's masked out. My hope is this makes things visible in light, but not as much in darkness, alongside making more vivid shit more easily seen (just like real life) Here's some videos, what follows after is the commits I care about (since I had to rip a bunch of planes to nothing, so the files changed tab might be a bit of a mess) Oh also I had to remove the darkness pref since the darkness is doing a lot of the heavy lifting now. I'm sorry. Edit: NEW FOV SPRITES! Thanks dongle your aviator glasses will guide us to a better future. https://github.com/tgstation/tgstation/assets/58055496/afa9eeb8-8b7b-4364-b0c0-7ac8070b5609 https://github.com/tgstation/tgstation/assets/58055496/0eff040c-8bf1-47e4-a4f3-dac56fb2ccc8 ## Commits I Care About [Implements something like fov, but without the planes as layers hell]( |
||
|
|
3f2ebd858f |
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> |
||
|
|
71a1fee2f1 |
Explodes device.dmi (#80025)
## About The Pull Request I woke up today and thought 'what would be easy thing to do today so I can say I've done something?'. Then I remembered I saw several gangtool usages the time I split radio up, and I could remedy those. 7 hours later, device.dmi is split in a folder of its own, and I've also given unique sprites to door remotes and landing desginators. ## Why It's Good For The Game The device.dmi was kind of a mess. ## Changelog 🆑 /🆑 |
||
|
|
bb781627ab |
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. |
||
|
|
5a905d8680 |
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 /🆑 |
||
|
|
4b4ada0339 |
Slime type datum, and cleans up slime related code (#79852)
## About The Pull Request I have decided to help out with basic mobbing slimes, and found out, that this code is ancient and crusty. So I have decided to refactor and tweak things bit but but, until the moment I will hit AI related stuff. I might have gone a bit overboard, and performed a melange of fixes. I have done the following in order: - Slime colour, core type and mutation list are now held by a single `slime_type datum`. This means the slime's core is no longer spawned using text operations on the slime's colour, and the slime's mutation is no longer a single large switch statement that returns an exactly four element length array. Icons are still based on the slime's colour define, but that is now more changeable. - Autodocced all the slime procs and vars I could find, while also renamed them to be more descriptive. Also made Booleans actual booleans. Also added code to confused code segments. For example, did you know that slimes would forgive all its stacks of Feeling Very Attack Right Now, if it has exactly one level of Discipline? I didn't, and I almost turned the 1 in the check into a TRUE before I had a second look. - Added defines to the slime hunger checks - Cleaned up a lot of single letter vars in all code that referenced the now changed variables. - Large amount of if-chain pyramids have been turned into early returns. More readable. - Made the xenobiology camera shortcuts and actions always do the same thing, though the action buttons still loop through all of the conents. In addition, after seeing a comment lamenting about varied load orders, I have made autolinking the monkey recycler is now done in LateInitialize, which didn't exist when it was made. - I have included an UpdatePath that changes the colours of premapped slimes, but I did not do anything for the other values. - I noticed slimes were unable to attack pacifist humans, due to trait checking the human instead of the attacking slime. This has been fixed. - The slime scanner has an examine block, and it now describes your slimes' "mutation attempt chance", instead of like, performing math in case the slime's current colour is one of the mutations, or hiding it if it has none. This value is needed to breed rainbow slimes. This has been an extremely large scrubbing. I am willing to try rip it up into smaller chunks, even if most of it is just single letter vars and if pyramids. ## Why It's Good For The Game If code is more readable and expandable, it will aid in further refactors. ## Changelog 🆑 refactor: Slimes's colour, core type and mutation list is now held in a slime type datum code: Slime's variables have been documented, and renamed a bit to add clarity. Please report bugs that might stem from renaming. fix: Slimes are not longer prevented from attacking pacifist humans. qol: Slime scans now display the actual amount of genetic instability, instead of hiding it if a slime doesn't mutate further, or tweaking it if it might mutate back into itself. This will make it easier to parse which slime to breed further to get a rainbow slime. /🆑 |
||
|
|
c1ed62915b |
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> |
||
|
|
7a1b1fa9ad |
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> |
||
|
|
2893b7fb97 | TGUI for Safes and Secure briefcases (Safes are now a structure, too) (#79594) | ||
|
|
73d108025f |
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. /🆑 |
||
|
|
8ec6e075de |
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. /🆑 |
||
|
|
c889ec58bd |
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 /🆑 |
||
|
|
aebebc824e |
[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 /🆑 |
||
|
|
15e2aa056d |
[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. /🆑 |
||
|
|
04b6aad3a9 |
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. /🆑 |
||
|
|
34e488acf5 |
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> |
||
|
|
8f18b0bd8a |
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 /🆑 |
||
|
|
28559aa7fc |
New Muzzle Flash + Temperature gun Baking beam change (#79212)
## About The Pull Request Now there are new muzzle flash sprites for the guns. There are 3 types: **BALLISTICS** https://github.com/tgstation/tgstation/assets/42353186/82d7b285-fcf0-4780-8479-143691641e0a **BLUE** https://github.com/tgstation/tgstation/assets/42353186/331c926d-8556-4715-ab61-9a4998dd93d2 **RED** https://github.com/tgstation/tgstation/assets/42353186/c814646d-6d56-4426-bde7-b7a7a06caa39 Also, now temperature gun "BAKE" mode beams have different sprites from the "FREEZE" beams: https://github.com/tgstation/tgstation/assets/42353186/c78363ac-ad04-4534-9323-dc13ba017823 ## Why It's Good For The Game Muzzle flashes were one of the most oldest effect sprites in the base, and are rather bad and bland looking. This makes them more good-looking. Also gives variety, previously there only been Ballistic and Energy one, and they weren't even different. Temperature gun "BAKE" mode beam having a different colour will help distinguish what the hell you're being shot with. ## Changelog 🆑 image: Muzzle flashes got a new sprite, each direction included! image: Temperature Gun "BAKE" beams are now lava colored /🆑 |
||
|
|
f4befe63e3 |
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 |
||
|
|
93ec5a72f7 |
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.
|
||
|
|
2532911353 |
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 /🆑 |
||
|
|
96d7e9c690 |
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. /🆑 |
||
|
|
66f726dfe3 |
General code maintenance for rcd devices and their DEFINE file (#78443)
## About The Pull Request The changes made can be best summarized into points **1. Cleans up `code/_DEFINES/construction.dm`** Looking at the top comment of this file |
||
|
|
c2fb08407a |
Microwave upgrades: Microwave PDA charging, power cells (#78717)
## About The Pull Request For the hard-working tradesperson who's in the middle of nowhere and just wants to warm up their pastry-based savoury item purchased from an overpriced vending machine, introduces the engineer themed wireless microwave. No more going hungry in a pinch, this variant uses changeable power cells instead of APC power. Can be built normally or printed with a furnishings-upgraded RCD. The other upgrade now available: PDA charging. Upgrade the capacitors in the microwave to add a Charge mode for your portable device! Also cleans up microwave code a bit and adds much needed context hints for when it's broken, dirty, etc. Swaps a few break room microwaves to upgraded variants on mapload, adds a microwave/donks to Birdshot, donks to Tramstation. ## Why It's Good For The Game Slap together a semi-portable microwave with your components on hand, have an engineering picnic in space or wherever else the day takes you. With increased PDA drain, adding another option to charge your PDA in common areas is useful. Microwaves are already strategically placed around the station. Please ensure the model you're using has the charging feature before operating.   ## Changelog 🆑 LT3 add: Introducing Nanotrasen Wave! A Nanotrasen exclusive, Waveallows your PDA to be charged wirelessly through microwave frequencies. You can Wave-charge your device by placing it inside a compatible microwave and selecting the charge mode. add: Microwaves can be upgraded to add wireless charging add: Cell-swappable microwave for the engineer on-the-go add: Microwave now has a wire to swap charge/cook modes add: Furnishings RCD upgrade now includes wireless microwave add: Tramstation and Birdshot engineering break rooms now have microwave and donk pockets. Some microwaves come pre-equipped with wireless charging and an upgraded cell. fix: The microwave in the snowdin ruin is now real, not a fluff prop /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
3e554bdab3 |
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. /🆑 |
||
|
|
924ceedeaf |
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. /🆑 |
||
|
|
f62015cf5c |
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. /🆑 |
||
|
|
e8d12b29fe |
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. /🆑 |
||
|
|
f861532d24 | Basic Legion & Hivelord (#78624) | ||
|
|
517d33e6f0 |
Basic blob mobs (#78520)
## About The Pull Request I remembered today that blob code is ass, especially blob spores. There's still a lot to improve but I cleaned up _some_ of it by converting these mobs. Now they use a newer framework and more signal handling as compared to circular references. I _expect_ the behaviour here to largely be the same as it was or similar. I haven't added anything fancy or new. This is a reasonably big PR but at least all of the files are small? Everything here touched every other thing enough that it didnt make sense to split up sorry. Other things I did in code: - Experimented with replacing the `mob/blob` subtype with a component. Don't know if this is genius or stupid. - AI subtree which just walks somewhere. We've used this behaviour a lot but never given it its own subtree. - Blob Spores and Zombies are two different mobs now instead of being one mob which just changes every single one of its properties. - Made a few living defence procs call super, because the only thing super does was send a signal and we weren't doing that for no reason. Also added a couple extra signals for intercepts we did not have. ## Changelog 🆑 fix: Blob spores will respond to rallies more reliably (it won't runtime every time they try and pathfind). fix: Blobbernaut pain animation overlays should align with the direction the mob is facing instead of always facing South refactor: Blob spores, zombies, and blobbernauts now all use the basic mob framework. They should work the same, but please report any issues. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> |
||
|
|
64cbbdbf2c |
[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. /🆑 |
||
|
|
c570c96ebb |
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> |
||
|
|
5db7992b09 |
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> |
||
|
|
a3849062b8 |
Feature: bitrunner, a new supply role (READY) (#77259)
## About The Pull Request [Design doc](https://hackmd.io/@shadowh4nd/r1P7atPjn) Adds a new supply role centered on short dungeon-esque runs with a focus on unifying the job with the fun part. Some virtual domains are combat related, some are silly, some focus on "objectives". Avatar health is linked to your physical presence and retries are limited. <details> <summary>Photos, WIP</summary> Net pod stasis  Server loaded  Server cooldown  the quantum console UI  Cyber police antag page  A safehouse  Domain info page, every domain gets this (and sometimes help text)  Me getting steamrolled in one of the missions  Ghost roles getting notified that server is kicking them out  Players enjoying the new combat missions  Players exploring some of the virtual maps  (Not part of the PR, but)  New bitrunner vendor  </details> ## Why It's Good For The Game Content, firstly, and moreso being supply department content. The framework that this implements is a great (preauthorized) replacement for two systems which are collecting dust: BEPIS and the gateway. They integrate into this system and it's a direct upgrade. This adds a way for the players on station to generate materials (if that remains). The nice part about it is that I can throw balance and believability to the wind, as unlike its unrelated predecessor VR or away missions, bitrunning entirely washes its hands of the map and mobs each reboot. It offers a very expandable map framework to add content and it's all fairly well documented. I'd like to add a feature that represents the idea that jobs don't have to be mundane and "external" jobs can stay tied to the main gameplay loop. ## Changelog jlsnow301, kinneb, mmmiracles, ical92, spockye 🆑 add: Adds Bitrunning to supply department- a semi-offstation role that rewards teamwork. add: Adds new machines to complement the job- net pod, quantum server, quantum consoles, and the nexacache vendor. add: Adds several new maps which can be loaded and unloaded at will. add: Some flair for the new bitrunning vendor. add: Adds a new antagonist for the virtual domain only. Short lived ghost role that fights bitrunners. del: Removes the BEPIS machine, moves its tech into the Bitrunning vendor. /🆑 <!-- Both 🆑's are required for the changelog to work! You can put your name to the right of the first 🆑 if you want to overwrite your GitHub username as author ingame. --> <!-- You can use multiple of the same prefix (they're only used for the icon ingame) and delete the unneeded ones. Despite some of the tags, changelogs should generally represent how a player might be affected by the changes rather than a summary of the PR's contents. --> --------- Co-authored-by: MMMiracles <lolaccount1@hotmail.com> Co-authored-by: Ical <wolfsgamingtips@gmail.com> Co-authored-by: spockye <79304582+spockye@users.noreply.github.com> Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> |
||
|
|
b2ecd81be4 |
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 /🆑 |
||
|
|
0976420f2f |
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 /🆑 |
||
|
|
1b96345e44 |
Multi-Z Support for Lazy Templates | Cleans up some turf flag misuse (#77786)
## About The Pull Request Adds multi-z support for lazy templates Also fixes some improper use and placement for turf flags ## Why It's Good For The Game Shadow needs/wants this for bit runner maps. Turf flags are also why lava has been generating in places it shouldnt. (inside of ruins) ## Changelog 🆑 fix: Lava can no longer occasionally generate inside of previously loaded templates and breach and/or destroy shit /🆑 --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
172f65989e |
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. /🆑 |
||
|
|
a7060641bb |
Converts vomit() to use bitflags (#78191)
## About The Pull Request Having seven trillion boolean arguments isn't kino nor poggerchampion, let's adjust it so we use a define flag-based system that works really nice. I also cleaned up a lot of jank and stuff that simply just never was meant to work. We also had sprites for nanite vomit, but this was completely unused! Since we still have an interaction where you're meant to throw up nanites, I added that it so it could be leveraged. Neato. ## Why It's Good For The Game Much easier to pass in the right args or special args to a high-profile proc. ## Changelog 🆑 image: When you throw up nanites, your vomit should now be appropriately nanite-colored. /🆑 Let me know if I glonked anything. --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
ed10226825 |
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. /🆑 |
||
|
|
3594c3d1fb |
Medical/roller beds (#78078)
## About The Pull Request 'medical beds' in the game were just varedited survival pod beds. This creates a proper medical bed subtype plus its own sprite for regular and roller beds. Cleans up little bits of the bed code and adds context helpers. - Medical/roller bed is now constructable with titanium and plastic after research - Bed will face the correct direction when pulled - Movable beds can have 'brakes' toggled with alt-click   ## Why It's Good For The Game Medical gets their own bed, new sprites, cleans up varedits on maps. ## Changelog 🆑 LT3 image: New medical bed and emergency roller bed code: Added context hints for beds /🆑 --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
69f51c6c65 |
Fixes typo 'transfered', olive oil reaction repath (#78064)
## About The Pull Request Transferred. ## Why It's Good For The Game How did this get to be in 71 files?! This bothers me. Also changes 'quality_oil' typepath in the reactions to 'olive_oil' to match its rename post-foodening. ## Changelog N/A |
||
|
|
b1c5e5e0f6 | Foodening (#77887) |