## About The Pull Request
So, my original goal was just a refactor for the emissive overlays of
eyes, as a way to implement the specular emissive introduced by smartkar
some time ago, but somehow I found myself dragged into a bigger refactor
or cleanup of organ damage, thresholds, failures. One of the main
problem was that there were no procs called when a organ suffered enough
damage to fail or when recovering from failure. It'd just enable or
disable a bitflag, leaving it up to subtypes to decide how to tackle
organ failure their own ways: diverse, funky and sometimes incompatible.
More often than not relying on their very own "update_thingamajig" kinda
procs that run whenever the organ takes damage, rather than just when
the threshold is reached (low, high, failure. There are however a couple
organs with their own quirky thresholds, I let those slide).
There's also a bit of old code, especially for ears, with the
`AdjustEarDamage` and temporary deafness both predating the framework
for organ damage as far as I know. It really needed a coat of fresh
paint.
Oh, there were also more than a handful of organs that still heavily
relied on some ORGAN_TRAIT source instead of the `organ_traits` list and
the two add/remove procs `add_organ_trait` or `remove_organ_trait`. This
include organs that lose or gain specific traits when failing et
viceversa.
~~Lastly, felinids (and the halloween ghost species) having reflective
eyes. It's just a nod to the tapetum lucidum that animals with night
vision often have (including cats), which is why their eyes are a bit
brighter in the dark. Felinids however, do not have night vision (nor do
ghosts). This is merely cosmetic.~~ Cut out for the time being due to
issues with the specular emissive...
## Why It's Good For The Game
Refactoring / cleaning up old organ code.
## Changelog
🆑
refactor: Refactored organ damage code a little. Hopefully there won't
be issues (otherwise report them).
/🆑
## About The Pull Request
Adds action buttons for toggling mech equipment without opening the UI
<img width="971" height="140" alt="butt"
src="https://github.com/user-attachments/assets/be2b38ba-6526-4271-9b54-d946ee6fa7e3"
/>
## Why It's Good For The Game
Quick equipment access
Less UI navigation needed
## Changelog
🆑
qol: Added action buttons for toggling mech equipment
/🆑
## About The Pull Request
Projectile refactor pulled armor check above the pre-hit comsig, this
fixes that. No need to check armor before you're hit when you
potentially will not be.
## Changelog
🆑
fix: Sleeping Carp and Cain & Abel no longer tell you about armor
penetration when you reflect projectiles with them
/🆑
## About The Pull Request
Fixes#93199
EMP protection now specifies what it protects
Adds an EMP flag for things which should definitely not indicate they
are EMP proof
## Changelog
🆑 Melbert
fix: EMP proof objects now specify what they protect rather than only
implying it's 100% emp proof
fix: Some objects meant to stealthily be emp proof no longer broadcast
they are emp proof on examine
/🆑
## About The Pull Request
The kickflip text says you kickflip and catch the board, but you don't
catch the board if you move after clicking it. This forces you in place
while you kickflip so the kickflip always does what it says it does.
## Why It's Good For The Game
The current action text and chat text is sometimes innacurate, and
there's already a button to get off the board.
This also appears to fix an unrelated bug where if you kickflipped off a
hoverboard in mid-air, you'd get looney tunes hovering.
## Changelog
🆑
fix: Kickflippers now catch their board every time
/🆑
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
Fixes#85028
Obscured flags and covered flags are tracked on carbons, updated as
items are equipped and unequipped. It's that shrimple.
Closes#92760
Just removes the species exception checks for not making sense
Also refactors handcuffs / legcuffs removal. In all of these situations
they were hardcoded when they could easily just use an inventory proc to
work.
## Why It's Good For The Game
Stops a million excessive calls to `check_obscured_slots`
Makes obscured behavior more consistent
Makes obscured behavior easier to use
Cleans up human rendering (There was some cursed stuff before with
render item -> updated obscured -> update body -> cause side effects)
## Changelog
🆑 Melbert
del: Golems which somehow manage to grow wings and somehow manage to
equip something that covers their jumpsuit can no longer fly.
(Seriously, this will not affect anyone)
refactor: Refactored clothing obscurity entirely. Items should be a
loooot more consistent and what covers what, and should update a lot
snappier. As always, report any oddities, like mysteriously disappearing
articles of clothing, hair, or species parts
refactored: Refactored handcuffs and legcuffs a bit, report any odd
situations with cuffs like getting stuck restrained
/🆑
## About The Pull Request
#92354 missed a few uses of Trigger, so blood drunk was missing the
clicker arg and some mecha actions didn't account for the change.
## Changelog
🆑
fix: Fixed blood drunk miner's dash and some mecha actions not working
/🆑
## About The Pull Request
This PR adds the ability to install a B.O.R.I.S. in a circuit that
contains an MMI component. These circuits can then be remotely connected
to by an AI by clicking on them or anything they are inside of. To
indicate that a circuit allows remote AI connection, an indicator is
given to the circuit and anything containing it.
Additionally:
- Refactors the MMI component to use `item_interaction`, since it was
pertinent.
- You cannot insert an MMI/B.O.R.I.S. into a locked circuit.
- You can no longer hotswap MMIs/B.O.R.I.S.es - you must manually eject
the inserted one.
Let me know what changelog labels I should use for the hotswap removal
and the prevention of insertion into locked circuits.
## Why It's Good For The Game
If you can put an MMI or posibrain in a circuit, why not allow an AI to
use it using a B.O.R.I.S.?
## Changelog
🆑
add: B.O.R.I.S.es can be installed inside of integrated circuits with
MMI components, allowing an AI to remotely interface with them the same
way an MMI or posibrain could.
refactor: The MMI component now uses item interaction behavior for
inserting MMIs/B.O.R.I.S.es.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
I found out this admin only mech couldn't move because the 0 it had as
step power consumption ended up as infinity somewhere.
I removed it since there's no real reason why it shouldn't use power for
movement.
## Why It's Good For The Game
Mechs have legs for a reason.
## About The Pull Request
Don't let un-detachable or un-toggleable equipment be detached or
toggled.
## Changelog
🆑 Melbert
fix: Fixes some potential exploits in mecha ui code
/🆑
## About The Pull Request
Converts as many time vars expressed in deciseconds as I could find to
use time defines.
## Why It's Good For The Game
Makes these values neater and more readable.
## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
# Conflicts:
# code/modules/clothing/head/hat.dm
# code/modules/clothing/shoes/boots.dm
# code/modules/clothing/suits/utility.dm
## About The Pull Request
<img width="346" height="190" alt="rhJh93UCUl"
src="https://github.com/user-attachments/assets/376199f1-2083-4c9d-b301-461c23c1c03b"
/>
Tin. Caused by someone passing a hard ref in the source arg of
`ADD_TRAIT`. Also does a quick pass for similar bugs.
## Why It's Good For The Game
Less chug
## Changelog
Nothing player facing enough to put in the CL
## About The Pull Request
Removes the Justice mech from the game, including its sprites and some
of the associated code.
Leaves some sprites, effects and sounds in case anyone wants to reuse
them for something else.
If the maintainers prefer that the mech should remain in the game, but
as an admin-only spawn, I will do so.
## Why It's Good For The Game
This mech has been under fire recently because of it being way too
overtuned, which I think has mainly to do with trying to cram a lot of
unusual things for a mech, such as stealth and melee focus, into the
same package.
Aditionally, I don't really like the flavor at all, being a blatant
reference to another unrelated game. If both the ralsei plush and jevil
mask have been removed, I feel like a similar standard should be applied
here.
Finally, this opens up the posibility for someone else to try a new idea
on some of the concepts present on Justice's current iteration, such as
making a melee-focused mech.
## Changelog
🆑
del: The Justice mech has been removed.
/🆑
## About The Pull Request
I found out this admin only mech couldn't move because the 0 it had as
step power consumption ended up as infinity somewhere.
I removed it since there's no real reason why it shouldn't use power for
movement.
## Why It's Good For The Game
Mechs have legs for a reason.
## About The Pull Request
Don't let un-detachable or un-toggleable equipment be detached or
toggled.
## Changelog
🆑 Melbert
fix: Fixes some potential exploits in mecha ui code
/🆑
## About The Pull Request
Converts as many time vars expressed in deciseconds as I could find to
use time defines.
## Why It's Good For The Game
Makes these values neater and more readable.
## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
## About The Pull Request
<img width="346" height="190" alt="rhJh93UCUl"
src="https://github.com/user-attachments/assets/376199f1-2083-4c9d-b301-461c23c1c03b"
/>
Tin. Caused by someone passing a hard ref in the source arg of
`ADD_TRAIT`. Also does a quick pass for similar bugs.
## Why It's Good For The Game
Less chug
## Changelog
Nothing player facing enough to put in the CL
## About The Pull Request
Removes the Justice mech from the game, including its sprites and some
of the associated code.
Leaves some sprites, effects and sounds in case anyone wants to reuse
them for something else.
If the maintainers prefer that the mech should remain in the game, but
as an admin-only spawn, I will do so.
## Why It's Good For The Game
This mech has been under fire recently because of it being way too
overtuned, which I think has mainly to do with trying to cram a lot of
unusual things for a mech, such as stealth and melee focus, into the
same package.
Aditionally, I don't really like the flavor at all, being a blatant
reference to another unrelated game. If both the ralsei plush and jevil
mask have been removed, I feel like a similar standard should be applied
here.
Finally, this opens up the posibility for someone else to try a new idea
on some of the concepts present on Justice's current iteration, such as
making a melee-focused mech.
## Changelog
🆑
del: The Justice mech has been removed.
/🆑
## About The Pull Request
Fixes the issue of usr pointing to admins by making Trigger pass down
clicker, as usr is fucky and can be passed down by other unrelated
procs. Fun.
Added the clicker arg to all usages of Trigger as well
Also changes isobserver check in antagonist ui_act code that prevents
observers from clicking UI's instead to check if the ui.user is
owner.current
## Why It's Good For The Game
Fixes admins giving heretic to people opening the heretic UI for the
admin instead
(cherry picked from commit 0bc42d6940)
## About The Pull Request
Fixes the issue of usr pointing to admins by making Trigger pass down
clicker, as usr is fucky and can be passed down by other unrelated
procs. Fun.
Added the clicker arg to all usages of Trigger as well
Also changes isobserver check in antagonist ui_act code that prevents
observers from clicking UI's instead to check if the ui.user is
owner.current
## Why It's Good For The Game
Fixes admins giving heretic to people opening the heretic UI for the
admin instead
## About The Pull Request
# More robust logging
## Ore silo logs have now been refactored in the UI to display:
- Number of sheets is now the relative unit when displaying a given log.
- Instead of `100 iron` being displayed when removing one sheet, it just
says `1 iron`
- Instead of `25 iron` being displayed when using a quarter sheet, it
just says `0.25 iron`
- All information from ID_DATA(log_user) now sent to tgui backend
- The items rendered to ore silo users are:
- Name on ID, job on ID
- If the ID's bank account (if one is registered) is one of the ore
silo's banned users
- If the user for a given entry was wearing a chameleon card, they will
always appear unbanned
- NOTE: The bank account ID # is (currently) not shown to players using
the ore silo.
- Full log information is rendered within a dropdown; the dropdown
one-liner shows
- Action (deposit, eject, item created)
- Amount (deposit/eject? amount of material used. item created? number
of items created.)
- Either name of material (if deposit/eject) or the name of items
crafted
- The name of the user who performed a given operation (if wearing an
unbanned ID) or ID_READ_FAILURE (if ore silo ID requirement has been
disabled and the person is not wearing an ID)
- As name, but instead, the job of the ID (or ID_READ_FAILURE)

