mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-14 03:32:00 +00:00
3dbe0ce79c3e94e5cbedd10c102a4a70327e86b7
1726 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1c62195ea9 |
[MIRROR] Fixes curator whip disarming even after getting parried (#28030)
* Fixes curator whip disarming even after getting parried (#83543) ## About The Pull Request what the title says ### Test: https://github.com/tgstation/tgstation/assets/96586172/e68323e0-2f44-42db-9752-4c4b5d5c4a3c ## Changelog 🆑 fix: curator whip will no longer disarm when parried /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> * Fixes curator whip disarming even after getting parried --------- Co-authored-by: grungussuss <96586172+Sadboysuss@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: Jacquerel <hnevard@ gmail.com> |
||
|
|
e040886e38 |
[MIRROR] Make AI's jump to AI Core button work while on backup power (#27982)
* Make AI's jump to AI Core button work while on backup power (#83669) ## About The Pull Request Allows the AI Core button which snaps their camera to their mob to work even on backup power. I don't consider this a balance change because there are already a myriad of ways to get `AI.view_core()` to be called besides the button (one of them being to simply reconnect), or other ways to bypass like what I have taken to doing is prepare a camera hotkey at roundstart since those do continue to work fine on backup power for some reason. ## Why It's Good For The Game QoL good. Makes AI a little more intuitive to play especially when s*it hits the fan. ## Changelog 🆑 qol: AI's jump to AI Core button works while on backup power (likely when needed most). /🆑 * Make AI's jump to AI Core button work while on backup power --------- Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com> |
||
|
|
3d09d377e6 |
[MIRROR] [no gbp] Fixes hilberts hotel alt click (#27895)
* [no gbp] Fixes hilberts hotel alt click (#83431) <!-- 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 Base alt click would skip turfs as I did not think any had special alt click behaviors. I was mistaken. The comment was too. Note: Checking can_perform_action() does not work on turfs. I added some simple checks for turfs in its absence. <!-- 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 Fixes #83430 <!-- 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. --> 🆑 add: Added a screentip for hilbert's hotel door fix: Fixed alt-click interaction with hilbert's hotel door /🆑 <!-- 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: san7890 <the@ san7890.com> * [no gbp] Fixes hilberts hotel alt click --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> |
||
|
|
bbad463ac4 |
[MIRROR] Loot panel no longer opens on your equipment (#27888)
* Loot panel no longer opens on your equipment (#83399) ## About The Pull Request  ## Why It's Good For The Game More straight forward functionality ## Changelog 🆑 fix: Lootpanel no longer opens up when alt clicking objects on your person /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Kapu1178 <75460809+Kapu1178@ users.noreply.github.com> * Loot panel no longer opens on your equipment --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: Kapu1178 <75460809+Kapu1178@ users.noreply.github.com> |
||
|
|
c454e1e1e1 |
[MIRROR] Converts parallax to pixel offsets, saves a bunch of cpu time, makes things nicer on clients too (#27866)
* Converts parallax to pixel offsets, saves a bunch of cpu time, makes things nicer on clients too (#83395)
## About The Pull Request
Right now parallax is like a quarter of SSinput, which is BAD. It's so
high mostly because of the animates we need to do, but also due to the
cost of setting screen_loc.

This sucks. The default step is to reduce the poll rate of the effect,
but I don't want to do that because it SUCKS. Sooooo how can we
optimize.
Well, if we stop thinking in terms of screen_loc, which is a string
(tree shit) and also unanimatable, and start working in pixel offsets,
this'd be a way cheaper.
We can make that happen by sticking all our parallax layers on one rock
screen object. Then they have relative positions and can be pixel offset
(I have stolen this concept wholesale from Ter)
This works unreasonably well, roughly a 65% cost reduction. S good shit.

While I'm here...
[uses KEEP_TOGETHER to reduce clientside load, makes the flying
animation
better.](
|
||
|
|
e4f338632b |
[MIRROR] makes food hud burger icon have a sharp outline (#27865)
* makes food hud burger icon have a sharp outline (#83380) ## About The Pull Request instead of  will look more like this  also i would like to make it not protrude from the middle of your hud it looks ugly but idk where to put it @ Mothblocks ## Why It's Good For The Game anti aliasing smells ## Changelog 🆑 image: makes food hud burger icon have a sharp outline /🆑 * makes food hud burger icon have a sharp outline --------- Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> |
||
|
|
e7c958bab9 |
[MIRROR] Make borg items not shift around depending on what is equipped (#27846)
* Make borg items not shift around depending on what is equipped (#83429) ## About The Pull Request Stops items from shifting around the borg inventory depending on what is equipped. One of the most annoying things about playing borg for me is this. ## Why It's Good For The Game Smoother borg inventory management [2024-05-23 21-06-06.webm](https://github.com/tgstation/tgstation/assets/6713261/36b04fb8-47a5-4bd8-afb3-105b680805af) ## Changelog 🆑 qol: Made borg inventory not shift around depending on equipped items /🆑 * Make borg items not shift around depending on what is equipped --------- Co-authored-by: thegrb93 <grbrown93@sbcglobal.net> |
||
|
|
8e8ded47d3 |
[MIRROR] [no gbp] can no longer cheese blindness with lootpanel range (#27835)
* [no gbp] can no longer cheese blindness with lootpanel range (#83401) ## About The Pull Request `in viewers` does not take into account blindness so you can open the lootpanel at range as a blind person to see item names, icons etc This limits their alt click range to 1 tile away and removes the names/tooltips from the items in the ui ## Why It's Good For The Game Realism and since this is a blindness nerf (as if they need one) I won't be mad this gets closed ## Changelog 🆑 fix: You can no longer open the loot panel at range as a blind person and cheese item names /🆑 * [no gbp] can no longer cheese blindness with lootpanel range --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> |
||
|
|
ae3a8acb8e |
* Turns mush cap into an extorgan
* Trimming the fat * Trimming the fat * Update mushpeople.dm * Adds colorblindness as a mild brain trauma (#76527) What the title says. The brain trauma makes the whole screen monochrome until cured.  I feel like the current pool for mild brain traumas is quite lame, this helps spice it up a bit with something that is quite annoying and distracting but not game breaking (as mild brain traumas should generally be). 🆑 add: Added colorblindness as a mild brain trauma. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fix species `var/hair_color` not being used for, well, hair color (#82168) `var/hair_color` for species was intended to be used as a "this species uses this type of hair color thing" But at some point that got completely lost and now it's only used for sprite accessories This fixes that. That means Slimepeople now have properly slimey hair. And Ethereals are less snowflake once more. 🆑 Melbert fix: Fixed Slimepeople's hair not matching their slimey colors. /🆑 * Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)" This reverts commit c4cb756. * Revert "Adds colorblindness as a mild brain trauma (#76527)" This reverts commit eb815f5. * Update _species.dm * unused var * Caps list.. * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Attempts to fix CI errors * Update cap.dm * Update _external_organ.dm * Update monkey.dm * Revert "Update monkey.dm" This reverts commit 29f54c8. * Revert "Update _external_organ.dm" This reverts commit 8de5ea7. * Update _external_organ.dm * Revert "Update _external_organ.dm" This reverts commit 644cc56. * Fix CI maybe? * Update cap.dm * Update DNA.dm * Some cleanup/updating to upstream * Update global_lists.dm * Mush * Update mushpeople.dm * Hopefully the last fix * Doing this differently * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * OK * Update organ.dm * Update podpeople.dm * maybe * Hm * Hm * Will this break things? * Revert "Will this break things?" This reverts commit bd288c6. * Test * Update organ.dm * Update organ.dm * Revert "Update organ.dm" This reverts commit ca77ff9. * Update organ.dm * . * . * . * Update snail.dm * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from tgstation/tgstation#73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Removes unneeded files * Revert "Removes unneeded files" This reverts commit 6469d37. * . * ok * Update tails.dm * Update monkey.dm * Fix monkey screenshot test * Update species.dm * Update reinf_walls.dm * Maintenance --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
2ad31c6e83 |
[MIRROR] malf AI fixes (#27769)
* malf AI fixes (#83268) Fixes #83254 🆑 ShizCalev fix: Malf AI can now properly interact with APCs under their control fix: Malf AI & their slaved cyborgs won't be told that access is denied when trying to right-click lock/unlock APCs. /🆑 * malf AI fixes --------- Co-authored-by: Afevis <ShizCalev@users.noreply.github.com> |
||
|
|
61c379045c |
[MIRROR] lavaland raptors (#27746)
lavaland raptors (#82537) adds raptors to lavaland. these are creatures that have been created through countless xenobiological experiments by nanotrasen to breed an animal that can withstand the harsh conditions of lavaland and aid miners. theres now a new ranch miners can access bottom right to the mining base  this ranch starts somewhat empty as most raptors have escaped containment and are now scattered all across lavaland, u can find them and return them to ur ranch. in order to tame a raptor, u first need to prove to it that ur a capable master. when u try to ride it, a little minigame prompt will pop up  in this game, the bird's icon rapidly changes direction and u have to quickly click the arrow thats OPPOSITE to the direction its facing several times before the direction changes. if you fail 3 times itll knock you off and run away, however if u win it will deem u a suitable master and listen to your orders. There's many different breeds of raptors you can find across lavaland, all with different capabilities: red raptors: these excel at combat and can be very useful for dealing with lavaland mobs or defending the node drone yellow raptors: are very speedy mounts, theyll get u from point A to point B in record time green raptors: they are the tankiest type of raptor and are very good miners. while mounted, they will clear any rock walls in their path purple raptors: can store items in them. they have a decent storage size allowing players to carry more items across trips white raptors: are able to heal other injured raptors. having one in ur party would be very useful as they can nurse the combat raptors back to full health when they need it blue raptors: produce very nutritious milk with healing capabilities. having 1 or 2 of these back at ur ranch would be very useful black raptors: by far the rarest breed, its very unlikely that ull be able to get one of these, but in the case u do, they have the combat capabilities of the red raptor, speed of the yellow raptor, and tankiness of the green raptor. Breeding different colored raptors together can net u an entirely new colored raptor. each breed has atleast 1 guaranteed combination of parents that it will result out of. you will also need to maintain a good friendship bond with ur raptors, this is done by feeding them, grooming them, and petting them. u can see the strength of ur bond by SHIFT clicking them. more hearts indicate a stronger bond  having higher friendship bonds means ur raptors will perform better in combat, and in the case of blue raptors, they will produce more milk. Maintaining friendship bonds with baby raptors and keeping them happy will also encourage them to grow faster U can also analyze raptors using the new raptor-dex device available at ur ranch  the inherit modifiers indicate how strong this raptor's offspring will be. raptors inherit attack and health stats from both their parents, breeding raptors with higher inherit modifiers means the offspring will be stronger. raptors will also inherit some traits from their parents that will change how they will act around u and around other raptors, some of them being: Playful: raptors will play with their masters and tease them motherly: raptors will care for baby raptors, this will encourage baby raptors to grow quicker depressed: means its hard to keep this raptor happy and friendship bonds will deteriorate faster if not given enough care. coward: makes them flee combat if severly injured, ditching u to the wolves trouble maker: makes them attack other raptors at the ranch. however, trouble maker raptors will not attack other trouble maker raptors, instead they will form posses and bully raptors together. it might be a good idea to isolate them from the other raptors raptors primarily consume ores. to feed raptors, you need to place ore into the food troughs at the ranch. they are too civilized to eat ores off the ground or directly from ur hand, they will only eat it if its in their trough  beautiful raptor sprites by spessmenart! (rest are codersprites) adds a new layer to lavaland mobs, and gives miners new interesting tools and ways to tackle the challenges of lavaland. 🆑 sheets, spacemenart, ben10omintrix, goofball, infrared baron, aofie add: adds lavaland raptors and the raptor ranch /🆑 --------- Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> Co-authored-by: Iamgoofball <iamgoofball@gmail.com> |
||
|
|
1131ce10ba |
[MIRROR] Parse_zone audit + minor misc cleanup (#27735)
* Parse_zone audit + minor misc cleanup (#83154) ## About The Pull Request Does a audit on all uses of parse_zone, replacing most instances of it with a new living-level proc that refers to the bodypart in that zone if it exists. In other cases, removes parse_zone entirely because the bodypart is already confirmed to exist, so we just use plaintext_zone. Also cleans up some single letter vars. ## Why It's Good For The Game In the doc of ```plaintext_zone```, its said it ```Should be used for parsing non-instantiated bodyparts```. 99% of the code ignores the possibility of a bodypart existing, and so uses parse_zone when plaintext_zone could be accessed instead. ## Changelog 🆑 code: Most instances of parse_zone now refer to the limb's plaintext_zone var /🆑 --------- Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Parse_zone audit + minor misc cleanup --------- Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
1cff7fa960 |
[MIRROR] Shift-clicking an offer for an item will examine the item (#27720)
* Shift-clicking an offer for an item will examine the item (#83180) ## About The Pull Request - When you are offered an item, you can shift-click the alert to examine the item in the person's hands. - Plus screen tips for offers. - Plus examine boxing alert examine text.  ## Why It's Good For The Game Simple thing. I figure people can get use out of it by, say, presenting their ID for inspection, holding a paper out for someone to read, checking how much ammo is in a gun someone hands you, etc etc. ## Changelog 🆑 Melbert qol: When you are offered something, you can shift-click the alert to examine the item rather than take it. qol: Examine blocks for screen alert examining. qol: Screentips for offer alerts. /🆑 * Shift-clicking an offer for an item will examine the item --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
b1cba0d0eb |
Fixes jousting bypassing pacifism + Some signal doc (#82986)
<!-- 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 Closes https://github.com/tgstation/tgstation/issues/82983 Title. Jousting now uses a shiny new post-attack signal, only sent if the attack is actually executed. <!-- 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 bgus bad <!-- 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. --> 🆑 nikothedude fix: Jousting no longer bypasses pacifism /🆑 <!-- 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. --> |
||
|
|
55d1c715e5 |
Pulls2 (#27514)
* New docking port sprites (#82729)
* Adds text to lootpanel items [no gbp] (#82722)
## About The Pull Request
Just some qol, this captures a small portion of the item name and fixes
some icon clipping issues
I clipped it at 5 because monke


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

Before (large buttons)

After (normal buttons)

After (large buttons)

Long buttons (normal)

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

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

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

Deathmatch got some UI facelifts


Fixes #75741

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

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

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


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


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

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




Fixes #81442

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

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

## Changelog
🆑 FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/🆑
* Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794)
Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits
- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
- If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs.
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.
🆑 Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/🆑
* [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801)
## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
🆑
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/🆑
* Fix all types of damage to the head causing brain damage (#82763)
## About The Pull Request
5 months ago when I separated this stuff out to its own proc I forgot a
damagetype check.
## Changelog
🆑 Melbert
fix: Only brute damage causes brain damage when applied to the forehead,
rather than all damage types
/🆑
* Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792)
## About The Pull Request
If we say something is a Modal it should actually be a Modal
## Why It's Good For The Game
You can now use this system in other windows if you want.
Fixed the misnomer.
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)
## About The Pull Request
Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.
Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.
The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.
## Why It's Good For The Game
The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.
Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.
## Changelog
🆑
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/🆑
* Revert "Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)"
This reverts commit
|
||
|
|
ba5c112a86 |
Huge Mirror fixes (#27488)
* Fixes incorrect operator usage in mecha code (#82570) ## About The Pull Request I completely screwed up and told the original PR author of #82415 ( |
||
|
|
a9ff046352 |
Administrator Cherrypick (#27405)
* Admin Verb Datums MkIII | Now with functional command bar (#82511) * Modular stuffs * Put some admin jump verbs back into the context menu | sorts area jump list again (#82647) ## About The Pull Request See title. ## Why It's Good For The Game Some admins wanted all the jump verbs back, aswell as making them not AGhost you. Also make the Jump To Area verb use a sorted list again * Hey what if admins were allowed to use the player panel (#82682) Re-adds the player panel verb to the verb panel. * Controller Overview UI (#82739) * Fixes a minor spelling mistake on the admin panel/verb list (#82747) ## About The Pull Request Corrects `inisimin` to `invisimin`. This addresses #82728, but only fixes one of the two issues mentioned ## Why It's Good For The Game -1 spelling mistake ## Changelog 🆑 spellcheck: 'inisimin' verb corrected to 'invisimin' /🆑 * Player Panel-age (#82757) * Admin Forced Mob Rename and Preference Update (#82715) --------- Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: chel <64568243+iliyaxox@users.noreply.github.com> |
||
|
|
f9947d8c29 |
[MIRROR] Adds Healthdoll to Basic Dexterous Mobs (#27232)
* Adds Healthdoll to Basic Dexterous Mobs (#82541) ## About The Pull Request This PR adds a health doll to the hud used by basic and simple mobs to the dexterous basic mob HUD. I'd reckon the only reason it wasn't initially there in the first place is by mistake. This also apparently adds the damage borders around the screen as the mob takes damage, which is a useful gauge for knowing when you're about to die.  ## Why It's Good For The Game Basic QoL change to provide basic dexterous mobs with the same level of health info that we provide everything else. ## Changelog 🆑 qol: Basic dexterous mobs now have a health doll and screen damage indication like other basic mobs. /🆑 * Adds Healthdoll to Basic Dexterous Mobs --------- Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> |
||
|
|
3f547aad56 |
[MIRROR] Removes redundant update_parallax_contents calls (#27323)
* Removes redundant update_parallax_contents calls (#82644) ## About The Pull Request Off shuttle move doesn't need to happen because shuttles use abstract move which calls it anyway Similar story for the ghost stuff, this was actually causing pretty common double calls so we may actually get somethin out of this Oh and something in air which is past me knifing me in the back * Removes redundant update_parallax_contents calls --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
ee39ac6630 |
[MIRROR] ai z level indicator (#27149)
* ai z level indicator (#82376) ## About The Pull Request https://tgstation13.org/phpBB/viewtopic.php?f=5&t=35669 https://github.com/tgstation/tgstation/assets/70376633/77e1548a-46be-4da9-a6cd-a7f5b2fdf21b ## Why It's Good For The Game its convenient and especially more convenient on northstar for orientation ## Changelog 🆑 qol: AIs now get a z level indicator /🆑 --------- Co-authored-by: san7890 <the@ san7890.com> * ai z level indicator --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.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> |
||
|
|
56452102a7 |
[MIRROR] Fix 100k toggle move intent comsig runtimes (#82239) (#27066)
Fix 100k toggle move intent comsig runtimes (#82239) ## About The Pull Request `user` isn't passed in many situations in which `toggle_move_intent` is called and also it's useless to pass `user` because it should just be The Mob Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
37bc259bb0 |
[MIRROR] Refactor removing unused defines. (#26998)
* Refactor removing unused defines. (#82115) Refactors a lot of the unused defines. Refactors a lot of the unused defines. Nothing player facing --------- Co-authored-by: san7890 <the@san7890.com> * Oh well. I hope this works fine. --------- Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
e550d50a42 |
[MIRROR] Allows borgs to use ranged rightclicks (#27096)
* Allows borgs to use ranged rightclicks (#82265) ## About The Pull Request No idea why this is all copypaste snowflake code but here we are. Borgs can now use ranged rightlicks just like anyone else. I honestly have barely any idea as to what I am doing, does anyone have a diagram of the attack chain? But I can assure you, it does work. ## Why It's Good For The Game Future borg parity with EVERYTHING ELSE. Will make crushers and other weapons with rightclick functionality work if one decides to add them to borgos. Even if not, it's good to keep the parity. ## Changelog 🆑 code: Borgo rightclick ranged code /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Allows borgs to use ranged rightclicks --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
45343bb159 |
[MIRROR] Food Bar Updates, moves it out of the alert "stack" and to the left of mood, makes it more snappy (#26774)
* Food Bar Updates, moves it out of the alert "stack" and to the left of mood, makes it more snappy (#81834) * Food Bar Updates, moves it out of the alert "stack" and to the left of mood, makes it more snappy * Update hemophage_species.dm --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
227264f146 |
[MIRROR] Removes Orbit Polling Component, SSpolling improvement (#26769)
* Removes Orbit Polling Component, SSpolling improvement * a * Update effects.dmi * Update tgstation.dme * Revert "Update tgstation.dme" This reverts commit d4fdaf0abbfaacddb0cc0d175dad4e410fe57e44. --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
19d6466f3a |
[MIRROR] Abilities with no owner control isnt given to ghosts (#26926)
* Abilities with no owner control isnt given to ghosts (#82037) ## About The Pull Request Actions that don't give the user control (so don't give them an action button) will now no longer give them to ghosts either. Ghosts should see the same information as the player when observing them. They don't need to see guardian's protection mode and bileworm's spitting, for example. ## Why It's Good For The Game Explained in the about the pull request already, ghosts should have the same information as the player they are orbiting, not see the hidden actions. It makes it annoying for contributors to have to manually set every ability meant to not be seen by players to also not be seen by ghosts. ## Changelog 🆑 fix: Action abilities hidden from players are now not shown to observers either. /🆑 * Abilities with no owner control isnt given to ghosts --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
7c88e6cba1 |
[MIRROR] Adds an HUD button to change your z-level (#26694)
* Adds an HUD button to change your z-level (#81680) ## About The Pull Request Adds a quick shortcut to the "Move up" and "Move down" verbs via a button on the HUD! Gnarly as hell features include: - Implemented on humans, ghosts, cyborgs, AIs and Xenomorphs! - One button, two actions! Left click goes up, right click goes down. - Each UI style has its own themed sprite! (I made them myself and I'm not good spriting but I like how they ended up) - Has a tooltip! (Wow!) Demo video (has old button placement, look below to see the new placement): https://youtu.be/Mlw6C_ta50g <details> <summary>Mobs screenshots</summary> AI:  Ghost:  Larva/Xenomorph:  Cyborg:  </details> <details> <summary>UI styles screenshots (old placement)</summary> Midnight:  Clockwork:  Detective:  Glass:  Operative:  Plasmafire:  Retro:  Slimecore:  Trasen-knox:  </details> **New placement:** <details>  </details> ## Why It's Good For The Game We already have a bunch of maps with multiple Z-levels (Northstar, Tramstation, Icebox) and I'm sure there will be more to come. As these maps become more common, the ability to move up/down z-levels is bound to become important, if not essential. So I thought that, instead of hiding this ability behind a tab or a hotkeys menu, why not have it front and center? Also, I remember a long time ago there was a push to make the verbs menu on the top right obsolete, this helps to get us to that goal if we're still doing it. (This whole thing was inspired by me seeing what I assume to be a not-so-new but not-so-experienced player being confused as to how to go down those exact stairs on Tramstation's science when the gravgen was broken, and my inability to be able to explain it to them, partly because i couldnt remember what the key was called, and partly because i was a mime.) ## Changelog 🆑 qol: added an HUD button to go up and down floors /🆑 * Adds an HUD button to change your z-level --------- Co-authored-by: Ilán Mori <ilanmori@hotmail.com> Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com> |
||
|
|
2eac95b7a1 |
[MIRROR] Adds a small cafeteria behind the right wing shutters of the museum. (#26766)
* Adds a small cafeteria behind the right wing shutters of the museum. (#81465) ## About The Pull Request I was thinking to contribute something to the new away mission map to make it better. Mapping and all takes too much time for me, so I could do little. Though it comes with its own unique gimmicks. To reach the cafeteria, one has to complete a couple puzzles. The first set is opened by inputing the correct PIN on the password panel beside it. There're several clues to help you guess this fairly easy puzzle, in the form of several number graffitis, a scrapped piece of paper full of numbers, and a board filled with colored dots also found just beside the panel. The second one is opened by a keycard, and is generally lazier. To find it, you'll need to do a bit of (toilet) searching. As for the unique things this PR adds: - A fire extinguisher... that actually contains welding fuel - A (dirt-cheap) hotdog vending machine* - A completely ornamental maneki-neko (that's the name of the luck-bringing, paw-waving cat figurine) - A piggy bank that carries money between rounds. It has a cap of 10k credits worth of holochips, cash and coins, which is pretty high, but I'm confident people will just destroy it for its contents the moment they find it. His name is Pigston Swinelord VI. - More, totally legit and not actually fake bombable walls :^) *By the by, you can also find it during the national hotdog day. Screenshots of the new location:   ## Why It's Good For The Game You know how most away missions are not that special at all? Yeah, @ mc-oofert set an example of a pretty decent one actually, if not a tad small. I thought it could use a touch of another mind actually contributing to it too, because it deserves it. Also, this sets the basis for other persistent piggy banks. I don't think they should all have that 10k cap like this one, perhaps 1k is enough. Beside, the code that mothblocks did for json database datum is pretty good, so there is not a whole lot of shitcode here. ## Changelog 🆑 add: Added a cafeteria to the museum away mission, with a few special things to it. To reach it, you'll have to complete a couple puzzles however. map: The museum away mission now has a couple restrooms. add: Hotdog vending machines may spawn during the National Hot Dog Day. /🆑 * Adds a small cafeteria behind the right wing shutters of the museum. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
1d0f129500 |
[MIRROR] Changes animation of status alerts (makes it bounce slightly like Project Zomboid) (#26759)
* Changes animation of status alerts (makes it bounce slightly like Project Zomboid) (#81833) ## About The Pull Request Changes the easing and slows down status alert animations. https://github.com/tgstation/tgstation/assets/51863163/3e5a7789-5c38-446d-9c9c-197fe1a320d2 ## Why It's Good For The Game I was playing Project Zomboid a while back, a game which has a similar alert system that we have (in that they stack up on the right side of the screen), and I wondered "why don't our screen alerts animate, why do they just pop up?" And the answer to that is they do animate. But their animation is... 0.25 seconds long. Which is at worst, not noticeable, and at best, glitchy looking. So I just... changed the easing and slowed it down a bit. Now, when an alert enters the screen, it does a little bounce. I believe this will make screen alerts a bit less unpleasant to look at and a bit more noticeable for newer players. This also has a neat effect (as demonstrated in the video) of making "updating" alerts stand out a bit more. Before when something like "wounded" would update, it would just appear to be glitching out of the right side of the screen. Now it wiggles to show you it's updated. And of course, this can be played with in the future. If we wanted to go full Zomboid style we can scale the power of the bounce down for less important alerts / scale it up for more pertinent alerts. Or bounce things which are actively a hazard like pressure or fire or temperature. Also, we can give alerts a bit more of a static order. In the demo video it swaps around which is kinda ugly, but we can fix that. ## Changelog 🆑 Melbert add: The animation that plays when an alert pops up on your screen is different. /🆑 * Changes animation of status alerts (makes it bounce slightly like Project Zomboid) --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
a0d0f8a7cd |
[MIRROR] Riot armor and helmets (and similar gear) protect against more melee-based attacks (like RNG punches), bottles aren't near guaranteed knockdowns (#26633)
* Riot armor and helmets (and similar gear) protect against more melee-based attacks (like RNG punches), bottles aren't near guaranteed knockdowns (#81365) <!-- 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. --> partially includes Syndicate modsuits and other suits with a module) TRAIT_SHOVE_KNOCKDOWN_BLOCKED is now called TRAIT_BRAWLING_KNOCKDOWN_BLOCKED. This is possessed by riot suits, SWAT suits and now **plate armor**. Not the chaplain variety, because fuck them I guess. (this was apparently deliberate so don't complain to me, okay?) Anyone with this trait is now unable to be knocked down by; - Pure RNG on blunt objects attacks to the chest (Probability is otherwise altered by melee armor already) - Unarmed punches, both RNG and deterministic - Bodies thrown at them. Instead, dealing stamina damage and causing them to become staggered. A new trait called TRAIT_HEAD_INJURY_BLOCKED, which protects from various head injury related effects. This is possessed by riot helmets, SWAT helmets, plate helmets, hardhats and applied to MODsuits with armor boosters activated/the infiltrator suit while active. The trait is also granted to anyone wearing a modsuit with the Head Protection module installed. This can be printed from round start, and comes pre-installed into all the engineering modsuits, security moduits, research modsuit and magnate modsuit. (I had to bump up the security modsuit complexity a bit to put it in iunno if we have a policy about that) Anyone with this trait is protected against: - Bottle smashes to the head. - RNG Blunt force trauma to the head by blunt objects (Probability is otherwise altered by melee armor already) - Partially protects against getting your spine snapped during a bad tackle (this used to be a check ONLY for the riot helmet or hardhat) The bottle smash's chance of a knockdown is based on the force and knockdown duration of the bottle, altered by relevant head melee armor. It's no longer basically guaranteed due to weird math that would determine whether or not you were knocked down only if your armor exceeded certain values or not. Any instance that would check either for riot armor or riot helmets instead checks for the new traits. People weren't particularly happy with the possibility of getting ownzoned by a naked assistant or random toolbox-wielding tider while in dedicated melee protection armor as a result of pure RNG jank. [There was a whole thread here about it](https://tgstation13.org/phpBB/viewtopic.php?f=83&t=35645) with regards to unarmed combat. If you're in riot gear, you should feel like you can confidently combat improvised/blunt weapons at a cost of general protection from the more serious dangers to your wellbeing (AKA lead poisoning or heatstroke. Get it....it's bullets and lasers...) For some reason, bottle smash knockdowns, despite using the values just...conveniently don't get blocked by armor except for extreme values? If at all? I felt like this was really weird for something with such a hefty and fairly powerful knockdown effect, particularly one you can lob at someones head at range. I remember, way back when I first started playing, that this was a feature that used to stun, and one I used a lot to get cheap kills. The amount of bullshit stuns I got on people with it still haunt me to this day. It hasn't improved in the current era, despite being a knockdown, simply because any knockdown still takes several seconds to exit. An arbitrarily low knockdown is still a several second one. It's time to bring this in line with similar equipment. Rather than using flat values that are _clearly_ meant to be only applicable to riot armor the decade ago that the code was written, let's use traits instead. That's way better than relying on magic numbers that may become irrelevant when the code around it changes, which anyone touching that code may not even be aware existed. Since we're using a trait, we can actually allow modsuits to occasionally fill defensive niches that aren't strictly armor values. Handy. <!-- 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. --> 🆑 balance: Nanotrasen, in direct response to the increasing danger posed by wannabe martial artists and rioters in the fringes of the Spinward Sector, have upgraded the impact dampeners found in their riot armor. Staff have also started to rediscover the value of medieval armor; it isn't particularly easy to topple a knight in a suit of plate with just your fists. balance: Melee-focused armor is now more able to protect you from various RNG-based knockdowns, such as critical hits from punches (as well as the ones applied through the staggered status), shoves, critical hits with a blunt weapon to the chest, and body throws. balance: Melee-focused helmets also protect you from head injuries, such as bottle smashes, accidentally hitting something dense during a tackle, and critical hits from a blunt weapon to the head. balance: Bottlesmash knockdowns are less reliable in general. add: A new module, the Safety-First Head Protection module, protects you from head trauma! Available in most modsuits expected to take hits to the head often. And from roundstart exofabricators. /🆑 <!-- 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. --> * oh well --------- Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> |
||
|
|
290a97d05e |
[MIRROR] You can do more things while floored (#26643)
* You can do more things while floored (#81641) ## About The Pull Request While on the floor, you can: - Use the UIs of Atmos machinery (except thermomachine and bluespace gas vendor), Holopads, Crayons (spray cans too), radios, and Disposal bins - Close extinguisher cabinets with Right-Click - Click and drag yourself onto a photocopier to climb onto it. I also changed all instances of ``ui_status`` to have all the args it's being passed, I was messing with it a bit but it's gonna be for a later PR. ## Why It's Good For The Game It's an extra layer of harmless realism, also nice QoL for people who do not have functional legs and do not have a wheelchair. ## Changelog 🆑 qol: You can use atmos machines, holopads, crayons, spray cans, and disposal bins while floored. fix: You can close extinguisher cabinets while floored. fix: You can climb onto a photocopier from the floor. /🆑 * You can do more things while floored --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> |
||
|
|
4c0fd903f3 |
[MIRROR] bindable action buttons (#26536)
* bindable action buttons (#81371) ## About The Pull Request ### work started 12/12/2023 you may alt-click action buttons to bind them to a key these are subject to click cooldown and if an action successfully triggers click cooldown is triggered so you cant instantly do multiple alt-click again to unbind ## Why It's Good For The Game moving your mouse to the top left corner to do combat is not good gameplay ## Changelog 🆑 qol: you may altclick action buttons to bind them to a key /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * bindable action buttons --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> |
||
|
|
9a7e74d699 |
[MIRROR] Makes AI tracking more snappy, improves API (AI movement change) (#26508)
* Makes AI tracking more snappy, improves API (AI movement change) (#81401) ## About The Pull Request Ok so tracking (from the datum) worked, but when used to follow someone it had a noticable delay from the datum needing to wait for process to fire to do its work This would be an expensive proc to run constantly, but we don't really have to (there are not that many ai eyes in the world). So rather then only processing to keep step, let's track the target mob by its movement, and then fall back on a process loop to handle rechecking in case of camera memes. This does technically mean you won't "break" the track if the cameras go out until the tracked mob moves, but I think that's a reasonable price to pay for more responsive movement. I think I could make our current system work with it too, though it would be a bit more wasteful. John if you have opinions just lay into me. I've also renamed/pulled apart the helper procs for the trackable datum, with the hope of making how they are used more understandable at a glance Oh and rather then holding a weakref since I needed MOVED anyway I just use QDELETING to free the ref if the mob goes away ### Edit: #### Glide size touchups Implements glide size mirroring so we move at the same speed as our target Also moves the existing signal to send to the trackable datum itself, as appears intended from the doc comment #### AI behavior changes Rewrites ai movement to be less dumb OK so 2 things here. One is a behavior change, the other is a visual QOL thing. The way ai movement works is we move graduated "steps". Either moving 1, 2, or 3 steps per tick. We do this by, so long as input is held down, incrementing a number called "sprint" Currently it'll go from 10 to 50 (formula effectively looks like steps = (sprint / 20) + 1)) Anyway, this is... not fine but ok, but the way we handle deceleration is ass IMO. It's literally just wait 0.5 seconds and sprint resets. I think this feels crummy, so instead I've made it decay depending on how long you go between inputs, at 7x greater rate then it increases. That's the behavior change. Visual change is a lot easier. Ais were not gliding properly. They assumed they had 4 ticks to move a tile, rather then 1. This meant they'd jump around constantly, to catch up to where we expect them to be. I've fixed this by giving them 1 tick instead. Should feel a lot better ## Why It's Good For The Game Snappier response times, cleaner code ## Changelog 🆑 add: AI's acceleration now smoothly decays, instead of just falling back down to 0 after 0.5 seconds fix: AI's standard movement (non accelerated) is smooth now, instead of constantly jumping around fix: AIs will now follow their targets more closely, shouldn't have any issues with them lagging behind anymore /🆑 * Makes AI tracking more snappy, improves API (AI movement change) --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
4f53ec2660 |
[MIRROR] Fixes complex lights not handling moving well, renames lighting defines (#26484)
* Fixes complex lights not handling moving well, renames lighting defines (#81423) ## About The Pull Request [Fixes static lights not moving]( |
||
|
|
ecdb01a9cc |
[MIRROR] Fixes xeno larva click interaction (#26475)
* Fixes xeno larva click interaction (#81415) ## About The Pull Request Xeno larva can now bite people, or nudge them with their heads, once again. At some point, they stopped being able to do their usual bite. Their lack of active hands would lead to the "you look at your arm and sigh" message but like. You don't have arms you are a worm. I don't think this changes any other larva click interactions. ## Why It's Good For The Game You can bite people to grow faster as xeno again. You can bonk stuff with your head as xeno again. ## Changelog 🆑 fix: You can now click things as an alien larva again. /🆑 * Fixes xeno larva click interaction --------- Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com> |
||
|
|
40906ad100 |
[MIRROR] Client colo(u)r no longer uses Client.color, now coloring the render game plane instead (#26470)
* Client colo(u)r no longer uses Client.color, now coloring the render game plane instead (#81328) ## About The Pull Request Rather than utilizing `client.color`, client color datums now apply their colors to the render game plane. This means 1. The player's HUD is no longer affected by client colors. Being colorblind (in game) no longer makes all hud elements grey as well, only the world. 2. Overall, less harsh colors. ## Why It's Good For The Game 1. The player's HUD, being an OOC concept, should remain unaffected by stuff like glasses and blindness. This is how it worked in the past, before plane cube (IIRC), but it was lost in the transition. 2. Overall just looks a lot better, IMO. Here's what meson goggles with glasses colors active looks like: Before:  After:  ## Changelog 🆑 Melbert qol: Glasses colors should be a lot less harsh, and being blind no longer also blinds your hud. /🆑 * Client colo(u)r no longer uses Client.color, now coloring the render game plane instead --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
d30deafe8b |
[MIRROR] Fix last words being double-encoded when done from the alert popup (#26452)
* Fix last words being double-encoded when done from the alert popup (#81386) ## About The Pull Request Fixes succumb last words, when typed in the tgui input popup, being double-encoded/sanitized, resulting in things like this: Upstream port of https://github.com/Monkestation/Monkestation2.0/pull/1182 ## Why It's Good For The Game This bug is annoying and makes text uglier and less readable. Also, bugs are bad. Do I even need to fill this part out for a blatant bugfix? * Fix last words being double-encoded when done from the alert popup --------- Co-authored-by: Lucy <lucy@absolucy.moe> |
||
|
|
44242a4103 |
[MIRROR] Removes Halloween Screen Tint (#26430)
* Removes Halloween Screen Tint (#81355) ## What Reverts tgstation/tgstation#79062 ## Why It was a good idea (I swear) but as an everpresent effect it is far too oppressive and opinionated. It causes issues for people with less then perfect vision, fucked monitor setups (many people it seems) or those who play in the day (can you tell when I do most of my development?) I plan on reusing the concept of bracketing to implement conditional nightvision that makes bright things blow out your screen and such, but that's not happening for a while. I still think it was pretty but it's not worth it ## Changelog 🆑 del: Removes halloween screen tint, we're taking him to retire by the seaside (he was alone and unloved) /🆑 * Removes Halloween Screen Tint --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
8e7ec57fd2 |
[MIRROR] Kicks Martial Arts out of the attack chain (yippee), makes it use signals, plus a large clean up of existing martial arts (#26328)
Kicks Martial Arts out of the attack chain (yippee), makes it use signals, plus a large clean up of existing martial arts (#81097) - Kicks Martial Arts out of the attack chain. - All Martial Arts attacks are now handled via unarmed attack or grab signals - This means all martial arts are now technically on the living level, allowing any mob that can unarmed attack to martial arts. Sort of. YMMV. - All martial arts block checking is now handled by the arts themselves, meaning you can selectively decide for a martial arts strike to not be blocked. Maybe good for the future. - A comprehensive cleanup of all existing martial arts. Improving var names, code, adding some missing animation calls, etc. Fixes #74829 Untangles the mess that is martial arts, making it a lot easier to work with the attack chain and making it overall a ton more consistent. 🆑 Melbert refactor: Big martial arts refactor, they should now overall act a ton more consistent. Also technically any mob can do martial arts. Let me know if something is funky. /🆑 --------- Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
5340aed919 |
[MIRROR] Adds Combat Button to Living HUD (Simple + Basic Mob HUD) [MDB IGNORE] (#26110)
* Adds Combat Button to Living HUD (Simple + Basic Mob HUD) (#80919) ## About The Pull Request This PR adds the combat mode toggle to the HUD of simple and basic mobs that don't have hands (the ones with hands already had it). It looks like this:  ## Why It's Good For The Game Simple and basic mobs can currently toggle combat mode by using the keybind for it, however, they can't see whether or not they have it on currently because the button for it is not on their HUD. Some basic mobs, like regal rats, have different interactions when clicking on objects depending on whether or not they have combat mode on, so this is sort of important information to display to the player. Which this is technically QOL, Jacquerel gave me permission to PR this during the feature freeze. ## Changelog 🆑 qol: The combat mode toggle button is now present on the HUD for simple and basic mobs. /🆑 * Adds Combat Button to Living HUD (Simple + Basic Mob HUD) --------- Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> |
||
|
|
c3f8985044 |
[MIRROR] Fixes Cameras views on clients 515.1615 or greater [MDB IGNORE] (#26043)
* Fixes Cameras views on clients 515.1615 or greater (#80818) ## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/79954 Turns out the cause of cameras breaking was something weird with how Byond determined the CENTER location for screen_locs on secondary popup maps like cameras and the spyglass. This can be remedied by manually using the LEFT,TOP position for the plane relays. However LEFT,TOP breaks the views for clients 1614 and below so I included a jank solution that should allow any client up to this point have the screen displayed correctly ### 515.1609 views working  ### 515.1623 views working  ## Why It's Good For The Game Cameras working passed 1614 means you can update the server. At some point I suspect Lummox will fix the CENTER position on secondary maps and when that happens it will likely break the current fix. ## Changelog 🆑 fix: popup screen locs will work on clients >1614. Security cameras and Spyglass will work /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com> * Fixes Cameras views on clients 515.1615 or greater --------- Co-authored-by: Chubbygummibear <46236974+Chubbygummibear@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com> |
||
|
|
c8c07e5097 |
[MIRROR] Fixes COMSIG_LIVING_EARLY_UNARMED_ATTACK arguments [MDB IGNORE] (#26014)
* Fixes `COMSIG_LIVING_EARLY_UNARMED_ATTACK` arguments (#80783) ## About The Pull Request Fixes #80566 Fixes the wrong arguments being passed to `COMSIG_LIVING_EARLY_UNARMED_ATTACK`. It now properly receives the proximity flag. Changes clicking with handcuffs to no longer always assume no proximity. Replaces some checks for hands blocked to some checks for `can_unarmed_attack` (which, currently, JUST checks for hands blocked, but this is good for future reasons, just in case) ## Changelog 🆑 Melbert fix: Strong arm implant users can shove more correctly. /🆑 * Fixes `COMSIG_LIVING_EARLY_UNARMED_ATTACK` arguments --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
8cf3407f94 |
[MIRROR] Removes the attack_slime proc, and other slime refactors [MDB IGNORE] (#25963)
* Removes the attack_slime proc, and other slime refactors (#80487) ## About The Pull Request - **Removed attack_slime**. Most of the attack_slime content has been moved to a proc that signs up for COMSIG_LIVING_UNARMED_ATTACK. Its ugly, but will make converting slimes to a basic mob easier. They now use attack_animal for now, which might cause some unexpected interactions. Hopefully when they are converted to basic mobs, these can be cleared up properly. - This caused some issues with cyborgs, who used to get only half damage dealt to them. As refactoring this would have been too much of a difficult task without much real gain, after much pondering, I have decided that since slimes can always flash cyborgs with each of their strikes, maybe cyborgs should only fear slimes that have electric charges in them. In addition, slimes electric charges decrease now after they successfully zap an cyborg, making them more consistent with the zaps that affect carbons. AIs are still fully immune to slimes. - The slime.dm and slime.life files were extremely bloated, and unorganized. I have created two new files, defense.dm and ai.dm. I have moved the various attack_by/attack_hand/etc procs to defense.dm. Ai.dm now contains every single proc the slime's "AI" uses; this should help getting a clearer picture of the current functionality, which should aid with basic mob conversion and decision tree creation. The remaining files have been slightly organized, with overrides in front, and new procs at the back. - Created a proc for swapping out Adult and Baby states of a slime. Previously, attack_slime was in many cases ignoring fields like melee_damage_lower and melee_damage_upper, replacing it with magic numbers based on the slime's lifestate. Now these values are hard set by these procs. This has caused slimes to be more consistent, though baby slimes might do a bit less damage on the low end. I am tempted to turn these in datums in the future, or as part of this PR. - Removed baby slime's chance to accidentally attack a window/grille by bumping into it, they had 0 object damage anyways, unlike adult slimes, so there was no reason not to early return. - The proc of `handle_feeding` assumed adjustBruteLoss and adjustToxLoss return positive values when damage has been done, when in reality, it returns the total health change along with its direction. This meant slimes would fell off simple or basic mobs after a single bite. This has been fixed. - Also updated the warning before the slime type defines, as they were out of date. - I have removed the bespoke spacewalk override for slimes, which should allow them to drift, should gravity go out. - The nutrition stats are assigned only once, when the slime grows up, instead of compared to being an adult every life tick ## Why It's Good For The Game Less duplicated code. This refactor should help in the basic mob conversion process. Cyborgs have an easier time wrangling slimes, who could previously kill them in three hits, if charged. They are mostly encased in metal, they should feel fine when not hit with electric attacks. Lets slimes feast on delicious corgis. * Removes the attack_slime proc, and other slime refactors --------- Co-authored-by: Profakos <profakos@gmail.com> |
||
|
|
c3bb222d26 |
[MIRROR] Some Processing improvements [MDB IGNORE] (#25944)
* Some Processing improvements (#80693) ## About The Pull Request Got the idea from #80682. A lot of parent procs don't do anything, some are just formatted in a bad way, and others early return and do no ops, it's bad in general but this should give us a head start. Some good overhead saved here * Some Processing improvements --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> |
||
|
|
328096d192 |
[MIRROR] Heretic DLC: Path of Moon [MDB IGNORE] (#25938)
* Heretic DLC: Path of Moon (#79536) ## About The Pull Request This pull request adds a new path. The cross path is between ash and lock. Credit to Fury McFlurry for the following sprites: ring_leader_effect The path goes as follows: Moonlight Troupe Grasp of Lunacy Smile of the moon > Sidepaths: Mind Gate Ashen Eyes Mark of Moon Ritual of Knowledge Lunar Parade Moonlight Amulette > Sidepaths: Curse of Paralasys Unfathomable Curio Unsealed Arts Moonlight blade Ringleaders Rise > Sidepaths: Ashen Ritual Last Act Moonlight Troupe: The first knowledge of path of moon, lets you make Lunar Blades with 2 iron and a knife Grasp of Lunacy: The grasp of this path hides your name for 15 seconds after use, but more importantly it causes the person hit with the grasp to hallucinate everyone as indistinct human like figures. Smile of the Moon: A pointed spell that causes temporary blinding, muting, deafening and confusing on the person its targeted at, these effects last longer the less sanity your victim has. https://github.com/tgstation/tgstation/assets/120136161/db7cfaaa-8fe2-4f20-aa78-c17c17be4d63 Mindgate: Lock-Moon. This spell causes you and your victim brain damage, the victim also suffers a short amount of hallucinations and also 20 oxyloss. https://github.com/tgstation/tgstation/assets/120136161/11d15acd-11d0-4e7d-a180-6481b18e9fd9 Mark of Moon: When applied this paths mark pacifies the victim and they remain pacifist until attacked or until the mark is detonated, when detonated the victim is left confused. https://github.com/tgstation/tgstation/assets/120136161/41e601b5-76d4-4765-8b49-ada7de09feb7 Lunar Parade: A spell that sends out a projectile that causes people hit by it to follow the projectile whilst being unable to move. The projectile also bounces around and is really useful to get people off your back during chases. https://github.com/tgstation/tgstation/assets/120136161/cddc8390-e8aa-4d68-b1a5-ab181e941a9b Unfathomable Curio: Transmute 3 rods, a brain and a belt into an Unfathomable Curio a belt that can hold blades and items for rituals. Whilst worn will also veil the heretic, allowing them to take 1 hit without suffering damage, this veil will recharge quickly outside of combat. If examined the examiner suffers brain damage and temporary brain damage, and if a non-heretic uses it once the shield is damaged the non-heretic user suffers massive brain damage and a permanent uncurbable brain trauma. Lock-moon Unsealed Arts: Allows you to transmute a canvas and an additional item to create a piece of art, these paintings have different effects depending on the additional item added. Lock-moon Possible paintings: The sister and He Who Wept: Additional atoms: Eyes. When a non-heretic looks at the painting they will begin to hallucinate everyone as heretics. The First Desire: Additional atoms: Any bodypart. Increases the hunger of non-heretics, when examined drops an organ or body part at the painting. Great chaparral over rolling hills: Additional atoms: Any grown food. Spreads kudzu when placed, when examined grants a flower to the heretic. Lady out of gates: Additional atoms: Gloves. Causes non-heretics to scratch themselves until they remove their jumpsuit, when examined removes all your mutations. Climb over the rusted mountain: Additional atoms: Trash. Causes non-heretics to rust the floor they walk on and when examined gives you a cool moodlet These effects are mitigated for a few minutes when a non-heretic suffering an effect examines the painting that caused the effect. Except for great chapparal which spawns kudzu at their feet, and Lady out of gates which gives them a random negative mutation. https://github.com/tgstation/tgstation/assets/120136161/1d1bdd2f-cda5-4430-b3af-4742f98a59a8 https://github.com/tgstation/tgstation/assets/120136161/4e843ae4-9786-4e9b-8681-582713f4c789 Moonlight Amulette: Allows the heretic to transmute 2 sheets of glass, a pair of eyes, a brain and a tie. If the amulette is used on someone with low sanity they go berserk attacking everyone if their sanity isnt low enough it decreases their mood. Optionally you can add a poppy in the ritual to further decrease their mood on hit. https://github.com/tgstation/tgstation/assets/120136161/ab820b3f-e7e6-407a-9a1a-93d49c0d7387 Moonlight Blade: Causes the heretics blades to do brain and sanity damage whilst causing hallucinations. The blades also cause giggling and laughter on hit. Ringleaders Rise: An AoE spell that deals more brain damage the lower the sanity of the victim, also causes hallucinations that last longer the lower the sanity of the victim. If the victims sanity is low enoughit causes them to go insane, the spell then halves their sanity. This spell is on a longer cooldown and is more meant to be used as a payoff or an instigator for a fight. The AoE area is 7 tiles https://github.com/tgstation/tgstation/assets/120136161/4de85ba2-448a-485c-b739-77fcce86c0cb Last Act: The ascension lowers the cooldown of all the heretics spells by 33% and increases the AoE range of Ringleaders Rise. The main effect of this ascension is a passive sanity drain and hallucination aura, if you have low sanity in the aura you will start to suffer brain damage and if you reach the bottom you gain an aura of hallucinations thus spreading the moon heretics influence further. Not only that but roughly 1/5th of the crew will rise in support of you becoming mini-heretics called acolytes that will attempt to obey your commands! I had videos showing off everything but they were too big for github sadly so I will have to think of some other way to showcase all this stuff. This pr also adds a new optional atoms system which means that you can have rituals that can be improved by adding additional atoms, like for example moonlight amulette. Feel free to give some suggestions for further ascension effects. ## Why It's Good For The Game I feel like heretic is really missing a playstyle around insanity and this slots neatly in to feel that gap. For being an eldritch antag of horrors there is surprisingly little interaction with the sanity system and I feel like this makes up for it, heretic is also missing some distractions which is where the paintings can really shine and the hallucinations which breed paranoia. ## Changelog 🆑 add: A new heretic path opens up! Gaze up at the great sky for the path of the moon opens and the lie shall be slain in pursuit of ultimate truth! fix: Fixes the syndicate delusion not working /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> * Heretic DLC: Path of Moon --------- Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com> |
||
|
|
8eeca186df |
[MIRROR] Cleans up some extra args in Destroy() [MDB IGNORE] (#25907)
* Cleans up some extra args in Destroy() (#80642) ## About The Pull Request After https://github.com/tgstation/tgstation/pull/80628, these shouldn't be needed anymore right? ## Why It's Good For The Game Cleans up some vestigial code ## Changelog EDIT: Not player-facing. * Cleans up some extra args in Destroy() --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> |
||
|
|
994355eb89 |
[MIRROR] [NO GBP] Poll Alerts cleanup [MDB IGNORE] (#25899)
* [NO GBP] Poll Alerts cleanup (#80572) ~Hopefully the candidates number and signed up overlay should show up for everyone now and be more responsive~ Ghommie tackled most of it in https://github.com/tgstation/tgstation/pull/80610 I think the candidate number overlay updating is done incorrectly in his PR though. Candidate number overlay should be updated for ALL candidates' poll alert buttons, whenever ANY candidate enters/leaves the poll * [NO GBP] Poll Alerts cleanup --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> |
||
|
|
b4d3b18bae |
[MIRROR] Fixing the constant poll alert runtimes, and the selector outline not being updated. [MDB IGNORE] (#25891)
* Fixing the constant poll alert runtimes, and the selector outline not being updated. (#80610) * Fixing the constant poll alert runtimes, and the selector outline not being updated. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
922ec66ee7 |
[MIRROR] Better Ghost Selection [MDB IGNORE] (#25789)
* Better Ghost Selection * yes * oldcode updates and compat --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> |