mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-10 00:43:14 +00:00
aefec7cb2b2d9bd6fe68312274fdfefa24a2bede
674 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
aefec7cb2b |
Corrects 200+ instances of "it's" where it should've been "its" instead (#85169)
## About The Pull Request it's - conjunction of "it" and "is" its - possessive form of "it" grammar is hard, and there were a lot of places where "it's" was used where it shouldn't have been. i went and painstakingly searched the entire repository for these instances, spending a few hours on it. i completely ignored the changelog archive, and i may have missed some outliers. most player-facing ones should be corrected, though ## Why It's Good For The Game proper grammar is good ## Changelog 🆑 spellcheck: Numerous instances of "it's" have been properly replaced with "its" /🆑 |
||
|
|
e20762a915 |
[MIRROR] Fixes that one alien feature that uses mouse drag (#28936)
* Fixes that one alien feature that uses mouse drag (#84916) ## About The Pull Request Fixes that one alien feature that uses mouse drag Honestly I really hate this fix, I think strippable should be non-blocking, or alternatively, strippable should have some proc `should_strip` to prevent people from opening the ui in some contexts. But whatever ## Changelog 🆑 Melbert fix: Fixes xenos being able to do that one mechanic that involves mouse-dragging people to you /🆑 * Fixes that one alien feature that uses mouse drag --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
6efbf872e2 |
Fixes immerse holding refs to qdeleted things (#85061)
## About The Pull Request Tin, should fix the following hard del and prevent similar instances:  There was nothing stopping something that was qdeleted from potentially being 'immersed' which is definitely not something that we ever want to be happening. ## Why It's Good For The Game Spurious CI failures are annoying ## Changelog Nothing player facing |
||
|
|
f033ac05a8 |
[MIRROR] Small hulk cleanup / nukes TRAIT_IGNOREDAMAGESLOWDOWN (#28882)
* Small hulk cleanup / nukes `TRAIT_IGNOREDAMAGESLOWDOWN` (#85003) ## About The Pull Request I was investigating a bug with hulk in which using it while damaged doesn't put you back on full speed I noticed `TRAIT_IGNOREDAMAGESLOWDOWN` on its own was subtly broken, in that it did nothing if the user did not call `updatehealth` afterwards And guess what, most (if not all) uses of the trait did not do this, so it never applied correctly So I nuked the trait entirely, made all uses of it use the same thing morphine uses (`/datum/movespeed_modifier/damage_slowdown`) And since I was auditing this I saw the ball module was broke, it removed the immunity but never added it. Quick fix I also cleaned up some Hulk stuff while I was in the area because I was in the area. I removed all instances of `check_mutation` and replaced it with trait checking because it made more sense. I also also fixed a bug with the simple flying element never removing on detach because I touched something that uses it for the above change. ## Changelog 🆑 Melbert fix: Using hulk (and a myriad of similar effects) now properly updates your movespeed to ignore the damage movespeed penalty fix: Some things which temporarily make you fly don't make you fly forever fix: MODsuit ball module now properly makes you immune to damage movespeed penalty when in ball form fix: Adding Hulk via VV dropdown doesn't default to adding the strongest hulk available (that which is used by the medieval pirates) /🆑 * Small hulk cleanup / nukes `TRAIT_IGNOREDAMAGESLOWDOWN` --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
474ffe50ef |
[MIRROR] Flattens The Floor Plane (Camera Update Too) (#28632)
* 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 /🆑 * Flattens The Floor Plane (Camera Update Too) * modular things * Update fluff.dm --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
784efd54db |
[MIRROR] Climbable range fix (#28821)
* Climbable range fix (#84763) ## About The Pull Request Closes #84751 ## Changelog 🆑 fix: Fixed tables and racks being climbable from half a mile away /🆑 * Climbable range fix --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
37c4b802db |
[MIRROR] [NO GBP] Embedding hotfix (#28724)
* [NO GBP] Embedding hotfix (#84770) ## About The Pull Request I may have forgotten a return which was overlooked in reviews, and get_embed could fail if an object without an embed_type (shrapnel) got assigned embed. Also optimized generate_with_values to not recreate the datum if its not the "default" one. ## Changelog 🆑 fix: Embedding now properly changes its values. /🆑 * [NO GBP] Embedding hotfix --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> |
||
|
|
eb9f43d7ba |
[MIRROR] [NO GBP] Fixes hoverboard being able to be used in space. (#28697)
* [NO GBP] Fixes hoverboard being able to be used in space. (#84533) ## About The Pull Request Apparently I've left out that `isopenspaceturf(A)` returns false on normal (not multi-z) space turfs because they're of a different path. This should fix the fact you can use hoverboards as a substitute jetpacks, which wasn't intended. You can still use them in space if there's lattice/catwalk underneath, or another kind of turf on the z-level below however. ## Why It's Good For The Game Unintended bit from the skateboard buff PR I had made months ago. ## Changelog 🆑 fix: Hoverboards properly dysfunction in space without any kind of support underneath them. /🆑 * [NO GBP] Fixes hoverboard being able to be used in space. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
f4e244fb49 |
[MIRROR] Refactors embedding to use datums instead of storing data in bespoke elements (#28699)
* 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. /🆑 * Refactors embedding to use datums instead of storing data in bespoke elements * modular fixes * fix c14 * paint -> pain ugggh --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
0b0ca5ac1b |
[MIRROR] Converts slapcrafting into a bespoke element (#28655)
* Converts slapcrafting into a bespoke element (#84226) ## About The Pull Request Converts slapcrafting into a bespoke element, used to be ac omponent ## Why It's Good For The Game Noticed this was a big C and realized there was no real reason for that. It's the same recipe shared across different items. ## Changelog N/A --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Converts slapcrafting into a bespoke element --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
ce36527628 |
[MIRROR] Facehuggers dont sleep people + muzzle code exorcism (#28542)
* Facehuggers dont sleep people + muzzle code exorcism * fixes * test * fix --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
4a60f108ab |
[MIRROR] Cult Vs. Heretic: 7 Months Later Edition (#28477)
* Cult Vs. Heretic: 7 Months Later Edition * conflict fix --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
b305a0e11b |
[MIRROR] Converts glasses client colour into an element, appliable to other worn items. (#28585)
* Converts glasses client colour into an element, appliable to other worn items. (#84542) ## About The Pull Request The title barely does justice to the content. This PR turns a snowflake, neigh-unused, broken feature for glasses into a rock-hard, functional, badass feature which can be applied to any item, and also brings back the halloween screen tint, inside the pumpkin hardhat, and also a polaroid tint for the helmet of the flash suit, because the define was just there, unused.  for reference, the normal brightness/saturation is somewhere in the middle. Also the pumpkin hardhat's effect is only there when it's lit ## Why It's Good For The Game Less hardcoded implementation of the client colours for items, which also doubles as a fix because the old code was checking for the trait on the mob but was adding it to the item. ## Changelog 🆑 fix: Fixed toggleable screen colors for glasses. code: De-hardcoded, refactored the above, now-fixed feature. add: Pumpkin hardhats and the hood of the flash suit now affect the color of your screen. add: Prism glasses, obtainable through xenobiology crossbreeding, now also affect the color of your screen. /🆑 * Converts glasses client colour into an element, appliable to other worn items. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
9e1f3798fa |
[MIRROR] Ancient and recent mecha bug fixes (#28522)
* Ancient and recent mecha bug fixes (#84171) ## About The Pull Request Mecha guns actually utilize random spread while firing if ``randomspread = TRUE``. Currently every weapon that isn't the shotguns are always pinpoint even if they would have variance. Makes bumpsmash and melee attacks in a mech use the same cooldown. The actual speed between bumpsmash melees are the same as before (once every 0.3 seconds) and click melee is the same as well (once every second). However, if you do one or the other, it will put you on cooldown for both. The reason for this is that they're literally just calling the same proc but not respecting each others cooldowns. So we've consolidated this into one cooldown with varying cooldown timers. I don't even think this is the most elegant solution, but I'm not going to make any radical changes of the structure of the code. Fuck that. **Edit** I forgot to mention this but you have to be in combat mode to bumpsmash as a consequence of the above changes. You're fucking welcome. Separates out mecha_melee_attack proc on the ``/obj/`` level to instead only ``/obj/structure`` and ``/obj/machinery``, which is the only things we should be attacking in the /obj/ list. I don't even want to know what mechs have been able to punch while this wasn't the case. Probably nothing they should have. ## Why It's Good For The Game Mechs are a fucking diabolical nightmare of procs and some truly ancient code. Over time, things have gotten worse, as we have no one really actively maintaining some of this consistently. One of these bugs is literally day of mech implementation. I shit you not. ## Changelog 🆑 fix: Mecha weaponry is capable, for the first time ever, of experiencing recoil. This was an intended mechanic, I promise. The code just literally never worked. fix: Mecha bump melee attacks and click melee attacks are now on the same cooldown, but have varying cooldown timers. You will always bump attack faster than you will click. fix: You must be in combat mode to punch objects and to bumpsmash into objects. fix: Stops mecha being able to punch literally any object and damage them. code: Tidies up some of the autodoc comments for mech weapons. /🆑 * Ancient and recent mecha bug fixes --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> |
||
|
|
5591d15b5f |
[MIRROR] fix tile/rod/rcd multi-z hole repairs (#28387)
* fix tile/rod/rcd multi-z hole repairs (#84255) ## About The Pull Request Fixes some interactions with attempting to patch multi-z holes. 1. openspace clicks happen on different z levels, so it's inherently a *ranged* interaction- it was being ignored due to using the non ranged signal 2. RCD was lacking the open space click handler, 3. #77540 still exists to a degree, I've refactored the click handler to use parse_caught_click_modifiers to always grab the tile you're aiming at rather than going off of whatever item you happened to click on 4. handle_openspace_click was treating the modifiers list as the old parameters list ## Why It's Good For The Game fix bugs, being able to repair holes is a very important and time sensitive task that needs to flow well, and not require pixel hunting ## Changelog 🆑 fix: multi-z hole repair works better, especially when the turf below is blocked by items /🆑 * fix tile/rod/rcd multi-z hole repairs --------- Co-authored-by: FlufflesTheDog <piecopresident@gmail.com> |
||
|
|
a71c842dde |
[MIRROR] Light eater can eat all lights again (#28361)
* Light eater can eat all lights again (#84162) ## About The Pull Request The light eater was working off of afterattack instead of interaction for a lot of its light eating; now it works off interaction. Incidentally, there was a 3 year old proc not being called when it broke fixtures that gets called now; it turns out it's supposed to turn the bulbs in light fixtures to ash. ## Why It's Good For The Game Light eater was hungry, it gets to eat lights again Fixes #84065 * Light eater can eat all lights again --------- Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com> |
||
|
|
ee2f073040 |
[MIRROR] [NO GBP] Piggyback ,strip menu & Paraplegic mouse drop fixes (#28352)
* [NO GBP] Piggyback ,strip menu & Paraplegic mouse drop fixes (#84268) ## About The Pull Request - Fixes #84267 - Fixes #84264 - Fixes #84218 Adds `ALLOW_RESTING` to these actions. This should also fix some other cases of mouse drop w are not aware of since it's at the `mob/living` level. Also improved feedback messages for when an action cannot be performed to help in debugging * [NO GBP] Piggyback ,strip menu & Paraplegic mouse drop fixes --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> |
||
|
|
3295990dde |
[MIRROR] Now you can hold Ian in your arms (#28334)
* Now you can hold Ian in your arms (#84236) ## About The Pull Request Previously, you couldn't pick up Ian because the clothing interface would always open instead. Now, when you grab Ian (or any other corgi or mob with the `can_be_held` trait) in an aggressive grip and pull him towards you, you will take him into your hands! ## Why It's Good For The Game ... You can hug Ian... That's enough ## Changelog 🆑 fix: you can hold Ian in your arms /🆑 closes https://github.com/tgstation/tgstation/issues/84023 * Now you can hold Ian in your arms --------- Co-authored-by: Kocma-san <112967882+Kocma-san@users.noreply.github.com> |
||
|
|
bb5f477461 |
[MIRROR] Makes oven trays count as valid trays for cutting things on..... (#28330)
* Makes oven trays count as valid trays for cutting things on..... (#84224) 🆑 ShizCalev qol: Oven trays now count as valid trays to cut food on. /🆑 It's a literally a tray. Should count too. * Makes oven trays count as valid trays for cutting things on..... --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
cb7943b601 |
[MIRROR] Settler partially atomized into traits, ashwalkers given some settler traits (#28298)
* Settler partially atomized into traits, ashwalkers given some settler traits * Update declarations.dm --------- Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
d7de7b74b6 |
[MIRROR] mothroaches in the wardrobe (#28266)
* mothroaches in the wardrobe (#83695) ## About The Pull Request there is a very small chance vendrobes will have mothroaches inside. this will become apparent as the clothes you buy will come out slightly damaged and eaten. hitting the vendrobe with a weapon (or throwing the weapon at it) will cause the mothroaches to come out and scatter everywhere. mothroaches will now also seek out clothes to eat them ## Why It's Good For The Game gives more character and depth to mothroach AI ## Changelog 🆑 add: vendrobes may have mothroaches inside them add: mothroaches will now seek out clothes to eat them /🆑 * mothroaches in the wardrobe --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> |
||
|
|
cd2b96aba3 |
[MIRROR] Fixes some more climbing/buckling issues (#28259)
* Fixes some more climbing/buckling issues (#83986) ## About The Pull Request First of all, updates `COMPONENT_CANCEL_MOUSEDROPPED_ONTO` in the same way Melbert did for `COMPONENT_CANCEL_MOUSEDROP_ONTO`, so it will only block other interactions if it succeeds. Second of all, makes the climbable element compatible with buckling again, since the two behaviors have a lot of overlap. ## Why It's Good For The Game Fixes a bug (Fixes #83998) where the chaplain altar can't be buckled to. There might be other, similar cases that I'm not aware of. ## Changelog 🆑 fix: The chaplain altar can once again be buckled to. /🆑 * Fixes some more climbing/buckling issues --------- Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com> |
||
|
|
d086ca70e5 |
[MIRROR] Items in your hands can catch fire (#28247)
* Items in your hands can catch fire (#83867) ## About The Pull Request Recently we allowed items held in your hands to catch fire if you catch fire. This makes sense but the code had a few oversights, then we reverted it. This PR reintroduces the feature, but with a few refinements. The basic feature is simple: If you are on fire then items you are holding will also catch fire, in the same vein as items you are wearing on your head or hands. There are also a few caveats we forgot about the first time we added this: - If your gloves cannot catch fire, your held items will not catch fire (because your hands aren't on fire). - If you are extinguished, your held items will also be extinguished. - Stopping, Dropping, and Rolling on top of any items will also extinguish those items. As part of this change, after an argument about whether or not this is an oversight in coding-general, I've made the proc `get_equipped_items` take a bitflag instead of a series of booleans as an argument and added a new one for "include held items", so that we need no longer argue about whether holding something counts as "equipping" it (in all other parts of the game than this proc, it does). This is what gives the PR most of its code footprint, don't be scared. ## Why It's Good For The Game Items you are holding in your hands _should_ catch fire if everything else on your person is on fire, and taking an item off of your body to put it in your hands shouldn't protect it from fire, because those things don't make intuitive sense. If we want an item to be able to catch fire when worn, then it should do so. This might expose some issues where we were improperly setting the flammability flags on items, but any weapon which will burn in your hands now would also have burned if you were wearing it on your belt or back, so making those issues more visible should be a bonus (we'll also stop them from burning on your back or belt). If you see someone holding a piece of paper that you really don't want them to read you can now set them on fire to stop them from reading it, whereas previously they would deftly hold the very flammable object out of reach of their flaming body. ## Changelog 🆑 balance: Items held in your hands can catch fire. balance: Items you are holding won't catch fire if your hands cannot catch fire. balance: When you stop being on fire so will items you are holding. balance: If you roll around on your burning items they will stop being on fire. /🆑 * Items in your hands can catch fire --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
2ef8727835 |
Un gay baby jails everyone (#28211)
Update strippable.dm |
||
|
|
b3ccf9523d |
[MIRROR] Ian and Runtime can lick your wounds (#28187)
* Ian and Runtime can lick your wounds * Update _wounds.dm --------- Co-authored-by: Jacquerel <hnevard@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
1f886c53f2 |
[MIRROR] Fix mousedrop handling on some atoms (#28167)
Fix mousedrop handling on some atoms Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
df90e547cc |
[MIRROR] Mouse drag & drop refactored attack chain (#28156)
* Mouse drag & drop refactored attack chain * fex --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
28df77b5c6 |
[MIRROR] Openspace Item Handler doesn't think stuff in bags are valid (#28188)
* Openspace Item Handler doesn't think stuff in bags are valid (#83973) ## About The Pull Request Fixes #83972 Clicking on stuff in your bag with stuff that has `openspace_item_click_handler` makes it think you're on a different z level (which is technically true) so it overrides the click and does its own thing. So we check that z is not 0. Also move the return to be safe. ## Changelog 🆑 Melbert fix: Fix inability to make r-glass by hand inside your backpack /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * Openspace Item Handler doesn't think stuff in bags are valid --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> |
||
|
|
b540aaf8ab |
[MIRROR] Afterattack is dead, long live Afterattack (#28128)
* Afterattack is dead, long live Afterattack * wew * fixes --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
be8f1bd790 |
[MIRROR] [NO GBP] Post-Rust Heretic's Rework adjustments. (#28041)
* [NO GBP] Post-Rust Heretic's Rework adjustments. (#83765) ## About The Pull Request Fixes antimagic, not preventing the disgust builtup from standing on rusted tiles, makes rust walkers more expensive to summon. ## Why It's Good For The Game I'm very happy with the end result of my Rust heretic rework; but they came up a tad stronger than i wanted them to be. Carlac already changed the Vomit stun to knockdown, but i wanted to add a couple of things myself. Having anti magic now makes you fully immune to the effects of rusted tiles, not just the spells. Rust walkers summoning ritual now requires titanium instead of iron sheets. As of right now, they are way too easy to spam, Titanium is a bit harder to come by than iron so that'll do for now. I was planning to set a limit to how many you can summon at the time, but i'd rather wait a few months to see how rust behaves before i add more nerfs. ## Changelog 🆑 balance: Rust walkers' summoning ritual now requires 5 sheets of Titanium instead of Iron. fix: Magic resistance grants complete immunity from the passive disgust buildup from standing on Rusted turfs. /🆑 * [NO GBP] Post-Rust Heretic's Rework adjustments. --------- Co-authored-by: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
16c66010c9 |
[MIRROR] /icons/ folder cleansing crusade part 3 (#27859)
* /icons/ folder cleansing crusade part 3 * fixes --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
d0ff9f8372 |
[MIRROR] Spooky element fixes (#28085)
* Spooky element fixes (#83795) fixes the mood event not being applied, found in #83741 🆑 ShizCalev fix: The spooky element will now apply the spooked mood event when someone is spooked. fix: Fixed spookers getting a popup message when spooking mobs not actively controlled by a player. /🆑 also a minor grammar fix for the name of spooky skeletons. * Spooky element fixes --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
f7d75ea3b8 |
[MIRROR] Graveyard update take two (#27970)
* Graveyard update take two (#83567) ## About The Pull Request **PR body copied from last PR (#83149). I fucked something up (I think by leaving dream maker open while trying to fix the merge conflicts?) and rather than try and walk backwards I'm just making a new branch.** This implements the digging of graves on most soil/dirt/planetary type turfs, and gives the coroner their own private burial ground. **Change 1 - Gravedigging:** You can right-click planetary/dirt/grass tiles using a shovel or shovel subtype (or entrenching tool). Speed varies on the type of shovel you are using. This creates a Makeshift Grave, an unmarked burial mound (different from the ones at the elephant graveyard). This is handled through the new gravedigger component, which is mostly unremarkable but worth mentioning in case anyone wants to add this behavior elsewhere. **Change 2 - Icebox Morgue Graveyard:**  The icebox morgue now has private burial ground, sealed off by a fence. Mourners are expected to keep out and perform their grieving at the appropriate distance. This does not affect the chaplain's burial ground, which is publicly accessible from the outside. This gives a more secure place to bury bodies (I'm sure someone will have a reason for this some day) and may lead to fighting over corpses, which I think is funny. Also, there might be some goodies left in those graves, but you wouldn't go graverobbing just for some useless loot, would you?? This also adds a new area type, graveyard, which is mostly just the icemoon outdoors with the spooky ambiance of the morgue.  ## Why It's Good For The Game Now you can bury your friends in an unmarked grave! Bury people alive! Bury your treasure, or reminders of the sins you've committed! Bury anything, anywhere you want! The morgue graveyard is a nice bit of flavor. I know the Chaplain already gets one (I forgot this when I started this PR though) but the Coroner is an equal-if-not-more-important corpsekeeper than them. ## Changelog 🆑 Rhials add: Shovels and entrenching tools can be used to dig graves on asteroid/dirt/etc. surfaces. Neat! add: The Icebox Morgue has been given a fenced-off graveyard in the back. code: burn_tile() is no longer double-defined on asteroid turfs. /🆑 * Graveyard update take two --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
126c293dff |
[MIRROR] Fixes tool-based flashes being stuck at intensity 1 (#28018)
* Fixes tool-based flashes being stuck at intensity 1 (#83703) ## About The Pull Request A long-old bug due to the use of `min(flash_strength, 1)`. The intention was clearly to have the flash be *at least* level 1, because flash_strength defaults to nothing but can be set to 2. However, `min(x,y)` uses the lowest value, making it always return 1. So we change it to `max()`. ## Why It's Good For The Game Bugfix. Sunglasses users cope. ## Changelog 🆑 fix: Tool-based flashes (read: from welders) are no longer incorrectly locked at flash level 1. Wear proper PPE! /🆑 * Fixes tool-based flashes being stuck at intensity 1 --------- Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com> |
||
|
|
d4b67121d6 |
[MIRROR] [no GBP] Corrupt organs check patient for Holy Water, not surgeon (#27904)
* [no GBP] Corrupt organs check patient for Holy Water, not surgeon (#83500) ## About The Pull Request Was looking into #83493 and I have no idea how that happens but I _did_ notice this unrelated runtime and logic error. Due to the args being incorrect, we were checking the status of the surgeon performing the operation rather than the person the organ was being removed from. ## Changelog 🆑 fix: When removing a corrupted organ from a patient, the patient will now be checked for Holy Water or magic resistance, rather than the person performing the surgery. /🆑 * [no GBP] Corrupt organs check patient for Holy Water, not surgeon --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
b7edb0efd0 |
Fixes decals compounding on shuttles (#83548)
Fixes #83535 Fixes #76382 Just a missing UnregisterSignal. |
||
|
|
df1266e4de |
[MIRROR] Fix issues resulting from an elevated object being created inside of a non-turf atom (#27890)
* Fix issues resulting from an elevated object being created inside of a non-turf atom (#83498) ## About The Pull Request If an elevated object is initialized inside of a non-turf atom, it'll still make the turf it is on elevated. Permanently. Which is weird. ## Why It's Good For The Game Randomly elevated turfs are bad. Bugs bad. ## Changelog 🆑 fix: Fix a rare issue where a turf would remain permanently "elevated" if an elevated object was initialized inside of a non-turf object. /🆑 * Fix issues resulting from an elevated object being created inside of a non-turf atom --------- Co-authored-by: Lucy <lucy@absolucy.moe> |
||
|
|
b487bbf07d |
[MIRROR] Fixes Rust Victims being permanently exiled to the puke-zone. (#27868)
* Fixes Rust Victims being permanently exiled to the puke-zone. (#83417) ## About The Pull Request closes : https://github.com/tgstation/tgstation/issues/83375 ## Why It's Good For The Game Deleting Heretic rust you are standing on now properly deletes the status effect. ## Changelog 🆑 fix: Rust debuffs now gets properly removed if you derust a tile you are standing on. /🆑 * Fixes Rust Victims being permanently exiled to the puke-zone. --------- Co-authored-by: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com> |
||
|
|
2ecff6862d |
adds a new fish to lava and plasma rivers (#83146)
## About The Pull Request this pr adds a new fish to lavaland and icebox, the lavaloop! i noticed neither has any exclusive fish so im trying to add one of my own. u can find this fish by using reinforced rods on lava or plasmarivers. this fish is also lobstrosity's favorite delicacy as you will now often see AI controlled lobstrosities fishing for it in lava and then eating it.  because of its body's curvature and razor sharp spikes, this fish can also be used as a make-shift boomerang weapon against mining mobs, although it comes with some new mechanics. u can increase the damage it does to mobs by winding up ur throw. when the bar reaches purple, this indicates maximum damage. however, if it goes over the purple, it will react violently and explode your arm off, so you have to time it just right to get the best damage possible. On icebox, instead of dealing raw damage, fish will freeze mobs depending on how long you charged ur throw. charging it for too long will cause the fish to freeze you instead https://github.com/tgstation/tgstation/assets/138636438/c8ac3696-3705-45b0-bc43-c5b81d75cb1b while its nowhere near as effective as using PKA's or crushers, it can be a useful tool for hermits and ashwalkers. ## Why It's Good For The Game having lobstrosities fish and hunt for it makes lavaland feel more like an ecosystem with a food chain. also i think tossing fish at eldritch horrors is a funny way to fight them ## Changelog 🆑 add: adds a new fish to lava and plasma rivers, the lava loop /🆑 |
||
|
|
b5a28d6e68 |
[MIRROR] Changes how lube crawling works and fixes a bug with snails (#27744)
Changes how lube crawling works and fixes a bug with snails (#83238) This partially reverts https://github.com/tgstation/tgstation/pull/76336 - Just for slimepeople since it's the only one that felt important to be tied to species. Snails are currently pretty fast when they are crawling around, but on top of that they are also able to get their legs replaced to become 3x faster than normal humans while resting. It's a little silly, and I thought I should fix it. I also changed the element itself to be easier for admins to edit, giving them control over time and wet flags, and made it work a little better. Instead of being hardcoded to listen to carbons and to register every step to check if they are resting, calling add/remove movespeed modifier every single time they move, we are told whether they have to be resting, and update when they get up/lie down. This has an extra bonus that admins can control whether or not they want to make simple/basic animals have to rest to lube things (like cats). Closes https://github.com/tgstation/tgstation/issues/78417 Makes the lube spitting element that (primarily) snails use into a more general thing that can be used by admins or other contributors that want to make things wet thing as they walk for some time. Also no insanely fast snails anymore. 🆑 fix: Snails no longer move at normal speed while resting. fix: Snails can no longer get insane speed from getting their legs replaced. fix: Humans don't become immensely slow when getting a Snail leg. admin: lube walking element is now much easier to mess with to fit however you want to use it for. /🆑 Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
61c379045c |
[MIRROR] lavaland raptors (#27746)
lavaland raptors (#82537) adds raptors to lavaland. these are creatures that have been created through countless xenobiological experiments by nanotrasen to breed an animal that can withstand the harsh conditions of lavaland and aid miners. theres now a new ranch miners can access bottom right to the mining base  this ranch starts somewhat empty as most raptors have escaped containment and are now scattered all across lavaland, u can find them and return them to ur ranch. in order to tame a raptor, u first need to prove to it that ur a capable master. when u try to ride it, a little minigame prompt will pop up  in this game, the bird's icon rapidly changes direction and u have to quickly click the arrow thats OPPOSITE to the direction its facing several times before the direction changes. if you fail 3 times itll knock you off and run away, however if u win it will deem u a suitable master and listen to your orders. There's many different breeds of raptors you can find across lavaland, all with different capabilities: red raptors: these excel at combat and can be very useful for dealing with lavaland mobs or defending the node drone yellow raptors: are very speedy mounts, theyll get u from point A to point B in record time green raptors: they are the tankiest type of raptor and are very good miners. while mounted, they will clear any rock walls in their path purple raptors: can store items in them. they have a decent storage size allowing players to carry more items across trips white raptors: are able to heal other injured raptors. having one in ur party would be very useful as they can nurse the combat raptors back to full health when they need it blue raptors: produce very nutritious milk with healing capabilities. having 1 or 2 of these back at ur ranch would be very useful black raptors: by far the rarest breed, its very unlikely that ull be able to get one of these, but in the case u do, they have the combat capabilities of the red raptor, speed of the yellow raptor, and tankiness of the green raptor. Breeding different colored raptors together can net u an entirely new colored raptor. each breed has atleast 1 guaranteed combination of parents that it will result out of. you will also need to maintain a good friendship bond with ur raptors, this is done by feeding them, grooming them, and petting them. u can see the strength of ur bond by SHIFT clicking them. more hearts indicate a stronger bond  having higher friendship bonds means ur raptors will perform better in combat, and in the case of blue raptors, they will produce more milk. Maintaining friendship bonds with baby raptors and keeping them happy will also encourage them to grow faster U can also analyze raptors using the new raptor-dex device available at ur ranch  the inherit modifiers indicate how strong this raptor's offspring will be. raptors inherit attack and health stats from both their parents, breeding raptors with higher inherit modifiers means the offspring will be stronger. raptors will also inherit some traits from their parents that will change how they will act around u and around other raptors, some of them being: Playful: raptors will play with their masters and tease them motherly: raptors will care for baby raptors, this will encourage baby raptors to grow quicker depressed: means its hard to keep this raptor happy and friendship bonds will deteriorate faster if not given enough care. coward: makes them flee combat if severly injured, ditching u to the wolves trouble maker: makes them attack other raptors at the ranch. however, trouble maker raptors will not attack other trouble maker raptors, instead they will form posses and bully raptors together. it might be a good idea to isolate them from the other raptors raptors primarily consume ores. to feed raptors, you need to place ore into the food troughs at the ranch. they are too civilized to eat ores off the ground or directly from ur hand, they will only eat it if its in their trough  beautiful raptor sprites by spessmenart! (rest are codersprites) adds a new layer to lavaland mobs, and gives miners new interesting tools and ways to tackle the challenges of lavaland. 🆑 sheets, spacemenart, ben10omintrix, goofball, infrared baron, aofie add: adds lavaland raptors and the raptor ranch /🆑 --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> |
||
|
|
43aa0f219f |
Two New Skills (#26880)
* sure * cough, girders are something * what if I said this --------- Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
d8c8b79c44 |
Rust Heretic rework: THE PUKENING. (#83006)
## About The Pull Request Turf rusting is now based on knowledge instead of RNG; toxic damage on spells has been replaced with disgust; rust walkers are a bit easier to summon and show up early in the tree. Rust ascension spread has been massively increased and immunities while on Rust have been updated. ## Why It's Good For The Game This is a massive list of changes, but the tl:dr is Rust heretic design is pretty barebones and dated in its current state. I'm going to try my best to explain why that is and why it needs to change. ### RNG on rusting is bad **Problem** : quite a lot of turfs cannot be rusted, and reinforced turfs rusting is tied to RNG, the emergency shuttle floors are also unrustable, making an ascended heretic not threatening at all to an escaping crew. **Solution**: Heretic rusting prowess is now tied to knowledge progression; reinf wall rusting is no longer tied to RNG; the emergency shuttle is now rustable if you have accrued enough knowledge. **Explanation** : I've been adopting the code from a previous PR that sadly didn't make the light of day. Link: https://github.com/tgstation/tgstation/pull/65361 The goal is to have Heretic rusting be more consistent, so that if you ascend the shuttle is no longer a safe refuge. **Grasp Of Rust**: Basic floors and walls. **Mark Of Rust**: Reinf floors and walls (takes 3 applications of rust to fully destroy). **Toxic Blade** Titanium and Plastitanium( still takes 3 applications of rust to destroy). **Ascension**: almost everything save for admin walls, glass, and silver. ### A territorial antagonist with no tools to defend its turf **Problem**: Rust heretic is forced into a territorial playstyle, but it's heavily diminished by rusted turfs not having any negative effect on the crew whatsoever, Toxic damage on plume and blade is also kind of bad and has no synergy with the rest of the kit. Lastly, while fitting to the theme of Rust; mark detonation destroying clothes and items can end up being more harmful to the heretic, as destroying a secoff's flashbang will result in you getting stunned and killed. **Solution**: Rusted floors are no longer safe for the crew; walking over Rust will add a small buildup of disgust, silicons will receive ticking damage, Toxic damage on Rust skills has been replaced with disgust buildup and a chem purge effect to prevent the crew from cheesing the debuff with sol dry. **Explaination** "The goal behind this change is to prevent the crew to just be able to walk willy nilly into an eldritchly decayed area without repercussions, plus I feel like disgust is a fitting debuff for Rusties for a number of reasons. 1) Lore wise, your goal is to turn the entire station into a garbage dump. 2) It fits for fighting a territorial antagonist, it's not immediately threatening on its own, but if you overstay your welcome, it has dire consequences. 3) We don't really do much with disgust as a status effect, far as i know, this'll be the first iteration of it being used for an antagonist toolset. 4) It gives reason to the crew to act hostile towards the Heretic, as you are essentially making their work area inhabitable. I've also Slightly increased the healing on leeching walk and gave it some minor temperature regulation (you won't be able to outtemp space cold). ### Rust Walkers **Problem**: Rust walkers might as well not exist in their current state; they are one of the latest heretic unlocks, and the recipe for summoning one is INSANE now that you cannot decapitate mobs anymore. **Solution**: Rust walkers pop up a bit earlier in the tree; the ritual to summon them has more reasonable reagents (wires, pools of vomit, iron sheets) and they have increased health. **Explanation**: : There is not a lot to add to this. without walkers, Rust heretics are fairly slow at spreading rust, by making rust walkers have reasonable summoning reagents, we ease that problem; lastly i've slightly bumped their hp, as i felt 75 hp was a bit low. ### Underwhelming ascension **Problem**: The spread rate from the ascension is downright ATROCIOUS in its current state, i actually ran multiple tests on different maps, on Metastation it can take up to 40 minutes for the rust to spread to the entire station, considering an ascended heretic results in an immediate shuttle call, it's unecceptable in its current form. Solution: Rust spread is now a hybridization between old ascension and Wizard tranformation ritual. **Explanation**: The spread rate in its current form is painstakingly slow and has a tendency to reach one corner of the map and compound on itself, i've borrowed the code from the wizard final ritual "transformation" and gave it my own spin so that given enough time it will cover the station more or less evenly, it can now spread through all z levels. Video example: https://www.youtube.com/watch?v=jZ5zMrNM6Jw I've also updated the immunities you gain on ascension to ignore slowdown and stasis from Cryogelidia. The whole point of rust ascension is to become immune to crowd control, i've seen far too many ascended heretics die to a single bola or cryo syringe, that's pretty lame so i fixed that. Lastly, aggressive spread has had its radius reduced in exchange for the spread being consistent now; cooldown is also halved when you ascend, to better help the heretic go on the offensive. |
||
|
|
d4f03e8add |
[MIRROR] Replace Heretic Phobia with Cursed Organs (#27664)
* Replace Heretic Phobia with Cursed Organs (#83082) ## About The Pull Request Being sacrificed by a Heretic no longer applies an incurable brain trauma that gives you a phobia of Heretic-associated items. Instead it does the following things: - Removes 2-4 of your organs and leaves them behind on the sacrificial circle, replacing them with "corrupt" organs with negative effects. - Gives you an unremovable "curse" debuff which will cause you to immediately cough a random organ out of your chest if you attack or are attack by the person who sacrificed you, **if they are wearing a Focus at the time.** Corrupt Organs can be removed via surgery, although doing so is dangerous. A removed corrupt organ will often either immediately explode for a small (but not insignificant) amount of burn damage to everyone nearby, or it will animate itself as a haunted object and be a general nuisance until subdued. A patient dosed with Holy Water can always have their organs removed without consequence. Chugging Holy Water will also suppress most of the negative effects of your corrupt organs. The effects of Corrupt Organs are as follows: - **Eyes:** All Heretics **and also a selection of additional random people** are completely invisible to you. You can still see their runtext (or "hear") them, but they otherwise cannot be seen. And as you can't see them you also cannot click on them. - **Tongue:** When you speak, your language will sometimes be replaced by "Shadowspeak", understood only by Curators and Nightmares. This is less of an impediment during Halloween because of the friendly Shadowpeople. - **Liver:** When you drink something, it will add extra reagents to your sip from a pool largely composed of alcohol and hallucinogens. - **Stomach:** Your hunger will deplete significantly faster if you do not regularly ingest blood. (Fun fact: Did you know that a drinking glass full of blood automatically relabels itself "tomato juice"?) - **Heart:** You will continue to be intermittently tormented by frightening hands. - **Lungs:** You will intermittently cough out dangerous or unpleasant gases. - **Appendix:** Very infrequently you will vomit out several hostile worms. Most of these effects aren't present while you're dodging the spooky hands in the Mansus realm. Plasmamen never have their lungs replaced because they'd immediately start choking on their internals and that is annoying. Ethereals _do_ have their hearts replaced so may be surprised to find that they don't respawn when killed if they don't get a new one. I would haved called them Cursed Organs but the Cursed Heart already exists. ## Why It's Good For The Game Nobody enjoys the Heretic phobia from any angle. Phobias suck to deal with in general. and while being scared of all Heretic stuff from that point on is mildly flavourful it's not very interesting. This alternative hopefully provides a more interesting answer (which should provide more storytelling and interaction with other people) to the problems that the original change intended to address: Making sure that nonlethal sacrifices still feel significantly bad enough that you're not going to volunteer, and as an extra layer of protection to ensure that someone you sacrificed functionally ceases to be a threat to you. ## Changelog 🆑 del: Being sacrified by a Heretic no longer gives you an incurable phobia. add: Being sacrificed by a Heretic will drop 2-4 of your organs on the ground and replace them with "corrupt organs" with negative effects which can be suppressed with Holy Water. add: Players who have been sacrificed by Heretics will experience additional and rapidly lethal consequences for attempting to fight someone who previously sacrificed them, as long as that person is wearing a focus. /🆑 * Replace Heretic Phobia with Cursed Organs --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
7ae9d120f1 |
Pacifists can no longer endlessly spam rocket launcher backblasts (#82992)
## About The Pull Request Fixes: #82990 Backblasts from a rocket launcher are often the last thing an untrained person thinks of when they fire a rocket launcher. I did not consider the moral stance of pacifists who nevertheless try to shoot rocket launchers when I implemented rocket launcher backblast, because currently pacifists trying to shoot a loaded rocket launcher can spam backblast as much as they want, even if they aren't able to actually shoot. This PR filters out pacifists before they trigger the backblast, to make sure only actual live shots deliver the hellpayload to their allies behind them. ## Why It's Good For The Game A magical reverse flamethrower with no ammo limit (because at no point is the rocket in the chamber actually expended when a pacifist fails to fire it) is bad. A weapon as destructive as that left solely in the hands of pacifists is even worse. ## Changelog 🆑 Ryll/Shaps fix: Pacifists can no longer endlessly spam the backblast functionality of loaded rocket launchers that they cannot actually fire /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
55d1c715e5 |
Pulls2 (#27514)
* New docking port sprites (#82729)
* Adds text to lootpanel items [no gbp] (#82722)
## About The Pull Request
Just some qol, this captures a small portion of the item name and fixes
some icon clipping issues
I clipped it at 5 because monke


## Why It's Good For The Game
Handy if youre in a rush and won't upgrade byond to fix the issue
## Changelog
🆑
fix: Lootpanel additions: Condensed item names for the quick of draw
/🆑
* Fixes tgui alert buttons (#82714)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Been on my mind for a long time
I did this while relatively inexperienced (how do I center a div etc)
Fixes an issue inherent to our stack implementation where reversing the
direction caused strange spacing issues. This effectively reverses the
extra margins in css so it looks identically spaced whether reversed/not
<details>
<summary>before/after</summary>
Before (normal buttons)

Before (large buttons)

After (normal buttons)

After (large buttons)

Long buttons (normal)

Long buttons (large buttons (I am 35 and yet still fight the forces of
chaos))

</details>
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Looks better, runs smoother, no clipping
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
fix: TGUI Alerts shouldn't have such wonky buttons any more
/🆑
<!-- 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: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* MetaStation: Replaces the tools in the Primary Surgery Theatre with filled surgery trays (#82730)
## About The Pull Request
Replaces the tools on the tables with 2 surgery trays.

## Why It's Good For The Game
Makes surgery a bit less painful in the surgery theatre, Using tools
from a tray is much nicer than having to open the context menu on the
piles of tools on the tables.
## Changelog
🆑
qol: Replaced the surgical tools in the Primary Surgery Theatre with 2
Surgery Trays.
/🆑
* Fixes smart pipe & cryo gas reallocation (#82701)
## About The Pull Request
**1. Smart Pipe Problem**
- Fill a pipe with any gas, plasma for e.g.
- Unwrench the pipe to deconstruct
- The pressure sends you flying but notice plasma is nowhere to be seen
from the now destroyed pipe
**2. Cryo pipe connector problem**
The gas gets reallocated when the object is deleted. We only want this
when its deconstructed not deleted to prevent any side effects
This PR fixes them
## Changelog
🆑
fix: smart pipes release their gases into the air when unwrenched
fix: cryo pipe connector component has no side effects of gas
reallocation when deleted
/🆑
* Fix Primal Instincts (#82741)
## About The Pull Request
#82539 randomly made these two lines switch their AI controllers to idle
rather than on, when the intent was for them to wake up immediately to
do make the mob attack or fight or do something
## Changelog
🆑 Melbert
fix: Primal Instincts and Living Flesh should be a tad more reactive
/🆑
* Fix handcuffing (#82760)
## About The Pull Request
Changed this to an early return but then didn't invert the condition
## Changelog
🆑 Melbert
fix: You can handcuff people with 2 arms and you can no longer handcuff
people with 0 arms
/🆑
* Gets rid of UNIT_TESTS compiler warning (#82695)
## About The Pull Request
Basically every single CI Run is throwing the following warning:
```txt
code/modules/unit_tests/lootpanel.dm:24:warning (unused_var): new_box: variable defined but not used
```
You may find an example here:
https://github.com/tgstation/tgstation/actions/runs/8698627681/job/23855921813#step:9:24
This is pretty silly but I don't really know why we even have this
variable (I assume there's something far more complicated underneath the
surface based on what the unit test is asserting), but assuming it is
important let's just insert a do-nothing procedure to get rid of the
compiler warning while ensuring the unit test is actually operating as
it should.
I also don't really like the fact that this is a warning instead of an
error but let's tackle this problem one step at a time by at least
getting rid of the compiler warning in a quick advance PR while I dwell
on this issue (is there a way to get the Dreamchecker linter to look at
the unit test files? it's caught perfectly fine in the langserver)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes dropdowns better (#82697)
## About The Pull Request
Kind of a pain to work with, confusing people with its prop names (many
such cases!)
After recently discovering deathmatch it's very obvious to me how broken
it is, so I made it less so
(now comes with a complete ui upgrade!)
It now scrolls with the selection and to the selection on open, which
felt like major QoL
<details>
<summary>pics/vids</summary>
In motion

Deathmatch got some UI facelifts


Fixes #75741

</details>
## Why It's Good For The Game
Better UX
Bug fixes
Potential exploit patched (ui validation for ai voice changer)
Fixes #81506
## Changelog
🆑
fix: Dropdowns received some much-needed QoL, like having the scrollbar
follow your selection.
fix: AI voice changer now shows its current voice selection.
fix: Deathmatch screen has been touched up.
fix: Prefs menu has their dropdowns simplified, hopefully fixing issues
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fixes the NT SWAT helmet sprite (#82743)
* Mass Item Creation (#82455)
## About The Pull Request
Have you ever had to click the "Make" button a dozen times for a chef
making soup? I've also had it, so with this PR you can press the button
and everything will repeat itself as long as possible.
## Why It's Good For The Game
Makes life easier for chefs, now they can play chess on their cool
smartphone and craft food. (actually you can transfer it to other items
as well, see for yourself).
* Adds Retain volume flag on the ants reaction (#82718)
Fixes #82575
We'd expect feeding ants to always result in more ants I imagine.
* Borg movement now has sounds (#82704)
## About The Pull Request
adds sound effects to cyborgs when they move
Demo:
https://imgur.com/a/7Mu98pQ
Open to feedback on this sound so please tell me what you think.
## Why It's Good For The Game
a hunk of metal moving at you without any sound is frightening
## Changelog
🆑 grungussuss
sound: cyborgs now have sounds to indicate they are moving
/🆑
* Use cell defined constants for various stuff (#82594)
## About The Pull Request
This re writes most cell power usage cases with 2 defines
`STANDARD_CELL_CHARGE`(Joules) & `STANDARD_CELL_RATE`(Watts) so changing
cell capacity values in the future won't cause discrepancies.
## Changelog
🆑
code: most cell power usages are scaled with defined constants to help
adapt to future changes
/🆑
* Plumbing machinery power & processing tweaks (#82702)
## About The Pull Request
- Plumbing machinery begins processing only when wrenched & ends
processing when unwrenched. The machines plumbing component
`/datum/component/plumbing/process()` already does this but the
underlying machines processing proc for e.g.
`/obj/machinery/plumbing/synthesizer/process()` is always processing
regardless of its wrenched state or not. We can optimize this & save
power when unwrenched
- Fixes #82621. This adds plumbing machines `idle_power_usage` on top of
its `active_power_usage` ensuring it only uses power when actively doing
work, So if your factory is say full of reagents & cannot do any more
work it will use less energy i.e almost enter an stand by mode,
efficiency
- Plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing most of the time
## Changelog
🆑
fix: plumbing machinery begins processing only when wrenched & ends when
unwrenched
fix: plumbing machinery uses energy only when wrenched & doing work,
will stop/use less energy when idle
fix: plumbing grinder chemical will grinds & juice stuff correctly i.e.
prefer grinding over juicing for most stuff
/🆑
* Carps migrating through the station no longer idle so they don't get stuck after spawning until someone walks by. (#82744)
## About The Pull Request
Carps migrating through the station no longer idle so they don't get
stuck after spawning until someone walks by.
## Why It's Good For The Game
Bugfix for Carp Migrations.
## Changelog
🆑
fix: Carps migrating through the station no longer idle so they don't
get stuck after spawning until someone walks by.
/🆑
* Alt click no longer conflicts with mech suit [no gbp] (#82758)
## About The Pull Request
Get in the gundam shinji!!!
Context: Mech users hold ALT to disable strafe, which would trigger the
lootpanel to come up while committing war crimes (annoying!)
This prevents the panel from appearing and fixes the previous behavior,
meaning you can alt click your own mech to disable strafing.

It also makes toggling strafe a balloon alert with sound. Parties for
all occupants!!
## Why It's Good For The Game
Fixes #82753
## Changelog
🆑
fix: Mecha pilots are no longer bothered by incessant loot panels while
holding ALT for strafe disable.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds a Wizard-themed map to the deathmatch (#81640)
## About The Pull Request
Deathmatch is severely lacking in HIGH IMPACT MAGIC LARPING. So I added
a big ass wizard arena. The arena itself is based off the wizard den.
Loadouts:
**Wizard:** Standard all-rounder. Got magic missile, jaunt, and
forcewall. Regular gear.
**Pyromancer:** Fire guy. Red robes, fireball, smoke.
**Electromancer:** Zappy guy. Lightning and tesla shock.
**Necromancer:** Is a skeleton. Has Scream for Me and blink.
**LARPer:** Straight from Station & Spessmen. Fake robes and can only
throw lightning and repulse.
**Chuunibyou:** Classic animage. Got chuuni buff and magic cards.
**Battlemage:** Melee fighter. Got some armor and a big hammer with
instant summons.
**Apprentice:** Underpowered until they find a mystery box. Got charge.
**Gunmancer:** Who needs magic when you have guns? Starts with an m1911,
lesser gun summons, and knock.
**Monkeymancer:** Is a monkey. Can summon monkeys and gorillas. Has a
banana.
**Chaosmancer:** Jumbled robes. Starts with a chaos rod. Can rod form
and summon traps for high chaos.
**Funnymancer:** It's just a clown with a banana staff.
The map itself is a pretty standard arena with a long sightline in the
middle. Each participant spawns in their own room complete with a magic
item box. The very southern portion of the ship has a standard mystery
gun box. Soon after the round starts, a hostile gelatinous cube in the
center of the map will break out and attack whoever it sees. Inside its
enclosure is a free death wand. Map has been tested to make sure
deathmatch participants can't escape the deathmatch.
## Why It's Good For The Game
Deathmatch provides a unique opportunity for people to play with
mechanics they will not often get to use. Allowing people to play wizard
for a few minutes shouldn't cause too much harm aside from admin logging
from explosions, which hopefully a fix is in the pipeline for.
## Changelog
:cl:Motho
add: Added wizard-themed deathmatch map.
add: Added mystery wand box.
/🆑
* Makes viewers() defines (#82767)
* Fixes Pseudo circuit delay & some missed cell define usages (#82771)
## About The Pull Request
- Fixes #82688
If the circuit cost is<= 1% of `STANDARD_CELL_CHARGE` then the delay is
5 seconds, if the circuit cost is >= 50% of `STANDARD_CELL_CHARGE` then
delay is 1 minute. All other delay values are interpolated in between
these 2.
- Pseudo circuits don't use power when used on cooldown
- Makes `INSPECTOR_ENERGY_USAGE_*` defines values use standard cell
values
## Changelog
🆑
fix: pseudo circuit adapter computes recharge delay durations correctly
& won't use power when on cooldown
code: uses standard cell defines for N-spect scanner
/🆑
* Lava/Plasma River tiles now immerse you in them (#82736)
## About The Pull Request
This adds the "immerse" element to lava tiles.

It's a tad hard to see because you're super on-fire, but it still looks
nice.
## Why It's Good For The Game
Eye candy, pretty...
## Changelog
🆑 Rhials
qol: Lava and plasma rivers now immerse you in them.
/🆑
* Adds `ALLOW_RESTING` to a bunch of items (#82761)
## About The Pull Request
Allows you to alt-click a bunch of items while resting.
Fixes #82788
## Why It's Good For The Game
Some of these, such as storage, are bugfixes. You shouldn't need to be
standing up to configure a spray can, or change the direction of your
bedsheet
Others are just sensible changes.
## Changelog
🆑 Melbert
fix: You can open bags with alt click while resting again
qol: Many items which previously required you to stand to alt-click now
don't, such as bedsheets and spray cans
/🆑
* Fixes sight range on lootpanel [no gbp] (#82765)
## About The Pull Request
When asked to make lootpanel visible at range they did not just mean
_any range_
AI alt click was a little weird (still is) but now it works
(TM BUG)
Fixes #82768
* Adds Omnitools for engineer and medical cyborgs, reducing on inventory clutter. (#82425)
[This PR is a bounty requested by Ophaq and worked on by
Singul0.](https://tgstation13.org/phpBB/viewtopic.php?f=5&t=36013)
All of the following description in this PR is written by Ophaq as to
what this PR entails:
In this PR, the medical and engineering cyborg's tools are completely
reworked and condensed into an arm similar to the implant a carbon would
get. The tools are shown in a radial wheel around the character to quick
select what is needed instead of looking for it in a cluttered bag of
items. There are a few tools such as the blood filter for the medical
cyborg, as well as the welder, gas analyzer, and t-ray scanner for the
engineering cyborg excluded from the radial wheel. mostly due to their
inherent inmodularity


Each cyborg gets two arms in case the player wishes to have one on the
side to quick swap to, like having a scalpel in one arm and a hemostat
in the other on the hotbar for convenience or just preference. An
upgraded version of the tools has been added to each respective cyborg
upgrade node with somewhat faster action speed. The upgrade replaces the
arms and transforms them into the "advanced" version which is currently
the same sprite as the regular but just a faster and more efficient
version. The sprites for the surgical arm currently look good but may
need replacing later if someone who wishes to resprite them down the
line decides to do so.
As it currently stands, the medical cyborg's magical bag of gadgets
takes up a lot of your screen space and as a player who plays medical A
LOT, this was a MUCH NEEDED quality of life feature.
The amount of clutter in a medical cyborg's bag makes it in my opinion,
hard to see at the bottom of the screen and a nuisance to constantly
close compared to other models. My standard set up for playing medical
cyborg on the hotbar is 1=med analyzer, 2=usually a secondary surgery
tool or injector, and 3=another surgery tool. The flow of gameplay
during surgery ends up being surgery tool, hit 3 and drop it, surgery
tool, repeat or for efficiency using X to swap between the two surgery
tools I need on 2 and 3. This gets tedious especially after so many
hours of playing medical cyborg. I know some people may disagree, but I
think it would help a lot of help to speed up this flow of gameplay
during surgery and declutter.
By turning the medical cyborg's toolset into an omni-surgery tool which
functions like the surgery arm implant's radial wheel, this would
greatly declutter by like an entire row and make things easier on
medical cyborg players. Having a secondary in the bag helps with
efficiency for those players who like having an extra tool on their
hotbar and swapping back and forth would also improve efficiency and
make less swapping by hitting Z needed. Additionally with the upgraded
version as an optional upgrade in the mediborg tech, this also lets them
be on par with players who use advanced tools late game but not at the
level of alien tools where players would obviously out compete a
mediborg in terms of action speed.
Engineering models also benefit from this rework but at a slightly
different and lesser way whereas certain tools are excluded such as the
welder, due to the way they work on refill and the gas scanner and t-ray
scanner not counting as tool components are not included in the arms.
Syndicate versions of the engineering and medical cyborg also get these
arms, unupgraded.
🆑
add: Adds an omnitoolset for both engineering and medical cyborgs,
containing various basic tools
qol: Engineer and Medical module inventory space is now significantly
decluttered
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes dropdown displaytext not working for numeric values (#82778)
## About The Pull Request
https://github.com/tgstation/tgstation/pull/82697 broke the prefs menu
downstream; we have a couple of dropdown choices that are numeric but
that make use of `display_names` to map those choices to appropriate
strings.
The code was assuming that `value` would always be a string when calling
`capitalizeFirst(value)`. Basically it should be doing
`display_names[value]` when `display_names` are present.
## Why It's Good For The Game
Fixes an oversight/bug.
## Changelog
🆑
fix: dropdowns that use display_names as an alias for numeric values
will no longer cause tgui bluescreens
/🆑
* [NO GBP] HPLC can purify inverted chems (#82727)
## About The Pull Request
- Fixes #82725
Inverted chems are now coloured green and classified as clean (like
before my general maintenance PR) which means they can be purified
again.
Only chems that are too impure to use & have an inverted chem value are
coloured red in the UI and not when they are just of the inverted type
## Changelog
🆑
fix: HPLC can purify inverted chems and are now coloured green(clean) in
the UI
/🆑
* Lathes compute their local storage size correctly (#82770)
## About The Pull Request
Basically we have to add the material container before we call parent
Initialize(which calls `RefreshParts()`), else the container doesn't get
initialized early and we skip over computing storage sizes
## Changelog
🆑
fix: off station & round start lathes with local storage don't have
infinite storage size.
/🆑
* Arcmining QoL: GPS component to scanned vents and vent(pin)pointer (#82724)
## About The Pull Request
Scanning ore vents will now tag them on GPS so you can find them easily
when you are prepared (and remove them when they are tapped). Also adds
special pinpointer to help with finding unscanned vents in a first
place. And adds missing uranium overlays for scanned vents. Because why
not.
<details>


</details>
## Why It's Good For The Game
While looking at mineral density to find vents is somewhat fun and
entertaining, having some sort of upgrade to make finding them easier
adds a bit of a progression. Also re-finding already scanned vents can
be a bit annoying. You need to fill your backpacks with GPSs and tag
them manually. It is also inconsistent with geysers that are added to
positioning after you scan them. And with tendrils, which are always
visible.
## Changelog
🆑
add: added ventpointer that points toward nearby ore vents and can be
bought with mining points
balance: scanned ore vents can now be found with GPS
fix: fixed ore vents missing overlay icon for uranium
/🆑
* Fix oven tray runtime (#82782)
## About The Pull Request
Fixes a lil typo from the interaction refactors that broke the ability
to load oven trays from containers
## Why It's Good For The Game
squamsh bug
## Changelog
🆑
fix: loading oven trays from serving trays and other containers works
again
/🆑
* Fix flaky test detection (#82790)
- Add missing job pagination.
- Fix multiple jobs being able to fail if they aren't in
`CONSIDERED_JOBS`
* Add utf8 support for state laws button (#82789)
## About The Pull Request
Adds UTF-8 support for state laws HTML page. Now it supports more than
just English
## Why It's Good For The Game
Support for other symbols, such as cyrillic

* Update highest available sound channel (#82780)
Current channels are:
```
```
So, the highest available now is 1013
Updating the thing which everyone forgot for 7 years. Not that many
special channels were added either way
* Revert "Borg movement now has sounds" (#82795)
Reverts tgstation/tgstation#82704
The sound ingame appears much louder than the original author intended.
Not to mention that the sound loops stack for every borg moving near
you.
* Use defines for "General Research" where it's not used (#82785)
## About The Pull Request
There is a define for it, so why not use it?
## Why It's Good For The Game
Defines good
* [READY] the unfuckening of clothing rendering (#79784)
refactors clothing visors to use the same system, including masks being
toggled and stuff like riot helmets toggling using the same system and
welding helmets and such
adds a handler that updates all visuals in slots that an item has
obscured, each visual proc calls that so you no longer have weird shit
happening like having to hardcode a proc for heads where you need to
also update hair, mask, glasses everytime you put on an item
one thing here i could also do is make check_obscured_slots return the
HIDEX flags instead of item slots, because in 99% of cases its hardcoded
to be ran against specific slots (like eye code running it against the
glasses slot), but maintainers didnt seem to like that :/
fuck this 2003 bullshit
theres like several bugs here i fixed but i forgot them all and they are
small
* Allows vv investigate /appearance + better checking image (#82670)
* Fixes Alien Numerical Identifier Transfer System (#82762)
## About The Pull Request
Fixes #82756
I'm not sure what the root cause of the issue is or why it broke so
recently (this has been a thing since #49150) but I went and cleaned up
the code and ensured that we always reset the `name` to the `initial()`
value we have for it if we determine that we need to transfer over the
`numba` from the old xenomorph. This is done by a new proc which is a
lot less convoluted from the old system (always respecting var-edited
names and stuff like that) that should make it flow a lot better and
make it more hardy against double-addition of the `numba` to the name.
## Why It's Good For The Game
Having two numbers in your name is weird, should only have one.
[x] I tested this PR
## Changelog
🆑
fix: Evolved aliens should no longer have two numbers in their name.
/🆑
* [NO GBP] Fixes runtime in advanced camera console (#82699)
## About The Pull Request
We only unset machine if we have a user who has logged in
## Changelog
🆑
fix: Fixes runtime in advanced camera console when power is turned off
/🆑
* Refactors how basic ais do their success/failures (#82643)
* Rocky DLXIII: Fitness to Athletics, Athletics skill influences Boxing against Boxers, Boxing overhaul, Evil Boxing (#82611)
as the only meaningful reward
Basically just a rebranding so that it is more broad in its concept. It
isn't just about peak physique. It's about how you can apply it too.
Reaching Legendary rewards you with the Golden Gloves.
I started it in this pr here
https://github.com/tgstation/tgstation/pull/80635
But this is a more significant overhaul of boxing from the ground up.
Namely, it now is majorly influenced by the Athletics skill, and also
more thoroughly aligns with conventional punching in its current state.
However, a major component of this is that boxing's breadth of mechanics
is only relevant when used against another boxer. Non-boxer targets are
only ever going to get smacked by a stamina punch, as it is currently
(and more or less the same values too). Additionally, boxers cannot
punch someone who is either unconscious or in stamina crit, so it can't
be used to maintain stamcrit.
- Boxing now has a One-Two Punch mechanic. Swapping between the left and
right mouse buttons to punch and maintaining this causes every second
punch to do more damage (to boxers). Breaking this chain by punching
with the same button twice will cause you to lose damage (against
boxers).
- Boxing now can have crits occur below 50 stamina damage (against
boxers). However, to knock someone out clean, the target must be
staggered from a previous crit first. (Or I guess be staggered at all,
maybe their shoelaces were tied or something). Crit probabilities are
determined by adding your Athletics probability skill bonuses to your
unarmed effectiveness, and then reduced by the targets own Athletics
skill bonuses. It is hard for two athletes to knock each other out in
one blow. It is trivial for a legendary boxer to knock out a novice in a
single punch. Cybernetically enhanced boxers are dangerously effective
at boxing.
- Boxers can block other boxers by using throw mode, but the chances of
doing so is based on Athletics skill bonuses. A successful block causes
the attacker to take stamina damage (as does the blocker, but less so).
- Participating in boxing increases the Athletics skill. Your gains are
probably slower than normal training, but you at least get some reward
for doing so. Only relevant if your opponent is a boxer. Get a sparring
partner!
So this is all well and good, but what if you're a scoundrel with no
care for the other person in this equation? Well, that's where Evil
Boxing comes in. Evil Boxing has absolutely no restrictions at all, and
can freely use its boxing abilities against anyone. Even non-boxers. You
can even grab people! Wow, what a scumbag. I bet you even king hit
people. Thankfully, only an admin can make you into an Evil Boxer.
(against boxers)
Both mutations have a flimsy increase to instability of 5 because of how
incredibly particular the bonus is.
Strength now reduces the amount of stamina damage inflicted via
exercising by half. Strength also adds a +2 damage bonus on boxing
punches while boxing against boxers (this doesn't influence normal
unarmed attacks whatsoever, or boxing against nonboxers). Obviously,
evil boxers just get this benefit against everyone because they're
knaves.
Stimmed increases the duration of the exercised status effect by one
factor. (That is, if you have no other modifiers, it will double the
duration on its own)
@Jacquerel was racking their brain trying to come up with an alternative
to the skill rewards of Fitness. At the moment, sprite growth is not
only a really bad bonus (it does literally nothing but make you big, and
thus is actually a detriment due to how intrusive sprite size is with
interaction, and plays weird with other sprite changing effects), but
isn't really all that interesting for all the effort put in.
Problem is, how do you make Fitness meaningful without making it a
powergame mechanic? Simple! You make it applicable to a really niche,
self-contained but still utilized game mechanic that is engaging to
participate in and makes you meaningfully very good in it. AND scratches
that power scaling itch that many players have.
Boxing is reasonably self-contained as is, but pretty bland due to how
old it is. While maintaining that self-contained nature, I hoped to
expand the interactivity of boxing a little bit by giving it a small
mini-game in of itself. And also introduce ways to simulate the idea of
boxing a bit better.
The idea of being an Evil Boxer is funny. For every Rocky, there is a
[Insert Rocky Villain Here that isn't Creed]. But in this case, it's
probably some Syndicate douchebag looking to punch clowns into a coma
and inspire the mime to take up shadowboxing in revenge.
🆑
add: Replaces Fitness with Athletics; same skill, but now more
specifically applicable to boxing.
add: Athletics does not increase sprite size.
balance: Overhauls Boxing to add a lot more depth to the interactions.
Only applicable to other boxers, however. You can still punch the snot
out of non-boxers though. But only up to stamcrit or unconsciousness. No
hitting someone who can't fight back!
balance: Adds Evil Boxing, which is the evil and fucked up version of
boxing that you kill people with and are allowed to flout the sacred
rules of boxing as you please. Everyone is a victim!
/🆑
* Cargo ui refactor -> TS (#82745)
Refactors cargo ui, fixing some visual bugs, just making it look better
in general
Should be no gameplay effect other than it looking better
<details>
<summary>pics</summary>




Fixes #81442

Made a type grabber for backend data in case you want to make your own
typescript uis
`logger.log(getShallowTypes(data))`

Otherwise cargo's data is unreadable
</details>
Any UI over 500 lines should get broken up to reduce cognitive load
~~Any ui in javascript shouldn't exist~~
Cargo UI is better
Typescript
🆑
fix: Cargo's supply console has been upgraded visually.
/🆑
---------
Co-authored-by: EricZilla <81941674+EricZilla@users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Makes lavaland stone tiles prevent immersion (#82807)
## About The Pull Request
Adds the same trait that lavaproof rods have to the stone tiles, so
things can continue being visually outside of the lava
## Why It's Good For The Game
this shit looks goofy

## Changelog
🆑 FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/🆑
* Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794)
Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits
- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
- If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs.
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.
🆑 Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/🆑
* [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801)
## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
🆑
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/🆑
* Fix all types of damage to the head causing brain damage (#82763)
## About The Pull Request
5 months ago when I separated this stuff out to its own proc I forgot a
damagetype check.
## Changelog
🆑 Melbert
fix: Only brute damage causes brain damage when applied to the forehead,
rather than all damage types
/🆑
* Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792)
## About The Pull Request
If we say something is a Modal it should actually be a Modal
## Why It's Good For The Game
You can now use this system in other windows if you want.
Fixed the misnomer.
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)
## About The Pull Request
Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.
Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.
The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.
## Why It's Good For The Game
The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.
Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.
## Changelog
🆑
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/🆑
* Revert "Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)"
This reverts commit
|
||
|
|
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570) ## About The Pull Request I completely screwed up and told the original PR author of #82415 ( |
||
|
|
91946bbab6 |
Cherry-pick of all NO DESTRUCTION (#27477)
* [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 /🆑 * NO DESTRUCTION * Linter fix * Fixes standard RPEDs not working on machines (#82528) ## About The Pull Request Previously, `exchange_parts(...)` would cancel if both the `NO_DECONSTRUCTION` flag was set and you couldn't use your part replacer from a distance. |
||
|
|
0733a4e1bb |
[MIRROR] Water tiles now put out burning atoms (#27380)
* Water tiles now put out burning atoms (#82735) ## About The Pull Request This adds a new "watery tile" element, currently used for (you guessed it) water turfs. This makes a tile extinguish any atom that passes through it. It also makes mobs wet!  This required a minor amount of under-the-hood work regarding firestacks. Essentially, they now get put out when the atom-level `extinguish()` proc is called, as they are now receptive to the `COMSIG_ATOM_EXTINGUISH` signal. ## Why It's Good For The Game It makes sense to me! If I was playing another simulation game and dived into a pool of water on fire, only to remain on fire, I would be very confused and disturbed. Also, it's good for immersion. Get it? Like, because water tiles also have the immerse element? ## Changelog 🆑 Rhials qol: Water tiles now extinguish fires on items and people. /🆑 * Water tiles now put out burning atoms --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> |
||
|
|
7aa6664021 |
Mirror (#27453)
* Fix Conflicts
* Change COGBAR_ANIMATION_TIME to seconds and not deciseconds (#82530)
Most people should not be using this define
* New Battle Arcade (#81810)
Remakes Battle Arcade from just about the ground up, with exceptions
taken for emagged stuff since I didn't really want to touch its
behavior.
The Battle Arcade now has stages that players can go through, unlocking
a stage by beating 2 enemies and the boss of the previous one, but this
must all be done in a row. You can choose to take a break between each
battle and there's a good chance you'll sleep just fine but there's also
a chance it can go wrong either through an ambush or robbery.
The Inn lets you restore everything for 15 gold and you can buy a sword
and armor, each level you unlock is a new sword and armor pair you can
buy that's better than the last, it's 30 gold each but scales up as you
progress through levels. They are really worth getting so it's best to
try to not lose your money early in.
The battle system is nearly the same as how it was before but I removed
the poor combo system that plagued the old arcade as one big knowledge
lock, now it's more just turn based. The game is built on permadeath so
dying means you restart from the beginning, but if you are going to lose
you can try to escape instead which costs you half of your gold.
Getting to higher levels increases the difficulty of enemies but also
increases the gaming exp rewards which could make this a better way to
get exp if you can get good at it.
Gaming EXP is used to increase chances of counterattacking but doesn't
give any extra health to the player.
I also removed the exploit of being able to screwdriver arcade cabinets
because people would do that if they thought they were on the verge of
losing to bypass the effects of loss. I instead replaced it with a new
interaction that the Curator's display case key can be used to reset
arcade cabinets (there's several keys on the chain so it made sense to
me), which I added solely because I thought Curators would be the type
of person to have run an actual arcade.
This is some gameplay
https://github.com/tgstation/tgstation/assets/53777086/499083f5-75cc-43b5-b457-017a012beede
As a misc sidenote, I also split up the arcade file just like how Orion
Trail was before, just for neat code organization.
The Inn keeper is straight up just a photo of my localhost dude, he's
not a player reference or anything it's not my actual character.
I also have no idea how well balanced this is cause I suck at it lol.
Battle Arcade is one of 3 last machines in my hackmd here to turn into
TGUI https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
I've always thought the current version of battle arcade is quite lame
and lacks any progression, like Orion Trail I thought that since I was
moving this to TGUI, it would also be a perfect opportunity to revamp it
and try to improve on where it failed before, especially since the
alternative (NTOS Arcade) is also lame as hell and is even lamer than
HTML battle arcade (spam mana, then spam health, then just spam attack,
rinse and repeat).
This will hopefully be more entertaining and give players sense that
they are getting through a series of tasks rather than doing one same
one again and again.
🆑 JohnFulpWillard, Zeek the Rat
add: Battle Arcade has been completely overhauled in a new progression
system, this time using TGUI.
add: The Curator's keys can now reset arcade cabinets.
balance: You now need to be literate to play arcade games, except for
Mediborg's Amputation Adventure.
fix: You can no longer screwdriver emagged arcade consoles. Accept your
fate.
fix: Silicons can no longer play Mediborg's Amputation Adventure.
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Change setting item weight class to a setter to patch some weight class related shenanigans (#82494)
## About The Pull Request
Fixes #81052
Fixes #58008
Setting weight class of items is now done via `update_weight_class`.
I updated as many occurrences of manually setting `w_class` as I could
find but I may have missed some. Let me know if you know of any I
missed.
This is done to allow datums to react to an item having its weight class
changed.
Humans and atom storage are two such datums which now react to having an
item in its contents change weight class, to allow it to expel items
that grow to a weight class beyond what is normally allowed.
## Changelog
🆑 Melbert
fix: You can't fit items which are normally too large for a storage by
fitting it in the storage when it is small, then growing it to a larger
size.
/🆑
* Material datum color update, plus touching up some material items (knight armor, tiles) (#82500)
## About The Pull Request
Tries to bring the material datum colors in closer approximation to the
stacks they're attached too. I literally used the colors on the stacks.
some might need to be lighter or darker, but for the most part they'll
look...closer to their actual material hues.

I've also tweaked the sprites of both the tile object and the actual
material tile turf to give it the right shading.

In addition to the tiles, I've also updated the knight armor and helmet
to look closer to the much higher quality plate armor already in the
game.
## Why It's Good For The Game
It bothered me that the material datum coloring was inconsistent with
the actual colors used for the material stacks. When they were updated,
and even before they were updated, material datum stuff just never
looked _right_. I wanted to change that so that it looks just right.
I did not like the old material knight armor whatsoever. It was a
dithered mess, and seemed to already use parts of the standard plate
armor but with all the actual shading removed or replaced with the wrong
colors. This fixes that so that the armor is actually readable for what
it is.
## Changelog
🆑
image: Updates the colors of various material datum to bring them closer
in-line with their actual material stacks
image: Improves the sprites for the material knight armor and helmet.
/🆑
* 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.
/🆑
* Fix table top deconstruction (#82508)
## About The Pull Request
Edited: updated changelog, read comments for changes in implementation
details
So previously, tables would let you use a wrench to fully deconstruct
them, or a screwdriver to take off only their top.
This, however, broke in two different ways in #82280, when their
deconstruction logic got changed.
First off, deconstructed tables would only drop the materials for their
top and not their frame.
For this, the primary culprit seems to be on line 307:
|