# Access control improvements
## Single-user bans
- Anyone with QM access (not silicons) can now ban/unban a user from a
given log from using the ore silo
- Bans are associated to bank account IDs.
- Wearers of chameleon cards bypass any ban restrictions.
- Anyone with QM access on their worn card bypasses ban restrictions.
- Silicons bypass ban restrictions.
- QM access requirement is removed if the ore silo is emagged.
- Silicons can ban/unban people if the ore silo is emagged.
## Worn ID requirement
- Enabled at roundstart, can be disabled by anyone with QM access (not
silicons)
- If enabled, you must be wearing an ID with a bank account associated
to it to use ore silo materials.
- Wearers of chameleon cards bypass this restriction (so-called ID
requirement free thinkers wearing chameleon ID cards)
- QM access requirement to toggle removed if emagged.
- Silicons can toggle this on/off if the ore silo is emagged.
# Access control radio notifications
## Access control operations reported on the radio
- Any operations for access control are reported on radio channels.
- Currently, the policy is always the default.
- In the future, the ore silo UI will allow the quartermaster to modify
what operations are reported on what channels (petty QM broadcasting ban
reports on Common)
- Current default policy:
- Reported on COMMON channel:
- Anyone but the Captain attempts to ban someone with QM access from the
ore silo (nice try dumbass)
- Ore silo ID requirement toggling
- Reported on COMMAND channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access attempts to ban/unban someone.
- Anyone without QM access attempts to toggle the restriction for ID.
- Silicons attempting to tamper with the ID requirement restriction
- Silicons attempting to tamper with the ban/unbanned user list
- A ban attempt failing because a given log entry had a user with no
bank ID.
- Reported on SECURITY channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access tampering with the silo.
- Reported on SUPPLY channel:
- Command channel reports.
- Reporting to the radio is disabled if the ore silo is emagged.
## Modifications to the remote_materials component
- Strictly encompass the behavior for connecting/disconnecting ore silos
to material receptacles (RCDs, machines, etc) into procs on the
component, instead of handling it all over the place
## Why It's Good For The Game
Gives people with ore silo access more fine grained control over ore
silo use without having to resort to heavy-handed fabricator lockouts
Makes the logging on the ore silo more robust so we can make sure we
kill the right Roboticist for using all the materials
Offers an avenue for sidestepping all of this with a chameleon card or
emag if a given traitor (organic or otherwise) is particularly opposed
to DRM mats.
https://github.com/user-attachments/assets/effd2c63-509c-4d33-992f-837a0d62b935
## Changelog
🆑 Bisar
add: The ore silo has had a significant expansion to its logging
capabilities.
add: The ore silo now allows any ID with Quartermaster access (NOT
SILICONS!) to ban/unban specific users from the silo.
add: The ore silo now has a toggle (on by default) that a user of ore
silo materials has an ID with an associated bank account. This can be
toggled by anyone with Quartermaster access (NOT SILICONS!)
add: NanoTrasen discounts any reports that Syndicate contraband
(cryptographic sequencer, agent card) can be used to circumvent any
protocols instituted on the ore silo access control routines.
add: The ore silo now announces operations to ban/unban users and
enable/disable ID requirements on radio channels (check the Github for
actions reported to what channels.)
add: The tgui interface for ore silo log entries has been reworked.
refactor: The code for logging a given access to ore silo materials has
been significantly refactored.
qol: Ore silo log entries now display materials spent in terms of sheets
rather than the obfuscated absolute-units previously display (1 iron
ejected instead of -100 iron, 0.25 used in a craft instead of -25 iron)
/🆑
## About The Pull Request
New changes for Justice mech - traitor mech that can be created on
emaged fabricator(you need robo skillchip to emag it)
1. Charge attack refactor
Charged attack is now used not by pressing the action button but on
holding right click

While you press right click scope will focus on tile mouse looking for
and when you release right button you will charge on this tile (cooldown
5 seconds as before). if your mouse look at position you unable to
charge your mouse icon will become red
2. New Justice block
Now Justice don't have 60% chance to block any damage. Instead of this
rng, justice has 3 engines that orbit around him

Engines can be active and disabled. While all engines active they will
block any range projictiles back.

To deactivate engine you need to melee hit mech. When all engines
deactivated mech loses its ability to deflect for 10 seconds, after
which all cores are recharged and the cycle continues again.
Justice can also recharge one engine when pilot hits someone who not in
crit.

3.
Some balance changes:
Mech hp now 300
Mech melee armor now 50
Mech bullet and laser armor now 30
Mech now don't have speed change when you switch safety mod.
Instead mech becomes faster in invisibility and slower when holding the
right mouse button to charge a charge attack.
Invisibility mode now no longer temporary. You can be invisible as long
as you want until you attack/ bump with someone/ take damage or turn it
off yourself
AoE attack from invisibility is now x2 faster

## Why It's Good For The Game
Lots of changes from recived feedback.
Basically the most annoying thing was the block chances. Praying on luck
to not die from laser spam turned out to be not a very interesting
mechanic. Now mech justice requires more strategic actions to destroy it
and the mechanics create more fun for both the mech user and those who
fight with it. You need to get close to the mech to hit it and only then
will you be able to shoot the laser and user of justice has the ability
to recharge his cores by attacking enemies (if you don't attack, then
you won't be able to recharge the cores (well, only if your other cores
are broken)). This all creates more risk reward elements and not just
rng.
Accordance with block chance changes i also increased HP and armor of
Justice to balance the block changes a bit.
AoE attack speed was needed simply because 100/100 cases everyone said
that the aoe attack is weak and useless because it is almost very easy
to get away from it.
Changing the charge attack work mechanic is necessary to improve the
maneuverability of the mech. pressing the charge button and then getting
messages that you chose the wrong direction is very inconvenient and
deprives comfortable gameplay and pleasant use of the mech.
## Changelog
🆑
add: Justice mech: New block and charge system! Build and try it now!
qol: Justice mech: charge attack is now much more pleasant and
convenient to use!
balance: Justice mech: Increased HP and armor.
balance: Justice mech: Invisibility is now infinite.
balance: Justice mech: stealth aoe attack is now 2x faster.
refactor: Justice mech: Some code clenup and mechanic improvements.
/🆑
---------
Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request
# More robust logging
## Ore silo logs have now been refactored in the UI to display:
- Number of sheets is now the relative unit when displaying a given log.
- Instead of `100 iron` being displayed when removing one sheet, it just
says `1 iron`
- Instead of `25 iron` being displayed when using a quarter sheet, it
just says `0.25 iron`
- All information from ID_DATA(log_user) now sent to tgui backend
- The items rendered to ore silo users are:
- Name on ID, job on ID
- If the ID's bank account (if one is registered) is one of the ore
silo's banned users
- If the user for a given entry was wearing a chameleon card, they will
always appear unbanned
- NOTE: The bank account ID # is (currently) not shown to players using
the ore silo.
- Full log information is rendered within a dropdown; the dropdown
one-liner shows
- Action (deposit, eject, item created)
- Amount (deposit/eject? amount of material used. item created? number
of items created.)
- Either name of material (if deposit/eject) or the name of items
crafted
- The name of the user who performed a given operation (if wearing an
unbanned ID) or ID_READ_FAILURE (if ore silo ID requirement has been
disabled and the person is not wearing an ID)
- As name, but instead, the job of the ID (or ID_READ_FAILURE)

