mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 18:40:42 +00:00
b90d323f4bf8a67234b417536aa8bfb18ff38ab4
459 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
182fd86706 |
[MIRROR] Fixes the other half of the crusher bug (#28215)
* Fixes the other half of the crusher bug (#84028) ## About The Pull Request Fixes #83906 So when I test the first issue I just whacked the guy and the checked VV to see if it was tracking damage at all then I called it a day, turns out while it was applying damage it was actually negative damage from the crusher itself so while the final number of damage dealt may look like "2500" the tracker tracked like "1400". (I mean that's still a pretty interesting statistic is shows that the crusher itself, with none of its special effects, does just under 60% of the total damage dealt, so cool) ## Changelog 🆑 Melbert fix: Crusher Fix For Real /🆑 * Fixes the other half of the crusher bug --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
832f9fb865 |
[MIRROR] Significantly increases stamina recovery on most effects that provide it (#28131)
* Significantly increases stamina recovery on most effects that provide it (#83556) ## About The Pull Request Currently, stamina healing is a niche side effect on many drugs, besides a few effects (mostly heretic powers, an obscure side effect of some drinks) that actually contribute to a significant shift in gameplay style when you use them. In this PR I significantly increased the stamina recovery on almost every drug and some effects that provide it. Points of interest (not completely inclusive): Syndicate stimulants heal 12 instead of 5 stamina damage. This will bring you out of stam crit in two cycles, and let you heal out of the slowdown from the stamina damage from a baton strike. The current rate of 5 takes 5 seconds to heal out of stam crit, and the stamina reset takes place before you heal out of stamina damage slowdown. Bath salts heal stamina at the rate stimulants used to. Meth heals stamina slightly slower. Changeling adrenaline will instantly bring you out of stam crit if you're in it; otherwise, it will heal 10 stamina damage. Ephedrine heals 4 stamina per life, instead of 1. Being so drunk that you black out and give up your body to ghost control will make you heal stamina more quickly than an ascended rust heretic. You will also likely be dying of liver damage. ## Why It's Good For The Game At the levels they are set, most of these stamina healing effects have almost no effect on gameplay whatsoever except in the case of tanking a couple of extra disabler shots (only in the case of the high end drugs), or being able to do stamina consuming tasks slightly longer (breaking boulders, grinding with pestle and mortar, working out, ???). Adjusting these numbers would make these drugs an actual factor in combat situations that rely on stamina crit (stun batons, ebows, stamina damaging poisons and diseases). Most of the drugs already have side effects such as brain and organ damage, which in the current state hugely outweighs any reason to use most of them besides a few that give a movespeed buff or prevent baton knockdown (ephedrine, stimulants). This only affects stamina healing. There has been no change to any other interactions with things that knock down or cause any other kind of stun. These changes are in consideration of the fact that taking stamina damage puts you in a cooldown before you can recover your stamina naturally. Effects that cause steady stamina damage will bottom out your stamina the way they do now, unless you use something to heal it. ## Changelog 🆑 balance: Stamina healing has been significantly increased for most reagents and passive effects. /🆑 * Significantly increases stamina recovery on most effects that provide it --------- Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
1c42b03d01 |
[MIRROR] Incoming stamina damage while in stamcrit has diminishing returns applied (#28129)
* Incoming stamina damage while in stamcrit has diminishing returns applied * Fixing --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.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> |
||
|
|
5a1eb6c823 |
[MIRROR] Sneeze Rework: Projectile Combat Edition (#28044)
* Sneeze Rework: Projectile Combat Edition (#83361) ## About The Pull Request Reworks sneezing. Instead of a range check that checks if you're facing someone, it is now a skill check https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc All sneezes shoot projectiles, but depends on the virus if they're infectious. Using the sneeze emote is the only method that doesn't shoot a sneeze ## Why It's Good For The Game I think the invisible infection mechanics are unfun. A lot of station dangers challenge your knowledge and mechanical skill, while viruses are gotten by being around people in a roleplay game. You can get a round seriously ruined if you walk past someone with a sneezing virus and don't immediately rush spaceillin or chemistry, which I don't think is mechanically interesting. Now if you get infected, it's a skill issue. Get good and dodge the sneeze Note that this is just one method of infection. I didn't touch coughing and airborne viruses, which do constant area checks and infect everyone around. I plan to, but not now. I'll probably make coughing do a cone or something, and ignore the airborne viruses since they can't be modified and are generally less broken ## Changelog 🆑 balance: You can now dodge sneezes balance: Infectious simple diseases that use sneezes now infect with sneezes and have lowered airborn transmission balance: Damageless attacks, projectiles, hugs etc no longer drain shields /🆑 - [x] Make sneezes shoot to your cursor so you can either intentionally sneeze on people or sneeze away from people if you react fast --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Sneeze Rework: Projectile Combat Edition --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
b86cde0521 |
[MIRROR] Sentient mobs can slowly subtract slime stacks by shaking (#28006)
* Sentient mobs can slowly subtract slime stacks by shaking (#83471) ## About The Pull Request Closes #82746 PR #77569 replaced the clone damage inflicted by slimes with a lingering damage over time effect which can be removed with water. This is all well and good for humans who can spray themselves with fire extinguishers, showers, or sinks... but most other mobs are not actually capable of opearating any form of equipment which can make them wet. This PR allows you to click on the debuff icon to shake the slime off slowly over time (15 seconds to fully remove the debuff). This is slower than the recovery time when wet. Dogs, Cats, and by extension, Felinids are better at removing slime because of their self-cleaning prowess (they're always licking weird stuff off themselves). This is rarely helpful if you're not a Felinid, because almost all cats and dogs have so little health that they will hit the minimum health threshold and lose the debuff anyway by the time they would be done. In the very niche circumstance that a sentient wolf is attacked by a slime they will appreciate this bonus. ## Why It's Good For The Game This was a replacement for slimes inflicting clone damage (I am not sure this even did anything for most simple mobs?) but essentially turned slimes into an automatic death sentence for most forms of mob without hands. Technically the slime debuff cannot kill you and stops if you are under 10 HP, but this is small consolation for most of these mobs which cannot heal themselves either. You are still probably going to take between 30-60 damage during the 15 seconds of removing slime from your body. ## Changelog 🆑 balance: Corrosive slime left behind after a slime fails to eat you can be scraped off with your hands, or shaken off in some other way, by clicking on the debuff. This is slower and less effective than washing it off using water. /🆑 * Sentient mobs can slowly subtract slime stacks by shaking --------- Co-authored-by: Jacquerel <hnevard@gmail.com> |
||
|
|
40c1bbed83 |
[BOUNTY] Watcher Eye trophy (#27923)
FINALLY, GAY CRUSHER, AGAIN |
||
|
|
cef982d403 |
[MIRROR] Adds Crutches to Medbay & Crafting (#27959)
* Adds Crutches to Medbay & Crafting (#83242) ## About The Pull Request Added crutches! Wooden ones can be made with wood. Medical ones can be bought from the medvendor. Crutches will reduce slowdown from missing a leg by 60%, and they will remove the limping from fractured bones. They're also a fairly decent bludgeon. However, they do nothing if both legs are cut off. Canes now also remove broken bone limping as well Changed the 'white cane' name to 'probing cane' to better reflect its function. Shuffled some wound and mob code around, added signals for limbless slowdown and limping. Crutches make you waddle. SPRITES BY XHORIAN!!!!!!!!!!!!!     ## Why It's Good For The Game > Added crutches! Wooden ones can be made with wood. Medical ones can be bought from the medvendor. > Crutches will reduce slowdown from missing a leg by 60%, and they will remove the limping from broken bones. They're also a fairly decent bludgeon. However, they do nothing if both legs are cut off. Currently there's no way to abate slowdown from a missing leg except getting on a vehicle, which I think is pretty lame. What if all the doctors are busy, missing, or dead? What if medbay is a hole? A crutch helps make up for the loss at the cost of a hand slot. > Changed the 'white cane' name to 'probing cane' to better reflect its function. 'White cane' was undescriptive. > Shuffled some wound and mob code around, added signals for limbless slowdown and limping. I dont know where to put the friggin signals ## Changelog 🆑 Carlarc, Xhorian add: Added crutches! Wooden ones can be made with wood. Medical ones can be bought from the medvendor. add: Crutches will reduce slowdown from missing a leg by 60%, and they will remove the limping from fractured bones. (canes do that now too) They're also a fairly decent bludgeon. However, they do nothing if both legs are cut off. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Adds Crutches to Medbay & Crafting * This should do the trick * Missed one * fix --------- Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com> |
||
|
|
7fa267aca3 |
[MIRROR] Deletes handle_random_events, saving us from 1 whole proc call in Life (#27864)
* Deletes `handle_random_events`, saving us from 1 whole proc call in `Life` (#83421) ## About The Pull Request Dumps `handle_random_events` in the bin, giving us one less proc in `Life`, that's a free proc call optimization baby. Replaces its only implementation with a status effect conditionally applied when gaining / losing tox dam. ## Changelog 🆑 Melbert refactor: Refactored the way high toxins cause you to vomit. /🆑 * Deletes `handle_random_events`, saving us from 1 whole proc call in `Life` --------- Co-authored-by: MrMelbert <51863163+MrMelbert@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. |
||
|
|
3827a3701b |
[MIRROR] Protects space spawned humans from radiation nebula (#27711)
* Protects space spawned humans from radiation nebula (#83202) Fixes #80864 When a mob is spawned in space in a nebula, they get 1 minute of radiation immunity. Ninja is the main one, but it'll also apply to other space spawned mobs (lone nukie, space changeling?) This only works for dynamic spawned antags. If an admin forces ninja through an event, it doesnt work  🆑 fix: Space Ninja and other space spawned antags get a 1 minute radiation shield in the radioactive nebula /🆑 * Protects space spawned humans from radiation nebula --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> |
||
|
|
db8f4d3f70 |
[MIRROR] Allows status effects with alerts to display their duration (on the alert), adds it to a select handful (#27692)
* Allows status effects with alerts to display their duration (on the alert), adds it to a select handful (#83211) ## About The Pull Request Plainly: Expands the status effect API so their alerts can showcase duration remaining. https://github.com/tgstation/tgstation/assets/51863163/02eaad84-ebb7-4af9-9895-977c6e71acc4 ## Why It's Good For The Game I figure there are some status effects out there which really want the player to know how long the duration is. And right now, for 95% of them, you have to code dive to find out. This is rather punishing for players who... don't code dive. At the same time, there are effects which *do* tell you how long they last, which leaves it up to the player to intuit when it'll run out. This can get a bit silly during lag, and again, punishes new players. That's not to say I think every status effect should report how much duration is left: **For very common effects, like sleeping, it should be left up to the player to guess.** Otherwise we lose a lot of paranoia and feeling of helplessness. (Also keep in mind this only applies to status effects with alerts associated.) Hence why I only added it, largely, to the more "gamified" buffs and debuffs - Things from (generally) one or two sources and with a static duration, (or things which already informed the player how long they last). Notable ones include Fleshmend, Convulsing (from emag defib), Regen core. ## Changelog 🆑 Melbert qol: Some alerts, such as Fleshmend's, show their remaining duration on their icon. /🆑 * Allows status effects with alerts to display their duration (on the alert), adds it to a select handful --------- 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
|
||
|
|
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:
|
||
|
|
42f6f57dc0 |
[MIRROR] Replaces even more deciseconds with SECONDS (#27205)
Replaces even more deciseconds with SECONDS Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> |
||
|
|
2b60c77e55 |
Yet another mirror batch (#27314)
* A skub-related station trait. Reduced weight of annoyingly frequent neutral traits. (#81388) ## About The Pull Request This PR introduces a new station trait that lets people choose if they want to be pro-skub or anti-skub (or neither, really). It works the same lobby buttons that job-related station traits also use. Depending on whether you chose to be pro or anti skub, you'll spawn in with a special box that contains the (bulky) skub and a pro-skub shirt, or an anti-skub shirt. EDIT: Both also receive a number of stickers to propagate their causes. Kudos to @Fikou for coding the lobby buttons to be accessible by any station trait rather than only job-related ones when you made the Cargorilla station trait. Another thing this PR also halves the exaggerated weight of low-cost traits such as scarves, wallets and glitched PDAs, which I clearly underestimated. ## Why It's Good For The Game We've learned that low-cost, high weight traits are a bit of a design mistake, because they tend to tip the scales toward themselves over and over and over, leveling the diverseness of the feature and therefore making it shallow and boring. Beside, I've been thinking of the popular [skub comic strip](https://pbfcomics.com/comics/skub/) lately. ## Changelog 🆑 add: Added a Skub-related station trait. You can now choose if you want to be pro-skub or anti-skub, complete of shirt and stickers. Please don't shank each other over it. balance: Halved the weight of station traits such as scarves, wallets and glitched PDAs. /🆑 * Fix some slime species subtypes not having burn resistance (#82164) ## About The Pull Request All slime species limb subtypes now inherent from the parent `/jelly` subtype, giving them all their proper burn resistance. ## Changelog 🆑 Melbert fix: Slimepeople and Luminescents are now 50% burn resistant like Stargazers /🆑 * There we go * FIX: Makes Hatsune mi-go a (friendly) gold slime mob (#82251) ## About The Pull Request: The hatsune mi-go is now a friendly gold slime mob. This means it won't try and kill you. It also now doesn't make your ears hurt, and drops a keyboard synth on death (you monster.)  ## Why It's Good For The Game So in making my resprited mi-go and subsequent speedmerge, I failed to realize that there are only 10 possible migo spawnpoints - 5 in snowdin gateway, 3 on ceres whiteship, and 2 on kilo whiteship. This means at most eight can exist on anyround, with a decent likelyhood of 0. This, combined with the fact the hatsune migo is banned from spawning outside of roundstart locations, along with the fact people seem to love the thing, made it feel _too_ rare, even for a shiny mob. You still have to roll the random odds with the life chem or friendly gold slime pools, but you should actually see them outside of two mutually exclusive space ruins and a gateway now. Also, they don't try and kill you now, because it would have been wrong to add a hostile creature to the friendly pool. 🆑 fix: Hatsune mi-go now is a friendly gold slime mob, and doesn't hurt your ears. add: Hatsune mi-go drops a keyboard synth on death (you monster.) /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * [THE QUIRKENING] Adds customization options to Organ Prosthetic, Junkie, Smoker, and Alcoholic! (#82051) ## About The Pull Request Lets people pick: - The shitty organ they spawn with (still has the restrictions of not being possible to get heart when you are a plasmamen, for example) - Their favorite alcohol to blackout with - Their favorite brand of cigs - Their favorite brand of drugs! A lot of the code was taken from a downstream, made by @Floofies, i already had my own implementation but it was buggy and not nearly as clean, then i was made aware of theirs. ## Why It's Good For The Game Character Customization is good and fun and lets people have more choice in their roleplay. ## Changelog 🆑 add: Prosthetic organ users are now allowed to pick what they want to start with. add: Junkie of all kinds, including smokers and alcoholics, are also able to pick their favorite type. /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com> * [NO GBP] Fixes the "Drop Pod: Syndies" deathmatch modifier. (#82216) ## About The Pull Request I've had false memories of `pick_weight` working with assoc-value-less lists. ## Why It's Good For The Game This will fix an issue with deathmatch modifiers. ## Changelog 🆑 fix: Fixed the "Drop Pod: Syndies" deathmatch modifier. /🆑 * Fix robocontrol access runtime (#82242) ## About The Pull Request  `check_access` expects an item, such as an ID card, to... check access. Not a mob. We can circumvent this entirely by using `allowed`. But this has an averse effect in that `allowed` will only check the user's ID, not the ID in the mod PC. So we need to run a separate check of `check_access` for the computer ID card. ## Changelog 🆑 Melbert fix: Robocontrol should work better. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Adds a photobooth (#82105) ## About The Pull Request Adds a photobooth machine to the HoP line which can be used to update your security records photo. It updates the records of the person's name, which means hiding your identity and wearing an ID will let you change other people's photos. If you aren't hiding your identity and are wearing someone else's ID, it won't update at all because it will be unable to find your record. There's 2 variants of this machine, one at the HoP line that's tied behind Law Office access (so Lawyers have an extra thing they can help out with if no one's available, but maybe it would be better behind Library access since Curators are our "photographer" role?), and the Security one that requires Security access. The Security one has a special feature that it adds a height chart behind the player.  This machine is used by either right-clicking on it or by pressing a button, so the HoP can do it remotely from their line (except on Tram where it's in the library), and after a few delays it'll update your records automatically to how you look like. Emagging the machine will remove its access restrictions but every time it updates your photos it will spam camera flashing and blind you. Sprites Open  Closed  Security version on the left, has a red tint on it  Video demonstration (old sprites): https://github.com/tgstation/tgstation/assets/53777086/a2e59f08-2d58-4f5b-b081-e137c7606d35 ## Why It's Good For The Game Current security records has no way to change your photo ID, something that was a feature before it was moved to TGUI. The only alternative is to fully delete your record and make a new one with a photo and the same name, but this shares a major issue with the HTML UI: You're immediately sold out by the fact you have a background. No matter how well you try to cover your tracks, any security officer looking at records will see you are the only photo on the manifest that has a background and even a camera in your hand, which makes it impossible to get away with it unless security essentially takes pity on you. This opens up the ability to fully mask yourself in records, finally. This is also better even for non antagonists because you can now properly update your photos to match what you look like in the event of an appearance change or even just a job change, which makes it a benefit for HoPs who likes to keep records as up-to-date as possible. ## Changelog 🆑 JohnFulpWillard, Twox add: Added a new photobooth machine to the HoP's line. fix: Things checking for access now checks your off hand, too. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> * Converts slimes to basic mobs (#82176) After months of preparation, and further months of work, I am finally done. Please bear with me, as this is a massive refactor, but I have already atomized everything I could. This is now ready for review. General - The hilbert hotel slimes are now a subtype instead of a varedit. - The `use_mob_ability` subtree now also accepts non cooldown abilities. If set_behaviours is set up properly, mobs won't keep continously triggering it as if it were a 0 second cooldown action. The alternative would have been turning the slime abilities into cooldown abilities. - Wrestling off a slime now signs up to the `COMSIG_ATOM_ATTACK_HAND` signal, instead of being part of attack_hand. - Adds datum/ai_controller/controller as a fourth, optional argument to `/datum/ai_behavior/find_hunt_target/valid_dinner()` to make it possible to access blackboard keys. - Slimes no longer attack windows if they would accidentally move into them (when the conditions are met), since random walk behaviour ignores tiles they can't go in. It was also not worth to keep. Did you know this was the sole override of `ObjBump()`? - Examine was made less snowflaky/bespoke. Also added a new element: `/datum/element/basic_health_examine`, which is a simple bespoke element that prints out a custom message based on how damaged the basic mob it is attached to is. - Slimes only perform knockdown instead of paralysis, as they can attack more often now, and paralysis is not that fun. - LAssailant has been removed due being archaic code. To befriend a slime, you have to spawn a monkey with the slime console, or feed them a sheet of plasma. Simple grabbing the monkey or stuffing them in disposals do not work anymore. Slime console spawned monkeys will have a visible status effect, with pheromones coming off them to make this clearer. Actions - Feeding, reproduction and evolution is no longer a verb. - Slime feeding is no longer an action button. You have to use right click, or as previously, mousedrop. Slimes can always unbuckle from mobs they are attached to. Hunger - Instead randomly changing the starvation and max nutrition values while growing up, evolution costs 200 nutrion. This makes the code more readable, and behaviour more predictable, while still giving the intended time between evolving and splitting. As a result, I could also turn these into defines. - Added a component that handles doing an effect over time while buckled to a mob, until the mob dies or you get unbuckled. - Slimes gained nutrition is no longer randomly multiplied by the damage config value, but rather gain nutrition equal to twice the damage dealt. You'll have to eat one monkey to evolve, just as before. - Slimes do not heal passively. They only heal from eating. It was a rather miniscule value that did not have much effect. - Slimes generate electricity from hunger threshold, instead of the random amount of hunger threshold + 100. Environment - Slimes take 15 damage from cold every second, instead of using a complex formula (that also decreased the damage up to a point?). - Slimes still heal from burn damage, but this is now set on the damage coefficient list. - Slimes instead of getting stunned by the cold, freeze in an ice cube. BZ instead of setting them unconscious, calls the stasis status effect, allowing you to safely stash your hungry slimes for later. They also no longer slow down from the cold, as they are already slowed down by the damage they get. Conversely they no longer get a speed up from a random amount of temperature. I could be convinced to readd this either as part of the basic sensitive component, or a similar one. AI - Removed the attacked_stacks system. Slimes will just perform regular retaliation if you hit them in a harmful manner. - Slimes now use the pet orders component. They will interrupt their feeding when given a command by their master. - Slimes have their own subtrees. I tried to replicate as much as I could from the old code, dividing ancient code artifacts and intentional stuff, so there might be some weirdness. - Slime speech has been almost fully reduced to basic blorbing, as you can not even understand them anymore, and most of them require the slime to loop through all of their surroundings. - Discipline does not have stacks either. Disciplined baby slimes have a chance to clear their attack and hunt blackboard keys. All slimes will stop feeding on the target otherwise. - Since discipline is not a stack, rabidity instead gets removed at a 10% chance per disciplining. - Slimes faces are a bit more randomly picked now. - We want to convert all simple animals to basic mobs. Old slime code was also very strange, and had some systems that have been replicated by components. - Slimes fully paralyzing you is not fun at all. Knockdown should give you a fighting chance when a slime would like to eat you. - Slimes slow down from the heavy damage they get from the cold, so I don't think they need extra slowdown, nor do they need to speed up from warmth, as they are already fast. - Slimes turning into an icecube instead of becoming paralyzed from the cold is more fun for the slimes, as they can break out for a few moments. It is also funny. - Slimes entering proper stasis from BZ is not just a visual indicator of a slime that is safe to approach, but also keeps the slimes's hunger value in check, allowing it to not starve while stopped. They can also look around and blorble, instead of staring at a black screen, if player controlled. - The attack_stack and discipline_stack behaviours were rather overcomplicated, and the xenobio mains I talked with didn't even know it was a thing, so I argue it needed simplification. - The bespoke friendship system of slimes was also too complicated. Slimes slowly gained levels of trust, and at certain levels commands costed friendship, and other levels, they did not. The binary friend/not friend system that everything else in the game uses is much more sensible. - Using right click for feeding is much more sensible than using an action, and then picking someone from a dropdown. - Slime speech was very soulful but not only did it loop through everything in sight, you couldn't even understand it unless you spoke slime. Maybe it can be readded later in a different form. - Slime's passive healing was miniscule, and having them rely on feeding is more interesting. also fixes #81463 🆑 refactor: Slimes are now basic mobs. Please report any strange behaviours! balance: Slimes only stun you for two seconds when they shock you, the rest of the duration is a knockdown. balance: Slimes are not stunned from the cold, but rather, get frozen in a freon icecube. BZ also puts them in complete stasis, instead of making them unconscious. Their speed is likewise unchanged by temperatures. balance: Slimes do not passively heal, they instead rely on feeding. fix: Slimes can use the buckling screen alert to unbuckle and stop feeding, along with clicking on the mob they are riding /🆑 * Oh, right. * Fixes AI verb Jump To Network (#70016) * check for camera loc to not be a silicon * check for z=0 instead * Update code/modules/mob/living/silicon/ai/ai.dm Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com> * evil touch * redundancy Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com> * Removes camera assembly structures (#81656) Removes the camera assembly structure middleman between the camera wallframe and camera machine. All its behavior has been instead moved to the camera, and I've tried to keep as much of the behavior the same as before. This also fixes the issue that camera assemblies had where, upon the construction being finished, it would move itself into the newly finished camera machine, therefore taking itself off a wall, therefore deconstructing itself. This resulted in 2 piece of iron being in each camera machine (except roundstart ones), and because camera machines rely on the assembly inside of them for upgrades and such, upgrading didn't work at all. I've also made camera nets use defines (not in map) so it's easier to find a list of them all, and tried to add autodoc comments to nearly every var in camera code. Removes copy paste and spaghetti code between structure and machine camera, thus making it easier to work around with. Closes https://github.com/tgstation/tgstation/issues/79019 🆑 fix: Cameras built in-round can be upgraded again. fix: Deconstructing cameras now more consistently return to you the upgrades inside of the camera. fix: RD's telescreen can now properly see Ordnance cameras again. fix: [Deltastation] Library art gallery no longer has an invisible camera. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * [MDB Ignore] Combines Cargobus consoles with Dept. Order Consoles, freeing all departments of 1 whole tile of space (#82210) ## About The Pull Request - Departmental orders are now an NTOS app - To download, they require `ACCESS_COMMAND`. - To use, they require one access from the department. - This means you cannot order things from not-your-department unless you have an ID. - When newly downloading the app, it will prompt a head of staff to insert an ID, to determine which department to be linked to. - Changes chat room overlay from the kind that AI uploads use to a new icon. - Minor refactors to department order in general.   ## Why It's Good For The Game These two computers are surprising waste spacers for two things which are tied together. So why not combine them? The lesser used cargobus chat is still there, and departmental orders are front and center. This gives mappers a ton more leeway when mapping departments out and is overall less clutter. ## Changelog 🆑 Melbert qol: Cargobus chat console and Departmental Order console are now combined into one. qol: Mod PCs active on the "chat client" apps no longer look like AI uploads (and now have their own sprite) refactor: Departmental order consoles were refactored a bit, report any oddities. /🆑 * This should cut it. * Was it really just skub? * [No GBP] Fixes slow slime feed (#82284) ## About The Pull Request Slimes were supposed to gain the same amount of nutrition as the damage they dealt while feeding. However, I have accidentally multiplied this again by `seconds_between_ticks` a second time. This meant that locally slimes fed normally, but on the server they got about the third nutrition they were supposed to, probably due to having more ticks per second then my machine. This PR fixes that. Also raised the nutrition gained by slimes by 20%, after careful testing, one monkey wasn't always enough. ## Why It's Good For The Game Fixes #82283 ## Changelog 🆑 fix: Slimes now feed faster, and should only need one monkey to reach their next lifestage. /🆑 * [No GBP] Fixes a slime speed config and ai controller null error in slime nutrition handling (#82330) ## About The Pull Request Someone has linked the runtimes logs of round 226376 to show off a runtime, and I took a look, and found some unrelated runtimes in slime code. - The config file for slime slowdown was still using the simple_animal path. This has been fixed. - Somehow, a grey slime has lost its AI controller, and when it got hungry, it runtimed. For now, a coalesce operator has been put in place. Later, an investigation is needed to figure out where did its AI controller go. ## Why It's Good For The Game Runtimes bad. ## Changelog 🆑 fix: Slime properly load their slowdown values from the config files. fix: Slimes who lose their AI controller will no longer runtime when they get hungry. /🆑 * [No GBP] Slime stasis fixes (#82304) ## About The Pull Request `handle_environment` is never called when the target was in stasis, so slimes stayed in stasis forever. This PR fixes that, albeit in an ugly way. It also makes slimes actually not get hungry while in stasis. ## Why It's Good For The Game Fixes #82300 I also claimed slimes can be safely kept in stasis, but I didn't actually put a stasis check before handle_nutrition. This is fixed now. ## Changelog 🆑 fix: Slimes stop being in stasis when taken out of a BZ filled environment fix: Slimes no longer become hungry while in stasis /🆑 * Add a unit test to check that maploaded simple/basic mobs are in an environment they can survive in. (#82180) I've recently noticed that the maploaded penguins from the snowdin away mission were dying from unsafe atmos/temperature. This sparked the idea of making a (focus only) unit test that would prevent this sort of issues from happening. This PR also implements the usage of the `atmos_requirements` and `body_temp_sensitive` elements for simple animals too, cutting down the copypaste. More unit tests to make sure things are done correctly. 🆑 fix: Made sure that mapped critters (i.e. penguins on the snow cabin away mission) can survive in the environment they're spawned in. /🆑 * This all is going to suck. * A step further * Is this hell over? * I hope it is. * Autosort I suppose * This should cut it for VoidRaptor * And Blueshift * Revert "Autosort I suppose" This reverts commit 9100de67c30514fc25db3ba29df81d1b0ac54e24. * Dear god, the chicken. * I fucking hate mapping * fixes gas analyzers (#82278) ## About The Pull Request #82180 accidentally messed up air analyzers being able to read or send readouts to the chat. ## Why It's Good For The Game air analyzer good ## Changelog 🆑 fix: air analyzers work again /🆑 * [NO GBP]Grind & juice fixes (#82272) - Fixes #82266. Anything that has reagents can be either grinded or juiced - If something doesn't have reagents but has grind results it can still be grinded but not juiced 🆑 fix: anything that has reagents can be either grinded or juiced fix: stuff that does not have reagents but has grind results can still be grinded but not juiced /🆑 * Birdshot Engineering Retrofitting (#81840) Warning: Nanotrasen Confidential Proprietary Information (NCPI) must only be accessed and viewed within a Nanotrasen Virtual Environment (NVE, vNTOS-3). Employees in violation of this information ordnance will have their wages A) garnished, and B) sent to a labour camp up to a maximum of ten (10y) years. Questions regarding policies related to NCPI should be directed towards departmental heads or your sector Central Command Information Authority (CCIA) personnel. ## About The Pull Request Credentials Confirmed The Birdshot Engineering Revitalization Plan (formerly proposal Blindfold, now BERP) is a procurement effort to address growing maintenance liabilities and costs on the Skitter-MDR Class Orbital Station located in the Spinward Stellar Cluster (SSC, Sector 28-7b). Over the course of the previous year, ongoing analysis data has provided vital feedback since the station was once again brought into operation after 17 years of abandonment; and using this data, 4 options were outlined for the Blindfold Proposal. 1) Abandonment - No Cost. Operations on Birdshot will cease. 28-7b operations will be moderately impacted. 2) Procurement - Medium Cost. Replace offending station sections completely with low-cost, working alternatives. Operational gains in 28-7b expected. 3) Do Nothing - No Cost. Moderate long-term impacts to operations in 28-7b. 4) >>>_Was removed_ Option 2 was selected for BERP. Procurement efforts identified 3 solutions and later narrowed it down to 1. Following the selection process architects were brought in to draft up low-impact refits to the designated hulk. 5 selections made it past initial drafting, with 3 ultimately being selected for engineering board review. Penultimately draft proposal 3 was selected for the project and now awaits engineering certification. The draft plan is provided on the next page:  Following board certification, implementation of the plan will be commenced by 28-7b Nanotrasen Enigneering Corps. (NECs). Construction time-frame pending Project Foremans review. ## Why It's Good For The Game Birdshot Engineering is where this whole station began. Back then, things were going to look closer to Birdboat Station, but that became looser and more ill-defined as progress was made on the overall station. While I was satisfied of the decrepit feel of Birdshot Enigneering initially, I knew that at some point, it would require modification to better play into Birdshots strengths. I've had a long laundry list of a roadmap that I've wanted to implement since the station was added, and this was the top item. Tier Zero. Problema Numero Uno. You get the idea. This has been a year of drafting, redrafting, and redrafting everything until it fit Birdshot right. With this, we're nearly there. I see this being the definitive Engineering Department for this station for quite some time to come. However, this is still a draft and some elements are subject to change as I begin to work out some of the more minor kinks in the draft such as pipe locations and transit tubes. Presently Atmospherics is completely rebuilt from the bottom up. There is more space, enough to do projects, but you'll have to tear down some windows and walls to gain it. Nothing ventured, nothing gained. You also have most of the gas distro line outside. I'm a firm believer in enabling whatever antics ANY lunatic may have. Atmos techs can rest assured that outside lines are completely reconfigurable (and powered) enabling some... unique project prospects. You also gained an inside HFR and Spare burn chamber. Enjoy. The Engineering Common Areas are now inside the department proper instead of the satellite treatment in the original implementation. Security gets an actual outpost and engineers now have a proper office to file engineering documentation. They say that office colleagues can form tight bonds so let's see whose is stronger: Purples or Yellows? The Supermatter Engine is more of an upgrade over the previous model (Leaky SM is here to stay so deal with it). The room is larger with less rock, allowing some manner of greater customization, but I believe engineers will be more than happy to find that they now have a Burn Chamber of their own. I have zero clue of what they'll do with it, but I think any enterprising CE will be able to create something that even god should fear. Finally we have maint improvements. Nothing really to see here though maybe there's the beginning of something for the future if you care to speculate. I couldn't really keep the meandering maint of the previous rock, so instead we now have some pseudo dead-ends. It's all connected by transit tubes to the north (not shown) so you can slowly get around if you will it. Of course there's plenty of cut-throughs, not-so-finished sections, and opportunity for those who need it. Caution to the blind, this whole rock is spicy. Overall I'm happy with this and want to open it up in Draft Mode for initial thoughts. I have a rough timeline on finishing this that stretches out to the weekend, so the earlier comments are, the more likely I'll be able to MAYBE do something about it. Thanks for the patience and hopefully this is a doozy of an update for all our players. Previous Engineering Provided for Point of Reference:  closes #75590 ## Changelog 🆑 qol: Wholesale Revamp of Birdshots Engineering Department fix: Some Birdshot Amtospherics Concerns fix: Some Birdshot Engine Concerns /🆑 * Bumps `dependencies.sh` to 515.1633 Stable (#82138) ## About The Pull Request Two reasons for this. 1. It's the stable branch, so let's move it up. This PR will detect any issues that we might have with the latest 515.1633 as far as the codebase is concerned (the servers have been running 1633 for at least a week now). 2. ~~I'm fucking sick of seeing the Lua Scripting Notice in CI even though it was fixed a few days ago in #82074 ( |
||
|
|
2b94bd460c |
Smooth the alcohol impairment curve because a bottle of vodka should last more than 5 minutes (#27183)
* enhanced roleplay drinking * now modular! * switch fix |
||
|
|
15ac8f7d4f |
[MIRROR] Makes Social Anxiety stuttering a lot less harsh (#27122)
* Makes Social Anxiety stuttering a lot less harsh (#82313) ## About The Pull Request Social Anxiety was doing a lot of jank things with stuttering so I replaced it I added a new subtype of stuttering specifically for it which scales a lot better (IMO)  I haven't tested this with TTS but it should work the same as normal stuttering now Also this effect will stack with normal stuttering, which is either the funniest thing ever or a complete disaster. You decide ## Why It's Good For The Game I think some bugs arose from the way we (I) did social anxiety, especially in the wake of TTS so I'm here to resolve them Now it should be a lot less full tilt, since we no longer use the same stuttering probabilities for "being hit by a bomb" as "one person is standing next to me". ## Changelog 🆑 Melbert qol: Socially Anxious people should be able to talk a bit more clearer while still maintaining the stuttering "charm" /🆑 * Makes Social Anxiety stuttering a lot less harsh --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
85e359cc68 |
[MIRROR] Eye of God Update: Loads of QoL, and makes it somewhat more useful to have permanently grafted to your face. (#27120)
* Eye of God Update: Loads of QoL, and makes it somewhat more useful to have permanently grafted to your face. (#82053) ## About The Pull Request The eye of god now protects from the madness inducing effects of supermatter crystals and singularities. This trait is shared by the meson night vision goggles (which this is a better version of) The Scan ability has been refactored into a pointed spell. The Scan ability has a lower cooldown of 35 seconds. Scan now gives an advanced health scan readout of the target. Scanning someone alerts the target as to who is responsible, rather than being completely silent as to the culprit (much to the annoyance of anyone who is victimized by someone using this on them) The status effect that was called Stagger (not Staggered, which is separate) is now called Rebuked. Rebuked applies a x2 action delay cooldown, rather than x1.5. ## Why It's Good For The Game The eye of god is generally viewed as not particularly useful. Sure, it is a night vision meson without the flash vulnerability, which is nice. But it wasn't seen as a terribly exciting tendril drop. The scan power is so underwhelming, most people do not actually know what the effects of it are. It largely is only useful for fighting megafauna, since the stagger effect typically matters more for their cooldowns than other monster cooldowns. And even then, not by much. The action cooldown effect on anything else isn't often understood or felt by both victim or user. So, the vast majority of the time, miners use it to troll people by, and I am quoting one player who was witness to me doing so to a particularly annoying Head of Security, 'pissing on them' by making them glow yellow. Someone else described it as a 'miner's jarate'. You get the idea. I changed the highlight color to red to avoid this crude comparison. And also, I've made it more obviously an attack when someone uses it on you AND you now know who used it to begin with. And on top of all this, I've given the eye of god both useful utility and a bit of a power boost to encourage miners to actually stick the fucking thing into their skull. I think miners will appreciate health scanning bosses in particular, something you normally can't do in the middle of a fight with one. ## Changelog 🆑 qol: The eye of god now protects from the madness inducing effects of supermatter crystals and singularities. This trait is shared by the meson night vision goggles (which this is a better version of) refactor: The Scan ability has been refactored into a pointed spell. balance: The Scan ability has a lower cooldown of 35 seconds. balance: The Scan ability now gives an advanced health scan readout of the target. balance: Scanning someone alerts the target as to who is responsible, rather than being completely silent as to the culprit (much to the annoyance of anyone who is victimized by someone using this on them) code: The status effect that was called Stagger (not Staggered, which is separate) is now called Rebuked. balance: Rebuked applies a x2 action delay cooldown, rather than x1.5. /🆑 --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> * Eye of God Update: Loads of QoL, and makes it somewhat more useful to have permanently grafted to your face. --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com> |
||
|
|
e021ec7176 |
[MIRROR] Blocks (most instances of) screen elements from entering base atom /Click (#27049)
* Blocks (most instances of) screen elements from entering base atom `/Click` (#82236) ## About The Pull Request Fixes #76495 This PR prevents (most) screen elements from running base `/atom/proc/Click` and `/mob/proc/ClickOn()` when clickend. (The only exception I found to it was the cursor catcher for scopes.) Why? Most, if not everything in `ClickOn` is considered "in world" interacting. It abides by `incapacitated`, runs `faceAtom`, etc. This means, currently, you can "interact" with screen elements using in world elements. For example, TK-ing / pointing a gun at your mood face. Right now this affects very little, but there is a large potential for errors. All you have to do is forget a sanity check in `afterattack` and suddenly you have an item that can affect your screen objects. The only example I found was the `/item/godstaff`, which can color some of your screen elements. But there may be more. Like guns. Note: Many, many screen elements ALREADY do not fall down into atom click. They simply don't call parent. Which is totally fine. I am just ensuring ALL* screen elements do not fall down into atom click. ## Changelog 🆑 Melbert fix: Blocks mobs from trying to "physically" interact with some of their hud elements, such as using Telekinesis or point a gun at your mood meter. /🆑 * Blocks (most instances of) screen elements from entering base atom `/Click` --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
a8ec7cae71 |
[MIRROR] Makes Bioware into Status Effects because they're just Status Effects but their own datum (#27008)
* Makes Bioware into Status Effects because they're just Status Effects but their own datum (#81989) - Refactors `/datum/bioware` -> `/datum/status_effect/bioware`. - Literally everything bioware datum does is done by the status effect API, including handing dupes / unique keys - Tallies all blackbox surgeries done rather than just nerve splicing * Makes Bioware into Status Effects because they're just Status Effects but their own datum --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
2a355aeed2 |
[MIRROR] Ice cream now gives a chilling food effect (plus small food haste buff) (#26914)
* Ice cream now gives a chilling food effect (plus small food haste buff) (#81719) ## About The Pull Request We have a `crafted_food_buff` in the code meant for specific food buffs (and perhaps one day, debuffs) that has gone unused ever since it was created during the 'Foodening' PR. Anyway, yeah, this PR takes the fire step to implement it with ice cream and other frozen treats. Frozen treats (all food found in the `food/frozen.dm` file) have it by default. Other ice cream holders such as waffles cones (and now regular waffles too!) can aquire it when filled with ice cream. Using the ice cream vat also adds the 'Chef Made' trait now, which is required for food effects to happen. Also very slight food effect refactor. There's no need to have five different alert screen objects when only have to switch icon states. This PR also adds an action speed modifier to the generic 'haste' food effect. I'm confident the original creator would have done that too, but action speed modifiers aren't as well-known. ## Why It's Good For The Game People tend to make one feature, call it a day and then move on to the next. Food effects are nice, however they're barely implemented, and I don't like food being all the same-ish in the end. ## Changelog 🆑 add: Ice cream and frozen treats now have a chilling effect. add: You can add a scoop of ice cream on waffles. balance: added an action speed modifier to the generic food haste effect (you do things, and not just run, an itsy bitsy faster) /🆑 * Ice cream now gives a chilling food effect (plus small food haste buff) --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
d5b55eb158 |
Removes TRAIT_NUMBED, using TRAIT_ANALGESIA instead (#26885)
* Goodbye my sweet prince * Mood |
||
|
|
5fdf13293f |
[MIRROR] Crushers and PKAs: Coop Upgrades (#26882)
* Crushers and PKAs: Coop Upgrades (#81940) ## About The Pull Request This PR makes 2 changes, one to the crusher and one to the PKA Crushers: Their projectile no longer overrides eachother, so a mob can have the blue bubble from several crushers. Triggering it will only trigger the one that you own, so each player has to go hit the mob to strike. PKA: Fixed the minebot passthrough upgrade, and also adds a human passthrough upgrade. They are incompatible with eachother, so you choose between solo+minebot or coop, which is a compromise I thought as a better alternative to taking mod space (the minebot passthrough currently takes none). This upgrade is available solely at the mining vendor, for 750 points. ## Why It's Good For The Game The new mining has been great, and one thing I love is that it encourages more coop play. Excavating boulders with other miners is much more engaging and has good teamwork in it, and also is a good way to encourage miners to stick together more and even fight megafauna in pairs. This hopes to make that easier to do, because currently having anyone with a crusher is sort of a detriment to the whole team. Either the PKA dude will accidentally shoot the crusher user while they're going in for a melee kill, or 2 crusher users will be constantly erasing the mark of the other. This will hopefully make that aspect better, and make mining with friends a little better. ## Changelog 🆑 balance: Crusher marks no longer overwrite eachother, fauna can have one from each crusher. balance: Ash drake's crusher trophy no longer affects people the same faction as you (like hiero trophy), so you won't friendly fire people with it. add: Added a new upgrade: Human Passthrough. You can shoot your PKA without having to worry about friendly fire with this, for 750 mining points at your mining vendor. fix: Minebot passthrough upgrade now properly makes PKAs pass through minebots. /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Crushers and PKAs: Coop Upgrades --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
85e8283abd |
[MIRROR] Basic Mobs Can Now Get Wet (and can therefore clear the slimed status effect) (#26852)
* Basic Mobs Can Now Get Wet (and can therefore clear the `slimed` status effect) (#81927)
## About The Pull Request
A year ago in #73601 (
|
||
|
|
f8b87b994b |
[MIRROR] Overlay Lighting Color/Intensity Pass (#26825)
Overlay Lighting Color/Intensity Pass Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
122d1612bf |
[MIRROR] Fix love not working right before Valentines day (VERY HIGHI priority) (#26490)
* Fix love not working right before Valentines day (VERY HIGHI priority) (#81440) ## About The Pull Request The parent new call is what handles showing the alt appearance to the mob So we add the alt appearance to our date, try to show to any mob, it fails (there is no seer), then set seer Fixes this by fixing the order ## Changelog 🆑 Melbert fix: You can once again see love on Valentines Day /🆑 * Fix love not working right before Valentines day (VERY HIGHI priority) --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
7bb2f5055e |
[MIRROR] 81182 81367 81399 (#26492)
* Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182) [Converts all manual extraction of rbg with rgb2num. It's just better]( |
||
|
|
5489126089 |
[MIRROR] Adds fire ants as a chem (#26455)
* Adds fire ants as a chem (#81214) ## About The Pull Request Adds fire ants as a chem. They work pretty much exactly the same as normal ants, but they deal roughly 2x damage. Also mildly cleans up whatever ant code I touched ## Why It's Good For The Game Doesn't really make sense that when you scoop up an anthill of fire ants, you get a beaker full of normal ants. It's honestly an injustice. Also, new flavours for the bartender and chef to work with are always nice. ## Changelog 🆑 add: Fire ants can now be scooped up and used as a chem like normal space ants /🆑 --------- Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com> * Adds fire ants as a chem --------- Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com> Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com> |
||
|
|
0d0c901be2 |
[MIRROR] Disarm refactor, plus shoving people with shields [MDB IGNORE] (#26144)
* Disarm refactor, plus shoving people with shields * wew --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
ec2286db17 |
[MIRROR] Fishing hook and reel line tweaks (also qol for the fish bounties) [MDB IGNORE] (#26150)
* Fishing hook and reel line tweaks (also qol for the fish bounties) (#80599) ## About The Pull Request This PR includes a series of small changes and additions to hooks and reel lines, as well as the aforementioned bounties. My objective here is to make the (base) hook and reel line feel more useful. Ditto with a few other things. Here's the list of changes: - Almost all fishing rods come with a hook and reel line pre-installed. The rod from the fishing toolbox comes with separate hook and reel line. - Without a hook, you cannot fish. Without a reel line, the cast range is reduced (from 5 to 3). - Fishing with a reel line installed provides a mild boon to completion speed by default. - The sinewy reel line (craftable from lavaland mobs) can now be used to fish on lava / liquid plasma, but it's a bit stiff and gives a mild malus to completion speed. - Unlike other hooks, the rescue and jawed hooks now allow you to cast a line and reel in living mobs too, not only items. They even get a status alert they can click to un-snag themselves, or move away far enough to achieve the same effect. - Master fishing rod buffed. It now comes with a flexible reel line and weighted hook pre-installed, and can be cast further than other rods. - On top of that, the jawed hook will slow down living mobs snagged by it and is a bit harder to remove. - when casting a line, it will now show the icon of the current hook as projectile, not a generic one. - Reeling now correctly checks movement resistance and anchorage. - Reeling an object (or a mob) now plays a sound. Ditto for installing/removing slotted items. - A few balloon alert feedbacks. - Minor code improvements. - The jawed hook should look a smidge sharper. - reel lines are now small items. ## Why It's Good For The Game The base hook and reel line didn't do anything begin with, and you would do just fine without them. In the end it's just a bit unintuitive for them not to be a requirement. Beside that, it makes sense for the rescue hook to be able to snag mobs, so they may as well be used to drag people out of lava or liquid plasma. As for the jawed hook, it always felt to me a bit underwhelming and a bit of a filler I had cooked up on the moment. It really could have some 'tactical' utility in virtue of being one of those niche black market items. ## Changelog 🆑 add: Most fishing rods come with a hook and line preinstalled. Fishing toolboxes come with separate reel and lines as usual. balance: Fishing hooks are now required to fish. balance: Without a reel line, the range of fishing rods is reduced by two tiles. Conversely, having one installed gives a mild buff to the minigame completion speed. balance: The craftable sinewy reel line can now be used to fish on lava or liquid plasma, but it's a bit harder to use. balance: The rare-to-find-in-maintenance master fishing rod now comes with a flexible line and weighted hook preinstalled, and has better range than other rods. balance: Fishing reel lines are now small enough to fit pockets. add: The rescue and jawed hook can now snag and reel in mobs, not only items. The jawed hook also slows down when applied, a la beartrap. qol: Fish bounties now accept filled (stasis) fish cases. qol: Several balloon alerts for fishing rod interactions. fix: Reeling in items (and mobs) now respects movement resistance and anchorage. fix: Fixed the fishing rod equipment UI being too small to fit its components. sound: Reeling in something now plays a sound. /🆑 * Fishing hook and reel line tweaks (also qol for the fish bounties) --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
b79167c173 |
[MIRROR] Organ movement refactor *Un-nullspaces your organs* [MDB IGNORE] (#25530)
* Organ movement refactor *Un-nullspaces your organs* * Fix conflicts I checked the conflicts on the two weird conflicts and no previous TG pr touches them i assume its just github being github because those shoulden't be conflicts *shrug * Fix #1 uhh...this is going to be a long one * Fix #2 Modular Movement Flags * Fix #3 It builds now * Fix #4 Oh god it builds now, I missed some things * Fix #5 No more Runtimesplosion Now time for Synths * Update nightmare_organs.dm * on_mob_insert * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25664 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25685 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25582 * https://github.com/Skyrat-SS13/Skyrat-tg/pull/25686 * bro the fucking brain does not go into the chest. * seriously? undocumented code causing shit. if it breaks ghouls, so be it. --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com> Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |
||
|
|
d82bce70b3 |
[MIRROR] Fake Virus doesn't affect virus immune mobs [MDB IGNORE] (#25765)
* Fake Virus doesn't affect virus immune mobs (#80447) ## About The Pull Request Fake Virus random event won't pick Virus Immune mobs. Plus some code cleanup. ## Why It's Good For The Game Feeling a virus when you can't feel a virus makes it pretty obvious what's going on. ## Changelog 🆑 Melbert fix: Crewmembers immune to viruses won't be picked by the fake virus event. /🆑 * Fake Virus doesn't affect virus immune mobs --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
1095bcd545 |
[MIRROR] Fitness rebalance and improvements - mood, fireman carry, and longer workouts [MDB IGNORE] (#25609)
* Fitness rebalance and improvements - mood, fireman carry, and longer workouts * Resolve Conflicts --------- Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com> |
||
|
|
3658c80e57 |
[MIRROR] Explodes device.dmi [MDB IGNORE] (#25523)
* Explodes device.dmi * Demodularize these * Update traitordevices.dm * Update traitordevices.dm * Modularizes hypnotic flash * Modular dmi repath * Modular dmi repath --------- Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
b15b16976a |
[MIRROR] Attack chain refactoring: Broadening tool_act into item_interact, moving some item interactions to... atom/item_interact / item/interact_with_atom [MDB IGNORE] (#25516)
* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`
* Patches up merge skew (#80197)
## About The Pull Request
Yeah #79968 (
|
||
|
|
72aa36d0a8 |
[MIRROR] Fixes? / Removes stagger shoving animation on corpses. [MDB IGNORE] (#25463)
* Fixes? / Removes stagger shoving animation on corpses. (#79985) ## About The Pull Request Appears to have been intended, but I'm guessing its scale and time were not. ## Why It's Good For The Game Shoving dead bodies was causing them to spasm for longer than described and frankly made it obnoxious both judging whether or not you were dealing with a dead body and clicking on them after doing it (which should probably be redundant with a dead body.) ## Changelog 🆑 del: Stagger animation no longer fires longer than it should on dead bodies or on dead bodies period. /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Fixes? / Removes stagger shoving animation on corpses. --------- Co-authored-by: Higgin <cdonny11@yahoo.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
9c60ff1de1 |
[MIRROR] Removes Clone Damage [MDB IGNORE] (#25429)
* Removes Clone Damage * Update blackbox.dm * Modular * Update schema * Update database_changelog.md * More modular deprecated clone things --------- Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
4eb17420b5 |
[MIRROR] Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis [MDB IGNORE] (#25404)
* Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis (#80032) ## About The Pull Request ### Cogitandi Fidis Creates a holy violin that gives an analysis of songs played on it. This lets you check how long the song is for final effects, to make sure they trigger without the hassle of trying a rite with a song until you get one that works. 20 Favor, looks neat too! ### Portable Song Tuning Rite to empower an instrument with the ability to invoke specifically song tuning rites, 5 charges before you need to go back to a proper altar. Helps a chaplain stay on the move, since songs are interruptable and sometimes an altar can be incredibly far. 10 Favor for 5 charges. ### Illuminating Solo  New free invocation that lets you light up the way with your music! The finishing effect applies a weaker glow to all listeners for a minute. ### Other Misc Changes The threshold for getting a final effect on a song is now lower, 220 -> 170. As a reminder, this threshold is lines * tempo. I think the threshold was simply too high ## Why It's Good For The Game Changes were made from https://tgstation13.org/phpBB/viewtopic.php?f=10&t=35381 statistics and feedback about sects. I think, overall, Festival Sect is in a very good place and doesn't need a whole lot but a few rites that help with a quality of life would really cut down on the amount of time a chappy is spending doing nothing but running allllll the way back to the chapel to load up some new songs ## Changelog 🆑 add: Festival Sect has 3 new rites: Cogitandi Fidis, Portable Song Tuning, and Illuminating Solo. balance: lowers threshold for triggering a final effect. Consult your Cogitandi Fidis for more information /🆑 * Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis --------- Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> |
||
|
|
6c4c965ea4 |
[MIRROR] Changes occurrences of recieve in code to receive [MDB IGNORE] (#25393)
* Changes occurrences of `recieve` in code to `receive` * Fix conflict --------- Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com> Co-authored-by: SomeRandomOwl <somerandomowl@ratchtnet.com> |
||
|
|
8cdfc4103d |
[MIRROR] Fix typo in spacer negative moodlet [MDB IGNORE] (#25359)
* Fix typo in spacer negative moodlet (#80036) ## About The Pull Request Fixes a typo in one of the spacer quirk's negative moodlets. ## Why It's Good For The Game Typos aren't good. ## Changelog 🆑 spellcheck: fixed typo in one of spacer's moodlets /🆑 * Fix typo in spacer negative moodlet --------- Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com> |
||
|
|
35cf52a0f9 |
[MIRROR] The Inversenning : Superior Healing Medications [MDB IGNORE] (#25315)
* The Inversenning : Superior Healing Medications (#79342) Introducing new inverse reagents for existing superior healing medications! This push includes... **Benzoic Acid** : Inverse of Salicylic Acid. Robust fertilizer that provides a decent range of benefits for plant life. **Oxymetholone** : Inverse of Oxandrolone. Anabolic steroid that promotes the growth of muscle during and after exercise. **Bamethan** : Inverse of Salbutamol. Blood thinner that drastically increases the chance of receiving bleeding wounds. **Pendetide** : Inverse of Pentetic Acid. An unusual bioradioactive drug that purges basic radiation healing chems. Also increases the severity of radiation poisoning. **Hyoscyamine** : Inverse of Atropine. Heals heart and stomach damage, and slowly removes minor toxin damage. **Ammoniated Sludge** : Inverse of Ammoniated Mercury. A ghastly looking mess of mercury by-product which causes bursts of manic hysteria. **Inreziniver** : Inverse of Rezadone. Makes the user horribly afraid of all things related to carps. This is an effort to add more variety to the existing inverse reagent system within chemistry. Not only should this variety serve to provide additional options for a Chemist to experiment with, they should also broaden the possibilities for already existing strategies. * The Inversenning : Superior Healing Medications --------- Co-authored-by: MGOOOOOO <97645027+MGOOOOOO@users.noreply.github.com> |
||
|
|
b0a9ec864c |
[MIRROR] [READY] The Tackleling: Unarmed bonuses and features contribute to tackle success and failure, significant outcome overhaul, among other things [MDB IGNORE] (#25191)
* [READY] The Tackleling: Unarmed bonuses and features contribute to tackle success and failure, significant outcome overhaul, among other things * Update tackle.dm * Update living.dm * Update tackle.dm --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
5540632705 |
[MIRROR] Reworks transformation sting to be temporarily in living mobs, forever in dead mobs [MDB IGNORE] (#24002)
* Reworks transformation sting to be temporarily in living mobs, forever in dead mobs * Modular updates * Recaches the icons generated in the `changeling` unit test * Pain * More tweaks * Disable unit test * Let's see if we can pass test temporarily * Makes transformation sting unobtainable more cleanly * Unit test * Cursed proc * Kill the unholy copy pasta Seriously this stuff is just awful. This is not maintainable. * test this * Update comments * Fixing the screenshot test, maybe? * grrr * Update changeling.dm * Attempt to fix this nonsense * Update changeling.dm * Update changeling.dm * Update changeling.dm * Update dna.dm * Fixes it? * Screenshot test * Update _traits.dm * Update _traits.dm * Fix this * Update dna.dm * Update dna.dm * Hmm * This proc needs a new name * I want to scream but I have no mutant parts * Fix * Update species.dm * Update species.dm * Update species.dm * Update species.dm * Some touch ups --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com> |
||
|
|
3fa98bd2cc |
[MIRROR] Adds UPSIDE_DOWN movetype for negative gravity / makes Atrocinator affected by less things [MDB IGNORE] (#25155)
* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things (#79785) ## About The Pull Request Fixes #79764 I was going to tackle this issue by slamming `TRAIT_NO_SLIP_ALL` on Atrocinator users and calling it a day, but like, that didn't feel proper. So I thought hey, we could just give them the flying movetype, even though they technically aren't flying it means they're unaffected by things that flying would make you unaffected by. Nope, this means the mob technically "negates gravity", so no falling and no feetsteps. Let's try floating - this give us feetsteps but no falling upwards. So instead of going back to square one, with `TRAIT_NO_SLIP_ALL`, I decided to go for the more complex route of just adding a movetype. Hence, move type `UPSIDE_DOWN`. This covers situations where a mob would be "floating" above the ground, but still walking. ...Negative gravity. This means overall the Atrociator acts more as you'd expect - you don't slip on ice, you don't trigger bear traps or mouse traps, you can walk over railings, unaffected by conveyor belts, etc. ## Why It's Good For The Game Makes the Atrocinator a lot more consistent with how you'd expect for it to work. Admittedly it is a bit niche use of movetypes, but it can possibly be expanded to more things in the future, who knows? I applied it to mobs on meat spikes (even though they don't move), just for proof of concept. ## Changelog 🆑 Melbert fix: Atrocinating mobs will now behave more as you'd expect. Meaning they don't slip on wet patches, can't trigger bear traps / landmines / mouse traps, ignore conveyors, and can walk over tables and railings. fix: Floating mobs are unaffected by conveyor belts, acid (on the ground), glass tables fix: Floating mobs won't squish stuff like roaches anymore fix: Fixes bear traps triggering on floating / flying mobs /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
c34cd6fd3d |
[MIRROR] More code compression for reagent holder [MDB IGNORE] (#25121)
* More code compression for reagent holder (#79796) ## About The Pull Request Part 2 of #79686 where we trim down the size of `holder.dm` even further and in the process give some procs more advanced features as they get merged with their counterparts. **1. Removes & merges `get_multiple_reagent_amounts()` proc with `get_reagent_amount()`** The proc `get_multiple_reagent_amounts()` was only used by bio generator and 1 other item with its only use being finding the sum of all reagents present in the list returned by `typesof(datum/reagent/consumable/nutrient)`. Currently the approach is very inefficient because. - `typesof()` is an expensive call which returns a long list of reagents - `get_multiple_reagent_amounts()` would then use 2 nested for loops. One to loop over every reagent in this holder & another inner for loop to loop over every reagent returned by `typesof()` operator so the time complexity of this proc is overall multiplicative which in lamen terms means "Bad" We can replicate the same behaviour of `typesof()` by using the `type2parent()` proc and 1 more direct type check to get the exact same behaviour but with much faster results, therefore reducing overall code **2. Removes & merges `get_reagent()` proc with `has_reagent()`** The proc `has_reagent()` is way more advanced than `get_reagent()` with arguments requesting for a specific amount, metabolization and now even has a new argument i.e. `chemical flag`. `has_reagent()` has always returned the reagent reference directly and not a simple TRUE/FALSE so it is a perfect replacement for `get_reagent()`, therefore reducing overall code **3. Removes & merges `has_chemical_flag()` proc with `has_reagent()`** The proc `has_reagent()` can now look for a specific reagent with a specific chemical flag as well as mentioned above thus it can replace `has_chemical_flag()` therefore reducing overall code ## Changelog 🆑 code: Removes & merges `get_multiple_reagent_amounts()` proc with `get_reagent_amount()` inside reagent holder code: Removes & merges `get_reagent()` proc with `has_reagent()` inside reagent holder code: Removes & merges `has_chemical_flag()` proc with `has_reagent()` inside reagent holder refactor: Reagent holder code has been further compressed. Report bugs on github /🆑 * More code compression for reagent holder * Update hemophage_organs.dm --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
caa13c44af |
[MIRROR] Reworks stop, drop, roll into a gradual, interruptable thing, that repeats until extinguished [MDB IGNORE] (#25038)
* Reworks stop, drop, roll into a gradual, interruptable thing, that repeats until extinguished (#79694) ## About The Pull Request Related: #78017 Stop drop and roll is no longer instant -5 fire stacks -> stun -> wait. Now, when you stop drop and roll, every time you roll you will lose 1 firestack. A roll is triggered every 0.8 seconds. Moving, getting up, or becoming incapacitated / stunned will stop you from rolling. _(This number puts it roughly equivalent to its current rate.)_ While rolling, your hands are blocked (you cannot use items, hold things, etc.) Additionally, you will roll until all firestacks are cleared. ## Why It's Good For The Game Getting stunned for 6 seconds because you decide to stop and roll is a little silly. Reasonably you could stop rolling and get back up should the need arise, such as "oh god there's more fire I gotta relocate". By changing it to a gradual thing, it makes it a bit more reasonable and fair. - New players who immediately slam "STOP DROP ROLL" because the alert on their screen tells them to are no longer helpless for 6 whole seconds - People who hit the resist key, intending to interact with something else (such as a bola) are no longer stuck rolling when they did not want to ## Changelog 🆑 Melbert balance: Stop, drop, and roll no longer instantly clears 5 fire stacks off of you - Instead, it will clear 1 fire stack off of you every time you roll, with a roll every 0.8 seconds. balance: Stop, drop, and roll no longer stuns you for 6 seconds. Instead, it will knock you to the floor while you are rolling. Moving around or getting up will cancel the roll, and you cannot use items while rolling around. balance: Stop, drop, and roll will now repeat until the fire is put out or you get up. /🆑 * Reworks stop, drop, roll into a gradual, interruptable thing, that repeats until extinguished --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
a3779921d6 |
[MIRROR] Traits from blessing of insanity are now applied correctly [MDB IGNORE] (#25012)
* Traits from blessing of insanity are now applied correctly (#79704) ## About The Pull Request What it reads on the title. The traits should be applied to the owner and not the status effect itself. ## Why It's Good For The Game This will fix #79641. ## Changelog 🆑 san7890, Ghommie fix: The Blessing of Insanity now grants no damage slowdown and free hyperspace movement correctly. /🆑 * Traits from blessing of insanity are now applied correctly --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |