Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix last words being double-encoded #1182

Merged
merged 1 commit into from
Feb 10, 2024

Conversation

Absolucy
Copy link
Member

@Absolucy Absolucy commented Feb 9, 2024

About The Pull Request

bugfix

Why It's Good For The Game

meow

Changelog

🆑
fix: Fix succumb last words being double-encoded (i.e i'm becoming i'lm)
/:cl:

@dwasint dwasint added this pull request to the merge queue Feb 10, 2024
Merged via the queue into Monkestation:master with commit 94ef577 Feb 10, 2024
22 checks passed
@Absolucy Absolucy deleted the fix-succumb branch February 10, 2024 11:19
MrMelbert pushed a commit to tgstation/tgstation that referenced this pull request Feb 10, 2024
…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
Monkestation/Monkestation2.0#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?
NaakaKo pushed a commit to Bird-Lounge/Skyraptor-SS13 that referenced this pull request Feb 10, 2024
…#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
Monkestation/Monkestation2.0#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?
SkyratBot pushed a commit to Skyrat-SS13/Skyrat-tg that referenced this pull request Feb 10, 2024
…#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
Monkestation/Monkestation2.0#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?
NovaBot13 pushed a commit to NovaSector/NovaSector that referenced this pull request Feb 10, 2024
…#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
Monkestation/Monkestation2.0#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?
TaleStationBot pushed a commit to TaleStation/TaleStation that referenced this pull request Feb 10, 2024
…#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
Monkestation/Monkestation2.0#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?
SomeRandomOwl pushed a commit to NovaSector/NovaSector that referenced this pull request Feb 10, 2024
… popup (#890)

* 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
Monkestation/Monkestation2.0#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 <[email protected]>
Iajret pushed a commit to Fluffy-Frontier/FluffySTG that referenced this pull request Feb 10, 2024
… popup (#890)

* 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
Monkestation/Monkestation2.0#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 <[email protected]>
Iajret pushed a commit to Fluffy-Frontier/FluffySTG that referenced this pull request Feb 10, 2024
… popup (#1921)

* 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
Monkestation/Monkestation2.0#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: NovaBot <[email protected]>
Co-authored-by: Lucy <[email protected]>
lessthnthree pushed a commit to effigy-se/effigy-se that referenced this pull request Feb 10, 2024
…#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
Monkestation/Monkestation2.0#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?
jjpark-kb pushed a commit to Skyrat-SS13/Skyrat-tg that referenced this pull request Feb 11, 2024
… 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
Monkestation/Monkestation2.0#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 <[email protected]>
Jolly-66 pushed a commit to TaleStation/TaleStation that referenced this pull request Feb 11, 2024
…rom the alert popup (#9726)

Original PR: tgstation/tgstation#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:

![image](https://github.com/tgstation/tgstation/assets/65794972/0d60afba-becc-4ed2-8032-dee50433402c)

Upstream port of
Monkestation/Monkestation2.0#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?

## Changelog
:cl:
fix: Fix succumb last words being double-encoded (i.e `i'm` becoming
`i&#39;lm`)
/:cl:

---------

Co-authored-by: Lucy <[email protected]>
JixS4v added a commit to JixS4v/beebase that referenced this pull request Feb 14, 2024
* Moves teleblocker/beacon implants to the techweb, new research node. Exile implants can now be printed (#81230)

## About The Pull Request

This adjusts some of the techweb stuff related to security implants. I
meant to do this in the original PR but got LAZY because I wanted to
push it out the door, and then the feature freeze happened.

Teleport Blocker and Beacon implants have been moved from cargo to the
departmental lathe, printable at (where else?) security. **They can no
longer be purchased from cargo.** They are behind a new research node,
which requires Subdermal Implants and Miniature bluespace research. This
node costs 2500 points.

Exile implants can now be printed from the security lathe.

Security Implants now have their own lathe category.

This also slightly adjusts the descriptions for the implant case designs
to reflect their contents.

## Why It's Good For The Game

First and foremost -- I really had meant to do this in the original PR.

Throwing these implants into cargo was intended to gate access to them
until later in the round. In hindsight, cargo doesn't really accomplish
that in the way I'd hoped. It's still available roundstart, and no price
will change that. Having these be handled by science is a much more
sound idea.

(Also security already has enough to be ordering from cargo, and not
nearly enough reasons to be yelling at science!)

Exile implants should be easier to access, especially for how little
impact they actually have. The simple convenience may be the difference
between a peaceful resolution or being beaten to death in the back of
the brig.

Adjustments to the lathe categories, descriptions are for slightly
better UX.

* Automatic changelog for PR #81230 [ci skip]

* Fix Flaky Failure From Fire  (#81399)

## About The Pull Request

Closes #81396 , Closes #81391 , Closes #81403, Closes #81402

I don't know why but I thought this proc was only called once, when the
mob entered the turf. That was silly.

And going back at it, I'm not entirely sure why I tied
`TRAIT_NO_EXTINGUISH` to the element anyways, rather than the lava like
it originally was.

While going back over this, I cleaned up the proc a bit. 

## Changelog

Not necessary

* 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?

* Automatic changelog for PR #81386 [ci skip]

* Replaces beach bar virtual domain varedited bar closets with prefabs (#81384)

## About The Pull Request

This changes the varedited/manually populated bar closets in the
lavaland virtual domain with the proper prefabs used on lavaland.
## Why It's Good For The Game

The doors don't look wonky now.


![image](https://github.com/tgstation/tgstation/assets/28870487/109ed9d5-762f-48ee-953e-6c669b51bbeb)
## Changelog
:cl: Rhials
fix: The beach bar virtual domain's bar closets no longer have default
locker doors.
/:cl:

* Automatic changelog for PR #81384 [ci skip]

* Mining Bluespace Survival Capsule's "Stand back!" alert now actually has meaning  (#81193)

## About The Pull Request

- Standing in range of a Bluespace Survival Capsule being deployed will
now toss you away from the deployed location of the pod, to roughly 2
tiles away.

## Why It's Good For The Game

I always found it weird (and a little misleading) that triggering a
survival capsule alerts people to "Stand back!", but it's actually
harmless to stand on top of it and even smart in some contexts since you
phase into it like nothing happened.

So I added the missing flavor. 

This also has some potential shenanigans involving antagging, as you can
time it perfectly so that you toss it just in time to throw people away
from it.

Note: The Luxury Elite pod is so large, that even after being thrown
away, you may still end up inside the pod by the time it deploys, but I
think that's funny. So.

## Changelog

:cl: Melbert
add: Shaft Miner's Bluespace Survival Capsules will now throw people
away from it when it deploys. Be sure to heed the warning to "Stand
back".
/:cl:

* Automatic changelog for PR #81193 [ci skip]

* Adds fire ants as a chem (#81214)

## About The Pull Request
Adds fire ants as a chem. They work pretty much exactly the same as
normal ants, but they deal roughly 2x damage. Also mildly cleans up
whatever ant code I touched
## Why It's Good For The Game
Doesn't really make sense that when you scoop up an anthill of fire
ants, you get a beaker full of normal ants. It's honestly an injustice.
Also, new flavours for the bartender and chef to work with are always
nice.
## Changelog
:cl:
add: Fire ants can now be scooped up and used as a chem like normal
space ants
/:cl:

---------

Co-authored-by: Aki Ito <[email protected]>

* Automatic changelog for PR #81214 [ci skip]

* Freedom implant and Biodegrade works on knotted shoes (#81376)

## About The Pull Request

- Freedom Implant will un-knot knotted shoes. 
- Biodegrade will melt knotted shoes. 

## Why It's Good For The Game

Just a niche interaction idea I had. Knotted shoes are, obviously,
obstructing your movement so these two tools that aim to un-obstruct
your movement should do something about it, right?

Also it would be funny to see a Ling melt their own shoes. Biodegrade
prioritizes handcuffs over anything else so it shouldn't be of great
concern.

## Changelog

:cl: Melbert
add: Freedom Implants and Biodegrade can you free you of the shackles of
knotted shoes.
/:cl:

* Automatic changelog for PR #81376 [ci skip]

* two new tgui commands (for coders) (#81381)

## About The Pull Request

tgui:prettier-fix runs prettier fixes
tgui:eslint-fix runs eslint fixes

## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/70376633/dadf7047-5fc0-498b-93a5-53d03a706b73)

* [FIX] Makes Deathtrap Recycler Movable (#81282)

## About The Pull Request

Fixes #81205 
~~Adds a new flag for letting you move otherwise un-deconstructable
objects and making deconstructable objects immovable with a wrench.~~
~~Adds that flag onto the ORM.~~
makes ~~ORM un-unwrenchable,~~ deathtrap recycler unwrenchable.

## Why It's Good For The Game

seems like an oversight on the recycler that unnecessarily limited
gimmicks, ~~and one of the long-running peeves with something like the
ORM has been how damn easy it is to walk up to it, unwrench it, and walk
into cargo through the windoor mapped for mineral storage access (which
basically everyone has.) This makes it so if you'd otherwise do that,
now you at least need to either deconstruct or destroy the ORM first (or
just take another less obvious way in.) Always seemed like an oversight
but can atomize it if wanted.~~ atomized out, will ask around before
putting back up

## Changelog

:cl:
fix: deathtrap recycler can now be moved.
refactor: moved check for NO_DECONSTRUCTION flag to be inside
can_be_unfasten_wrench, allowing us to set specific machines to be
movable but not deconstructable.
/:cl:

* Automatic changelog for PR #81282 [ci skip]

* Fixes the energy cake slice's on-eat effect triggering before it is eaten (#81382)

## About The Pull Request

This makes the energy cake deal its damage/effects AFTER being fed,
instead of before.

It also adds combat logging to force-fed energy cakes, just in case.

Also, this adds a balloon alert to the pacifist check. Cool!
## Why It's Good For The Game

Fixes a wacky combat bug, and adds some minor adjustments made along the
way.

Closes #81351.
## Changelog
:cl: Rhials
fix: The Energy Cake slice now does its on-eat effect AFTER being eaten,
instead of before.
/:cl:

* Automatic changelog for PR #81382 [ci skip]

* Automatic changelog compile [ci skip]

* MuleBOT UI/ID Fixes (#81380)

## About The Pull Request

- Fixes https://github.com/tgstation/tgstation/issues/81363
- Fixes unable to set MuleBOT home from control panel
- Fixes missing MuleBOT ID from Botkeeper PDA app
- Adds input validation for changing MuleBOT ID from control panel
- Removes hardcoding of MuleBOT IDs and home destinations
- MuleBOT will now automatically set its home to the navigation beacon
on its initialization turf

## Changelog

:cl: LT3
fix: MULEbot will correctly display its loaded cargo on BotKeeper
fix: MULEbot home beacon can be set from control panel
code: MULEbot home location is automatically set on init
/:cl:

* Automatic changelog for PR #81380 [ci skip]

* Allows shakers to pour drinks with custom names and descriptions (#81234)

<!-- 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
This adds the ability for shakers to pour drinks with custom names and
descriptions. You can alt-click on a shaker and it will prompt you to
set the name and desc for the drink, and they will be given to
description of whatever drinking glass you pour into.
Washing the glass will remove these customization (it will also now
remove any changes made using a pen).


https://github.com/tgstation/tgstation/assets/42454181/6cf336f0-0621-49f3-baf1-91038f454c24


<!-- 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
While this already kind of exists by using a pen to change the name and
desc, this is pretty annoying to do for every single glass of a beverage
you serve. It also is overwritten whenever the kind of drink in the
glass is changed. This PR will let bartenders serve plenty of their own
special concoctions without having to rename every single glass they
serve.
<!-- 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. -->

:cl:
add: Shakers can now pour drinks with custom names and descriptions!
Alt-click the shaker to enable this.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: 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: MrMelbert <[email protected]>
Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #81234 [ci skip]

* Adds a Touchy quirk (#81387)

## About The Pull Request

Adds a new quirk for -2 points that requires you to be next to something
to examine them, like blindness but without the timer or actual
blindness itself.

## Why It's Good For The Game

For the player using the quirk, it's 2 points for losing the ability to
simply examine everything around you, making it harder to tell what
someone has in their hands when they are charging at you, for example.
You need to get up and close to things to see what they are.
For people being examined, it's just another possible excuse to be near
them, opening up plausible deniability for actions such as sleepy pens,
changeling stings, etc.

## Changelog

:cl: Atlasle, JohnFulpWillard
add: Adds the Touchy quirk, you need to be next to something to examine
it, for 2 extra quirk points.
/:cl:

* Automatic changelog for PR #81387 [ci skip]

* museum away mission (#81208)

## About The Pull Request

adds a new gateway map, the Nanotrasen Museum it is filled with
""""Mannequins"""" and Common Core lore
im not putting the preview here because you really should explore it
yourself but if youre that curious i think the Checks tab in mapdiffbot
would have it
this gateway map contains no combat unless you count falling into chasms
because you did not carry a light
or going into the boarded room with no loot or any incentive with
obvious signs that there is the sole enemy on the map in there
the loot is the lore ok thanks

also makes mines detonate if theyre detonated by a non-mob im pretty
sure this couldnt have been intentional
trams stop chasms
and also the relevant items

<details>
  <summary>on second thought if you want spoilers check this</summary>


![image](https://github.com/tgstation/tgstation/assets/70376633/41ab2db1-55ce-4371-8594-a1d8961c37c3)

</details>

## Why It's Good For The Game

more gateway maps = good

## Changelog
:cl:
add: nanotrasen museum gateway map
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #81208 [ci skip]

* Fix Lipoplasty not existing (#81397)

## About The Pull Request

Fixes #81395

Boo-womp, as they say. 


![image](https://github.com/tgstation/tgstation/assets/51863163/531a1ffa-dfaf-4e0a-b8b7-ec9414514350)

## Changelog


:cl: Melbert
fix: Lipoplasty is An Option again
/:cl:

* Automatic changelog for PR #81397 [ci skip]

* Refactors how machines are deconstructed (#81291)

## About The Pull Request
This refactors how machines are deconstructed in the following ways

- You can no longer override `obj/machinery/deconstruct()`. If you want
customized behaviour then override `on_deconstruction()` instead.

This comes with the added benifit of no longer needing to check for the
`NO_DECONSTRUCTION` flag because the machine base proc does that for us
& if it finds that flag it won't proceed to call `on_deconstruction()`
meaning no machine will have a chance to spawn anything which is the
current behaviour.

This is required to make #81290 work for all machines at least so that
machine can send the `COMSIG_OBJ_DECONSTRUCT` signal without subtypes
overriding & forgetting to call the parent proc

- `dump_contents()` only gets called when the machine is deconstructed
not destroyed thus not leaving behind any of its contents inside. Fixes
https://github.com/tgstation/tgstation/pull/81290#issuecomment-1925752583

## Changelog
:cl:
fix: machines that should not drop contents when deleted no longer do.
refactor: refactors how machines are deconstructed. report bugs on
github.
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>

* Automatic changelog for PR #81291 [ci skip]

* Fixes Statues emitting solid lights (#81398)

## About The Pull Request
Fixes #63653
![Screenshot 2024-02-10
003356](https://github.com/tgstation/tgstation/assets/16868239/2fc8b2f0-81a0-40d9-9b52-bd04e66a30df)
Custom sculpted statues no longer include the light layers of objects
such as lanterns and PDA lights.
## Why It's Good For The Game
No longer have to worry if sculpting someone with their lights on.
Can safely sculpt a vibebot without covering your screen in a solid
circle.
## Changelog
:cl:
fix: Sculpted statues stop including light layers.
/:cl:

---------

Co-authored-by: LemonInTheDark <[email protected]>

* Yeets CONSIG_ORGAN_WAG_TAIL (#81400)

## About The Pull Request

It was dumb. LITERALLY just a proc.

So let's replace it with a proc then, as a helper at least. I'll take
this chance to disambiguate tail code to make it a bit less messy, and
hand back usable args in case we want to react to our change in tail
status

## Why It's Good For The Game

Code's less shit (slightly)

* Fixes funky closet type (#81389)

## About The Pull Request

`secure/closet` -> `secure_closet`.

Changes nothing besides making the mapped in closet use the right name. 

## Changelog

:cl: Melbert
fix: Lavaland Beech Bartender's clothing storage is named the right
thing now
/:cl:

* Automatic changelog for PR #81398 [ci skip]

* Automatic changelog for PR #81389 [ci skip]

* 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: 


![image](https://github.com/tgstation/tgstation/assets/51863163/081b69b2-e545-48f8-9016-071107b2c4c1)

After: 


![image](https://github.com/tgstation/tgstation/assets/51863163/8a823a82-3953-4889-9594-ccae87843c00)


## Changelog

:cl: Melbert
qol: Glasses colors should be a lot less harsh, and being blind no
longer also blinds your hud.
/:cl:

* Automatic changelog for PR #81328 [ci skip]

* Contractor loadout adjustment + Price tweak (#81293)

## About The Pull Request
Removes RNG items from the possible pool of items that gets given to
contractors when they buy their kit.
Contract kit:

![image](https://github.com/tgstation/tgstation/assets/66163761/d6009273-6ede-44b4-a2a4-6db4c9030400)
## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/66163761/ac08bfe9-4186-4e8e-a15b-0077d1e7433f)

![image](https://github.com/tgstation/tgstation/assets/66163761/a1d19780-9a97-407e-af75-842548cd7010)

The idea is that contractors should have the things they need in order
to begin contracting in the first place.
They are given thermals + SyndEye to find targets.
Modsuit/Contractor Suit/Chameleon mask+jumpsuit to conceal/disguise
their identity.
Their Jammer + Baton in order to pull off successful abductions without
getting dogpiled by the entire station.

In their current state, contractors are too weak, when at the end of the
day, the most harm they are doing is temporarily removing a crew member
for like 5 minutes. They should have a bit more power now in order to
have a bit more impact into the round.
## Changelog
:cl:
balance: Contractor kit no longer gets RNG items, it's a specific pool
now
/:cl:

* Automatic changelog for PR #81293 [ci skip]

* 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
:cl:
fix: You can now click things as an alien larva again.
/:cl:

* Automatic changelog for PR #81415 [ci skip]

* Makes the wizard's pets not fight to the death (#81412)

## About The Pull Request

Adds the `"Wizard"` to the wizard's pets Jimmy and Jommy, preventing
Jimmy from killing Jommy and trying to kill his owner.

Fixes #81410

## Why It's Good For The Game

The wizard federation is supposed to train their pets better than this.

## Changelog
:cl:
fix: The wizard's pets Jimmy and Jommy no longer fight to the death.
/:cl:

* Automatic changelog for PR #81412 [ci skip]

* New masks (#81217)

## About The Pull Request
Adds 3 new masks:
* Kitsune mask
* Facescarf
* Rebellion mask
All masks (and facescarf) are recolorable. And also thanks to Kovac for
the scarf sprites
## Why It's Good For The Game
Cool masks for make character style more unique. All are recolourable.

![2024-01-28_12-20-48](https://github.com/tgstation/tgstation/assets/106491639/49b532f7-ccfe-4556-a54f-a4884a9fda77)

## Changelog
:cl:
add: 3 new masks for your characters (thanks to Kovac for the scarf
sprites)
/:cl:

---------

Co-authored-by: tattle <[email protected]>

* Automatic changelog for PR #81217 [ci skip]

* Automatic changelog compile [ci skip]

* Fix some Section jank disallowing stamps from working properly and messengers from auto-scrolling (#81418)

## About The Pull Request

### Alternate title: "A spark of madness drove me to want to fix
paperwork tgui"

While doing paperwork I noticed that stamps could not be placed below a
certain point on paperwork, just reverting to being higher up. Actually
testing this, it seemed the stamps were not accounting for scroll offset
in some way.
<details>
  <summary>Images of Stamping Issue</summary>
  

![image](https://github.com/tgstation/tgstation/assets/42909981/96dbdafa-b7fc-44ed-8a93-2d0d9bfd51dc)

![image](https://github.com/tgstation/tgstation/assets/42909981/7193585a-511a-41b5-a3a0-8670ed692c14)

</details>

This led me to look into the code, and lo and behold, when
`PaperSheetStamper` in `interfaces/PaperSheet.tsx` was trying to get the
scroll offset from its `scrollableRef` it was simply returning 0 for
`scrollTop` and 469 for `height` regardless of what either value should
be.
I presumed _something_ was causing the reference to not be properly
forwarded from `PreviewView`'s `Section` to `PaperSheetStamper`, and
continued by testing `onScrollHandler`.

`onScrollHandler` seemed to actually have the desired values, and so I
made my first naive fix: having `PrimaryView` instead handle taking the
values from `onScrollHandler` and forwarding them to
`PaperSheetStamper`, and this worked fine!
However, I felt I didn't understand enough about _why_ the reference
method didn't work to commit to this approach.

So I went to look deeper, and found that there's actually at least one
more thing suffering from this issue.
`interfaces/NtosMessenger/ChatScreen.tsx`, the PDA messenger.
Specifically, its `scrollToBottom` method was using a `Section`
reference similarly to our problematic `interfaces/PaperSheet.tsx`, and
wasn't actually working.
<details>
  <summary>Images of PDA Issue</summary>
  

![image](https://github.com/tgstation/tgstation/assets/42909981/354c3ee5-15e2-4ffb-95eb-b4d33f58701a)

</details>
With tens of tabs of React documentation and tg files open went through
a crash course in React references, and hey uh- wait, no, hold on. It
can't be. Right?

`components/Section.tsx` was handling two distinct references,
`forwardedRef` and `contentRef`, in two distinct places. The former, at
the highest `div`, the latter at a lower `div`... together with
`onScroll`, seemingly confirming my suspicions.
Looking through the file's history, it seems that over the last several
prs and reimplementations of parts of this file, the `div` it was
forwarding a reference from was moved from being the same as `onScroll`
to a different `div` altogether. Then, this became `contentRef`.

And to confirm this, merging `forwardedRef` and `contentRef` seemed to
fix the issues with both stamping paperwork and PDA auto-scrolling just
fine.
<details>
  <summary>Images of PDA Issues Resolved</summary>
  

![image](https://github.com/tgstation/tgstation/assets/42909981/aaa6ccac-3271-4056-9761-a0a38ac72a4b)

![image](https://github.com/tgstation/tgstation/assets/42909981/1f03f627-8a75-4df2-89c2-757ff9fdbd42)

</details>

<details>
  <summary>Images of Stamping Issues Resolved</summary>
  

![image](https://github.com/tgstation/tgstation/assets/42909981/a4e36095-ec6b-4109-aeee-17cf9ced6ef3)

![image](https://github.com/tgstation/tgstation/assets/42909981/ca4eb62b-c7ed-4420-b869-58970da6a9f9)

![image](https://github.com/tgstation/tgstation/assets/42909981/bf1309ec-3a8b-4aa5-baed-b45a8ccfc577)

</details>

Final notes:
- I recognized the issue at play in a moment of madness at 1am, it
however still took an extra day for me to feel confident enough in my
React to actually fix this without crashing everything else ever.
- Coincidentally "Ace Combat Zero Soundtrack - Zero" was playing in the
background while finalizing this.
- For some esoteric reason beyond my current comprehension, as opposed
to non-stamped paperwork, stamped paperwork does not auto-focus when
scrolled over sometimes. As it already did this before my changes, I am
considering it outside of the scope of this pr. It would also most
likely deal 3d8 psychic damage, on top of it being 1:53am as of writing
this.
## Why It's Good For The Game

Reduces paperwork jank, but broadly fixes issues with Section's
forwarded reference not actually being a reference to the scrolling
part. This includes PDA messengers' scroll to bottom actually working.

Fixes #60508. Given the issue is from 2021 I don't think it's _related_,
but it exists again and hey it works fine now!
Fixes PDA messengers' scroll to bottom actually working.
Fixes, uh, probably other stuff that used to rely on this working.
## Changelog
:cl:
fix: Fixed stamps not accounting for scroll offset. You can actually
stamp paperwork properly without using accursed knowledge again.
fix: Fixed PDA messenger not scrolling to the bottom when a new message
gets sent.
/:cl:

* Automatic changelog for PR #81418 [ci skip]

* Fixes bluespace launchpads from not working in shuttles (#81421)

## About The Pull Request
Fixes #81314 
does what it says on the tin, I made the check more discriminatory by
checking supply and ferry areas instead (the two ways the crew can get
to centcom).
## Why It's Good For The Game
it is what it is
## Changelog
:cl:
fix: You can now use bluespace launchpads from shuttles (except cargo
and ferry shuttles)
/:cl:

* Automatic changelog for PR #81421 [ci skip]

* Fixes engines being pointed at the wrong direction in old ferries such as base, meat and lighthouse (#81422)

## About The Pull Request
I noticed that the engines were backwards on some of the old shuttles,
probably some fucky wucky updatepaths. We should at least do the bare
minimum maintenance on these admin only ferries
## Why It's Good For The Game
## Changelog
:cl:
fix: Fixes backwards engines in a few of centcom's ferries!

* Automatic changelog for PR #81422 [ci skip]

* [NO GBP] Heretic path of moon, post launch patch (no jeature jeeze this time) (#81428)

## About The Pull Request
This pull request does a few things:
First up, the moon smile now does a 2 second knockdown and all its
effects have been granted an increase of a few seconds making it more
powerful.
Second up, the mark now does a bit of sanity damage on detonation. Not a
lot but its helpful before you get the blade knowledge.
Lastly the ascension has been tweaked so that lunatics now get an
antagonist hud and are able to see who is a lunatic and who isnt. The
heretic has received the same treatment and can now see who is and isnt
a lunatic. Being within the heretics line of sight whilst its ascended
now puts an effect on the tile you are on because people were
complaining about it not being clear enough.
## Why It's Good For The Game
Path of moon struggled a LOT in the early game compared to every other
path and I think that made it very weak, this buff should put it more in
line with other paths whilst not over throwing the balance completely.

The ascension changes are purely for qol as the previous system made it
very hard to tell who is and isn't a lunatic and it was consistent
feedback that I received every time a moon heretic ascended.
## Changelog
:cl:
balance: Smile of the moon's effects now last for longer and have a
longer minimum active time
balance: Mark of moon detonations now do sanity damage
qol: Ascended moon heretics and lunatics are now able to see who is and
isn't a lunatic.
qol: People inside the ascended moon heretics sanity draining aura now
gain an effect under their tile.
/:cl:

* Automatic changelog for PR #81428 [ci skip]

* Removes the adapted flashlight (#81426)

## About The Pull Request

It doesn't need to exist, I killed see_in_dark so we can always see shit
emissives.

## Why It's Good For The Game

Cleaner code

* Fixes complex lights not handling moving well, renames lighting defines (#81423)

## About The Pull Request

[Fixes static lights not
moving](https://github.com/tgstation/tgstation/commit/ffef43c05a55dae414ef94558ecf9b9df709ded7)

Worked fine when the owner moved, but if the owner was inside something
else, it would try and trigger an update on the PARENT's lights, which
are obviously not us.

[Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they
do](https://github.com/tgstation/tgstation/commit/de73a63bd4d97783c69c95370726d1c253ffb8fe)

People keep trying to change the lighting system of lamps and it makes
me mad.
I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a
better name for turf matrix lighting. Suggestions welcome

## Why It's Good For The Game

Closes #80005
Hopefully improves understanding of lighting at a glance
## Changelog
:cl:
fix: Fixes fancy lights not updating their source location when picked
up and moved
/:cl:

* Automatic changelog for PR #81423 [ci skip]

* Venus Human Traps have an orbit menu category, recieve antag datum on spawn (#81411)

## About The Pull Request

Venus Human Traps now have their own category in the orbit menu. It is a
pleasant shade of green, just like vines are.


![image](https://github.com/tgstation/tgstation/assets/28870487/90615559-a45b-44a6-8fb4-39a9172a8e3a)

Venus Human Traps are also now given their antagonist datum upon
spawning from a flower. The datum isn't really anything special but it's
consistent with the other antag spawners.

This also makes the spawner piece of the VHT flower bud invisible. It's
an abstract object meant to handle the logic for spawning, and only the
structure should be visible. This currently manifests as there being
two, identical flower buds on the same tile when a flower bud spawns. I
did not want to get into untangling the two objects in this PR.
## Why It's Good For The Game

Venus human traps being lumped in with the humans in the "Alive" menu is
WEIRD. Now ghosts can give a gigantic vine infestation the attention it
truly deserves.

Fixes a minor visual incongruity found while doing all this.
## Changelog
:cl: Rhials
qol: Venus Human Traps are now visible in the orbit menu. Cool!
fix: Spawning as a Venus Human Trap now properly gives you an antag
datum/objective.
fix: Venus human trap flowers no longer have a second, identical flower
under themselves.
/:cl:

* Automatic changelog for PR #81411 [ci skip]

* Fixes various bloodied hand overlay related issues (#81430)

## About The Pull Request

Fixes #76900
I made it so bloodied hands use two separate overlays instead of jankily
swapping which icon is applied to the one overlay, because it was
literally never clearing the individual hand overlays, which is what
caused the linked issue

I also fixed your hands appearing bloodied when holding bloodied gloves,
this was caused by a _one character incorrect negation_
I remember this bug having been around for a long while I have no idea
how no one else has fixed this by now

Oh and also I think the overlays have never correctly updated when
removing or attaching limbs? Baffling, honestly.
## Why It's Good For The Game
Bugs are bad and these ones in particular were making me mad.
## Changelog
:cl:
fix: Getting blood on your hand when you only have one no longer makes
your hands visually permanently bloody
fix: Holding bloodied gloves no longer makes your hands look bloody,
bloodied gloves now look bloody when worn, and damaged gloves now look
damaged when worn
fix: Gaining or losing an arm now correctly updates your hand overlays
/:cl:

* Automatic changelog for PR #81430 [ci skip]

* Mapload anomalies are no longer orbit points-of-interest (#81431)

## About The Pull Request

Mapped-in anomalies no longer register as points-of-interest in the
orbit menu. This is primarily for the hollow anomalies from the anomaly
research ruin. Player-stabilized anomalies, and regular event anomalies,
will still show up here.
## Why It's Good For The Game

These damn things take up over half the misc tab. Less clutter in the
orbit menu.


![image](https://github.com/tgstation/tgstation/assets/28870487/099cda4d-42e2-478d-ac21-fe0ec7a21e60)
## Changelog
:cl: Rhials
qol: Map hazard anomalies are no longer treated as points-of-interest in
the orbit menu.
/:cl:

* Automatic changelog for PR #81431 [ci skip]

* Makes brainwashing immune to mindshield implant, you can only take it off through surgery now. (#81419)

## About The Pull Request
What it says on the tin, Removes the mindshield effect implant on
removing brainwashing, Don't worry though, you can still remove it
through surgery (interdepartmental interaction!). Allows for more
engaging and in-depth gameplay that focuses on making security less
infallible.
## Why It's Good For The Game
This PR makes security more infallible which is a good thing, by making
them more prone to infiltration and backstabbing. it enhances the
paranoia aspect present in the game. no longer can you trust someone
just because they are a member of security (not that they trust them
completely 100% in the first place, changelings exists). allowing for
more deep user-generated stories full with intrigue and depth. the stuff
I feel is the core gameplay loop of SS13. By making sure you can 100%
trust someone with a mindshield and redshirt you take away that feeling
of dread, whether or not this person can be trusted.

Can you trust your sec buddy that was gone for a concerningly long
amount of time arresting and killing a head with just a notion "oh that
guy is a cling"?. what if he was brainwashed within that space of time
and ordered to frame that head? That is what I absolutely love to
happen.

Also to keep it in line with the hypnoflash, where you CAN do this. and
the process is way easier (at a cost of high TC and unreliability).
Brainwashing takes a lot more time to do. it should at least be on par
with hypnotizing.
## Changelog
:cl:
balance: Brainwashed individuals can no longer be debrainwashed through
a mindshield implant, they still protect you from brainwashing though!
You just need to get medical to fix them up.
/:cl:

* Fix paperwork not displaying the writing utensil font, colour, and boldness (#81429)

## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/42909981/89b80bda-4d18-4b04-88d1-8ad78c006dff)

Paperwork was somehow only using the writing utensil's font, colour, and
boldness within player-created input fields or the big writing field,
but never in the proper paperwork. This is apparently because at some
point `setFontInText`'s wrapping of it in a span tag with the proper
style had swapped from using `style="stuff"` to `style={{stuff}}`, which
doesn't actually seem to work here.
Swapping this back seems to make it perfectly functional again.
I don't know either.
## Why It's Good For The Game

Fixes more paperwork jank.
## Changelog
:cl:
fix: Paperwork should actually use the writing utensil's font, colour,
and boldness outside of input fields again.
/:cl:

* Automatic changelog for PR #81419 [ci skip]

* Automatic changelog for PR #81429 [ci skip]

* Fix love not working right before Valentines day (VERY HIGHI priority) (#81440)

## About The Pull Request

The parent new call is what handles showing the alt appearance to the
mob

So we add the alt appearance to our date, try to show to any mob, it
fails (there is no seer), then set seer

Fixes this by fixing the order

## Changelog

:cl: Melbert
fix: You can once again see love on Valentines Day
/:cl:

* Automatic changelog for PR #81440 [ci skip]

* Fix lag when viewing ore silo long logs list (#81232)

![6OrHcTlN6Z](https://github.com/tgstation/tgstation/assets/137328283/89ed9091-e85b-4032-bae1-19200d5ad10d)


## About The Pull Request

- Logs tab is now using a virtual list that renders only visible
components, thus preventing lag when logs list grows too long. More
about it
[here](https://github.com/tgstation/tgstation/pull/81016#issuecomment-1921765723).
- Minor tweaks to Ore Silo UI to account for new backend changes and TG
style guide.

## Changelog

:cl:
fix: Separated logs list into pages in ore silo UI, thus fixing lag when
logs list grows too long.
/:cl:

* Automatic changelog for PR #81232 [ci skip]

* Resprites changeling abilities and weapons (By MelokGleb and KREKS, McRamon) (#81394)

## About The Pull Request
The original PR has went stale for a long while now, which is a pity,
since it's an overall improvement on lingus' sprites: #80702

## Why It's Good For The Game
>Old changeling sprites look old and boring, we thought they should get
an update

## Changelog

:cl: MelokGleb and KREKS, McRamon, Ghommie
image: New sprites for changeling powers and items. Woooh.
/:cl:

---------

Co-authored-by: MelokGleb <[email protected]>

* Automatic changelog for PR #81394 [ci skip]

* Automatic changelog compile [ci skip]

* TGchat: Tweaks & Fixes (#81354)

## About The Pull Request
1. Case Sensitive highlight has been fixed, it works now
2. Added `Clear Chat` button, clears the active tab. Code stolen from
GoonStation closed PR
https://github.com/goonstation/goonstation/pull/16708
3. Added `Mute` button, it allows to switch off Unread counter on
separate tabs
4. Cyrillic is supported by highlights again
5. Small appearance edits, unfortunately dropdowns are just as bad
6. Buttons when pressed no longer remain highlighted as if you were
hovering over them, which was slightly misleading and generally looked
like a bug (I'l revert it if you say so)

## Why It's Good For The Game
You can mute individual tabs so they don't clutter your eyes, clear chat
if you need to and create Case Sensitive highlights, isn't that nice?

## Images of Changes

<details>
<summary>Case Sensitive</summary>


https://github.com/tgstation/tgstation/assets/69762909/1123049c-05e1-4110-82de-79c2f807453f

</details>
<details>
<summary>Clear Chat</summary>


https://github.com/tgstation/tgstation/assets/69762909/6ac91d08-2a22-435e-974d-7386ade77b77

</details>
<details>
<summary>Mute Button</summary>


https://github.com/tgstation/tgstation/assets/69762909/394dbe46-2e6f-4217-840c-d9a7ebaff566

</details>

## Changelog

:cl: Aylong
add: Added `Mute` button into `Chat Tabs` settings, it disables tab
unread counter
add: Added `Clear chat` button into `General` settings, you can clear
your dirty chat like you did it before TGchat
fix: Case-sensitive highlighting now works properly
/:cl:

* Automatic changelog for PR #81354 [ci skip]

* Adds unit test for tail wag emote, fixes tail wag emote (#81437)

## About The Pull Request

<details> <summary>Funnier for who, Lemon?!</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/4cd755fa-ed92-4b99-802c-f22591f8238c)

</details>

https://github.com/tgstation/tgstation/pull/81400 broke the tail wag
emote. This will make it work again.

I did test it.  _cough_.


<details> <summary>Before</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/57589b8c-49b4-4d3f-81cf-e43432ac1a8c)

</details>

<details> <summary>After</summary>


![image](https://github.com/tgstation/tgstation/assets/13398309/3770d21f-4553-49c0-a60f-11c71be37430)

</details>

My fault for not writing a better unit test I guess.

## Why It's Good For The Game

Fixes a bug.

## Changelog

:cl:
fix: *wag emote is now functional again
/:cl:

* Automatic changelog for PR #81437 [ci skip]

* Makes some space ruin area names more distinct (#81432)

## About The Pull Request

This slightly changes some space ruin area names. They should be
slightly more distinctive and collide less with actual station locations
(I.E. there can be two "The Quartermaster's Office" areas or two "The
Bridge" areas).
## Why It's Good For The Game

Slightly more naming consistency, less confusion in the jump-to-area
menu.
## Changelog
:cl: Rhials
spellcheck: Some space ruin area names have been made more distinct.
/:cl:

* Automatic changelog for PR #81432 [ci skip]

* Fix Knit Flesh (#81385)

## About The Pull Request

Fixes Knit Flesh damaging organs instead of healing them, and also the
red color overlay staying on victims forever if the organ extraction
process is interrupted. Also improves some grammar and wording of the
chat messages of the spell.
## Why It's Good For The Game

When a spell says it heals organs, it should not damage them instead.
Also people should not stay red forever I think. And lastly we wants our
chat messages to use proper english, don't we?.
## Changelog
:cl:
fix: knit flesh now heals organs as intended, and does not cause its
victims to be red forever if interrupted
spellcheck: knit flesh chat messages are no longer gramatically
incorrect
/:cl:

* Automatic changelog for PR #81385 [ci skip]

* Operand Swap for QuirksPage.tsx (#81438)

## About The Pull Request

The changes included in this PR were requested by maintainers of [Nova
Sector](https://github.com/NovaSector/NovaSector).

- Changed the input operand of `getValueClass`, replacing the `value`
number with the full `quirk` object.
- Renamed `getValueClass` to `getColorValueClass`.

## Why It's Good For The Game

A downstream repository has requested that I make this change, so they
can easily maintain their own changes to it.

The change should allow them to add more heading colors for quirks on
the Character Preferences page.

This change is purely semantic, and there are no visible changes to the
game,

* Revenants no longer make noise walking into gibs (#81420)

## About The Pull Request

Turns the hardcoded sound that plays when you walk into some gibs into
an Element and adds a check for flying to avoid playing the sound,
fixing Revenants, Holoparasites, and other mobs that fly from making
noise when "walking" into a pool of blood.

## Why It's Good For The Game

I was observing a revenant and heard them making noise from walking over
blood, thought it was kinda f*cked up

## Changelog

:cl:
fix: Revenants (and other flying mobs) will not make noise when walking
into pools of gibs,
/:cl:

---------

Co-authored-by: Ghom <[email protected]>

* Automatic changelog for PR #81420 [ci skip]

* Moves inter-round caches to cache/. Deletes tmp/ between rounds. Keeps tts from killing servers. (#81433)

* Reduces chat/audio spam when multiple ghost polls are being called (#81441)

## About The Pull Request

This slightly modifies the polling subsystem. The sound/chat popup for a
new role is now only given on the first "stack" of a role signup.

Let's say 3 loneops roll at once (ty admins), you'll still get the toast
popup for 3x loneop rolls, but you'll only get one text highlight in the
chat, and only one audio stinger.

Even if the first 2 loneops don't have anyone sign up for it, using the
text or toast signup options will still sign you up for the last roll as
it completes. This shouldn't make signing up any harder, just quieter.
## Why It's Good For The Game

Less spam in chat. Less headset-blasting audio bleeps. Cool!

Closes #80998.
## Changelog
:cl: Rhials
fix: Ghost role polls should spam you less when multiple of the same
roll occur in succession.
/:cl:

* Automatic changelog for PR #81441 [ci skip]

* Painkillers now actually induce analgesic effects (#81335)

## About The Pull Request

This adds a new trait, `TRAIT_ANALGESIA`, and makes various painkillers
(+ tenacity trauma) apply said trait.

This prevents various pain-related effects, such as screaming due to
pain, and also provides a speed bonus during surgery.

## Why It's Good For The Game

Gives more of an incentive to actually use reagents such as morphine or
miner's salve.

## Changelog
:cl:
add: Painkillers (i.e morphine, miner's salve) now actually induce
analgesic effects, preventing various pain-related effects, such as
screaming due to pain, and also provides a speed bonus during surgery.
add: The tenacity trauma (traumatic neuropathy) also applies analgesic
effects.
refactor: Simplified code related to reagents adding traits.
/:cl:

* Automatic changelog for PR #81335 [ci skip]

* Partial fix of heretic shapechanges (#81434)

<!-- 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

Fixes #79713 and partially #80525 - heretics should no longer regain
their spells improperly when coming back from a shapeshift.

Note: heretics losing their living heart when shapeshifting is an
unrelated issue that I wanted to solve in this same PR originally, but
it has proven to be more complicated than anticipated. So only spell fix
for now.

<!-- 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

I see bug I kill it.

<!-- 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. -->

:cl:
fix: heretics no longer lose their spells when returning from a
shapeshift
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: 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. -->

* Automatic changelog for PR #81434 [ci skip]

* Automatic changelog compile [ci skip]

* Nuka Cola causes irradiation (#81362)

## About The Pull Request

Nuka Cola now causes irradiation. 

## Why It's Good For The Game

Most of our speed bonuses, such as Methamphetamine, comes with a
downside (the usual one being brain damage), because speed is king.

When you give people a speed boost that comes with absolutely NO
downsides outside of visual, it turns out people abuse it, a lot.

Even a small speed boost ends up being abused. It is not uncommon to see
security officers saddled with two, three bottles. Nor is it uncommon to
see tiders use it to escape said officers, or antags to escape said
tiders. Do you see the problem here? It has become a situation where not
having it puts you at a disadvantage, which is sad.

Irradiation fits thematically, too. And it also shows you when someone's
using it, since they start glowing green.

## Changelog

:cl: Melbert
balance: Scientists have discovered Nuka Cola is not good for short term
health.
/:cl:

* Automatic changelog for PR #81362 [ci skip]

* 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
:cl:
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
/:cl:

* Automatic changelog for PR #81401 [ci skip]

* Reduces Time For Nightmare To Gain a Critical Strike (#81317)

## About The Pull Request

This PR reduces the amount of time it takes for Nightmare to gain a
critical strike whilst in jaunt (15 > 7 seconds)

## Why It's Good For The Game

Having watched players use the new mechanic added to Nightmare's Light
Eater in #80670, I've recognized that the 15 second requirement is
extremely clunky in practice, as it was a carryover from when Nightmare
got crits from being out of jaunt as opposed to staying in. Since
Nightmare's job requires it to usually be out of jaunt smashing lights
or APCs when it isn't engaged in combat, reducing the time it takes
while in jaunt to gain a critical strike allows Nightmare to get more
use out of the mechanic without throwing off their general game plan so
much.

## Changelog

:cl:
balance: Nightmare's Light Eater takes less time in jaunt to gain a
critical strike, being reduced to 7 seconds from 15 seconds.
/:cl:

* Automatic changelog for PR #81317 [ci skip]

* Fixes valentine love again, for real this time, "why did no one report this" edition (#81470)

## About The Pull Request

Basic one-person huds now default to having no AA flags set, rather than
`AA_TARGET_SEE_APPEARANCE` set

I thought it would be fine to let basic huds just use default hud flags
without realizing the default flags were very self-defeating for this.
Also also kinda dumb. Why does it default to letting the target see the
hud? Whatever I guess.

This fixes Valentines seeing love hearts on themselves in addition to
their companion

I'm surprised no one reported this. 

## Changelog

:cl: Melbert
fix: Valentines no longer see themselves covered in hearts. They only
see their Valentine covered in hearts.
/:cl:

* Automatic changelog for PR #81470 [ci skip]

* Fixes Krav Maga allowing pacifism bypasses. (#81447)

## About The Pull Request

Fixes Krav Maga allowing pacifism bypasses.

## Why It's Good For The Game

Bugfixes are good for my GBP count. Also, pacifism bypasses bad.

## Changelog
:cl: CandleJaxx and Iamgoofball
fix: Fixes Krav Maga allowing pacifism bypasses.
/:cl:

* Automatic changelog for PR #81447 [ci skip]

---------

Co-authored-by: Rhials <[email protected]>
Co-authored-by: orange man <[email protected]>
Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: Lucy <[email protected]>
Co-authored-by: Nick <[email protected]>
Co-authored-by: Aki Ito <[email protected]>
Co-authored-by: jimmyl <[email protected]>
Co-authored-by: Higgin <[email protected]>
Co-authored-by: Changelogs <[email protected]>
Co-authored-by: lessthanthree <[email protected]>
Co-authored-by: Ghom <[email protected]>
Co-authored-by: John Willard <[email protected]>
Co-authored-by: SyncIt21 <[email protected]>
Co-authored-by: Ed640 <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
Co-authored-by: Xander3359 <[email protected]>
Co-authored-by: Thunder12345 <[email protected]>
Co-authored-by: NeonNik2245 <[email protected]>
Co-authored-by: tattle <[email protected]>
Co-authored-by: _0Steven <[email protected]>
Co-authored-by: Singul0 <[email protected]>
Co-authored-by: Rex9001 <[email protected]>
Co-authored-by: siliconOpossum <[email protected]>
Co-authored-by: Interception&? <[email protected]>
Co-authored-by: MelokGleb <[email protected]>
Co-authored-by: Aylong <[email protected]>
Co-authored-by: Bloop <[email protected]>
Co-authored-by: ViktorKoL <[email protected]>
Co-authored-by: Dani Glore <[email protected]>
Co-authored-by: Kyle Spier-Swenson <[email protected]>
Co-authored-by: IndieanaJones <[email protected]>
Co-authored-by: Iamgoofball <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants