* fixes fake laser lenses falling out of pirates (#82102)
## About The Pull Request
fixes#81812
pirate basic mobs use casingtype instead of projectiletype.
This meant pirates shooting lasers were trying to drop casings with
their projectiles. switching it to use projectiletype for the
/trooper/pirate/ranged types fixes the issue, though it would need to be
respecified for pirates using ballistic weapons if we want them to drop
the stuff later.
## Why It's Good For The Game
fix good. fake bullet casings bad
## Changelog
🆑
fix: basic mob pirates no longer drop fake energy weapon lenses when
shooting you to death with lasers.
/🆑
* fixes fake laser lenses falling out of pirates
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* Bitrunning 1.5: Secondary Objectives (#81828)
## About The Pull Request
Added secondary objective lockboxes to bitrunning. These pull from a
list of secondary objective loot on the domain, with a limited quantity
of items. Once there are no items left to pull, the secondary objective
disappears. If multiple secondary objective markers are placed, they
will be placed until all markers have been used, or all the items in the
loot pool are already spoken for.
To support this functionality, adds SSbitrunning, which stores all
domains as instances, instead of checking the hardcoded types as
previously. SSbitrunning manages listing domains for the quantum
console, and rolling secondary loot.
As an example of this functionality, added a side path to Glacier Grind
with a polar bear and some loot.
## Why It's Good For The Game
Secondary objectives give mappers ways to encourage players to venture
into a wider range of domains by offering non-trivial loot beyond the
fluff items given in the main caches. The absolute limit on the number
of items available ensures these items can't be farmed.
As well as supporting secondary objectives, SSbitrunning allows for
future support of features relying on mid-round modification of domains,
for instance adding custom domains.
## Changelog
🆑
add: Added secondary objectives to bitrunning!
add: Pick up encrypted curiosities and return them to the safehouse to
claim their contents.
add: Glacier Grind has been given a secondary objective, look out for
the limited edition hat.
add: Bitrunning domains can now be modified during the round by admins.
/🆑
* Bitrunning 1.5: Secondary Objectives
* Update virtual_domain.dm
---------
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
* [NO GBP] The deathmatch modifiers modal menu can actually be opened now. (#82041)
## About The Pull Request
I've fucked up the logic, so it requires the user to be both the host
and an admin to open it, which was the case when I tested it locally.
This PR fixes that and other issues (and **un**dumbs some of the code).
The spinning screen modifier has also been scrapped for being downright
awful and breaking my screen.
## Why It's Good For The Game
Fixing stuff I've thankfully noticed early.
## Changelog
🆑
fix: The deathmatch modifiers modal menu can actually be opened now.
Also fixed a bunch of issues it had.
/🆑
* [NO GBP] The deathmatch modifiers modal menu can actually be opened now.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes Headsets Being Wonky On Non-Poly Parrots (#82046)
## About The Pull Request
Fixes#81861
Basically we just typecasted too hard on the headset strippable item so
it was impossible to get headsets from non-Poly parrots. pretty silly
mistake because literally everything else is meant to typecast to just
`/mob/living/basic/parrot`. one line fix and leroy jenkins
## Why It's Good For The Game
parrots shouldn't "eat" headsets and make them entirely unretrievable
once placed on their ears.
## Changelog
🆑
fix: If you place a headset on a non-Poly Parrot, you should be able to
remove it from the parrot as-expected now rather than having the parrot
send it to the shadow realm.
/🆑
* Fixes Headsets Being Wonky On Non-Poly Parrots
---------
Co-authored-by: san7890 <the@san7890.com>
* [NO GBP] Fixes plasmaman nukeop reinforcements being given the wrong outfits (#82004)
## About The Pull Request
This updates the plasmaman species outfit registry to consider all
reinforcement outfits the game can pick for you. I mistakenly only
overwrote the base type of reinforcement costumes, meaning plasmamen
wouldn't actually be given a plasmaman outfit and would burst into
flames and die upon spawning.
Now, every reinforcement outfit redirects to the base plasmaman
reinforcement outfit, because making 5 new plasmaman variants of
existing outfits felt like an unwieldy solution.
## Why It's Good For The Game
I was told that plasmamen die when spawned in as nukie reinforcements.
They probably shouldn't be doing that.
## Changelog
🆑 Rhials
fix: Plasmamen nukie reinforcements are now properly given a
plasmaman-safe outfit.
/🆑
* [NO GBP] Fixes plasmaman nukeop reinforcements being given the wrong outfits
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Abilities with no owner control isnt given to ghosts (#82037)
## About The Pull Request
Actions that don't give the user control (so don't give them an action
button) will now no longer give them to ghosts either. Ghosts should see
the same information as the player when observing them. They don't need
to see guardian's protection mode and bileworm's spitting, for example.
## Why It's Good For The Game
Explained in the about the pull request already, ghosts should have the
same information as the player they are orbiting, not see the hidden
actions. It makes it annoying for contributors to have to manually set
every ability meant to not be seen by players to also not be seen by
ghosts.
## Changelog
🆑
fix: Action abilities hidden from players are now not shown to observers
either.
/🆑
* Abilities with no owner control isnt given to ghosts
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* MODsuit now uses spacesuit cell hud element (#81985)
## About The Pull Request
Rather than using screen alerts, MODsuits will now use the spacesuit
cell hud element, which normal space suits use to show how much cell is
left.
Also adds some new states to the cell hud icon to accommodate.
## Why It's Good For The Game
1. Less clutter in the alerts tab. Allows for higher priority screen
alerts to be displayed, such as being on fire.
2. Less confusing for Ethereals using MODsuits.
3. Consistency with normal space suits.
## Changelog
🆑 Melbert
add: MODsuits now use the "suit charge" HUD element to show how much
charge they have left, rather than a screen alert
/🆑
* MODsuit now uses spacesuit cell hud element
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Cleanbots can't acid people unless emagged. (#82008)
## About The Pull Request
Returns a long lost restriction to cleanbots of not being able to spray
acid on people unless emagged. Labeling as a fix since it's potentially
quite destructive, annoying, and presumably not intended. (likely
introduced by #80128)
## Why It's Good For The Game
Letting people go from ghosts to melting clothes and PDAs in 3 clicks is
maybe not great
## Changelog
🆑
fix: Cleanbots once again require an emag to spray acid on people. They
can still acid trash objects normally.
/🆑
* Cleanbots can't acid people unless emagged.
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
* Crushers and PKAs: Coop Upgrades (#81940)
## About The Pull Request
This PR makes 2 changes, one to the crusher and one to the PKA
Crushers: Their projectile no longer overrides eachother, so a mob can
have the blue bubble from several crushers. Triggering it will only
trigger the one that you own, so each player has to go hit the mob to
strike.
PKA: Fixed the minebot passthrough upgrade, and also adds a human
passthrough upgrade. They are incompatible with eachother, so you choose
between solo+minebot or coop, which is a compromise I thought as a
better alternative to taking mod space (the minebot passthrough
currently takes none). This upgrade is available solely at the mining
vendor, for 750 points.
## Why It's Good For The Game
The new mining has been great, and one thing I love is that it
encourages more coop play. Excavating boulders with other miners is much
more engaging and has good teamwork in it, and also is a good way to
encourage miners to stick together more and even fight megafauna in
pairs.
This hopes to make that easier to do, because currently having anyone
with a crusher is sort of a detriment to the whole team. Either the PKA
dude will accidentally shoot the crusher user while they're going in for
a melee kill, or 2 crusher users will be constantly erasing the mark of
the other. This will hopefully make that aspect better, and make mining
with friends a little better.
## Changelog
🆑
balance: Crusher marks no longer overwrite eachother, fauna can have one
from each crusher.
balance: Ash drake's crusher trophy no longer affects people the same
faction as you (like hiero trophy), so you won't friendly fire people
with it.
add: Added a new upgrade: Human Passthrough. You can shoot your PKA
without having to worry about friendly fire with this, for 750 mining
points at your mining vendor.
fix: Minebot passthrough upgrade now properly makes PKAs pass through
minebots.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Crushers and PKAs: Coop Upgrades
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables. (#81921)
## About The Pull Request
This PR fixes yet another small issue with elevation.
## Why It's Good For The Game
This PR fixes yet another small issue with elevation.
## Changelog
🆑
fix: Fixed the larva "hide" ability not properly hiding larvas under
tables.
/🆑
* [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Prevent bioware list deletion runtime for human destroy (what the fuck is a bioware?). (#81907)
## About The Pull Request
Prevent bioware list deletion runtime (biowares remove themselves from
the biowares list when deleted) by making it a lazy list delete.
## Why It's Good For The Game
Removes a runtime.
## Changelog
🆑
fix: Prevent runtime from humans with biowares gettingn deleted.
/🆑
* Prevent bioware list deletion runtime for human destroy (what the fuck is a bioware?).
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Buffs the SC/FISHER Saboteur Handgun. (#81553)
## About The Pull Request
The saboteur gun will now silence pAIs, toggle off radio broadcasting
(won't auto-relay nearby speech), disable turrets, chill out secbots a
little, and turn off APCs like power outages do.
The disrupt duration has also been buffed from 10/20 to 15/25 for ranged
and point-blank respectively.
Removed a conspicious chat message from an otherwise inconspicious gun.
Brought the code up to date.
## Why It's Good For The Game
The concept is cool, alas it's also undermined by how much of a joke
it's right now, and the game has plenty already.
The amount of interactions it has with things is underwhelming, so you
could barely consider it a stealth tool. The duration is also quite
scarce, I pointed that out in the original PR too.
Basically, I want to make the item cooler.
## Changelog
🆑
balance: Buffed the duration of the SC/FISHER Saboteur Handgun's
disruption effects. It's also stealthier and it won't conspiciously
alert living mobs hit by it.
add: Added saboteur interactions with radios, pAIs, turrets, secbots and
APCs.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Buffs the SC/FISHER Saboteur Handgun.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Fixes grammar and formatting on the description of friendly megafauna (#81922)
## About The Pull Request
Fixes grammar and formatting on the description of friendly megafauna
## Why It's Good For The Game
It's not
## Changelog
🆑
spellcheck: Fixed grammar and formatting on the description of friendly
elite mining mobs.
/🆑
* Fixes grammar and formatting on the description of friendly megafauna
---------
Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com>
* Drunk people no longer feel cold (#81939)
## About The Pull Request
Simple PR, if you're drunk then you no longer feel the effects (or get
the warnings) of cold temperatures.
This makes things like cryosting and the coldness of space give you no
warning or tell of why you're being hurt, but it also means you don't
suffer its slowdown.
## Why It's Good For The Game
It's a small bit of realism that doesn't do much to change the game, but
gives some extra bonus/drawback to alcohol that isn't really changing
the game by any means.
## Changelog
🆑 JohnFulpWillard, Atlasle
balance: You no longer feel cold if you're drunk. You still take damage,
but get no warning or slowdown.
/🆑
* Drunk people no longer feel cold
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Prevent borgs resisting from grabs when they are locked down (#81904)
## About The Pull Request
Prevents borgs resisting from grabs when they are locked

(yes, there's small baloonies message barely visible)
## Why It's Good For The Game
Isn't it fun to try and pull some locked down borg while they press B
like hundred times per second so you can't even move them.
## Changelog
🆑
fix: As a borg you shouldn't be able to resist from grab while locked
down
/🆑
* Prevent borgs resisting from grabs when they are locked down
---------
Co-authored-by: Iajret <8430839+Iajret@users.noreply.github.com>
* Saymode won't process custom say emotes (#81883)
## About The Pull Request
Closes#62666
Every saymode does some snowflake thing for sending out its messages to
the relevant mobs, and none of those snowflake things have handling for
custom say emotes.
We could manually go through and add the required handling, but for each
implementation, it would get messy fast. So it's a bit easier to just
prevent mobs using saymode from attempting to "emote" over them.
Especially since it doesn't make sense in a lot of situations that we
use saymodes.
## Changelog
🆑 Melbert
fix: Silicons can use asterisks in binary without fear of saying
something interesting.
/🆑
* Saymode won't process custom say emotes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes robotic talk use GetVoice for carbons, fixing voice changer issue (#81901)
## About The Pull Request
I noticed that when using a chameleon set and agent ID to change my
voice and then using the binary encryption key to talk over binary, it
would actually show as "Real Name (as ID)" rather than "ID" as expected.
Looking into the code, this seemed to be because robotic talk would use
`name` rather than getting the voice of the speaker, which is set to the
*visible name* of the speaker, leading to it using the visible name
rather than their voice.
This pr changes it to use `GetVoice` to have a result consistent with
regular comms.
## Why It's Good For The Game
When you use a chameleon mask with an agent ID it lets you mask your
voice over comms even if your face isn't fully covered, it's your voice
after all, but over robotic comms it cares about your visible name
rather than your voice even though you're still talking into a headset.
This pr makes it consistent with the behaviour of voice changing over
regular comms.
## Changelog
🆑
fix: When a carbon talks over robotic it uses their voice instead of
visible name. Meaning, voice changers work like they do over other comms
regardless of face covering.
/🆑
* Makes robotic talk use GetVoice for carbons, fixing voice changer issue
---------
Co-authored-by: _0Steven <42909981+00-Steven@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>
* Chem stun reductions now all use AdjustAllImmobility, and the AllImmobility procs now adjust unconscious (#81873)
## About The Pull Request
Meth, maints tar, synaptizine, and nicotine now all use the
`AdjustAllImmobility` to handle their stun reductions, instead of
individually adjusting all 5-6 immobility effects. `AllImmobility`,
`SetAllImmobility`, and `AdjustAllImmobility` now also affect the
unconscious status effect as well. I'm calling this a bug/consistency
issue, since every chem that didn't already use `AdjustAllImmobility`
was adjusting the unconscious status effect anyway, and they are all
clearly trying to do the same thing.
If I missed anything that could also be replaced with
`AdjustAllImmobility`, let me know and I'll fix it.
## Why It's Good For The Game
Makes things more consistent, and consistency is good.
## Changelog
🆑
code: Chem stun reductions are now applied more consistently.
fix: Chem stun reductions should now more consistently apply to
unconsciousness.
/🆑
* Chem stun reductions now all use AdjustAllImmobility, and the AllImmobility procs now adjust unconscious
---------
Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
* fix ore vents spawning the wrong wolves and remove simple wolves (#81864)
## About The Pull Request
wolves got refactored but the ore vents were still spawning the old
versions, this fixes it and removes the old wolves from the code
## Why It's Good For The Game
fixes ore vents spawning old wolves
## Changelog
🆑
fix: fixes ore vent spawned wolves being untammable
/🆑
* fix ore vents spawning the wrong wolves and remove simple wolves
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Arcargo: Vendor Cargo and Vending Machine Update (#81582)
Another one.
## About The Pull Request
This pull request originally had a design doc that @ Fikou and I worked
on, but that was never really polished up for publishing quality so I'll
forgo it for now and be as descript as possible here.
### Core changes
- This pull request adds a new NTOS app to the game, the restock
tracker. The restock tracker shows a comprehensive list of vending
machines across the station, as long as there is a need for that vending
machine to get restocked.
- This has also been pre-installed into the cargo data disks.
(`/obj/item/computer_disk/quartermaster`)
- Vending machines now store a total of 20% of the cost of any purchase
made within themselves into a small pool of cash. This only applies to
premium and normal purchases, not to contraband, as they're technically
not sanctioned by the company.
- The restock tracker app will also track which vending machines have
the most credits stored internally inside them.
- By refilling a vending machine, the stored credits within are paid out
to any crewmember who goes and restocks the station, while also paying
out *half that amount to the cargo budget*, serving as a basic but
otherwise easy tertiary money making method on the same level of
complexity as doing bounties, with the added benefit of actually helping
to assist the station for jobs like... assistant.

### Break Stuff
- Anyway, when you try and smash a vending machine open with a melee
weapon of choice, it can now pay out 50 credits at a time as a way to
make money at zero risk to yourself.
- ~~Except for the horrible risk to yourself.~~

### Cargo Specific Changes
- Restock units may now be sold for a small profit as well, to
incentivize cargo to keep the station stocked further.
- The `STATION_TRAIT_VENDING_SHORTAGE` trait will now add a small amount
of existing credits into the vending machines on station, to incentivize
cargo to fix the issue during the round and not just push for an early
shuttle call. Or, more accurately, provide the crew with a money making
scheme to engage better with the station trait as it stands.
### This also refactors behavior on vending machines
- This pull request also finally changes it so that vending machines now
use the payment component, which as a consequence allows for the
following improvements:
* Vending machines may now pull from physical credits on your person,
not just requiring you to have money on your ID card.
* Vending machines may also use credits being pulled by the player
interacting with the vending machine, allowing for handless mobs to be
able to purchase items from a vending machine.
* Finally makes the "use-for-everything buying things component" used by
the most utilized component of the in-game economy, to reduce the
quantity of unique implementations of purchasing things in the code.
- Existing vending specific checks are retained on before handing off
behavior to the payment component, for behavior such as purchasing
cigarettes/alcohol under the age of 18/21.
Notes:
- Vending machines will lose their internal credits stored when
deconstructed, as a security measure.
- Vending machines will now show the total amount of credits that a mob
has on their person, combining physical credits as well as credits held
in their ID card to accurately portray their total wealth across the mob
in question.
## Why It's Good For The Game
First off, this is largely an excuse to move vending machine behavior
over to the payment component for the purposes to less code copy-paste,
and to try and make the implementation more wide-spread.
Second, this implements a new tertiary economy method to the game, in
the same design space as bounties, which serve as common methods of
making money without necessarily being specific to their job in
question, with the primary goal of providing small amounts of work to
the crew and a basic interaction with the economy system.
Additionally, it gives cargo more things they can do to assist the
station, and a way to know which parts of the station need support as a
result.
It improves the interaction between the vending shortage station trait
as well, making it a challenge with depth as opposed to a more
oppressive round change that players would rather reroll the game over.
Additionally, this makes a few price tweaks to vending restock modules
as well to help incentivize buying some of the more minor restock kits,
and a few select bumps on restocks that cover wide enough territory to
necessitate fewer restocks.
* Arcargo: Vendor Cargo and Vending Machine Update
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Makes revenants able to emag medibots (and other basic bots) (#81857)
## About The Pull Request
Makes Revenants able to emag basic bots. Revenant's Malfunction Ability
only checked for simple_animal/bot so when Medibots, Cleanbots, and
Hygeinebots were turned into basic mobs Revenants lost the ability to
emag them.
## Why It's Good For The Game
Being able to hack bots is pretty much the main function of malfunction,
especially Medibots. Revenants not being able to hack them really
reduces their ability to cause chaos.
## Changelog
🆑
fix: Revenants can now again emag Medibots, Cleanbots, and Hygienebots.
/🆑
* Makes revenants able to emag medibots (and other basic bots)
---------
Co-authored-by: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
* OpenDream TypeMaker Prep (#81830)
## About The Pull Request
OpenDream is adding support for proc and var typechecking using `as` in
https://github.com/OpenDreamProject/OpenDream/pull/1705
BYOND silently ignores most uses of `as`, but OpenDream can leverage it
for static typing.
E.g. the following code will error in OpenDream while doing nothing in
BYOND:
```
/datum/proc/meep() as text
return "meep"
/datum/foobar/meep()
return 5
```
`Warning OD2701 at code.dm:29:8: /datum/foobar/meep(): Invalid return
type "num", expected "text"`
Pragmas allow these type emissions to be warnings, errors, or suppressed
entirely.
This PR modifies some existing uses of `as` in TG to prevent
`ImplicitNullType` warnings (which is when a var with a null value
doesn't explicitly have the `|null` type specified). This specific
pragma is a bit opinionated so it could simply be disabled, but since
this has no impact on BYOND behavior I don't see a reason not to fix
these examples anyways.
## Why It's Good For The Game
Typechecking.
## Changelog
no cl no fun
* OpenDream TypeMaker Prep
---------
Co-authored-by: ike709 <ike709@users.noreply.github.com>
* Fixes jank with moving down Zs as a ghost (#81837)
## About The Pull Request
Caused by goof's PR. Because for some reason observers overridde `up` to
skip checks but not `down`.
## Changelog
🆑 Melbert
fix: Moving "down" as an observer is no longer janky.
/🆑
* Fixes jank with moving down Zs as a ghost
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* fixes extra prob() in living flesh Life proc (#81784)
## About The Pull Request
SRT_PROB is prob() already, removed extra in
`/mob/living/basic/living_limb_flesh/Life`
## Why It's Good For The Game
in this commit
913802c076
in this pr https://github.com/tgstation/tgstation/pull/79149 the author
did it by accident, I think. Because It is very low chance
## Changelog
🆑
fix: fixed the chances of living flesh actions
/🆑
* fixes extra prob() in living flesh Life proc
---------
Co-authored-by: Rerik007 <120549107+Rerik007@users.noreply.github.com>
* Pete's corpse no longer eats vines (#81752)
## About The Pull Request
Pete can no longer eat vines while dead.
<!-- 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

This should probably not be happening even though it was funny to watch.
## Changelog
🆑
fix: Pete can no longer eat vines while dead.
/🆑
* Pete's corpse no longer eats vines
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Adds COMPONENT_LIVING_BLOCK_SHOCK (#81774)
## About The Pull Request
What it says on the tin--this adds a way for things listening to
`COMSIG_LIVING_BLOCK_SHOCK` to return a cancellation signal.
Refactored silicon mobs to use it.
Before when you wanted to prevent a shock from going through, the only
option was to create snowflake checks for whatever special mob you were
working with and overriding their `electrocute_act()`. This will allow
for more control without having to resort to dealing with mob code
directly, or worry about inheritance.
## Why It's Good For The Game
`electrocute_act()` can be a bit unwieldy to work with sometimes when
you want to add custom behavior, and this will give users more control
and options.
## Changelog
Nothing immediately player facing
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Adds COMPONENT_LIVING_BLOCK_SHOCK
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Don't use turf icons for abilities (#81720)
## About The Pull Request
Fixes https://github.com/wall-nerds/wallening/issues/100
Replaces a couple of instances of abilities using the icons of walls or
floors with different, somewhat more descriptive icons.
I will be honest I do not understand why two of these were even using
iron walls as an icon.
Both of these instances were cases of "I want to surround something" so
I have replaced them with this icon:

I have also replaced the "freeze floors" ability icon with the ice cube
icon, rather than a 32x32 ice floor icon.

I removed a bunch of old copies of goggles items from the `robot-items`
dmi and made them just reference the corresponding item sprites that
they were copies of, because they were out of date with the items and
using deprecated sprites. X-Ray now just looks like the red sam fisher
goggles instead of a caution sign (not that it is obtainable in game).
Oh also I added a tooltip to Ice Demon afterimages because it didn't
have one.
## Why It's Good For The Game
The previous icons don't even look like anything.
## Changelog
🆑
image: Bubblegum Hallucination Surround Charge, Wendigo Shockwave
Scream, and Ice Demon Floor Freeze all have more appropriate action
icons.
qol: Adds a tooltip to Ice Demon Afterimages ability.
image: Cyborg view items now use the same sprites as their corresponding
goggles instead of old versions of those sprites.
/🆑
* Don't use turf icons for abilities
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Makes shadow eyes sensitive to light (#81679)
## About The Pull Request
was getting wrapped in with #81618, here atomized out.
makes shadow eyes (that nightmares and shadowpeople have)
light-sensitive.
## Why It's Good For The Game
main consequences of this PR:
- nightmares need welding helmets or similar to get full flash
protection
- this makes sense because the light literally kills them, why are they
better-adapted than moths
- this is good because the recent moves to give nightmares more
abilities for ambush hit-and-runs (terrify, stun-crits) have also made
them stronger in protracted fights
- adding a bit more risk for nightmares in protracted fights is good
because the antag hits its thematic peak when it's involved in terrible
ambushes at inopportune moments, not when it's making constant
harassment or dueling in the dark
- this adds more risk to nightmares by making them need to limit their
vision in order to get full flash protection - which matters more when
people have time to anticipate that you're close and on the attack,
giving them a chance to whip their flash out
also seriously: shadow eyes. not sensitive to light?
* Makes shadow eyes sensitive to light
---------
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>
* [NO GBP] Reverses the logic for body collision to determine knockdown (#81712)
## About The Pull Request
The body that is thrown at someone having knockdown proofing is not what
determines whether the victim of the collision is knocked over, but the
victim themselves having this trait.
## Why It's Good For The Game
I have ADHD.
## Changelog
🆑
fix: Being in a Swat Suit appropriately protects you from collisions
with a body, rather than the body thrown at you having these protections
protecting YOU, the victim of the collision.
/🆑
* [NO GBP] Reverses the logic for body collision to determine knockdown
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fix: AI Hologram Copying Station Members (#81701)
## About The Pull Request
This PR fixes a bug which disables the AI hologram's ability to copy the
appearance of crew members. Fixes#78403
The bug was caused by developer error in PR #72725 when the typepath
`/datum/record/crew` was used to access `GLOB.manifest.locked`, which is
a list of `/datum/record/locked`. To fix the bug I replaced the
erroneous typepath with `/datum/record/locked`.
## Why It's Good For The Game
This PR fixes the broken feature that used to allow the AI to select
from the crew records to set its hologram's appearance.


## Changelog
🆑 A.C.M.O.
fix: Fixed the AI hologram's ability to copy the appearance of crew
members.
/🆑
* Fix: AI Hologram Copying Station Members
---------
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
* Adds a multi-dimensional bomb payload to the black market. (#81562)
## About The Pull Request
This PR adds a !!!FUN!!! bomb payload to the blackmarket, which, upon
detonation, transmutates all terrain in a range like the dimensional
anomaly would. You can also select the dimensional theme to use by using
it in your hand.
I believe however, this thing should cost a fuckton to get and only show
up occasionally. 8k to 10k was my original idea, but I think that's
perhaps not high enough given its flagrant potential. Perhaps I should
also make it so the more dangerous themes yield a shorter range than
others. Suggestions are welcome.
Screenshot of what happens when you don't set the theme:

This PR also turns dimension themes into singletons so we access them
more easily. Nothing to write home about.
## Why It's Good For The Game
The black market could always use some extra thingy or two anyway, and
this thing could either be a source of emergent gameplay, or a recipe
for a disaster. Perhaps second to the Big Slappy for how funny it could
be.
## Changelog
🆑
add: Added a multi-dimensional bomb payload to the black market. It's
very expensive.
/🆑
* Adds a multi-dimensional bomb payload to the black market.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#81534)
## About The Pull Request
senomorph stomachs and vore will no longer destroy items and mobs
directly, refactored it to use acid_act()
fixes xenomorph vore accidentally destroying mobs it wasn't supposed to
destroy, im thinking this was modified list in place shenanigans
## Why It's Good For The Game
this shit is jank as hell and better done this way and results in less
weird edge cases, and also makes xenomorphs feel less bullshit
## Changelog
🆑
balance: xenomorph stomachs will no longer destroy items directly,
refactored it to use acid_act()
fix: fixes xenomorph vore accidentally destroying mobs it wasn't
supposed to destroy, im thinking this was modified list in place
shenanigans
/🆑
* Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act()
---------
Co-authored-by: Iamgoofball <iamgoofball@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>
* Smart monkeys now punch instead of bite (#81607)
## About The Pull Request
Split this off from https://github.com/tgstation/tgstation/pull/81598 in
hopes to keep it as atomic as I can.
Brought to you by the same guy that made monkeys able to do human things
if they were clever in https://github.com/tgstation/tgstation/pull/70331
you now also punch people if you are an intelligent monkey instead of
biting them, because you're now too civilized for such savagery.
I also replaced a PASSTABLE with PASSMOB because while it doesn't have
any in-game effects currently, it made no sense to check if a mob can
pass through a table to know if they should be knocking a mob over.
## Why It's Good For The Game
You're an intelligent being now, and you should be acting as such,
punching instead of biting sounded like an obvious addition to me but it
seems like it got left out and I didn't notice that until now.
## Changelog
🆑
qol: Intelligent monkeys now punch people instead of biting them.
/🆑
* Smart monkeys now punch instead of bite
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* TRAIT_DEAF now works on non-carbon mobs (#81624)
## About The Pull Request
This PR makes it so that the `can_hear` proc will return `FALSE` if the
proc is called on a non-carbon that has the deaf trait.
## Why It's Good For The Game
This makes it so that non-carbon mobs can have the TRAIT_DEAF added to
them and it will now work. There isn't anything that would currently
utilize this on here. But, I do have a project downstream where
TRAIT_DEAF is added to a non-carbon mob.
## Changelog
🆑
code: TRAIT_DEAF now works on non-carbon mobs
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* TRAIT_DEAF now works on non-carbon mobs
---------
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Riot armor and helmets (and similar gear) protect against more melee-based attacks (like RNG punches), bottles aren't near guaranteed knockdowns (#81365)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
partially includes Syndicate modsuits and other suits with a module)
TRAIT_SHOVE_KNOCKDOWN_BLOCKED is now called
TRAIT_BRAWLING_KNOCKDOWN_BLOCKED. This is possessed by riot suits, SWAT
suits and now **plate armor**. Not the chaplain variety, because fuck
them I guess. (this was apparently deliberate so don't complain to me,
okay?)
Anyone with this trait is now unable to be knocked down by;
- Pure RNG on blunt objects attacks to the chest (Probability is
otherwise altered by melee armor already)
- Unarmed punches, both RNG and deterministic
- Bodies thrown at them. Instead, dealing stamina damage and causing
them to become staggered.
A new trait called TRAIT_HEAD_INJURY_BLOCKED, which protects from
various head injury related effects. This is possessed by riot helmets,
SWAT helmets, plate helmets, hardhats and applied to MODsuits with armor
boosters activated/the infiltrator suit while active.
The trait is also granted to anyone wearing a modsuit with the Head
Protection module installed. This can be printed from round start, and
comes pre-installed into all the engineering modsuits, security moduits,
research modsuit and magnate modsuit. (I had to bump up the security
modsuit complexity a bit to put it in iunno if we have a policy about
that)
Anyone with this trait is protected against:
- Bottle smashes to the head.
- RNG Blunt force trauma to the head by blunt objects (Probability is
otherwise altered by melee armor already)
- Partially protects against getting your spine snapped during a bad
tackle (this used to be a check ONLY for the riot helmet or hardhat)
The bottle smash's chance of a knockdown is based on the force and
knockdown duration of the bottle, altered by relevant head melee armor.
It's no longer basically guaranteed due to weird math that would
determine whether or not you were knocked down only if your armor
exceeded certain values or not.
Any instance that would check either for riot armor or riot helmets
instead checks for the new traits.
People weren't particularly happy with the possibility of getting
ownzoned by a naked assistant or random toolbox-wielding tider while in
dedicated melee protection armor as a result of pure RNG jank. [There
was a whole thread here about
it](https://tgstation13.org/phpBB/viewtopic.php?f=83&t=35645) with
regards to unarmed combat.
If you're in riot gear, you should feel like you can confidently combat
improvised/blunt weapons at a cost of general protection from the more
serious dangers to your wellbeing (AKA lead poisoning or heatstroke. Get
it....it's bullets and lasers...)
For some reason, bottle smash knockdowns, despite using the values
just...conveniently don't get blocked by armor except for extreme
values? If at all? I felt like this was really weird for something with
such a hefty and fairly powerful knockdown effect, particularly one you
can lob at someones head at range. I remember, way back when I first
started playing, that this was a feature that used to stun, and one I
used a lot to get cheap kills. The amount of bullshit stuns I got on
people with it still haunt me to this day. It hasn't improved in the
current era, despite being a knockdown, simply because any knockdown
still takes several seconds to exit. An arbitrarily low knockdown is
still a several second one. It's time to bring this in line with similar
equipment.
Rather than using flat values that are _clearly_ meant to be only
applicable to riot armor the decade ago that the code was written, let's
use traits instead. That's way better than relying on magic numbers that
may become irrelevant when the code around it changes, which anyone
touching that code may not even be aware existed.
Since we're using a trait, we can actually allow modsuits to
occasionally fill defensive niches that aren't strictly armor values.
Handy.
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
balance: Nanotrasen, in direct response to the increasing danger posed
by wannabe martial artists and rioters in the fringes of the Spinward
Sector, have upgraded the impact dampeners found in their riot armor.
Staff have also started to rediscover the value of medieval armor; it
isn't particularly easy to topple a knight in a suit of plate with just
your fists.
balance: Melee-focused armor is now more able to protect you from
various RNG-based knockdowns, such as critical hits from punches (as
well as the ones applied through the staggered status), shoves, critical
hits with a blunt weapon to the chest, and body throws.
balance: Melee-focused helmets also protect you from head injuries, such
as bottle smashes, accidentally hitting something dense during a tackle,
and critical hits from a blunt weapon to the head.
balance: Bottlesmash knockdowns are less reliable in general.
add: A new module, the Safety-First Head Protection module, protects you
from head trauma! Available in most modsuits expected to take hits to
the head often. And from roundstart exofabricators.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
* oh well
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* 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>
* Gorilla Buffs: King of the Jungle Edition (Funky New Mode!) (#81540)
## About The Pull Request
This PR buffs gorillas by making them more formidable threats while also
adjusting some of the related traitor items as well. The changes are as
listed:
- Gorillas now have the same understanding of language as monkeys. They
speak and understand monkey, and cannot speak but understand galactic
common.
- Gorillas are now slightly faster than humanoids when not holding
anything. While Usain Bolt may be slightly faster than a gorilla, you
are not.
- Gorilla damage increased from 18-20 to 25-30.
- Object damage doubled, going from 20 to 40.
These changes altogether make gorillas much more scary to come across,
as they'll be able to outpace you and get to the part where they maim
you much quicker. Crewmembers beware!
Furthermore, I've done some additional changes to the gorilla-related
traitor items as well:
- Gorilla cube box is replaced in the uplink by a singular gorilla cube.
Due to the changes above, this singular gorilla should be far more
useful than the 3 gorillas this item gave prior. The gorilla cube box
has been left in for any sort of mapping or admin shenanigans.
- Magillitis Serum Autoinjector has been buffed for self-use as a
consequence of the above changes, while nerfing its use against other
players to make them easier to kill. Additionally, Magillitis Serum
Autoinjector now also grants the resulting gorilla a self-regeneration
buff which kicks in after 12 seconds of not taking damage. I threw in
this additional buff as making yourself into a sentient gorilla pretty
much shows everyone you're valid salad, prevents you from using a lot of
traitor items and its cost of 15 is quite high.
## Why It's Good For The Game
Gorillas are fun, but in previous history we couldn't let them be too
powerful since it was relatively easy to mass-produce them via Genetics.
Since gorillas are pretty much traitor and admin-event exclusive now, we
can do more right by them by allowing them to be more like real-life
gorillas: faster than most humans, very powerful, and very scary if you
run into one who doesn't like you.
## Changelog
🆑
balance: Gorillas are faster, stronger, but not bigger too. Note while
holding an item, they are the same speed as they were prior.
balance: Gorillas now have the understanding of languages as monkeys do.
balance: The Gorilla Cube Box for traitors has been replaced with a
singular gorilla cube. Due to the aforementioned changes, this singular
gorilla should be as scary if not scarier than 3 gorillas were prior.
balance: Magillitis Serum Autoinjector now grants the resulting gorilla
a slow passive regeneration effect which kicks in after not taking
damage for 12 seconds.
/🆑
* Gorilla Buffs: King of the Jungle Edition (Funky New Mode!)
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>