# Access control improvements
## Single-user bans
- Anyone with QM access (not silicons) can now ban/unban a user from a
given log from using the ore silo
- Bans are associated to bank account IDs.
- Wearers of chameleon cards bypass any ban restrictions.
- Anyone with QM access on their worn card bypasses ban restrictions.
- Silicons bypass ban restrictions.
- QM access requirement is removed if the ore silo is emagged.
- Silicons can ban/unban people if the ore silo is emagged.
## Worn ID requirement
- Enabled at roundstart, can be disabled by anyone with QM access (not
silicons)
- If enabled, you must be wearing an ID with a bank account associated
to it to use ore silo materials.
- Wearers of chameleon cards bypass this restriction (so-called ID
requirement free thinkers wearing chameleon ID cards)
- QM access requirement to toggle removed if emagged.
- Silicons can toggle this on/off if the ore silo is emagged.
# Access control radio notifications
## Access control operations reported on the radio
- Any operations for access control are reported on radio channels.
- Currently, the policy is always the default.
- In the future, the ore silo UI will allow the quartermaster to modify
what operations are reported on what channels (petty QM broadcasting ban
reports on Common)
- Current default policy:
- Reported on COMMON channel:
- Anyone but the Captain attempts to ban someone with QM access from the
ore silo (nice try dumbass)
- Ore silo ID requirement toggling
- Reported on COMMAND channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access attempts to ban/unban someone.
- Anyone without QM access attempts to toggle the restriction for ID.
- Silicons attempting to tamper with the ID requirement restriction
- Silicons attempting to tamper with the ban/unbanned user list
- A ban attempt failing because a given log entry had a user with no
bank ID.
- Reported on SECURITY channel:
- Common channel reports.
- Per-user banning/unbanning.
- Anyone without QM access tampering with the silo.
- Reported on SUPPLY channel:
- Command channel reports.
- Reporting to the radio is disabled if the ore silo is emagged.
## Modifications to the remote_materials component
- Strictly encompass the behavior for connecting/disconnecting ore silos
to material receptacles (RCDs, machines, etc) into procs on the
component, instead of handling it all over the place
## Why It's Good For The Game
Gives people with ore silo access more fine grained control over ore
silo use without having to resort to heavy-handed fabricator lockouts
Makes the logging on the ore silo more robust so we can make sure we
kill the right Roboticist for using all the materials
Offers an avenue for sidestepping all of this with a chameleon card or
emag if a given traitor (organic or otherwise) is particularly opposed
to DRM mats.
https://github.com/user-attachments/assets/effd2c63-509c-4d33-992f-837a0d62b935
## Changelog
🆑 Bisar
add: The ore silo has had a significant expansion to its logging
capabilities.
add: The ore silo now allows any ID with Quartermaster access (NOT
SILICONS!) to ban/unban specific users from the silo.
add: The ore silo now has a toggle (on by default) that a user of ore
silo materials has an ID with an associated bank account. This can be
toggled by anyone with Quartermaster access (NOT SILICONS!)
add: NanoTrasen discounts any reports that Syndicate contraband
(cryptographic sequencer, agent card) can be used to circumvent any
protocols instituted on the ore silo access control routines.
add: The ore silo now announces operations to ban/unban users and
enable/disable ID requirements on radio channels (check the Github for
actions reported to what channels.)
add: The tgui interface for ore silo log entries has been reworked.
refactor: The code for logging a given access to ore silo materials has
been significantly refactored.
qol: Ore silo log entries now display materials spent in terms of sheets
rather than the obfuscated absolute-units previously display (1 iron
ejected instead of -100 iron, 0.25 used in a craft instead of -25 iron)
/🆑
## About The Pull Request
New changes for Justice mech - traitor mech that can be created on
emaged fabricator(you need robo skillchip to emag it)
1. Charge attack refactor
Charged attack is now used not by pressing the action button but on
holding right click

