mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-13 19:22:20 +00:00
c080b83c41c5a6fb30eb519449e8365200b51ee4
310 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
613581897e |
/obj/item/clothing/head/mob_holder -> /obj/item/mob_holder (#91893)
## About The Pull Request title ## Why It's Good For The Game it inherits a lot of behavior from clothing which leads to lots of bugs when it isn't actually clothes, for example: shredded overlays. this should be better. probably fixes a bunch of bugs ## Changelog 🆑 code: mob holders are no longer subtypes of clothes, report any issues /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
5261efb67f |
Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request Melee attack chain now has a list passed along with it, `attack_modifiers`, which you can stick force modifiers to change the resulting attack This is basically a soft implementation of damage packets until a more definitive pr, but one that only applies to item attack chain, and not unarmed attacks. This change was done to facilitate a baton refactor - batons no longer hack together their own attack chain, and are now integrated straight into the real attack chain. This refactor itself was done because batons don't send any attack signals, which has been annoying in the past (for swing combat). ## Changelog 🆑 Melbert refactor: Batons have been refactored again. Baton stuns now properly count as an attack, when before it was a nothing. Report any oddities, particularly in regards to harmbatonning vs normal batonning. refactor: The method of adjusting item damage mid-attack has been refactored - some affected items include the Nullblade and knives. Report any strange happenings with damage numbers. refactor: A few objects have been moved to the new interaction chain - records consoles, mawed crucible, alien weeds and space vines, hedges, restaurant portals, and some mobs - to name a few. fix: Spears only deal bonus damage against secure lockers, not all closet types (including crates) /🆑 |
||
|
|
339616ae78 |
You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request People can now pet held mothroaches and pugs if they want to, or use items on them, hopefully without causing many issues. After all, it only took about a couple dozen lines of code to make... ...Oh, did the 527 files changed or the 850~ lines added/removed perhaps catch your eye? Made you wonder if I accidentally pushed the wrong branch? or skewed something up big time? Well, nuh uh. I just happen to be fed up with the melee attack chain still using stringized params instead of an array/list. It was frankly revolting to see how I'd have had to otherwise call `list2params` for what I'm trying to accomplish here, and make this PR another tessera to the immense stupidity of our attack chain procs calling `params2list` over and over and over instead of just using that one call instance from `ClickOn` as an argument. It's 2025, honey, wake up! I also tried to replace some of those single letter vars/args but there are just way too many of them. ## Why It's Good For The Game Improving old code. And I want to be able to pet mobroaches while holding them too. ## Changelog 🆑 qol: You can now interact with held mobs in more ways beside wearing them. /🆑 |
||
|
|
4c2a76ede3 |
Fix a large number of typos (#89254)
Fixes a very large number of typos. A few of these fixes also extend to variable names, but only the really egregious ones like "concious". |
||
|
|
a7eb32b7cc |
cleans up holodeck map templates + prevents the holodeck from overloading due to lag (#88792)
## About The Pull Request removes unused holodeck template vars prevents the holodeck from overloading if process is fired during loading ## Why It's Good For The Game unused var bad holodeck shouldnt detonate if the server lags ## Changelog 🆑 fix: holodeck no longer explodes if the server lags while its loading a new sim /🆑 |
||
|
|
fcadec240a |
Fix holodeck computer using wrong power settings (#88568)
## About The Pull Request The holodeck computer has a complex power formula since it calculates the power requirements based on the choosen simulation and items inside. One apparent problem that I discovered through testing is that when the holodeck computer is idle or using the offline program it is drawing power as if it was active... This is not supposed to happen. Let's see what the code documentation says for reference: ``` //Power use /// dont use power #define NO_POWER_USE 0 /// use idle_power_usage i.e. the power needed just to keep the machine on #define IDLE_POWER_USE 1 /// use active_power_usage i.e. the power the machine consumes to perform a specific task #define ACTIVE_POWER_USE 2 ///Base global power consumption for idling machines #define BASE_MACHINE_IDLE_CONSUMPTION (100 WATTS) ///Base global power consumption for active machines. The unit is ambiguous (joules or watts) depending on the use case for dynamic users. #define BASE_MACHINE_ACTIVE_CONSUMPTION (BASE_MACHINE_IDLE_CONSUMPTION * 10) ///see code/__DEFINES/machines.dm var/use_power = IDLE_POWER_USE ///the amount of static power load this machine adds to its area's power_usage list when use_power = IDLE_POWER_USE var/idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION ///the amount of static power load this machine adds to its area's power_usage list when use_power = ACTIVE_POWER_USE var/active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION ///the current amount of static power usage this machine is taking from its area var/static_power_usage = 0 ``` If the machine isn't in use it should be using `IDLE_POWER_USE` when it is not active. So in our case, we have it offline but it is still using `ACTIVE_POWER_USE` draining more power than it should. There was also some misc edge case where if you are near the computer and you change the simulation, it wouldn't update the power correctly since having the UI of a computer active did not allow the power to properly reset to the simulation or offline mode. Anyway here is how it looks fixed. If you are ever checking power vars, the ones you need to pay attention to are here:  CC @SmArtKar Hopefully this is a sufficient enough explanation. If you really need me to I can record a video of the before and after effects. ## Why It's Good For The Game Holodeck computer does not drain power when it is offline mode. Instead it uses the correct idle amount which is significantly reduced. This is how all machines behave. Due to holodeck having unique power calculations it was bugged. ## Changelog 🆑 fix: Fix holodeck computer using wrong power settings and not updating properly /🆑 |
||
|
|
dd0893569c |
Holodeck grammar tweak (#88566)
## About The Pull Request
Apparently adding a tiny coffee machine worth of power to make this
accurate:
`to_chat(user, span_warning("You vastly increase projector power and
override the safety and security protocols."))`
was too much. So let's just do a grammar tweak to fix it.
Is
## Why It's Good For The Game
Accurate descriptions.
## Changelog
🆑
spellcheck: Fix holodeck emag message claiming to increase power
/🆑
|
||
|
|
980d8e421b |
Add human organ crate to emergency medical holodeck simulation (#88195)
## About The Pull Request This adds a crate to medical holodeck sim with a full set of human organs inside a freezer containing: - heart - lungs - eyes - ears - tongue - liver - stomach - appendix ##### (And yes, a holodeck organ can fade away while it's still inside someone causing them to suffer organ loss) ## Why It's Good For The Game Immersion. ## Changelog 🆑 add: Add medical human organ crate emergency medical holodeck simulation /🆑 |
||
|
|
9a9b428b61 |
Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
|
||
|
|
1880003270 |
Reworks silicon/ai access checking & fixes some ui_act's (#84964)
## About The Pull Request Currently to check for Silicon access, we do: ``if is silicon or is admin ghost or has unlimited silicon privileges or has machine remote in hand`` What has unlimited silicon privileges? Bots, Drones, and admin ghosts. To check for AI access, it just checks for AI instead of silicon, and doesnt check for unlimited silicon privileges. This was kinda silly, so I thought I should make this a little easier to understand. Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or ``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost, since now instead of being a var on the client, we moved it to using the same trait but giving it to the client instead, but since we have to keep parity with previous functionality (admins can spawn in and not have this on, it only works while as a ghost), I kept previous checks as well. No more type checks, removes a silly var on the mob level and another on the client. Now while I was doing this, I found a lot of tgui's ``ui_act`` still uses ``usr`` and the wrong args, so I fixed those wherever I saw them, and used a mass replace for the args. Other changes: - machinery's ``ui_act`` from https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin ghosts no longer get kicked off things not on cameras. This was my fault, I overlooked this when adding Human AI. - Human AI's wand gives AI control as long as it's in your hand, you can swap to your offhand. I hope this doesn't end up going horribly, otherwise I'll revert this part. It should let human AIs not have their UI closed on them when swapping to eat food or use their door wand or whatnot. - Bots previously had special checks to scan reagents and be unobservant, I replaced this with giving them the trait. I also fixed an instance of unobservant not being used, so now statues don't affect the basic creature, whatever that is. ## Why It's Good For The Game This is an easier to understand way of handling silicon access and makes these mobs more consistent between eachother. Other than what I've mentioned above, this should have no impact on gameplay itself. ## Changelog 🆑 fix: Statues don't count as eyes to creatures. fix: Human AIs and Admin ghosts no longer get kicked off of machines that aren't on cameranets. /🆑 |
||
|
|
4b4e9dff1d |
Wallening [IDB IGNORE] [MDB IGNORE] (#85491)
## What's going on here Kept you waitin huh! This pr resprites most all walls, windows and other "wall adjacent" things to a 3/4th perspective, technical term is "tall" walls (we are very smart). If you're trying to understand the technical details here, much of the "rendering tech" is built off the idea of split-vis. Basically, split a sprite up and render it on adjacent turfs, to prevent seeing "through" walls/doors, and to support seeing "edges" without actually seeing the atom itself. Most of the rest of it is pipelining done to accommodate how icons are cut. ## Path To Merge Almost* all sprites and code is done at this point. There are some things missing both on and off the bounty list, but that will be the case forever unless we force upstream (you guys) to stop adding new shit that doesn't fit the style. I plan on accepting and integrating prs to the current working repo <https://github.com/wall-nerds/wallening> up until a merge, to make contribution simpler and allow things like bounties to close out more easily This pr is quite bulky, even stripping away map changes it's maybe 7000 LOC (We have a few maps that were modified with UpdatePaths, I am also tentatively pring our test map, for future use.) This may inhibit proper review, although that is part of why I am willing to make it despite my perfectionism. Apologies in advance. Due to the perspective shift, a lot of mapping work is going to need to be done at some point. This comes in varying levels of priority. Many wallmounts are offset by hand, some are stuck in the wall/basically cannot be placed on the east/west/north edges of walls (posters), some just don't look great good in their current position. Tests are currently a minor bit yorked, I thought it was more important to get this up then to clean them fully. ## What does it look like?       ## Credits <details> <summary>Historical Mumbojumbo</summary> I am gonna do my best to document how this project came to be. I am operating off third party info and half remembered details, so if I'm wrong please yell at me. This project started sometime in late 2020, as a product of Rohesie trying to integrate and make easier work from Mojave Sun (A recently defunct fallout server) with /tg/. Mojave Sun (Apparently this was LITERALLY JUST infrared baron, that man is insane) was working with tall walls, IE walls that are 48px tall instead of the normal 32. This was I THINK done based off a technical prototype from aao7 proving A it was possible and B it didn't look like dogwater. This alongside oranges begging the art team for 3/4th walls (he meant TGMC style) lead to Rohesie bringing on contributors from general /tg/, including actionninja who would eventually take over as technical lead and Kryson, who would define /tg/'s version of the artstyle. Much of the formative aspects of this project are their work. The project was coming along pretty well for a few months, but ran into serious technical issues with `SIDE_MAP`, a byond map_format that allows for simpler 3/4th rendering. Due to BULLSHIT I will not detail here, the map format caused issues both at random with flickering and heavily with multiz. Concurrent with this, action stepped down after hacking out the rendering tech and starting work on an icon cutter that would allow for simpler icon generation, leaving ninjanomnom to manage the project. Some time passed, and the project stalled out due to the technical issues. Eventually I built a test case for the issues we had with `SIDE_MAP` and convinced lummox jr (byond's developer) to explain how the fuckin thing actually worked. This understanding made the project theoretically possible, but did not resolve the problems with multi-z. Resolving those required a full rework of how rendering like, worked. I (alongside tattle) took over project development from ninjanomnom at this time, and started work on Plane Cube (#69115), which when finished would finally make the project technically feasible. The time between then and now has been slow, progressive work. Many many artists and technical folks have dumped their time into this (as you can see from the credits). I will get into this more below but I would like to explicitly thank (in no particular order) tattle, draco, arcanemusic, actionninja, imaginos, viro and kylerace for keeping the project alive in this time period. I would have curled up into a ball and died if I had to do this all myself, your help has been indispensable. </details> <details> <summary>Detailed Credits</summary> Deep apologies if I have forgotten someone (I am sure I have, if someone is you please contact me). I've done my best to collate from the git log/my memory. Thanks to (In no particular order): Raccoff: Being funny to bully, creating threshold decals for airlocks aa07: (I think) inspiring the project ActionNinja: Laying the technical rock we build off, supporting me despite byond trying to kill him, building the icon cutter that makes this possible ArcaneMusic: Artistic and technical work spanning from the project's start to literally today, being a constant of motivation and positivity. I can't list all the stuff he's done Armhulen: Key rendering work (he's the reason thindows render right), an upbeat personality and a kick in the ass. Love you arm Azlan: Damn cool sprites, consistently Ben10Omintrix: You know ben showed up just to make basic mobs work, he's just fuckin like that man BigBimmer: A large amount of bounty work, alongside just like, throwing shit around. An absolute joy to work with Capsandi: Plaques, blastdoors, artistic work early on CapybaraExtravagante: Rendering work on wall frames Draco: SO MUCH STUFF. Much of the spritework done over the past two years is his, constantly engaged and will take on anything. I would have given up if not for you Floyd: Early rendering work, so early I don't even know the details. Enjoy freedom brother Imaginos16: A guiding hand through the middle years, handled much of the sprite review and contribution for a good bit there Iamgoofball: A dedication to detail and aesthetic goals, spends a lot of effort dissecting feedback with a focus on making things as good as they can be at the jump Infrared: Part of the impetus for the project, made all the xenomorph stuff in the MS style Jacquerel: A bunch of little upkeep/technical things, has done so much sprite gruntwork (WHY ARE THERE SO MANY PAINTING TYPES) Justice12354: Solved a bunch of error sprites (and worked out how to actually make prs to the project) Thanks bro! Kryson: Built the artstyle of the project, carrying on for years even when it was technically dying, only stopping to casually beat cancer. So much of our style and art is Kryson KylerAce: Handled annoying technical stuff for me, built window frame logic and fully got rid of grilles. LemonInTheDark: Rendering dirtywork, project management and just so much fucking time in dreammaker editing sprites Meyhazah: Table buttons, brass windows and alll the old style doors Mothblocks: Has provided constant support, gave me a deadline and motivation, erased worries about "it not being done", gave just SO much money to fill in the critical holes in sprites. Thanks moth MTandi: Contributed art despite his own blackjack and hookers club opening right down the road, I'm sorry I rolled over some of your sprites man I wish we had finished earlier Ninjanomnomnom: Consulted on gags issues, kept things alive through some truly shit times oranges: This is his fault Rohesie: Organized the effort, did much of the initial like, proof of concept stuff. I hope you're doin well whatever you're up to. san7890: Consulting on mapper UX/design problems, being my pet mapper Senefi: Offsetting items with a focus on detail/the more unused canidates SimplyLogan: Detailed map work and mapper feedback, personally very kind even if we end up talking past each other sometimes. Thank you! SpaceSmithers: Just like, random mapping support out of nowhere, and bein a straight up cool dude Tattle: A bunch of misc project management stuff, organizing the discord, managing the test server, dealing with all the mapping bullshit for me, being my backup in case of bus. I know you think you didn't do much but your presence and work have been a great help Thunder12345: Came out of nowhere and just so much of the random bounties, I'm kind of upset about how much we paid him Time-Green: I hooked him in by fucking with stuff he made and now he's just doin shit, thanks for helping out man! Twaticus: Provided artistic feedback and authority for my poor feeble coder brain, believed in the project for YEARS, was a constant source of ❤️ and affirmation unit0016: I have no god damn idea who she is, popped out of nowhere on the github one day and dealt with a bunch of annoying rendering/refactoring. Godspeed random furry thank you for all your effort and issue reports Viro: A bunch of detailed spriting moving towards 3/4ths, both on and off the wallening fork. If anyone believed this project would be done, it was viro Wallem: Artistic review and consultation, was my go-to guy for a long time when the other two spritetainers were inactive Waltermeldon: Cracked out a bunch of rendering work, he's the reason windows look like not dogwater. Alongside floyd and action spent a TON of time speaking to lummox/unearthing how byond rendering worked trying to make this thing happen ZephyrTFA: Added directional airlock helpers, dealt with a big fuckin bugaboo that was living in my brain like it was nothing. Love you brother And finally: The Mojave Sun development team. They provided a testbed for the idea, committed hundreds and hundreds of hours to the artstyle, and were a large reason we caught issues early enough to meaningfully deal with them. Your work is a testament to what longterm effort and deep detailed care produce. I hope you're doing well whatever you're up to. Go out with a bang! </details> ## Changelog 🆑 Raccoff, aa07, ActionNinja, ArcaneMusic, Armhulen, Azlan, Ben10Omintrix, BigBimmer, Capsandi, CapybaraExtravagante, Draco, Floyd, Iamgoofball, Imaginos16, Infrared, Jacquerel, Justice12354, Kryson, KylerAce, LemonInTheDark, Meyhazah, Mothblocks, MTandi, Ninjanomnom, oranges, Rohesie, Runi-c, san7890, Senefi, SimplyLogan, SomeAngryMiner, SpaceSmithers, Tattle, Thunder12345, Time-Green, Twaticus, unit0016, Viro, Waltermeldon, ZephyrTFA with thanks to the Mojave Sun team! add: Resprites or offsets almost all "tall" objects in the game to match a 3/4ths perspective add: Bunch of rendering mumbo jumbo to make said 3/4ths perspective work /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: = <stewartareid@outlook.com> Co-authored-by: Capsandi <dansullycc@gmail.com> Co-authored-by: ArcaneMusic <hero12290@aol.com> Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com> Co-authored-by: SomeAngryMiner <53237389+SomeAngryMiner@users.noreply.github.com> Co-authored-by: KylerAce <kylerlumpkin1@gmail.com> 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: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Runi-c <5150427+Runi-c@users.noreply.github.com> Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com> Co-authored-by: tattle <article.disaster@gmail.com> Co-authored-by: Senefi <20830349+Peliex@users.noreply.github.com> Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com> Co-authored-by: BluBerry016 <50649185+unit0016@users.noreply.github.com> Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com> Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com> Co-authored-by: Rob Bailey <github@criticalaction.net> Co-authored-by: MMMiracles <lolaccount1@hotmail.com> |
||
|
|
0b8972917a |
Makes set_basalt_light local (#85134)
## About The Pull Request - Converts set_basalt_light() from a global proc to an object proc - Adds defines for basalt light levels to ensure consistency across real and fake basalt turfs - Replaces non local usage of set_basalt_light with switches that utilize the light defines ## Why It's Good For The Game Global namespace should be reserved for things that truly need it. This isn't one of them. Helps reduces global namespace pollution. Tested it and confirmed it works on all turfs that were modified ## Changelog 🆑 refactor: refactored global set_basalt_light proc into object proc /🆑 |
||
|
|
b6c84135c3 |
Refactors embedding to use datums instead of storing data in bespoke elements (#84599)
## About The Pull Request This refactors embedding elements to make them use singleton datums (similarly to armor) instead being bespoke and creating a new element every time armor values are supposed to be adjusted. Default values have been removed from defines due to now being declared in base class itself. Additionally fixes vending machines and tackling gloves setting generated shards (which they instantly embed into their victim) embed properties to null after running the embedding code, despite said shards having non-null embedding values by default, making them not be able to embed into anyone else, also potentially breaking the pain/jostling code if they somehow get updated. ## Why It's Good For The Game Current embedding system is an unnecessarily complicated mess as bespoke elements are hard to work with, and creating a new element every time you change values is hacky at best. This change should make it easier to read and work with. ## Changelog 🆑 fix: Fixed glass shards generated from falling vending machines or tackling windows not being able to embed into anyone. refactor: Refactored embedding code to use datums instead of bespoke elements and ugly associated lists. /🆑 |
||
|
|
e90a9b4b68 |
Flattens The Floor Plane (Camera Update Too) (#84350)
## About The Pull Request Ok so like, side map right? It makes things higher up in the world render above things lower down in the world. Most of the time this is what we want, but it is NOT what we want for floors. Floors are allowed to be larger then 32x32, and if they are we want them to render based off JUST their layer. If we don't allow this grass turfs and others get cut off on their bottom edge, which looks WEIRD. In order to make this happen, we can add TOPDOWN_LAYER to every layer on the floor plane and disable sidemap. I've added documentation for this to VISUALS.md, and have also implemented unit test errors to prevent mixing TOPDOWN layers with non topdown planes (or vis versa). This new test adds ~1 second to tests, which is I think a perfectly scrumpulent number. EDIT: I nerd sniped myself and implemented sidemap layering and lighting for cameras (also larger then 32x32 icon support for getflat) The lighting isn't perfect, we don't handle things displaying in the void all that well (I am convinced getflat blending is broken but I have no debugger so I can't fix it properly), but it'll do. This came up cause I had to fix another layering issue in cameras and thought I might as well go all in.  ## Why It's Good For The Game Old:  New:  ## Changelog 🆑 fix: Grass turfs will render properly now. Reworked how floors render, please report any bugs! fix: Cameras now properly capture lighting fix: The layering seen in photos should better match the actual game /🆑 |
||
|
|
7d1e9e1c0a |
Implements Cardinal Smoothing Support, Misc Smoothing Cleanup (#84402)
## About The Pull Request [Implements a new cardinal only bitmask smoothing mode]( |
||
|
|
4aa7bae77a |
Moves tool use back higher in the chain, but makes it so tool acts are only called on non-combat-mode (#84083)
## About The Pull Request ### Dilemma So we've been running into a dilemma recently as we move more and more items over (#84070, #83910) Some things like modsuits, tables, washing machines, storage items want to do their tool acts before their item interactions In the past this was perfectly fine, because it was `tool_act` -> `attack`, but now it's a problem, because it's `item_interaction` -> `tool_act` -> `attack`. Rather than resort to snowflaking, my idea is that we can move tools back up the chain so deconstruction and other similar effects are handled first, before anything else like putting the tool onto the table. ### So why does it require non-combat-mode? A large amount of tool acts early return if the user's on combat mode to allow the user to smack the thing instead of using the tool on it. So I've decided to walk back on what I said like a week ago and make this standardized behavior. ### Misc Reintroducing `tool_act` as a proc that exist means that atoms can easily hook certain interactions that must happen very high in the click chain, such as doing something that block storage insertion. Moves some of the behaviors I put on the (admittedly rather hacky) new proc to that. (Also cleaned up a bit of lockbox and medbot code) ## Changelog 🆑 Melbert fix: Fixed modsuit interactions slightly. No longer requires combat mode to use tools on it, plasma core works as intended as well. (Using combat mode, however, will make you insert the item) refactor: Refactored lockboxes refactor: Refactored medbot skin application /🆑 |
||
|
|
6d80956db1 |
Holodeck closet & crate items are marked as holograms (#84326)
## About The Pull Request - Fixes #83834 - Fixes #74765 When a holographic closet/crate is opened for the 1st time all their items are marked as holograms & get deleted when the simulation is changed ## Changelog 🆑 fix: Holodeck closet & crate items are marked as holograms as well fix: Holodeck closet & crate items delete themselves when the program is changed /🆑 |
||
|
|
f484c9ac87 |
Fix holodecks using infinitely increasing power (#83529)
## About The Pull Request `update_mode_power_usage` updates the power usage variables for a machine, so using that variable as the baseline in calculating new power consumption, means that those calculations stack infinitely. When this comes up elsewhere, the calculations are based off the *initial* value, so this updates holodecks and holopads to use that logic. ## Why It's Good For The Game why are the chess players using 1.3 megawatts turn off the tv please ## Changelog 🆑 Fluffles fix: holodecks no longer use increasing amounts of power the longer they're on /🆑 |
||
|
|
d280c9ccce | Makes it EVEN EASIER to work with atom item interactions ft. "Leaf and Branch" & "Death to Chains" (#82625) | ||
|
|
227cdd2c7c |
[NO GBP] Patches & renaming for NO_DECONSTRUCTION flag (#82547)
## About The Pull Request 1. Renames `NO_DECONSTRUCTION` -> `NO_DEBRIS_AFTER_DECONSTRUCTION`. As the name suggests when the object is deconstructed it won't drop any items/debris. After my last refactor for this flag it now serves a new purpose so its name has been changed to match that 2. Fixes objects that are now using `NO_DECONSTRUCTION` incorrectly. Some of these changes include - Removing the flag in objects where there are no means to deconstruct them (e.g. jukebox, hydroponics soil, flora etc) - Replacing the flags old purpose by overriding its tool procs so that it regains its old behaviour(e.g. You once again cannot deconstruct ctf reinforced tables, survival pods, indestructible windows etc) ## Changelog 🆑 code: renamed `NO_DECONSTRUCTION` to `NO_DEBRIS_AFTER_DECONSTRUCTION` so its name matches its intended purpose fix: fixes some items that incorrectly used `NO_DECONSTRUCTION` prior to its refactor, meaning makes some objects non deconstructable again /🆑 |
||
|
|
fa31403353 |
LateInitialize is not allowed to call parent anymore (#82540)
## About The Pull Request I've seen a few cases in the past where LateInitialize is done cause of the init return value being set to do so for no real reason, I thought I should try to avoid that by ensuring LateInitialize isn't ever called without overriding. This fixes a ton of machine's LateInitialize not calling parent (mechpad, door buttons, message monitor, a lot of tram machines, abductor console, holodeck computer & disposal bin), avoiding having to set itself up to be connected to power. If they were intended to not connect to power, they should be using ``NO_POWER_USE`` instead. Also removes a ton of returns to LateInit when it's already getting it from parent regardless (many cases of that in machine code). ## Why It's Good For The Game I think this is better for coding standard reasons as well as just making sure we're not calling this proc on things that does absolutely nothing with them. A machine not using power can be seen evidently not using power with ``NO_POWER_USE``, not so much if it's LateInitialize not calling parent. ## Changelog 🆑 fix: Mech pads, door buttons, message monitors, tram machines, abductor consoles & holodeck computers now use power. /🆑 |
||
|
|
9723b4b317 |
Replaces even more deciseconds with SECONDS (#82438)
## About The Pull Request
Using these search regexes:
Ending in 0:
`addtimer\((.*),\s?(\d{1,3})0\b\)`
replacement:
`addtimer($1, $2 SECONDS)`
Two digit ending in odd:
`addtimer\((.*), (\d)([1-9])\)$`
replacement:
`addtimer($1, $2.$3 SECONDS)`
Single digit ending odd:
`addtimer\((.*), ([1-9])\)$`
replacement:
`addtimer($1, 0.$2 SECONDS)`
## Why It's Good For The Game
Code readability
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
|
||
|
|
6dc40ca522 |
Standardizes object deconstruction throughout the codebase. (#82280)
## About The Pull Request When it comes to deconstructing an object we have `proc/deconstruct()` & `NO_DECONSTRUCT` Lets talk about the flag first. **Problems with `NO_DECONSTRUCTION`** I know what the comment says on what it should do |
||
|
|
c1f11f26ce |
Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579)
## About The Pull Request Removes all arbitrary energy and power units in the codebase. Everything is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you are going to multiply by time. This is a visible change, where all arbitrary energy units you see in the game will get proper prefixed units of energy. With power cells being converted to the joule, charging one joule of a power cell will require one joule of energy. The grid will now store energy, instead of power. When an energy usage is described as using the watt, a power to energy conversion based on the relevant subsystem's timing (usually multiplying by seconds_per_tick or applying power_to_energy()) is needed before adding or removing from the grid. Power usages that are described as the watt is really anything you would scale by time before applying the load. If it's described as a joule, no time conversion is needed. Players will still read the grid as power, having no visible change. Machines that dynamically use power with the use_power() proc will directly drain from the grid (and apc cell if there isn't enough) instead of just tallying it up on the dynamic power usages for the area. This should be more robust at conserving energy as the surplus is updated on the go, preventing charging cells from nothing. APCs no longer consume power for the dynamic power usage channels. APCs will consume power for static power usages. Because static power usages are added up without checking surplus, static power consumption will be applied before any machine processes. This will give a more truthful surplus for dynamic power consumers. APCs will display how much power it is using for charging the cell. APC cell charging applies power in its own channel, which gets added up to the total. This will prevent invisible power usage you see when looking at the power monitoring console. After testing in MetaStation, I found roundstart power consumption to be around 406kW after all APCs get fully charged. During the roundstart APC charge rush, the power consumption can get as high as over 2MW (up to 25kW per roundstart APC charging) as long as there's that much available. Because of the absurd potential power consumption of charging APCs near roundstart, I have changed how APCs decide to charge. APCs will now charge only after all other machines have processed in the machines processing subsystem. This will make sure APC charging won't disrupt machines taking from the grid, and should stop APCs getting their power drained due to others demanding too much power while charging. I have removed the delays for APC charging too, so they start charging immediately whenever there's excess power. It also stops them turning red when a small amount of cell gets drained (airlocks opening and shit during APC charge rush), as they immediately become fully charged (unless too much energy got drained somehow) before changing icon. Engineering SMES now start at 100% charge instead of 75%. I noticed cells were draining earlier than usual after these changes, so I am making them start maxed to try and combat that. These changes will fix all conservation of energy issues relating to charging powercells. ## Why It's Good For The Game Closes #73438 Closes #75789 Closes #80634 Closes #82031 Makes it much easier to interface with the power system in the codebase. It's more intuitive. Removes a bunch of conservation of energy issues, making energy and power much more meaningful. It will help the simulation remain immersive as players won't encounter energy duplication so easily. Arbitrary energy units getting replaced with the joule will also tell people more meaningful information when reading it. APC charging will feel more snappy. ## Changelog 🆑 fix: Fixes conservation of energy issues relating to charging powercells. qol: APCs will display how much power they are using to charge their cell. This is accounted for in the power monitoring console. qol: All arbitrary power cell energy units you see are replaced with prefixed joules. balance: As a consequence of the conservation of energy issues getting fixed, the power consumption for charging cells is now very significant. balance: APCs only use surplus power from the grid after every machine processes when charging, preventing APCs from causing others to discharge while charging. balance: Engineering SMES start at max charge to combat the increased energy loss due to conservation of energy fixes. /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
3f44c2d816 |
Removes holographic monkey species (#81606)
## About The Pull Request Split this off from https://github.com/tgstation/tgstation/pull/81598 in hopes to keep it as atomic as I can. Genericizes the things that holographic monkey species existed to replace, so now we don't have to worry about having to copy paste this to any future mob later down the line. ## Why It's Good For The Game Removes a monkey species subtype, and a pretty bad one at that. Preferably makes hologram mobs more consistent with eachother and prevents copy paste happening everywhere in the future if any new mobs ever gets added to the holodeck. ## Changelog 🆑 refactor: Holographic mobs now gives better feedback to players and should more consistently not give any drops. /🆑 |
||
|
|
8703eac50d |
split area.contained_turfs up by zlevel, make init 10 seconds faster (#80941)
## About The Pull Request Situation: areas have a list of all turfs in their area. Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs that has to be traversed for every turf we need to remove from it. This can take multiple byond ticks just to preform this action for a single space rune Solution: split the list by zlevel, and only search the right zlevel list when removing turfs from areas. replaces `area.get_contained_turfs()` with a few new procs: * `get_highest_zlevel()` - returns the highest zlevel the area contains turfs in. useful for use with `get_turfs_by_zlevel` * `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in a given zlevel. Useful for code that only cares about a specific zlevel or changes behavior based on zlevel like lighting init. * `get_turfs_from_all_zlevels()` - the replacement for `get_contained_turfs()`, renamed as such so anybody copying/cargo culting code gets a hint that a zlevel specific version might exist. Still used in for loops that type checked so byond would do that all at once * `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists but only for non-empty zlevels. very useful for for loops. The area contents unit test has been rewritten to ensure any improper data triggers failures or runtimes by not having it use the helpers above (some of which ensure a list is always returned) and access the lists directly. |
||
|
|
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 /🆑 |
||
|
|
1016f62661 |
Fixes holodeck monkeys gibbing (#80660)
Holodeck takes apart all hologram atoms, blindly. This breaks a lot, but most notably people. I've also went and given monkeys organs again, which were removed in #79068. This broke incredibly hard, because monkeys can't live without DNA or organs (who would've thought) Fixes #80369, #79184 🆑 fix: Holodeck monkeys are properly cleaned up now fix: Holodeck monkeys have organs now /🆑 Look they're so happy and wont gib on deload  --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
1e76fd70b4 |
Attack chain refactoring: Broadening tool_act into item_interact, moving some item interactions to... atom/item_interact / item/interact_with_atom (#79968)
## About The Pull Request Implements half of this (with some minor changes):  The ultimate goal of this is to split our attack chain in two: - One for non-combat item interactions - Health analyzer scanning - using tools on stuff - surgery - Niche other interactions - One for combat attacking - Item hit thing, item deal damage. - Special effects on attack would go here. This PR begins this by broadining tool act into item interact. Item interact is a catch-all proc ran at the beginning of attack chain, before `pre_attack` and such, that handles the first part of the chain. This allows us to easily catch item interaction and cancel the attack part of the chain by using deliberate bitflag return values, rather than `TRUE` / `FALSE`*. *Because right now, `TRUE` = `cancel attack`, no matter what, which is unclear to people. Instead of moving as much as possible to the new proc in this PR, I started by doing some easy, obvious things. More things can be moved in the future, or technically they don't even need to move in a lot of cases. ## Changelog 🆑 Melbert refactor: Refactored some methods of items interacting with other objects or mobs, such as surgery and health analzyers. Report if anything seems wrong /🆑 |
||
|
|
5ce9d5806d |
Scopes NODECONSTRUCT_1 from flags_1 to obj_flags (#80104)
This flag only worked on the `/obj/structure` and `/obj/machinery` level, so let's rescope it from `flags_1` and put it where it belongs - `obj_flags`. Bitflag operators should be scoped to their subtype specific bitfield, not really useful to have this take up a spot on the `/atom` level if absolutely nothing other than `/obj`s use it. |
||
|
|
ce6f2724cd |
basic cats and mini kitchen helpers (#79800)
## About The Pull Request this pr transforms cats into basic pets! cats now have some new behavior. they can carry fish and hunted mice in their mouths to deliver it to kittens, and kittens will eat them.   if a kitten sees you holding food, it will point at you and meow loudly until u give it the food. becareful when putting male cats near each other, there is a small chance they get into a heated argument and meow loudly at each other until one of them flees. also added a new small cat house for cats. cats will use these homes if u build one near them (using 5 wood planks)  Chefs can craft the cake cat and breadcat. these are useful cats because they can help the chef around in the kitchen. they will turn stoves and grills off when food is ready, so they dont burn. and the cake cat will help the chef decorate his donuts ## Why It's Good For The Game refactors cats into basic mobs and gives them a deeper ai ## Changelog 🆑 refactor: cats are now basic pets. please report any bugs. add: the cake cat and bread cat can now help the chef around in the kitchen /🆑 |
||
|
|
a5f26ce473 |
Turns Holodeck Monkeys into actual Monkeys (#79068)
## About The Pull Request Old holodeck monkeys weren't even a subtype of simple animal monkeys, so this really just got swept under the floor in the sweeping monkey species refactors. Anyways, let's just spin up a quick species datum+mob subtype that will have all the traits we wanted from old holodeck monkeys (no meat, no organs, etc.) but reaping all of the benefits of modern monkeys (better AI, etc.) ## Why It's Good For The Game One more refactor done, very simple too. l'm not the greatest at carbon code so let me know if something is wack, but I'm fond of the way everything turned out (especially since I don't have to spam seven billion subtypes of every organ and bodypart). If you're concerned about the cost keep in mind people can spam monkeys through cubes, having a max of three more (that are virtually useless) via the holodeck will not kill us. Also the fact that slimes could eat holodeck monkeys irked me so I also touched that up. I swore there was something for it in the code but I was mistaken, it's codified now. ## Changelog 🆑 refactor: Holodeck monkeys have been moved to the same system as old monkeys, and should retain the similar "ephermeal" behavior, while being a whole lot smarter by leveraging new AI. Please report anything that is completely wack about this. balance: Slimes can't eat holodeck monkeys anymore, because apparently they could and that is wack. /🆑 again let me know if my carbon/bodyparts code sucks. it does the job fwiw |
||
|
|
cf5c1fa08c | Basic Space Dragon (#78979) | ||
|
|
15efbf64a5 |
Grand Ritual Finale: An end to death (#78497)
## About The Pull Request Adds a new Wizard Ritual Finale effect which makes everything immortal. By this I mean, 10 seconds after death a ghostly image of them will appear somewhere near where the corpse was and then 50 seconds after that the mob will return to life at that location. This applies to every mob, everywhere. This is likely to cause a little bit of disruption to the rest of the round, so you can only do it after at least 30 minutes have passed. After that the crew will have to figure out how to deal with their new gift of immortality. It will involve throwing people into chasms and lava, probably.  Here's a gif sped up for example purposes. You can escape from the cycle of death and rebirth via suicide, purely because it's pointless to try and force people to play the video game if they don't want to. Also I split all of these effects into their own files, the only new code for those is in `immortality.dm` shout out to Vekter for distracting Oranges while I posted this wizard-related PR so I didn't get disapprovingly reacted for posting magic shit (yet) ## Why It's Good For The Game This might be _too_ much but I want to see what would happen. It will allow us to simulate whether polite society can survive when violence has no consequences. ## Changelog 🆑 add: Wizards who complete the grand ritual can now gift everyone with eternal life /🆑 |
||
|
|
fc4de530ce |
reorganizes the human sprite folder and replaces the human_basic sprite with an updated one (#77323)
instead of mob/species/human the icon folders are now mob/human/species, this makes much more sense imo than having human stuff like hair or bodyparts (which are a GENERAL thing, not human species only) be behind a folder while you see shit like podperson hair and golem in the main folder the icon for human is replaced by the new sprites instead of the old yellow guy with green eyes |
||
|
|
d9c8bd9bae |
[READY] Fishing and aquarium expansion. (#76531)
Listing the changes, off the top of my head: - Resprited fishing rods, hooks, and the worm bait! - Added a new, telescopic fishing rod, that can be bought as a goodie. The master rod is also telescopic now. - Added a couple hooks. One that lets you move the bait up and down, otherwise keeping it in place, and another that stops the fish from escaping, but slowly kills it. The former from the bepis fishing tech node, the latter frm the black market. - Added a fishing skill and relative legendary reward: A fishing hat, like the one that recites "women fear me, fish fear me" - You can now stop fishing by activating the fishing rod in your hand, and stops it from stealing all clicks on other things if it isn't in your active hand. - Reworked fishing traits into fish traits, which can apply to fish after it has been caught. - Expanded the fish breeding system. Traits may be passed down to offsprings, and offsprings may evolve (mutate?) into different kind of fishes if conditions when conditions are met. - Added half a dozen new fishes, each with its own traits: lubefish, sludgefish (and its purple variant), slimefish, unmarine bonemass and unmarine mastodon. Also, holodeck fish, as a joke. - New traits: lubed skin, parthenogenesis, toxic (new reagent), toxin immunity, predator, necrophage, no mating, crossbreeder, aggressive and revival. Converted Emulsijack's ability and Donkfish's yuckiness into traits as well. - Added a fish analyzer that you can scan aquariums and fishes with. - Fish can now be blended if you really want to. The number of reagents from blending, w_class, and the number of fillets you get from cutting fish now scale with size and weight. - fish feed is no longer infinite (but it should still be plenty). - Implemented temperature requirements for aquarium fish. - You can now buy (dead) fish from the black market for dirt cheap. - Last but now least, toilets are now valid fishing spots. |
||
|
|
d9677e39be |
Converting crabs to basic mobs (#77109)
## About The Pull Request Exactly what it reads on the tin. As a bonus, they will flee from attacking targets, hunt tiny critters (crabs are now small-sized) and actually move sideways (it's an element that covers both client and basic movement) ## Why It's Good For The Game Another simple to basic mob refactor. ## Changelog 🆑 refactor: Crabs refactored into basic mobs. They now hunt tiny critters and flee from attackers. fix: Fixed crabs not crab-walking. /🆑 |
||
|
|
43737e0b4b |
made the bee a basic insect (#76971)
## About The Pull Request the bee now a baisc insect he will now go to find his home and he will go and pollinated the plants and helped the queen make children by polliniting the plants and he will. the queen will leve the hive more rarely than the normal bees so she can stay in the hive to make kids ## Why It's Good For The Game the bee now is a basic insect so it means he have a better ai ## Changelog 🆑 balance: the bee now can fly over the machines so its easy for him to go to the hydroponics machine fix: player bees now will not be stuck inside the hive if he entered it, they can now leave it fix: fixed a har deleted when the hive is deleted all the bees still have a refence to the hive now its fixed fix: now when a player interacted with the bee hive the bees will now leave the hive to defend the hive (it was glitched) refactor: the bees now are a basic insect. /🆑 |
||
|
|
b06e940341 |
makes the pinguin a basic animal (#76790)
## About The Pull Request the penguin now is a basic animal and also now he can go and layed penguin eggs to make penguin babys also the baby have a new behavier he will now go and looked for his mom and when he found his mom he will went to her and be happy when he close to his mom or if he mom is died he will went to her body and he will be sad and also i putted this behavier in the baby chicken. also now the pinguen mom will go and looked for her eggs and when she find a egg she will putted it in the middile of her legs and walked with it  ## Why It's Good For The Game the pinguen now is a advance ai ## Changelog the pinguen now have a more advance 🆑 refactor: the penguin is a basic animal add: the penguin now layed eggs add: the penguin and the chicken babys will go look for adult penguin or chicken and be happy when he is near the adult /🆑 |
||
|
|
ccf547c142 |
Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts (#76669)
## About The Pull Request New malf AI upgrade Remote safety overrides: Mid-cost, Mid-supply. Allows the AI to remotely emag things it can see and can access. 1. Very useful for psychological warfare (Emagging APCs to throw the crew off their trail) 2. Logically makes sense - why, of all things, can the AI not emag anything when it's fundumentally integrated with the station's electronics? 3. Generally speaking can only access things that make sense for it to access - it cannot emag ethereals, sadly In order for this to work, emag_act now returns a boolean, designating if the emag had any effect. While I was in there, I also added args to every single emag_act I could find and added far more feedback/converted a lot of things to balloon alerts to allow the AI to see if its emag had any effect. ## Why It's Good For The Game It just makes sense that the AI, the most electronically-sensitive entity in the game, would be able to emag things. Plus, more options given to malf that aren't strictly MURDER KILL MURDER are always a plus, especially if they allow for fancier plays. ## Changelog 🆑 add: New malf ability: Remote safety overrides. Allows the AI to remotely emag things it has access to. code: emag_act() now returns a boolean designating it's success in emagging code: All instances of emag_act() now have the proper arguments qol: Most usecases of emagging now have some kind of feedback, and existing feedback has been sanity checked and converted to balloon alerts. /🆑 |
||
|
|
fb10121022 |
Icons folder cleaning wave two (#76788)
## About The Pull Request Further continous organizing and cleaning the Icons folder. There are still some minior nitpicks left to do, but I reached my daily sanity expenses limit again, and the faster these get in the less issues for both me and others later. Also cleans some mess I caused by my blindness last PR. ## Why It's Good For The Game Saner spriters = better sprites |
||
|
|
bfe3f19d53 |
Allows uniforms to have multiple accessories attached, removes armor from accessories (#76629)
## About The Pull Request  - Multiple accessories can now be pinned to one jumpsuit. - All accessories are shown on examine, but only the first is shown on-mob. - Under-clothing code cleanup. - Removed armor from all accessories. - Halved the mood given from Hope to accommodate the fact that it can now stack with others. - Generalizes dogtags. Now dogtags will show their string on examine_more if examining the mob wearing it, so you can see the contents of someone's Allergy Dogtag without removing their clothes. ## Why It's Good For The Game Accessories are a surprisingly contentious slot for something supposed to be entirely cosmetic, so I've decided to address that. This turns accessories into almost entirely cosmetic, with some minor effects like mood boosts or pen storage. People will no longer have to choose between showing off a pride pen or getting a medal from the HoP, or between wearing sick lavaland drip items, while also letting us stretch our legs a bit without worrying about clothing balance. ## Changelog 🆑 Melbert add: You can now wear multiple accessories on your uniform at once (up to five by default) balance: Removed armor from accessories, and nerfs the effects of some accessories. /🆑 |
||
|
|
a490fbe8dc |
Converts foxes to basic mobs. (#76662)
## About The Pull Request As the title says, foxes are now basic mobs. Foxes have a few new behaviors now, rather than the zero behaviors they had before. Foxes, being very skittish animals, will flee from anything that damages them. Additionally, they now have hunting behavior, tracking down and killing anything of their size or smaller - regardless of faction. They will not, however, hunt as long as someone is watching them - which is to say, if any living humans are within 7 tiles of them. Don't leave a fox and a chicken together while you're transporting your grain to Lavaland! Also, make sure you don't leave Renault and Ian on their play date unsupervised...  ## Why It's Good For The Game Gets rid of another simple animal. We grow ever closer to ascension. Also, makes foxes a little more interesting rather than simply another animal that does literally nothing. Renault will now flee from anyone trying to kill her, for instance. Also opens up unique avenues of pet murder if you want to make it look like an accident. ## Changelog 🆑 refactor: Foxes are more crafty now. They will run from danger, and hunt small prey when no one is keeping an eye on them. Don't leave Renault alone with Ian! /🆑 |
||
|
|
7380769c9c |
Removes the infinite, super cold hypernoblium from the Winter Wonderland holodeck setting (#75941)
## About The Pull Request Removes the infinite, super cold hypernoblium from the Winter Wonderland holodeck setting. How did it get there? ## Why It's Good For The Game This is absolutely a mistake. It allows infinite harvest of a rare gas in insane quantities and can (extremely easily, mind) destroy the entire station's air by making it the minimum possible temp. (Genuinely, how did this get into the game?) ## Changelog 🆑 Licks-the-Crystal fix: Removes the infinite hypernoblium from the holodeck's Winter Wonderland setting. /🆑 |
||
|
|
ae5a4f955d |
Pulls apart the vestiges of components still hanging onto signals (#75914)
## About The Pull Request Signals were initially only usable with component listeners, which while no longer the case has lead to outdated documentation, names, and a similar location in code. This pr pulls the two apart. Partially because mso thinks we should, but also because they really aren't directly linked anymore, and having them in this midstate just confuses people. [Renames comp_lookup to listen_lookup, since that's what it does]( |
||
|
|
6676702008 |
Refactors chicks into basic mobs (#75663)
## About The Pull Request On the tin. They have pretty much nothing in common with chickens, so no subtyping. They are in the same folder to keep that whole thing tidy, though. Also includes fixes to `growth_and_differentiation` element that I made for spiderlings, since some stuff was yorked without me realizing. It pretty much worked flawlessly for these chicks otherwise though. It all works fine now. ## Why It's Good For The Game More verbose naming scheme (instead of "holo", we get "permanent" chicks), smarter AI for chicks, knocks them off the list, etc. etc. One thing that I wanted to do was to have chicks recognize their mother (if they had one), but that would be way out of scope for this simple port PR. I'll dwell on adding something cool for that in the future. ## Changelog 🆑 refactor: Chicks are now a bit smarter, be careful not to squish them! /🆑 Let me know if the whole "COMPONENT_KILL" thing is cringe, I couldn't figure out a better way to do it without abusing `GetComponent()` to `qdel()` it that way. |
||
|
|
0c99bd28f4 |
Makes gasses use defines (#75542)
## About The Pull Request Adds defines for gasses and replaces uses I've found to instead use the defines. Can you believe I made this PR while trying to work with Xenos? This sucks! ## Why It's Good For The Game There's a lot of different uses of things like "o2" and "plasma", and they are pretty inconsistent. In some places, it's "hydrogen", in others it's "h2". In some it's "plasma", others "plasm". This unifies it all under defines so it has a less chance of breaking in the future. ## Changelog Nothing player-facing. |
||
|
|
e5ce1c09a7 |
Converts butterflies to basic mobs and adds them to cytology (#75582)
## About The Pull Request Converts butterflies into basic mobs. Also a little list organisation. <details> <summary>Yep, those are some butterflies alright</summary>  </details> ## Changelog 🆑 refactor: Converted butterflies to the basic mob system add: Butterflies can now be grown in cytology /🆑 |
||
|
|
eaf962dbf9 |
New sand and water sprites (ported from Bay) (#75254)
## About The Pull Request Ports over new water sprites originally made by Flashkirby in https://github.com/Baystation12/Baystation12/pull/3724 Also made some code adjustments because they don't have that weird in-between sprite that the old water had. ## Why It's Good For The Game  This could be us but you're still using those jank-ass old water sprites :\ ## Changelog 🆑 Tattle, Flashkirby sound: increased the volume of the water step noises image: ported over bay's water sprites /🆑 --------- Co-authored-by: tattle <article.disaster@gmail.com> |
||
|
|
4c48966ff8 |
Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is not completely accurate, as subsystems can be delayed, however it's useful to have this number as a multiplier or ratio, so that if in future someone changes the subsystem wait time code correctly adjusts how fast it applies effects regexes used git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i 's/DT_PROB/SPT_PROB/g' git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i 's/delta_time/seconds_per_tick/g' |