* Basic mobs drop their butcher results when gibbed (#78091)
## About The Pull Request
Title.
## Why It's Good For The Game
Fixes#78089
Simple mobs drop their meats when gibbed but basic mobs don't which is
weird and inconsistent.
## Changelog
🆑
fix: fixed basic mobs not dropping their butcher results when gibbed
/🆑
* Basic mobs drop their butcher results when gibbed
---------
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
* Move some job related achievements into the job achievement category (#78092)
## About The Pull Request
Read title, this only affects the UI and not the database as far as I am
aware
## Why It's Good For The Game
The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
## Changelog
🆑 distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/🆑
* Move some job related achievements into the job achievement category
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* You can no longer create non-synthesizable chemicals with bees. (#78072)
## About The Pull Request
You can no longer create non-synthesizable chemicals with bees.
## Why It's Good For The Game
Fixes the ability to mass produce reagents that aren't supposed to be
directly synthesized.
## Changelog
🆑
fix: You can no longer create non-synthesizable chemicals with bees.
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* You can no longer create non-synthesizable chemicals with bees.
---------
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* you can now examine screen objects properly (#78046)
## About The Pull Request
runtimed because they are in nullspace
## Why It's Good For The Game
e
## Changelog
🆑
fix: you can now examine screen objects properly
/🆑
* you can now examine screen objects properly
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Culls the Simple Animal Boss Framework (#78031)
## About The Pull Request
The only thing that ever actually needed to use this (Paper Wizards)
were refactored in #76688 (46e819297a).
The AI is primitive compared to modern AI frameworks, and I'm pretty
sure anything that may have been needed to be re-used was recoded in the
paper wizard framework (or at least serves as a good template for coding
"bosses").
## Why It's Good For The Game
Yeeting deprecated formats is so poggers champion.
## Changelog
Nothing that players could care about.
* Culls the Simple Animal Boss Framework
---------
Co-authored-by: san7890 <the@san7890.com>
* megafauna no longer gib/dust you (#77731)
## About The Pull Request
megafauna now gut you instead of gibbing or dusting
colossus bolts still dust to prevent bodychair cheese
## Why It's Good For The Game
shaft miners are already hard to recover(or impossible in the case of
dusting), having to go through lavaland and likely near the megafauna
itself. This should still be punishing enough for losing to a megafauna
as it removes their heart, lungs and liver from their body while still
leaving it intact, just easier to recover.
## Changelog
🆑
balance: megafauna will now gut instead of dusting or gibbing
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* megafauna no longer gib/dust you
---------
Co-authored-by: 1393F <59183821+1393F@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Morgue dead body placer guarantees 1 human to dissect if non-human cadaver config is enabled. Morgues spawn with 1 additional body (except on Birdboat). (#77816)
## About The Pull Request
- Morgue guarantees 1 human body to dissect even if
`morgue_cadaver_disable_nonhumans` config flag is set.
- All maps bar birdboat will now spawn with one additional morgue
cadaver.
- Did some minor code cleanup around the dead body placer, removes an
`in world` loop, etc.
## Why It's Good For The Game
- Morgue guarantees 1 human body to dissect even if
`morgue_cadaver_disable_nonhumans` config flag is set.
- This is mostly a downstream server issue but if your server enables
this config and has additional species enabled, the odds of you getting
a human to dissect tends to be very low.
- Why is this a problem? Well, a human is necessary to dissect to get
medical's tech.
- Why not get genetics to get you a hu-monkey? This is an option, but if
A. there's no geneticists or B. they are refusing to cooperate then you
tend to be SOL unless you want to wait for a greytide to come in after
drinking themselves to death. Given we have a role now dedicated to
performing dissections, having no job to do for the first twenty or so
minutes due to a lack of a human body is kind of sad.
- If this is an intended facet, I will revert this change and leave it
to the code improvements / bodycount uptick.
- All maps bar birdboat will now spawn with one additional morgue
cadaver.
- This was actually intended on some maps but has been stealthily
removed in some cases? Icebox and Delta used to have two dead body
spawners to place 4 cadavers. So I decided to bring this back.
- For the most part, this just gives higher population maps more bodies
to mess around with. Higher pop means more people means more people need
bodies, either for antagging, cooking, body replacements, or coron-ing.
- Also like, sometimes messing around with dead bodies are fun, and it's
nice to not have to worry that you're running out of them for actual
medical use.
- I can also make this scale on roundstart pop if we really care. But
that seems overkill. Especially as these maps had their body counts
higher for a while and were fine.
## Changelog
🆑 Melbert
balance: If your server has non-human morgue cadavers enabled, you will
be guaranteed one human cadaver no matter what.
balance: All maps (with the exception of Birdboat) now have an
additional morgue cadaver roundstart.
/🆑
* Morgue dead body placer guarantees 1 human to dissect if non-human cadaver config is enabled. Morgues spawn with 1 additional body (except on Birdboat).
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* [NO GBP] Star Gazer Fixes (#78003)
## About The Pull Request
Star Gazer can be buckled which stops the Star Gazer from being able to
move which isn't supposed to happen. Also removes Star Gazer alpha
pixels which where created because it used to have a limited amount of
health, but now it isn't needed and seems like it will only be in the
way.
## Why It's Good For The Game
Improvements.
## Changelog
🆑
fix: Fixes Star Gazer getting buckled
image: Removes Star Gazer alpha pixels
/🆑
* [NO GBP] Star Gazer Fixes
---------
Co-authored-by: Comxy <tijntensen@gmail.com>
* Initial draft, most of the stuff is implemented, not really tested or cleaned up yet
* Refactors the handling into a datum-based approach, for more abstraction
* Added migration, properly hooked up the verb to the new system
* Removed some more dead code
* Fixes some missing stuff from the .dme because VSC is stupid sometimes with merge conflicts
* Fixes the schema
* Wow I was really getting tired huh
* A fool, I say, a fool!
* I hate lists of lists I hate lists of lists I hate lists of lists
* I somehow missed this one twice. TWICE!
* This won't actually work if it's defaulting to true, lmao
* Makes it not log stuff if the adding or removing of players is unsuccessful
* Adds a way to update all of the unlock_contents for preferences datums once the donator list is initialized
* Runs update_prefs_unlock_content on mob Login() (hopefully this helps)
* Fixes the bajillion of runtimes caused by my dumb ass trying to make some client calls on ckeys
* Man I was really tired that day
* I had this ready for three hours and forgot to push it
* Progress bars & cleaning particles will centre on the tile occupied by large icon objects (#77940)
## About The Pull Request
Do_after bars always draw based on the top-left corner of the targetted
atom, for atoms with sprites that are larger than 32x32 this gives them
a weird offset instead of being centred, which bugs me.
I have tried my best to figure out a way to reverse this which does not
interfere with atoms which use pixel_x/pixel_y to visually appear to be
on a different tile.
## Why It's Good For The Game
Before:

he hates how you missed him completely 😦
After:

now you're cleaning his feet 🙂
## Changelog
🆑
image: progress bars and cleaning particles are now centered on the tile
occupied by the target, if it is a big sprite
/🆑
* Progress bars & cleaning particles will centre on the tile occupied by large icon objects
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* [no gbp] Removes a source of self-ling (#77941)
## About The Pull Request
The protection from allowing a possessing mob to lay changeling eggs of
the dead headslug corpses present in the meateor ruin was a
post-creation variable edit rather than an immutable property of the
typepath, so if for instance you had some kind of item of clothing which
allows you to turn yourself into an instance of a mob via its typepath
you could use them to turn into a headslug, bite a monkeyman, commit
suicide, and then become a changeling.
An unintended consequene of two things added by the same developer?
Starting to stop looking like a coincidence, someone should investigate
this guy...
## Why It's Good For The Game
This is undesirable, which is exactly why nobody reported it even though
they knew they could do it.
* [no gbp] Removes a source of self-ling
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Adds a syndicate AI card for nuke ops (#76546)
## About The Pull Request
Adds a syndicate AI card for nuke ops. Costs 12 TC, can be refunded.
Activating it in-hand opens up a ghost poll like normal reinforcements.
## Why It's Good For The Game
> Adds a syndicate AI card for nuke ops. Costs 12 TC, can be refunded.
Activating it in-hand opens up a ghost poll.
It'll be fun to have a lil modsuit pal with you who can maybe help if
you get stunned, in critical condition, or else. With an injector module
they can even save your life, if it's loaded with medicine! Unless they
can't actually inject, but oh well, out of scope.
12 TC seems fair to me, not so expensive that nobody's going to bother
with something that's not really useful in the vast majority of
circumstances, but not so cheap that everyone will get one.
There are also doubtless a huge amount of gimmicks that savvy nukies can
get up to, having a pocket AI.
**Since this needs two players to be fully tested, I wasn't able to do
so. Please testmerge this before merging so we can confirm it works
ingame!**
## Changelog
🆑
add: Adds a syndicate AI card for nuke ops. Costs 12 TC, can be
refunded. Activating it in-hand opens up a ghost poll like normal
reinforcements. Base interaction range for syndicate AIs is one, which
means they can handle electronics only in proximity.
add: Adds a syndicate AI interaction range upgrade for nuke ops, costs 4
TC and can be applied onto a syndicate AI (inside any container) to
increase its interaction range by two per. (Three purchases are
recommended for seven tiles of range!)
/🆑
* Adds a syndicate AI card for nuke ops
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
* Fixes greyscale colors not updating when changing their colors via VV, and fixes some issues with accessories (#77806)
## About The Pull Request
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23214
This fixes a few bugs and cleans up code a bit:
1) Greyscale colors that were changed via the VV modify greyscale menu
will now update the mob's worn clothing accordingly. It wasn't doing
this before. Accessories in particular needed a bit of extra work to
update in this way because it wasn't coded with this case in mind.
2) Accessories will call `equipped()` and `dropped()` when they get
added/removed. This will fix issues like item flags being incorrectly
set, action bars not being added, etc.
3) Accessories will now be returned by `get_all_gear()`. This will
probably fix a few issues I'm not aware of.
## Why It's Good For The Game
<details><summary>Works</summary>

</details>
<details><summary>get_all_gear()</summary>

</details>
<details><summary>get_equipped_items()</summary>

</details>
<details><summary>item_flags get set now, hopefully preventing future
issues related to that</summary>

</details>
## Changelog
🆑
fix: greyscale colors will now update on the mob when modifying them via
the VV menu
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes greyscale colors not updating when changing their colors via VV, and fixes some issues with accessories
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Gives IceBox legions their own, separate corpse-drops. (#76898)
## About The Pull Request
Noticed one of these snowmen drop an ash walker earlier today, and
thought I would have that fixed for consistency's sake, as there's no
ash walkers on icemoon. After I done that, I felt weird for just cutting
out a thing like that, so figured a replacement: eskimos. So yeah.
## Why It's Good For The Game
Consistency: There's no more ash walker corpses in legions on Icemoon,
as there's no, and never was, any living ones.
Fluff: Eskimos that replace them make much more sense.
## Changelog
🆑
add: Gave snow legions a separate corpse-drop pool: ash walkers
excluded, but eskimos included.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Gives IceBox legions their own, separate corpse-drops.
---------
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Minor borg fixes (#77857)
## About The Pull Request
Fix for few minor bugs that were created by the borg combat rework
## Why It's Good For The Game
Bugs bad.
Also borgs getting permastunned after doing *collapse is not something I
want to see in this game.
## Changelog
🆑
fix: Borgs no longer get permastunned by emotes
fix: Borg hud should not fuck up in few situations
/🆑
* Minor borg fixes
---------
Co-authored-by: Kubisopplay <38842052+Kubisopplay@users.noreply.github.com>
* [no gbp] Watchers don't glow while they are dead (#77910)
## About The Pull Request
Removes watcher emissive appearance while dead.
## Why It's Good For The Game
Made it look like they were haunted by their own ghost, spooky but
inappropriate.
## Changelog
🆑
fix: Watchers won't retain an ethereal outline of their wings hovering
over their dead body.
/🆑
* [no gbp] Watchers don't glow while they are dead
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Replaces or removes miscellaneous sources of clone damage from the game (#77832)
## About The Pull Request
Might as well go over all of them here.
1. Holoparasites deal half of the damage they take as clone damage to
their summoner when they are knocked out. Now it deals damage to the
brain instead.
2. Prion peptides used to deal a little bit of clone damage every
reagent tick. Now they do it to the brain.
3. When transforming back to human from a slime via a shapeshift spell,
the total damage you have gets flat converted into clone damage. Now it
gets flat converted to toxin damage.
4. Black stabilized slimes let you drain health from other people if you
latched onto them, dealing clone damage to whoever you latched onto,
same as slimes used to do. This has been converted to brute damage.
## Why It's Good For The Game
Explanation from #77569:
> Clone damage is a damage type that shouldn't exist anymore, it's a
relic left from the era of cloning and it's so specific of a damage type
that it rarely gets used as a result. It really should be a type of
affliction (wound etc) instead of its own damage counter.
Only a few left to go, cosmic heretic lore, the greed ruin and the
decloner gun. Then we can remove clone damage completely.
## Changelog
🆑
del: Removes miscellaneous sources of clone damage from the game.
/🆑
* Replaces or removes miscellaneous sources of clone damage from the game
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* fixes regal rats not running away (#77888)
## About The Pull Request
fixes the regal rat not running away from whoever attacked him. also
adds a new pet command behavior which makes the king's minions drop
whatever they are doing and defend their king from whoever has attacked
him.
## Why It's Good For The Game
the rats now behave right
## Changelog
🆑
fix: regal rats now run away from whoever attacked them
add: new pet behavior which makes pets defend their owners if they got
attacked
/🆑
* fixes regal rats not running away
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Doafter cleanup, disables stoplag dynamic sleeping in unit tests (#77868)
## About The Pull Request
[Makes the do_afters list behave as
expected](b7cd6c520f)
Half the code expected it to be a flat list of things we are acting on,
half expected it to be an assoc list of thing -> interaction count
Let's make that second dream a reality yeah?
[Disables stoplag's lag stoppage for unit
tests](88b2bb371c)
Because of the unique environment of unit tests (High cpu usage, lots of
sleeping) this risks spurious hard deletes from neverending stoplag
runs.
## Why It's Good For The Game
Less errors/guesswork in testing, better code
Potentially addresses #77865
* Doafter cleanup, disables stoplag dynamic sleeping in unit tests
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds error on qdeling callback, fixes errors this causes (#77850)
## About The Pull Request
You shouldn't ever qdel a callback. If you don't want to own it free
your ref (remove it from a list/set it to null). When all refs are
cleared it'll get cleaned up by byond itself
* Adds error on qdeling callback, fixes errors this causes
* Update cell_component.dm
* Update acid.dm
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Fix a compiler mis-optimization in create_character (#77801)
`mind.transfer_to` sets mind to null.
`mind.set_original_character` thus, should not work, but happens to
because BYOND incorrectly caches this.
This is causing problems with OpenDream because they do not have this
same bug.
* Fix a compiler mis-optimization in create_character
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* General code maintenance for Mat container related stuff (#77671)
1. Removes `/obj/machinery/ore_silo/proc/remote_attackby()`. This proc
calls `datum/component/material_container/user_insert()` anyway which
performs all the checks necessary for inserting stuff into the ore silo
and `/obj/machinery/ore_silo/proc/remote_attackby()` was just repeating
its code & checks. So now inserting into the ore silo is directly
handled by the mat container without this proxy proc making the
operation slightly faster
2. Removed silo `attackby` code. Same operations can be done via
`screwdriver_act` & `crowbar_act` procs much cleaner
3. The ore silo now hooks onto signals
`COMSIG_MATCONTAINER_ITEM_CONSUMED` and
`COMSIG_MATCONTAINER_SHEETS_RETRIVED` and logs into silo when they are
triggered. This means when you insert/eject sheets from the silo the
connected machine performing the operation no longer has to do the
logging manually thus the proc `silo_log` has been removed from a lot of
places ,reducing overall code size
4. A lot of stuff that use materials from the ore silo follow this
pattern.
i.e. They first use the materials from the silo and then log it via
`silo_log` proc. This code pattern is repeated in a lot of places so
let's just merge these 2 lines with some extra sanity checks into a
single proc inside `remote_materials` itself. That's what was done and
the number of places where you log manually into the silo has been
removed further reducing code size everywhere.
5. Added auto doc & cleaned up some procs
Since logging is now done by the ore silo directly, we need a way to
pass the machine that is inserting items into the silo to the signal
handlers of the ore silo [via the `context` var]. So other code changes
elsewhere is because of this var
* General code maintenance for Mat container related stuff
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Mining mob tweaks (#77763)
## About The Pull Request
~~I wanted to do this after #77700 (wow cool numbers) but nobody has
merged it yet despite how simple it is so i'll just hope they don't
conflict.~~ Thanks san
I'm fucking about with mining mobs with the intention of making them
more interesting but not necessarily towards making mining _harder_, but
some of these changes unquestionably have done so.
These changes are mostly in response to feedback about Watchers who are
definitely significantly more threatening than previously, although some
of this is user error.
- Watchers are annoying when traversing lavaland because they use their
ability on you instantly upon acquiring a target, if you are trying to
escape other fauna this quickly becomes deadly.
- A lot of players don't really realise what the overwatch ability is
actually doing and so just complain about getting machine gunned.
- If you _do_ react properly to the ability it still makes fighting them
take a lot longer than it used to.
- The "look away" icon is hard to see in the dark sometimes
To ammeliorate these factors I have:
- Reduced watcher health by ~20%
- Display an alerted graphic over the head of the watcher every time you
trigger the overwatch.
- Multiple watchers now won't overwatch you at the same time (this made
the "penalty" volley essentially become instant death)
- The "look away" icon is rendered above the lighting plane so you can
always see it
- Added a new component which tracks how long a mob has had a specific
target.
- - Watchers will now only Overwatch you if they've seen you for at
least 5 seconds (usually they'll try and shoot at you twice before
this).
- - Goliaths will only tentacle you if they've seen you for at least 3
seconds.
If overwatch is still problematic after this I guess I can just nerf it
to not track movement at all and only respond to attacks.
## Why It's Good For The Game
I don't want to discourage miners from "actually mining" by having them
get sniped just for walking around and the added time-to-kill on these
guys could make clearing tendrils more tedious too.
## Changelog
🆑
balance: Watchers have less health
balance: You can't be overwatched by several watchers at a time
balance: Watchers won't overwatch you instantly upon seeing you
balance: Goliaths won't launch tentacles at you instantly upon seeing
you
/🆑
* Mining mob tweaks
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Adds a Heresy phobia, fixes some typos in heretic code, places the stargazer and fire shark under heretic_summon (#77306)
## About The Pull Request
Instead of a supernatural phobia, sacrificed people will now get a
HERESY phobia, which specifically targets heretic stuff, instead of all
of magic. Other heretics, however, do not get this, but instead get
knowledge points sapped from them, as their mind is ruined in a
different way than normal people. This comes with different flavour text
and a harsher but shorter lasting mood debuff. Also fixes some
"knowlege" code typos and places the star gazer and fire shark all in
under heretic_summon
## Why It's Good For The Game
Heretics, Wizards, Chaplains and Cultists will now be able to keep
playing the game after getting sacrificed without overdosing on
psicodine, while still retaining the phobia's original design purpose.
placing the fire shark and star gazer under the same type also is useful
as they share a lot of values. typos bad.
## Changelog
🆑
add: Sacrificed heretic targets will now receive a phobia of heresy
instead of a phobia of the supernatural. Sacrificed heretics will not
get this phobia, but will lose knowledge points instead.
/🆑
Huge thanks to Helg2 for doing the original PR and helping me with this
one, couldn't be done without them
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@ users.noreply.github.com>
* Adds a Heresy phobia, fixes some typos in heretic code, places the stargazer and fire shark under heretic_summon
---------
Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Helg2 <93882977+Helg2@ users.noreply.github.com>
* [no gbp] Adds missing chat feedback to watcher abilities (#77700)
## About The Pull Request
I kept meaning to add this in my last PR and kept thinking "I'll add
that in with these review changes" and then forgot every time. This
should make it clearer what is happening to you and why.
Also I made the gaze ability stun the user for a short period after it
goes off because them shooting you instantly after they stop channeling
_is_ sort of bullshit.
Also while testing this I noticed the AI interrupt one of its actions to
do the other one which is a bit silly so now it cannot do that.
## Why It's Good For The Game
Outlines in the log why something bad just happened to you.
## Changelog
🆑
qol: Added some textual feedback to new watcher abilities
balance: Watchers will not attack for a short period following their
gaze attack
fix: Watchers won't interrupt one ability to use the other one
/🆑
* [no gbp] Adds missing chat feedback to watcher abilities
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Fix illusions not getting correct health, minor code cleanup (#77687)
## About The Pull Request
Setting health directly, bad
ba213342cf/code/modules/mob/living/simple_animal/hostile/illusion.dm (L37)
- Replaces this line with updating `maxHealth` then calling
`updatehealth`, so it gets clamped to a more accurate value
- Minor code cleanup, particularly relating to refs
## Why It's Good For The Game
Turns out these things were not meant to be so healthy
## Changelog
🆑 Melbert
fix: Reactive stealth armor decoys are half as healthy, as originally
intended
/🆑
* Fix illusions not getting correct health, minor code cleanup
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Don't sleep in ability.Activate() when breathing fire (#77673)
## About The Pull Request
The global proc `dragon_fire_line` sleeps, and was being called inside
`ability.Activate`
This made the CI fail on a different PR because the mob stopped existing
between activating the ability and triggering its cooldown, which should
not regularly be possible.
The ice whelp refactor author noticed this when using it in a loop but I
guess didn't think about the other implications 😅
## Why It's Good For The Game
Fixes a bug.
## Changelog
Not player facing
* Don't sleep in ability.Activate() when breathing fire
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* fixes healing holoparas killing slimes (#77724)
## About The Pull Request
this is probably a bug
## Why It's Good For The Game
it's probably a bug
## Changelog
🆑
fix: healing holoparas will no longer kill slime people
/🆑
* fixes healing holoparas killing slimes
---------
Co-authored-by: zeroisthebiggay <43571008+zeroisthebiggay@users.noreply.github.com>
* MODLink System (+ NWTLMM) (#77639)
## About The Pull Request
A pact made with `@ Kapu1178`
Small changes you should not care about:
RD MODsuit outfit (admin only) no longer has a beret that blocks the
activation of the suit
The beret used by death squad officers no longer is blocked from being
put on a hat stabilizer module
Admins can now Shear matrices of objects in Modify Transform
Multitool buffers have been a little refactored to use a setter proc
that saves them from causing hard dels
Cooler stuff:
A revival and remake of [Nobody Wants To Learn Matrix
Math](https://github.com/tgstation/tgstation/pull/59103), this time with
additional tooling for quick matrix calculations.

The MODLink system, available through every MODsuit and MODLink scryers
(a neck item obtainable from advanced modsuit research or
charliestation)
Let's you make a holographic call with any other MODLink user, where you
can chat in realtime and see what's up with em


## Why It's Good For The Game
Adds a fun way for the crew to communicate with each other that can be
done in real-time with relative privacy compared to radio.
## Changelog
🆑 Fikou, Armhulen, Sheets (+rep for Mothblocks and Potato)
fix: RD MODsuit outfit (admin only) no longer has a beret that blocks
the activation of the suit
fix: The beret used by death squad officers no longer is blocked from
being put on a hat stabilizer module
admin: Admins can now Shear matrices of objects in Modify Transform
admin: Admins now have access to Test Matrices in the VV dropdown, an
all-in-one tool for editing transforms.
add: MODLink system, available through scryers (from RnD and Charlie
Station) and through MODsuits. Lets you call people with holographs!
/🆑
* MODLink System (+ NWTLMM)
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Refactors Regal Rats into Basic Mobs (more titles edition) (#77681)
## About The Pull Request
I literally can't focus on anything nowadays, so I just did this to
break a never-ending chain of distress. Anyways, regal rats! These
fellas are mostly player controlled, but did have _some_ AI capabilities
(mainly tied to their actions), so that was incorporated too. Everything
should work as-expected (as well as look a shitload cleaner).
Instead of doing weird and awful conditional signals being sent out, I
made the `COMSIG_REGAL_RAT_INTERACT` (not the actual name) have a return
value so we can always rely on that working whenever we have that signal
registered on something we attack. I also cleaned up pretty much every
proc related to regal rats, gave them AIs to reflect their kingly nature
(and action capabilities (as well as move the action to
`mob_cooldown`)).
Since I thought they needed it, Regal Rats now get a special moniker!
This is stuff like "the Big Cheese" and what-not, like actual regents in
history. That's nice.
## Why It's Good For The Game
Two more off the list. Much better code to read. Way smarter rats with
spawning their army as part of a retaliatory assault (war). More sovl
with better regal rat names. The list goes on.
## Changelog
🆑
refactor: Regal Rats have been refactored into basic mobs. They should
be a bit smarter and retain their docility (until attacked, in which
case you should prepare to get rekt by summoned rats), and properly flee
when they can instead of just sit there as you beat them to death. The
framework for them interacting with stuff (i.e. opening doors while
slobbering on food) is a bit more unified too, now. They also have
cooler names too!
/🆑
FYI: Beyond a few code touchups, I haven't touched the actions at all. I
do not believe myself to be enthusiastic about fixing anything involving
the actions code as of this moment so that this PR is more overbloated
unless it's unbelievably stupid or easy to fix.
* Refactors Regal Rats into Basic Mobs (more titles edition)
---------
Co-authored-by: san7890 <the@san7890.com>
* Revert "Add the ability to use blips as your character's voice" (#77715)
Reverts tgstation/tgstation#77640

This is causing big problems right now and we've agreed to a, at
minimum, temporary revert so that we can re-approach this at a later
date and do things properly
@ MrStonedOne pls i need that TTS repo im begging you pls
* Revert "Add the ability to use blips as your character's voice"
---------
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* [no gbp] Lavaland should no longer spawn one million goliaths and watchers (#77716)
## About The Pull Request
Fixes#77709
I made a very smart and sensible and handsome change in a recent PR to
replace `mob/goliath/random` and `mob/watcher/random` subtypes with
spawner effects rather than mobs which qdel themselves on init sometimes
however I neglected to account for how the lavaland map generation was
reliant on those typepaths to space mobs apart
resultingly the map generator would attempt to place lavaland mobs about
12 spaces apart _unless_ they were goliaths or watchers which it would
spawn basically as much as it wanted wherever it wanted
## Why It's Good For The Game

## Changelog
🆑
fix: the goliath and watcher mating season has ended and population has
returned to normal levels
/🆑
* [no gbp] Lavaland should no longer spawn one million goliaths and watchers
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* [NO GBP] Fixing a minor mistake with update_transform() (#77685)
## About The Pull Request
Well, while the translation for lying/standing from #77619 is supposed
to work using the decimal place of whatever value the
`body_position_pixel_y_offset` variable should be while the mob is in
standing position (basically, `get_pixel_y_offset_standing()`), for a
fleeting moment idiocy took the better of me, and instead I just used
`body_position_pixel_y_offset` (which is of a different value when the
mob is lying down), resulting in resized mobs slooowly ascending (if
bigger) or descending (if smaller) each time they stood up.
Also taking a few seconds to add some `if` checks to avoid running these
operations for the wide majority of mobs, which have a default size of 1
anyway.
~~I hope I won't have to make further such PRs for a while.~~
## Why It's Good For The Game
Read above.
## Changelog
N/A
* [NO GBP] Fixing a minor mistake with update_transform()
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes Xeno Sentinel's Sneak Action Icon + Additional Sneak QoL (#77543)
## About The Pull Request
This PR fixes the xenomorph sentinel's Sneak ability having an error
icon as opposed to the intended appearance. This PR also adds a smooth
alpha transition to Sneak as opposed to setting the alpha immediately.
Having your alpha drop to its sneak value takes 0.5 seconds, which is
fast enough that it really shouldn't matter.
This PR also changes sneak's chat message alert to a balloon alert.
## Why It's Good For The Game
The icon thing is a bugfix, which is always good. The alpha
transitioning instead of being immediately set looks much better in my
opinion, I think most would agree on that front. Balloon alerts are our
preferred option as opposed to chat alerts now, so its also a good thing
to change.
## Changelog
🆑
qol: Xenomorph Sentinel and Ambusher Spider's sneak ability now has a
transition to a lower alpha as opposed to being immediate.
qol: The sneak ability now uses balloon alerts as opposed to chat
alerts.
fix: Fixed the Xenomorph Sentinel's Sneak ability icon being an error.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes Xeno Sentinel's Sneak Action Icon + Additional Sneak QoL
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>