While you press right click scope will focus on tile mouse looking for
and when you release right button you will charge on this tile (cooldown
5 seconds as before). if your mouse look at position you unable to
charge your mouse icon will become red
2. New Justice block
Now Justice don't have 60% chance to block any damage. Instead of this
rng, justice has 3 engines that orbit around him

Engines can be active and disabled. While all engines active they will
block any range projictiles back.

To deactivate engine you need to melee hit mech. When all engines
deactivated mech loses its ability to deflect for 10 seconds, after
which all cores are recharged and the cycle continues again.
Justice can also recharge one engine when pilot hits someone who not in
crit.

3.
Some balance changes:
Mech hp now 300
Mech melee armor now 50
Mech bullet and laser armor now 30
Mech now don't have speed change when you switch safety mod.
Instead mech becomes faster in invisibility and slower when holding the
right mouse button to charge a charge attack.
Invisibility mode now no longer temporary. You can be invisible as long
as you want until you attack/ bump with someone/ take damage or turn it
off yourself
AoE attack from invisibility is now x2 faster

## Why It's Good For The Game
Lots of changes from recived feedback.
Basically the most annoying thing was the block chances. Praying on luck
to not die from laser spam turned out to be not a very interesting
mechanic. Now mech justice requires more strategic actions to destroy it
and the mechanics create more fun for both the mech user and those who
fight with it. You need to get close to the mech to hit it and only then
will you be able to shoot the laser and user of justice has the ability
to recharge his cores by attacking enemies (if you don't attack, then
you won't be able to recharge the cores (well, only if your other cores
are broken)). This all creates more risk reward elements and not just
rng.
Accordance with block chance changes i also increased HP and armor of
Justice to balance the block changes a bit.
AoE attack speed was needed simply because 100/100 cases everyone said
that the aoe attack is weak and useless because it is almost very easy
to get away from it.
Changing the charge attack work mechanic is necessary to improve the
maneuverability of the mech. pressing the charge button and then getting
messages that you chose the wrong direction is very inconvenient and
deprives comfortable gameplay and pleasant use of the mech.
## Changelog
🆑
add: Justice mech: New block and charge system! Build and try it now!
qol: Justice mech: charge attack is now much more pleasant and
convenient to use!
balance: Justice mech: Increased HP and armor.
balance: Justice mech: Invisibility is now infinite.
balance: Justice mech: stealth aoe attack is now 2x faster.
refactor: Justice mech: Some code clenup and mechanic improvements.
/🆑
---------
Co-authored-by: tgstation-server-ci[bot] <161980869+tgstation-server-ci[bot]@users.noreply.github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request
Firstly, mech beacons are limited to one of each type.
Secondly, mechs, when EMP'd, may potentially delete the beacons
installed in itself. The probability is based on the severity of the
EMP. 20% chance if the EMP is light. 40% chance if the EMP is heavy.
## Why It's Good For The Game
> Type limitations
I don't think stacking 10 tracking beacons on the same mech to instacook
it is intended. The extra beacons do not do anything. It's just to make
it easier to EMP.
> Beacon Deletion
So what if I told you that there is code in control beacons that
suggests they are intended to be deleted when EMP'd, which wouldn't make
sense unless it could be EMP'd in the mech? What if I said this code has
been there for a really long time? What if I told you it never worked?
I'm not going to sit here and pretend like this is a fix. We've played
with this being the case for a really long time. But it is dead code and
I'm gonna implement it because I think it solves a really annoying
problem with beacons, which is that once they're in, you can't get them
out again. I do still think the beacon is a strong strategy, even if it
self deletes. And I do think you'll get your moneys worth if you manage
to stick one in the mech. It's not like they can eject it early. Even
just one EMP is going to fuck up that mech. Especially true if it has
both types of beacons (since its two EMPs).
## Changelog
🆑
balance: Mecha that are EMP'd properly delete their tracking beacons
after many years where they haven't. There is a probability for whether
or not the beacon is destroyed from an EMP.
fix: You cannot stack multiple of the same beacon onto a single mech.
/🆑
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/90904
if you have strafing on your dir doesn't actually change, making this
do_after abusable
## Changelog
🆑
fix: moving out of range of a target you are clamping while strafing
will halt the do_after of mechs
/🆑
## About The Pull Request
Firstly, mech beacons are limited to one of each type.
Secondly, mechs, when EMP'd, may potentially delete the beacons
installed in itself. The probability is based on the severity of the
EMP. 20% chance if the EMP is light. 40% chance if the EMP is heavy.
## Why It's Good For The Game
> Type limitations
I don't think stacking 10 tracking beacons on the same mech to instacook
it is intended. The extra beacons do not do anything. It's just to make
it easier to EMP.
> Beacon Deletion
So what if I told you that there is code in control beacons that
suggests they are intended to be deleted when EMP'd, which wouldn't make
sense unless it could be EMP'd in the mech? What if I said this code has
been there for a really long time? What if I told you it never worked?
I'm not going to sit here and pretend like this is a fix. We've played
with this being the case for a really long time. But it is dead code and
I'm gonna implement it because I think it solves a really annoying
problem with beacons, which is that once they're in, you can't get them
out again. I do still think the beacon is a strong strategy, even if it
self deletes. And I do think you'll get your moneys worth if you manage
to stick one in the mech. It's not like they can eject it early. Even
just one EMP is going to fuck up that mech. Especially true if it has
both types of beacons (since its two EMPs).
## Changelog
🆑
balance: Mecha that are EMP'd properly delete their tracking beacons
after many years where they haven't. There is a probability for whether
or not the beacon is destroyed from an EMP.
fix: You cannot stack multiple of the same beacon onto a single mech.
/🆑
## About The Pull Request
closes https://github.com/tgstation/tgstation/issues/90904
if you have strafing on your dir doesn't actually change, making this
do_after abusable
## Changelog
🆑
fix: moving out of range of a target you are clamping while strafing
will halt the do_after of mechs
/🆑
## About The Pull Request
If you use the mech clamp offensively, it actually performs an attack
animation and sound, and properly checks armor and block. It only deals
brute damage.
As a consequence of these changes, it actually logs attacks made against
mobs that die when gibbed.
Also, xenos take x3 damage from the clamp.
## Why It's Good For The Game
This is a pretty sinister kind of attack, as it is completely silent
except for throwing a warning into chat, and can be done even in a large
crowd of people. Someone who isn't aware that the clamp can be used this
way may not even understand what is happening before it is too late.
> block check
While mech melee doesn't normally check block, this is an improvised
attack on a non-combat mech. I think it should stay a bit weak compared
to a proper mech melee in most ways and have some additional
limitations.
> Xenos
I thought this was already a thing. It's thematically on point, no?
## Changelog
🆑
balance: Mech hydraulic clamps perform an attack animation and sound
when attacking mobs.
balance: Mech hydraulic clamps can be blocked and respect armor.
balance: Mech hydraulic clamps do triple damage to xenomorphs.
/🆑
(cherry picked from commit fb9824a401)