* Posters return to your hand when cut down/not hung up, abductor posters more resilient to wirecutters (#81924)
## About The Pull Request
Posters now drop into your hand when you cancel the hanging process, or
snip them down with wirecutters. If they can't drop into your hands,
they go to the floor.
Oh, also, this makes it so that abductor wirecutters (or any wirecutters
with a toolspeed better than 0.2 in case of varedits/future additions)
are too weak to cut down abductor posters.
## Why It's Good For The Game
Posters getting dropped to the ground when cancelling the hanging
process has always really annoyed me and I want it to not happen
anymore.
If you want to get those unsightly abductor posters out of your
department you'll have to loot the abductor scientist first (or just
take the wall down but that's admitting defeat).
## Changelog
🆑 Rhials
qol: Posters now return to your hand when the hanging process is
cancelled, or they are snipped down.
qol: Abductor posters can now only be cut down with abductor-tier
wirecutters.
/🆑
* Posters return to your hand when cut down/not hung up, abductor posters more resilient to wirecutters
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* [NO GBP] Extremely tiny stupid nitpick changes to the smoking room ruin (#81767)
## About The Pull Request
Ok so this just does some really really tiny changes to the smoking room
of the smoking room ruin. I added this way back during march mapness and
have always wanted to touch up this last area.
These are basically just touch-ups that are two years too late because
they felt so insignificant and small that making an entire PR to change
them felt excessive. I still feel that way but I'm also a perfectionist
and this would linger in my head until the day I die.
Anyways, there should be slightly less awkwardly placed spawners, decals
blocked from view. You also have to walk past the smoky remains to reach
the second special lighter, instead of the first.
That's it, that's everything. You don't even get screenshots here.
Sorry.
## Why It's Good For The Game
I have an obsession with revisiting and completing old, unfinished work.
## Changelog
🆑 Rhials
fix: Some tiny tiny changes to the smoking room ruin to make it a little
less ugly.
/🆑
* Tram tile/bench fixes (#81798)
## About The Pull Request
- Tram benches can be rebuilt after deconstruction
- Tram tiles build the correct amount inhand
- Tram tiles available in the engineering protolathe with other items
- Tram tiles create the right stack type when pulled up
- Tram tiles have inhand/obj icons for both types
## Changelog
🆑 LT3
fix: Tram floor tiles constructed inhand provides 4 instead of 1
fix: Tram floor tiles provide correct stack item when pulled up
image: Tram floor tiles have their own inhand icons
qol: Tram floor tiles available in the engineering protolathe
fix: You can reconstruct deconstructed tram benches
/🆑
* Tram icon cleanup (#81797)
## About The Pull Request
- Deletes an unused tram_wall.dmi
- Renames tram frame to tram girder
- Tram girder looks like girder, not lattice

## Why It's Good For The Game
More straightforward for players. Since it acts like a girder, it should
look like a girder not a lattice.
## Changelog
🆑 LT3
image: Tram frame is now tram girder, because it acts like one
/🆑
* Autotucking On Map Load (#81782)
## About The Pull Request
Doesn't really do much currently but without it wallening beds look
fuckin DUMB
Plus I think this better matches what is intended
## Why It's Good For The Game

---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
* Makes Ethereal Charging Loop Just About Everywhere (#81775)
## About The Pull Request
Basically,
For APCs.

For recharging APCs.

For recharging from cells. The Ethereal offscreen was blue, you'll just
have to trust me that this was a color-coded PR.

## Why It's Good For The Game
It's kind of CBT as-is right now to have to click this stuff over and
over, especially when light tubes have it that much more convenient than
everything else. I figure some while loops would make the situation
better for them.
## Changelog
🆑
qol: Ethereal charging now loops when they're charging (from) APCs or
from power cells!
/🆑
* Lots of description changes and grammar fixes for heretics (#81761)
## About The Pull Request
Changes a lot of text. Apart from grammar fixes, here are the notable
changes:
- Ash jaunt description just said it is a "short range jaunt" without
explaining what exactly a jaunt is. I believe it is better to describe
without comparing to another spell the player may not have experience
with.
- Cosmic grasp now explains what the deal is with star marks and cosmic
fields. It is still possible to crosspath into a star mark spell,
skipping this description, but I assume a player like that is
experienced enough to know what the star mark does anyway...
- The knowledge for ash spirits no longer refers to them as "Ash Men" -
"Ash Spirit" is the mob's actual name. If you think "Ash Man" is a
better name, I can change it around so that the mob gets renamed that
instead.
- Removes the lines from paradoxical curio's description about causing
brain damage on examination - many heretic items cause adverse effects
to heathens who try to interact with them, and there is never a need to
clutter the description with them.
- Changes the eldritch coin description, because the old one was, in my
opinion, awkward. I changed it to be more inline with the other items'
descriptions, and to not tell non-heretics what its purpose is. If you
liked the old one better, I can revert this change.
## Why It's Good For The Game
Grammar good. Accurate descriptions good.
## Changelog
🆑
fix: made some heretic descriptions more accurate
spellcheck: improved english of the heretical eldritch patrons
/🆑
* Makes Medbay surgery on Metastation a bit more inline with other maps (#81786)
## About The Pull Request
Makes it so paramedics can't access the surgery theater in Metastation
## Why It's Good For The Game
Paramedics can't access surgery on the other maps, and can't use the
front door to the surgery theater, They shouldn't have access to it
through maints
## Changelog
🆑
fix: Makes Metastation surgery access more consistent with other maps
/🆑
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Shuttle gibbing code improvements (#81726)
## About The Pull Request
Adds a resistance flag, `SHUTTLE_CRUSH_PROOF`, adds it to the existing
things that have it, and adds it to the immortality spectres.
## Why It's Good For The Game
Gets rid of some hardcoded checks, making it easier for future code (or
admins) to make things immune to shuttle crushing.
Also makes it so immortality spectres are immune to being shuttle
crushed, as that kinda ruins the whole "immortality" thing...
## Changelog
🆑
refactor: Improved shuttle gibbing code, adding a new resistance flag,
`SHUTTLE_CRUSH_PROOF`.
fix: Immortality revival spectres can no longer be crushed by shuttles.
add: The ghost of Poly can no longer be shuttle-crushed, nor can
anything incorporeal.
/🆑
Co-authored-by: san7890 <the@ san7890.com>
* Shuttle gibbing code improvements
---------
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: san7890 <the@ san7890.com>
* Adding a blood brother via the team panel sets it up correctly (#81799)
## About The Pull Request
In a recent round, it was noticed that it's kind of annoying and fiddly
for an admin to add someone to a blood brother team (for instance, if
they had to recreate someone's mob to fix a different issue).
Now if you add someone to a blood brother team via the teams panel, it
will set them up as a blood brother properly.
It's probably in the future worth examining this behaviour for other
team antags as well.
I also added a link to the Team Panel to the Antag Panel because I had a
skill issue and kept forgetting how to access it.
Finally, the conversion logging looked all kinds of fucked, so I fixed
it. I will be honest: I don't know what that list does but the arguments
it was recording were both wrong and didn't make any sense.
## Why It's Good For The Game
Makes admin lives easier.
Using this panel you can now add sapient Ian to a blood brother team.
## Changelog
🆑
admin: Made it easier for admins to adjust blood brother teams using
admin tools.
fix: Correct blood brother conversion logging.
/🆑
* Adding a blood brother via the team panel sets it up correctly
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Unique icons for lock path spells (#81832)
## About The Pull Request
Adds unique icons for several lock path spells: caretaker's refuge,
apetra vulnera and ascended shapeshift.
https://github.com/tgstation/tgstation/assets/44502667/8fe907bc-4da9-4007-97f2-445b26be3068
Never added sprites before, so I hope nothing breaks. Also for some
reason visual studio code really wanted to change some indentation on
some empty lines in apetravulnera.dm, so there's some random changes,
had no idea how to prevent it, and it doesn't seem to actually matter.
## Why It's Good For The Game
These spells used to (except for ascended shapeshift) use icons that
other heretic spells also used, potentially leading to confusion. Also
it's nice to have unique icons for each spell.
## Changelog
🆑
image: added unique icons for spells: caretaker's refuge, apetra vulnera
and ascended shapechange
/🆑
* Unique icons for lock path spells
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* moon smile effect durations fix (#81794)
## About The Pull Request
Moon smile's durations had some syntax issues, causing their durations
to be much lower than intended, and sanity having very low impact on it.
Also adds a use of SANITY_MAXIMUM define, so that the calculation will
still work if this value is ever changed.
## Why It's Good For The Game
The moon did not smile. It was frowning. Frowning because it was bugged
:( But with this fix it can smile again :)
## Changelog
🆑
fix: fixed some issues when calculating the duration of moon smile's
effects
/🆑
* moon smile effect durations fix
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* Rebalances and adds more ambush-style cling abilities, buffs chameleon skin and adds a new ability! "Darkness Adaptation" (#81373)
## About The Pull Request
This PR adds a new ambush ability to changelings, "Darkness Adaptation"
and tweaks the balance of "Chameleon Skin".
The new cling ability, "Darkness Adaptation". makes your character
translucent and slightly dark while also giving the ability to see
slightly better into dark than normally (30% better). While this ability
is active, flash protection is lowered by one.
Buffs "Chameleon Skin" by reducing the DNA cost to 1 from 2, and sped up
the time it takes to go full invisible by 2.5x and zero instability cost
Below is the picture of the translucency through normal non-night-vision
vision: (note: this is using extremely dark armor already)

Below is the picture of the translucency through the poor night-vision
that the ability gives you:

## Why It's Good For The Game
This ability was added in #11148 back in 2015 and hasn't been touched
for 9 years. The original ability just gave you the _extremely_
situational "chameleon skin" mutation (one that is accessible to the
crew through genetics already). for a whopping **2 mutation points**
cost. The mutation makes you invisible after half a minute or so of
standing still and is immediately broken the second you move or get
pushed.
Compared to other similarly costed powers you get for 2 mutation points,
this is by far the worst bang for your buck by a large margin.
Needless to say, considering with how power-crept everything else in the
game is after all these years. this ability that hasn't been touched for
ages have fell into disuse to the point of uselessness, especially with
the heavy cost it that came with it.
This PR buffs that ability by making it cheaper, in line with the cost
of other less powerful abilities that clings have. and made it 2.5x
faster to turn invisible.
The PR also adds another ambush-oriented ability, "Darkness adaptation".
The ability allows your character to become translucent and slightly
dark while also giving the ability to see slightly better into dark than
normally (30% better); with the downside of your eyes being slightly
worse than before.
This ability follows the general spirit of clings, an stealth-generalist
oriented antag that you never know when they would strike (disguises
already have this effect, but them being far more able to jump you in
maint even more so.). and encourages more creative strategy than just
your average murderbone.
A Perfect force multiplier for maint combat and maint ambushes. Also
synergises well with augmented sight, and the blackish cling armor.
Don't worry if you think the new ability, combined with the faster cham
skin would make you invisible to the naked eye. The mutation cancels out
the translucency of the adaptation.
## Changelog
🆑
add: Adds a new changeling ability, "Darkness Adaptation". Making you
more translucent, especially in darkness and allowing you to see
slightly better in the dark
balance: The changeling power "Chameleon Skin" has been buffed, Reduces
the cost to 1 and sped up the time it takes to turn invisible
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Rebalances and adds more ambush-style cling abilities, buffs chameleon skin and adds a new ability! "Darkness Adaptation"
---------
Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* [NO GBP] adds extra explainer text on updated BB convert objective (#81734)
## About The Pull Request
something something the universe of all possible cases
fixes#81731
## Why It's Good For The Game
cyborg bait not good. also follow your laws first robot!
## Changelog
* [NO GBP] adds extra explainer text on updated BB convert objective
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* Temporary bees animate on death and no longer produce corpses (#81714)
## About The Pull Request
I requested this as a change on the Hive Head PR but Ghommie didn't
notice and merged it anyway so I had to do it myself instead of forcing
the underclass to do it for me 😔

Anyway now bees created by the "beesplosion" reaction and by the Hive
Head changeling power no longer produce corpses, and have a death
animation.
## Why It's Good For The Game
It looks better.
It was weird that the bees would create corpses if killed but not if
they expired.
## Changelog
🆑
image: adds a visual effect for hive head bees despawning
/🆑
* Temporary bees animate on death and no longer produce corpses
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Adds New Changeling Ability: Hive Head (#81502)
## About The Pull Request
This PR adds a new changeling ability to the game, entitled 'Hive Head'.
A basic description is shown below, as seen in-game.

Hive Head is a two-point ability for Changeling which encases your head
in a bee hive. The bee hive is rather unremarkable as a defensive
utility, boasting extremely poor resistances to all damage types except
for BIO and providing flash resistance (your eyes are being covered).
Along with this, since Hive Head covers your head, you cannot use it
conjunction with chitinous armor, since it requires your head slot be
open. While this all sounds rather bad, the major reason to use this
ability is upon activation, you gain another ability which costs no
chemicals and operates on a cooldown: Release Bees.
Release Bees summons 6 bees on your location which will attack anything
that isn't you or directly allied to you for 20 seconds, which
afterwards the bees will vanish. By default, these bees are standard and
do not inject any sort of chemicals into your victims, so while they can
provide a good distraction and do some damage, they aren't really that
useful. The true value of this ability comes with the fact that the Hive
Head is also a reagent container, which stores up to 50 units of
whatever you want to put inside. While you can't get what you put into
the Hive Head out in any way, summoned bees will pull from the reagents
inside your Hive Head to inject into targets, increasing the amount of
!!FUN!! you can have with them drastically. For example, if you go into
the bar and dump a bunch of different drinks into the Hive Head, your
summoned bees will have equal chance to select any of those drinks to be
what they inject into people. Reagents inside the Hive Head will stay
there until it is dispelled, which upon re-using the ability, the Hive
Head will be empty.
Hive Head also has the additional utility that Release Bees works at any
time so long as you're still wearing it. However, only 1 bee will be
summoned whilst you are in hard crit or dead. Release Bees has a
cooldown of 30 seconds.
Additionally, if mixing chemical cocktails to have a swarm of bees
forcefully inject into people isn't to your liking, Hive Head provides
an alternate mode of use if a legion core is used on it. Using a legion
core on the Hive Head will cause it to mutate, changing its appearance
and functionality. The Legion Hive Head, as opposed to releasing 6 bees,
releases 4 legion skulls to fight for you instead. These legion skulls
do more damage than bees, but can be dispelled by any attack and only
last for 10 seconds as opposed to 20, but this also comes with the added
benefit of a shorter cooldown time of 15 seconds as opposed to 30. The
major benefit of this version of the ability is that if the skulls down
a humanoid target, the skulls will turn that person into an allied
legion, who will use their abilities to support you with healing and
additional skull summoning should they run into a target. Just as
disabling Hive Head normally removes chemicals, Hive Head will return to
normal upon deactivating and reactivating the ability, requiring another
legion core be used to access this version again.

Additionally, this PR adds the sound of a swarm of bees for when the
ability gets activated, new sprites to facilitate implementing this
ability, and some changes to how the armor subset of changeling
abilities work internally in order to add ones that only apply a helmet
or armor as opposed to both. This PR also fixes a bug with bees having
an incorrect sprite offset (they look like they're one tile over to the
left currently).
As always, the numbers and mechanics can be changed if need be, and I'm
open to hearing others' thoughts about this.
## Why It's Good For The Game
Changeling hasn't received a new ability in a very long time, only
reworks to their existing kit, so there haven't been any new toys to
shake up the experience with. Hive Head is something new that fits
Changeling's preference for one-on-one combat (the bees pretty much
always aggro on the same target) while also playing into that weird
alien shapeshifter vibe. Along with this, being able to change what
chemicals the bees inject into people opens the door to creative ways of
using it alongside the rest of the sandbox, so it'll be interesting to
see what players come up with. The additional legion mode is just a
cherry on top, allowing people to play around with the cool legion skull
mechanics in an antagonistic setting.
## Changelog
🆑
add: New Changeling Ability: Hive Head
fix: Fixed bees having an improper sprite offset
/🆑
* Adds New Changeling Ability: Hive Head
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* 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>
* updates bb convert objective text (#81658)
## About The Pull Request
adds some explainer text to BB conversion.
## Why It's Good For The Game
I've run into several people recently having issues with this - not
knowing who they can convert or what to do if they lose/break their
flash without successfully converting. Adds a little bit of text to
hopefully help.
## Changelog
🆑
qol: Blood Brother convert objective now explains who you can convert
and what to do if you mess up with your flash.
/🆑
* updates bb convert objective text
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* Reaction & holder tweaks (#81545)
## About The Pull Request
- Fixes#81537. For competing reactions where reaction B consumes the
results formed from reaction A `total_step_added` yields values higher
than the actual volume of products formed causing the reaction to end
early leading to less volume of product formed as explained in the
comment
- Removes `update_total()` from instant reactions as it already does
that for us making it a little faster
- merges `remove_all_direct()` with `remove_all()` to reduce code as
their functionalities are very similar
## Changelog
🆑
fix: multiple reactions occuring in the same holder like mixing drinks
will yield correct reagent result volumes
code: Removes `update_total()` from instant reactions improving
performance slightly
code: merges `remove_all_direct()` with `remove_all()` to reduce code
size
/🆑
* Reaction & holder tweaks
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Traitor Traitor Panel Fixes (#81521)
## About The Pull Request
- Fixes#81514
- Setting TC checked for `value && isnum(value)` which was dumb when
`value` could be `0`.
- Removing Traitor auto-takes uplink from the mob
- Removing Uplink now removes just the uplink code from memory, rather
than all memories
## Changelog
🆑 Melbert
admin: You can now set someone's TC to 0
admin: Removing Traitor from automatically removes the uplink from them
admin: Removing Uplink from someone no longer wipes ALL of their
memories
/🆑
* Traitor Traitor Panel Fixes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Valentines Day Rework (Better Late Than Never) (#81499)
## About The Pull Request
Big changes:
- Participation is Valentines day requires consent, as consent is
important.
- When the event triggers, all valid players are automatically signed up
to get a random date. However if you're uninterested, you can opt out of
getting a date.
- This uses the same system as ghost role polling, so it's a
non-obstrusive screen alert + chat box entry.
- AIs are now given a zeroth law to protect their date.
- This does not override existing zeroth laws (for malf ais).
- This zeroth is law is worded in a way such that they are not
effectively malf AIs. Their other laws still apply, but not for
situations pertaining to their date.
- Cyborgs are desynced from AIs and are given similar zeroth laws to
protect their date.

Small changes:
- Valentines cards are now paper. Meaning you can write on them, stamp
them, or yes, burn them.
- Third wheeling is more codified than before. Third wheels get their
own antag datum type.
- The antag panel listing in roundend takes up significantly less room
for each date. Additionally, dates are now paired up with each other.
- Adds implementations for getting pronouns from mind datums.

## Why It's Good For The Game
It's 2024 and our Valentines day is sooo 2012.
I'm a big fan of Valentines Day, personally - it gives me the
opportunity to mess around with another player that I probably would not
otherwise mess around with, getting into shenanigans I would not
otherwise.
But as the years have gone by it's gotten pretty lackluster. Some people
like it as much as I do, but others ditch it entirely and ignore the
objectives.
And if you get paired with someone ignoring it, well, now you're out of
luck!
This is something I'm aiming to rectify by making it opt-in when it
triggers rather than forced. All the people participating will be
guaranteed to get someone who cares about the event as much, which makes
it more fun.
As for the silicon changes, there's been lots of confusion around
silicons and their dates, so I thought I'd fix it here as well.
Also, better late than never?
## Changelog
🆑 Melbert
add: Valentines Day now polls all players for candidates when it
triggers rather than forcing all players to be a Valentine. Consent is
important.
add: Valentine silicons now gain special laws pertaining to their date.
qol: Valentines Cards are now paper, so you can write on them, stamp
them, or burn them.
qol: Valentine's roundend report no longer takes up a massive amount of
space and also no longer sound so, so weird.
/🆑
* Valentines Day Rework (Better Late Than Never)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds a new mobility option for wizards, the Telegram Scepter, not inspired by any relic at all (#81413)
## About The Pull Request
This PR adds a new mobility option for wizards, the Telegram Scepter, a
magical rod that teleports you anywhere you point it.
But be warned, its method of teleportation is very volatile, putting you
in a state of flux. While the scepter itself has no cooldown, using it
while in flux will damage you severely and purge some of your chems. In
fact, any form of magical teleportation will damage you while in flux.
https://github.com/tgstation/tgstation/assets/51863163/b1008f6c-d724-4b7d-8e47-b70e2e770183
Non-wizards who attempt to utilize the wand will find themselves in a
state of permanent flux, meaning any and all teleports are met with
damage. It's also less precise.
Also adds an admin-only version which has infinite range and applies no
flux.
Any semblances to any other game is purely coincidental, I assure you.
Misc. Details:
- I added the ability to pass sound datums to playsound, so it doesn't
override custom sound settings you may want.
- I moved the teleport signals out of the pure-sounding proc `check
teleport`.
## Why It's Good For The Game
I've always thought wizard mobility has been rather lacking, in that you
generally only pick Jaunt.

So when someone threw an offhanded suggestion to make a certain item
from a certain game in discord, my wheel started to turn.
And here we are.
- Teleporting anywhere you can see is very powerful (especially in
conjunction with the Scrying Orb) so this makes it a very high potency
item a wizard can pick up, almost like a targeted blink.
- It is, however, offset by a few things: Namely, the flux mechanic
putting a soft cooldown on teleporting (lest you kill yourself), and it
being an item, meaning you may have to pick up Instant Summons for added
safety.
Overall, I thought it to be a very flavorful mobility option for
wizards. Maybe it will shake up spell selection. Who knows?
## Changelog
🆑 Melbert
add: Wizards have a new mobility option available, the Telegram Scepter.
The ability to travel anywhere you can see at the point of a wand... but
at a price?
/🆑
* Adds a new mobility option for wizards, the Telegram Scepter, not inspired by any relic at all
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* 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
🆑
balance: Nightmare's Light Eater takes less time in jaunt to gain a
critical strike, being reduced to 7 seconds from 15 seconds.
/🆑
* Reduces Time For Nightmare To Gain a Critical Strike
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* 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. -->
🆑
fix: heretics no longer lose their spells when returning from a
shapeshift
/🆑
<!-- 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. -->
* Partial fix of heretic shapechanges
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* 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
🆑
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
/🆑
* Fix Knit Flesh
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* 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
🆑
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.
/🆑
* Makes brainwashing immune to mindshield implant, you can only take it off through surgery now.
---------
Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com>
* Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182)
[Converts all manual extraction of rbg with rgb2num. It's just
better](ae798eabd5)
[Yanks out old HSV management, replaces it with list
stuff](4997e86051)
There's this old lummy era clunky code that passed HSV as text
We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc
So let's just do that.
Also, cleans up spraytan code (and ethereal lighting)
Code better
* Refactors fire overlays once again to make it not get stuck so often (#81367)
Maybe finally fixes#77701
A big reason why this kept happening is because fire uses standing
overlays. But fire isn't managed by mobs anymore. Meaning in some
situations, fire can cease to exist but the overlay can still be on the
mob. So it gets stuck.
So like, why use standing overlays anymore? We can just hook
`update_overlays` signal.
Isn't that neat.
🆑 Melbert
refactor: Fire effects get added to mobs in a different way now. Maybe
it will get stuck less. Report any oddities.
/🆑
* 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
* There we go?
* Bruh moment
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes complex lights not handling moving well, renames lighting defines (#81423)
## About The Pull Request
[Fixes static lights not
moving](ffef43c05a)
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](de73a63bd4)
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
🆑
fix: Fixes fancy lights not updating their source location when picked
up and moved
/🆑
* Oh well
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* [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
🆑
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.
/🆑
* [NO GBP] Heretic path of moon, post launch patch (no jeature jeeze this time)
---------
Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com>
* Adds an IS_CHANGELING helper (#81228)
## About The Pull Request
What it says on the tin. I also replaced checks with it everywhere I
found appropriate, hopefully without accidentally breaking anything.
## Why It's Good For The Game
We have a helper for most other antags, and it makes code a lot cleaner
and easier to read. I'm surprised we didn't have this one already.
## Changelog
🆑
code: added an IS_CHANGELING() helper and used it where applicable
/🆑
* Adds an IS_CHANGELING helper
* skyrat stuff
---------
Co-authored-by: A miscellaneous Fern <80640114+FernandoJ8@users.noreply.github.com>
Co-authored-by: jjpark-kb <mccorvey.norman@gmail.com>
* 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
🆑 Melbert
add: Freedom Implants and Biodegrade can you free you of the shackles of
knotted shoes.
/🆑
* Freedom implant and Biodegrade works on knotted shoes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds a signal to buying items from the uplink (& fixes TC misinfo) (#81372)
## About The Pull Request
Adds a signal when someone buys an item from the uplink and removes
single-letter vars from the ``spawn_item`` proc, and adds/standardizes
add/removing of telecrystals from uplinks (and admin setting how much TC
they have) to ensure the UI always has the right amount of telecrystals
displayed in it.
## Why It's Good For The Game
There are reasons why someone would want to hook up to a traitor's
uplink and listen to items they purchase to do any special effect
on-purchase, so this adds support to do anything in the future with it.
Also tells players how much TC they actually have without forcing them
to close/reopen the UI every time they insert some TC in it by hand.
## Changelog
🆑
fix: Uplinks now update their UI when you add telecrystals in them, so
you don't need to close and reopen it.
/🆑
* Adds a signal to buying items from the uplink (& fixes TC misinfo)
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Space dragon no longer turns the entire roundend report bold (#81370)
## About The Pull Request
Fixes the entire roundend report turning bold if there was a space
dragon with carp.
## Why It's Good For The Game
yet another roundend report issue fixed.
## Changelog
🆑
fix: Space Dragon's carp allies no longer turn the entire roundend
report into bold.
/🆑
* Space dragon no longer turns the entire roundend report bold
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Reviving stasis now puts you in stasis (#81339)
## About The Pull Request
In the title, Changeling's "Revival Stasis" ability with the description
"We fall into a stasis", now puts you in stasis
## Why It's Good For The Game
I just found out that this doesn't actually put you in stasis and it's
kinda fucked up, it's in the name it's in the description, why is it not
the actual case?
It would be nice if Changelings can use this ability to actually fake
death from critical condition without risking a death gasp when they die
for real just because you got oxygen damage while in your "stasis", thus
going against the defibrillator explosion ability.
## Changelog
🆑
add: Changeling's reviving stasis ability now puts you in stasis.
/🆑
* Reviving stasis now puts you in stasis
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Minor update to admin secrets panel (free antags for everyone) (#81292)
## About The Pull Request
Remakes a button in admin secrets panel from everyone is traitor to
everyone is admin chosen antag.
## Why It's Good For The Game
Slightly better buttons for admin to push
## Changelog
🆑
admin: remade everyone is traitor into everyone is antag in secrets
panel
/🆑
* Minor update to admin secrets panel (free antags for everyone)
---------
Co-authored-by: Holoo <38228316+Holoo-1@users.noreply.github.com>
* Fixes surgeries runtiming constantly when having the surgery initator open, fixes some surgeries missing sounds (#81307)
## About The Pull Request
Fixes#79318
- See the issue for more information. I fixed the runtimes as expected,
and then removed `SURGERY_REQUIRE_LIMB` from some surgeries which don't
actually require a limb, such as implant removal, dissection, and living
revival. I could've easily missed some, and as a result some surgeries
are lost to the void and unselectable, but from what I could tell in
testing it seems... fine.
- Adds `SHOULD_CALL_PARENT` to surgery `can_start`. Cleans up some
surgery `can_start` overrides.
- Adds missing sounds to puncture repair surgery.
## Changelog
🆑 Melbert
fix: Fixed Puncture Repair surgery not having surgical sounds
fix: Fixed Surgery Initiator potentially showing invalid surgeries
/🆑
* Fixes surgeries runtiming constantly when having the surgery initator open, fixes some surgeries missing sounds
* Fixeed
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Restore non-functional ash mark ability (#81320)
## About The Pull Request
Apparently, ash mark is supposed to replenish mansus grasp cooldown by
75% when triggered, but this is neither reflected by the research
description, nor functional ingame. This edit makes it work, and adds
the effect to the description.
Additionally, that same block of code was present in moon mark research
also. I removed that because I assume it is intended to be an ash-only
feature, and moon only had it because of copy-pasting.
And since we're at it, I also reworded the mark description to be more
clear about the mark only transferring to a single heathen at a time.
## Why It's Good For The Game
I don't think we should have code which does not work. The options are
to either remove it, or make it work, and the latter is more fun.
## Changelog
🆑
fix: ash mark now properly lowers the cooldown of mansus grasp when
triggered
/🆑
* Restore non-functional ash mark ability
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* Regenerative Materia Blobs No Longer Drug Non-Carbons (#81318)
## About The Pull Request
Fixes#79841
This PR fixes the bug where cyborgs could get high from being attacked
by regenerative materia blobs by adding a requirement that the target is
a carbon before applying the drug effect to them.
## Why It's Good For The Game
This isn't believed to be intentional (its marked as a bug) and applying
the drugginess effect to non-carbons has shown in the past to cause some
issues (ex. cyborgs which have the high effect for much much longer than
intended were it applied to a carbon)
## Changelog
🆑
fix: Regenerative Materia blobs can no longer drug non-carbons.
/🆑
* Regenerative Materia Blobs No Longer Drug Non-Carbons
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Science Xenos no longer turn the roundend report all bold (#81311)
## About The Pull Request
Fixes the 2% xeno's roundend report from turning the rest of the report
into bold letters.
## Why It's Good For The Game
look it's not all bold anymore

## Changelog
🆑
fix: Science Xenos no longer turn the entire roundend report into bold
letters.
/🆑
* Science Xenos no longer turn the roundend report all bold
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Gives paradox clone their own ghost polling icon (#81229)
## About The Pull Request
Currently all ghost roles, when polling for players, shows a syndicate
poster. This is lame as hell, especially since most of the roles aren't
even Syndicate aligned.
This adds support to have your own icons for it, and adds one for the
Paradox clone since I already had an idea for it.
## Why It's Good For The Game
Paradox clones are not syndicate aligned and it does not make sense to
portray that to players, this looks much better, and hopefully soon
other antags will follow suite.

## Changelog
🆑
add: Paradox clones now have a bluespace stream instead of a syndicate
poster as their ghost poll icon.
/🆑
* Gives paradox clone their own ghost polling icon
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixes some irregularities in heretic research tree (#81302)
## About The Pull Request
Once again, I fix a few errors in the heretic research tree:
- the lunar path no longer unlocks its sidepaths and reroll one research
before every other path, and this side knowledge in turn no longer
unlocks the earlier knowledge of the moon path
- blood siphon no longer unlocks apetra vulnera in addition to its
proper main path nodes
- ashen ritual now unlocks the nightwatcher's rebirth, instead of
unlocking the lonely ritual
- lunar blade upgrade is no longer cheaper than those of the other paths
- burglar's finesse now costs 1 point like other knowledge of its level
## Why It's Good For The Game
Heretic tree should not be irregular for no reason, I think. If any of
those quirks were intentional, please let me know.
## Changelog
🆑
fix: smoothed out a few asymmetries in the heretic research tree
/🆑
* Fixes some irregularities in heretic research tree
---------
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
* You can no longer convert objective targets to your blood brother team (#81305)
## About The Pull Request
You can no longer convert your objective targets to your blood brother
team.
This means the usual "commit violence against this user" objectives, but
also includes protect objectives and should (theoretically) prevent you
from converting targets from other conflicting objectives such as
mutiny/sacrifice/obsession targets.
## Why It's Good For The Game
This kind of fucks up the whole antagonist on a conceptual level. Pick
ANYONE else please!
## Changelog
🆑 Rhials
fix: You can no longer convert assassination targets to your blood
brother team.
/🆑
* You can no longer convert objective targets to your blood brother team
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* [FIX] Removes accidental? RR from contractor GBJ (#81286)
## About The Pull Request
fixes#80963
previously if the place you got sent from was uninhabitable you'd just
be left for dead. if you were already dead, you might never find out
why.
Now, even if the location you got sent from is fucked, you'll just get
zapped with the heart attack gun and blasted off there anyway.
## Why It's Good For The Game
RRing people to off-map Z-levels with no way of escape is not intended
for contractor afaik.
## Changelog
🆑
fix: fixes contractor abduction RRing people in the offmap hideout
without any feedback. You might not like how it turns out, but your body
will get back to the station now.
/🆑
* [FIX] Removes accidental? RR from contractor GBJ
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* Lowers contractor baton cost. Baton can only be bought by roundstart traitors, while midroll/latejoin traitors cannot buy a baton (They must buy the contractor kit for one). (#81204)
## About The Pull Request
Contractor baton 12 -> 7 TC
Mid/latejoin traitors can no longer buy a baton (They must buy the
contractor kit)
Fix midroll/latejoin traitors having access to roundstart traitor shop.
## Why It's Good For The Game


## Changelog
🆑
balance: Contractor baton costs 7 TC (down from 12 TC)
balance: Midroll/Latejoin traitors can no longer buy the baton, they
must buy the whole kit
fix: Midroll/Latejoin traitors no longer have access to roundstart
traitor exclusive items
/🆑
* Lowers contractor baton cost. Baton can only be bought by roundstart traitors, while midroll/latejoin traitors cannot buy a baton (They must buy the contractor kit for one).
---------
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
* Fixes Cult voting for a leader (#81169)
## About The Pull Request
With the recent changes to polling, it seems like it didn't properly
poll cultists, I fixed that and fixed other issues with it (such as it
telling players that they are signing up to BE a cult leader, when they
arent).
Also fixed the button to put yourself forward as cult leader, it
properly removes and gives itself when necessary.
## Why It's Good For The Game
Cult button works again how cool is that
Closes https://github.com/tgstation/tgstation/issues/80620
## Changelog
🆑
fix: Cultists can now vote for a Cult leader again.
/🆑
* Fixes Cult voting for a leader
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Cult pylons won't convert floorless floors (#81171)
## About The Pull Request
Cult pylons read from our existing list of "turfs which don't count as
floor despite being open turfs" instead of having its own one, which did
not include openspace turfs.
This prevents it from "papering over" things like stairwells and sealing
people inside their base.

## Why It's Good For The Game
It's not supposed to do that, and fixing it this way is futureproof to a
greater degree.
## Changelog
🆑
fix: Cult pylons will no longer cover up "open space" (or water) with
cult floors
/🆑
* Cult pylons won't convert floorless floors
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Kidnapping traitor objective properly returns victim (#81081)
## About The Pull Request
Fixes#81022
The original idea was for kidnapping victims to be returned to the same
area they were kidnapped from (dropoff_area), but this was always a
typepath to an area and not a datum reference (and was set to null
immediately after kidnapping with ungenerate_objective()) and it always
fell back to the get_safe_random_station_turf() method. This worked fine
until #80644 attempted to optimize it, causing a runtime and returning
early.
This removes the code to return them to the same area and instead just
uses get_safe_random_station_turf(), runtime-free.
## Why It's Good For The Game
Kidnapping victims now actually return to the station after 3 minutes
with their stuff. I think returning to a random area is cooler than the
same area they were sent from anyways, I can imagine a traitor just
waiting it out if they wanted them dead and unable to snitch.
## Changelog
🆑
fix: Kidnapping traitor objective now properly returns the victim to the
station with their items
/🆑
* Kidnapping traitor objective properly returns victim
---------
Co-authored-by: Isratosh <Isratosh@hotmail.com>
* Fixes contractor support unit (#81054)
## About The Pull Request
This does what I suggested on
https://github.com/tgstation/tgstation/pull/79884 and some more fixes
that I found while messing around.
This was a big oversight when I was adding contractor originally,
uplinks were reworked entirely and I didn't take it into account
properly, this hopefully will fix those.
I also gave contractor support units their own flavor and removed their
uplink section since they do not get one, so they aren't an "MI13 agent"
or anything, they work solely for this one guy.
There were reports that people being contracted didn't send them back
with their equipment but I haven't been able to replicate that bug and I
do not see an issue report on it so I am going to assume that for now it
is fine.
## Why It's Good For The Game
Closes https://github.com/tgstation/tgstation/issues/79883
Contractor support units now properly work as intended and don't feel
like a buggy mess.
## Changelog
🆑
fix: Contractor support units now don't have flavortext telling them
they work for someone else but their agent.
fix: Contractor support units now comes in an antag spawner (like
syndicate monkey, nukie borgs/reinforcements).
fix: Syndicate monkeys now get their monkey antag datum.
/🆑
* Fixes contractor support unit
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* split area.contained_turfs up by zlevel, make init 10 seconds faster (#80941)
## About The Pull Request
Situation: areas have a list of all turfs in their area.
Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs
that has to be traversed for every turf we need to remove from it. This
can take multiple byond ticks just to preform this action for a single
space rune
Solution: split the list by zlevel, and only search the right zlevel
list when removing turfs from areas.
replaces `area.get_contained_turfs()` with a few new procs:
* `get_highest_zlevel()` - returns the highest zlevel the area contains
turfs in. useful for use with `get_turfs_by_zlevel`
* `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in
a given zlevel. Useful for code that only cares about a specific zlevel
or changes behavior based on zlevel like lighting init.
* `get_turfs_from_all_zlevels()` - the replacement for
`get_contained_turfs()`, renamed as such so anybody copying/cargo
culting code gets a hint that a zlevel specific version might exist.
Still used in for loops that type checked so byond would do that all at
once
* `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists
but only for non-empty zlevels. very useful for for loops.
The area contents unit test has been rewritten to ensure any improper
data triggers failures or runtimes by not having it use the helpers
above (some of which ensure a list is always returned) and access the
lists directly.
* split area.contained_turfs up by zlevel, make init 10 seconds faster
* eeyes
* Update area_spawn_subsystem.dm
* Unshits turf contain code slightly (#81023)
Literally just implements my reviews from #80941
I am frankly a smidge pissed that the pr was merged without them being
handled. No code is worth merging past known issues, and if the author
is just gonna dip then that's life.
I don't like privileging mso on stuff like this, especially because
frankly I'm kinda mad at him rn but also because when a pr is made the
onus on finishing it falls to the person who made it.
Should not need to clean up after someone as a maintainer, and shouldn't
normalize doing it. I'm not like mad at zypher directly mind he offered
to do this too, just the idea he was espousing here.
---------
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* [NO GBP] Fixes lunatics not having an objective and occasionally not getting their amulettes (#80981)
## About The Pull Request
Lunatics now have an objective and it properly displays.
Lunatics now get a moonlight amulette on the ground if their hand are
full.
## Why It's Good For The Game
Lunatics had no idea who their master was except for their flavor text.
This made it kinda confusing. This was worsened when they didnt have the
identifying amulette.
## Changelog
🆑
fix: Lunatics spawned from moon ascension now actually have an objective
to assist their ringleader
fix: Lunatics now get a moonlight amulette on the ground if they have
full hands
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* [NO GBP] Fixes lunatics not having an objective and occasionally not getting their amulettes
---------
Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>