# Description
it was using the wrong id for metadata so casting didnt work
---
# Media
it is infact fixed

---
:trollface:
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 6c27976e4af3fc33b4900b8adc3979ff7d2d78bd)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Separate from the shaders toggle because some want one and the other.
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Added a toggle for the mood visual effects, for the ones with sensitive eyes.
(cherry picked from commit cf3cdc970967b8a491d83b69c9df9a05d9fa2ced)
# Description
A long time ago someone told me "NO IT'S TOO OP, DON'T GIVE HARPIES A
DAW". So now I'm letting Harpies blow 10 trait points on having a DAW.
You're welcome. Yes I have actually tested this ingame, and it works.
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
# Changelog
🆑
- add: Added "Lyre Bird" as a new trait exclusively available to
Harpies. It massively expands their ability to play Midis.
(cherry picked from commit cc91eebe70f28834f1cd3c2ce611561030a15648)
# Changelog
🆑
- fix: Fixed alerts being halfway down the screen
Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
(cherry picked from commit 0bf6989e503838adcee53c561ec101564282260f)
# Description
Implements the softcrit functionality.
Similiar to critical state but spessmen will be able to communicate and
crawl around, but not pick up items.
Also supports configuring what is and isn't allowed in different
MobStates (per mob prototype): you can enable picking up items while in
softcrit so people can pick up their lasgun and continue shooting after
taking a 40x46mm to their ass cheeks from the guest nukies while being
dragged to safety.

<details> <summary><h1>Technical details</h1></summary>
New prototype type: "mobStateParams" (`MobStateParametersPrototype`)
Used to specify what can and can't be done when in a certain mobstate.
Of note that they are not actually bound to any `MobState` by
themselves. To assign a params prototype to a mobstate, use
`InitMobStateParams` in `MobStateComponent`.
It has to be a prototype because if I just did something akin to
`Dictionary<MobState, Dictionary<string, bool>>`, you'd have to check
the parent and copy every flag besides the one you wish to modify. That
is, if I understand how the prototype system works correctly, which I
frankly doubt. <!-- Working on softcrit made me hate prototypes. -->
MobStateComponent now has:
- `Dictionary<string, string> InitMobStateParams`, for storing "mobstate
- parameter prototype" pairs. `<string, string>` because it has to be
editable via mob prototypes. Named "mobStateParams" for mob prototypes.
- `public Dictionary<MobState, MobStateParametersPrototype>
MobStateParams` for actually storing the params for each state
- `public Dictionary<MobState, MobStateParametersOverride>
MobStateParamsOverrides` for storing overrides.
`MobStateParametersOverride` is a struct which mirrors all
`MobStateParametersPrototype`'s fields, except they're all nullable.
This is meant for code which wants to temporarily override some setting,
like a spell which allows dead people to talk. This is not the best
solution, but it should do at first. A better option would be tracking
each change separately, instead of hoping different systems overriding
the same flag will play nicely with eachother.
- a shitton of getter methods
TraitModifyMobState now has:
- `public Dictionary<string, string> Params` to specify a new prototype
to use.
- Important note: All values of `MobStateParametersPrototype` are
nullable, which is a hack to support `TraitModifyMobState`. This trait
takes one `MobStateParametersPrototype` per mobstate and applies all of
its non-null values. This way, a params prototype can be created which
will only have `pointing: true` and the trait can apply it (e.g. to
critstate, so we can spam pointing while dying like it's a game of turbo
dota)
- The above is why that wall of getters exists: They check the relevant
override struct, then the relevant prototype. If both are null, they
default to false (0f for floats.) The only exception is
OxyDamageOverlay, because it's used both for oxy damage overlay (if
null) and as a vision-limiting black void in crit..
MobStateSystem now has:
- a bunch of new "IsSomething"/"CanDoSomething" methods to check the
various flags, alongside rewritten old ones.
-

lookin ahh predicate factory
</details>
---
# TODO
done:
- [x] Make proper use of `MobStateSystem.IsIncapacitated()`.
done: some checks were changed, some left as they did what was (more or
less) intended.
<details>Previous `IsIncapacitated()` implementation simply checked if
person was in crit or dead. Now there is a `IsIncapacitated` flag in the
parameters, but it's heavily underutilized. I may need some help on this
one, since I don't know where would be a good place to check for it and
I absolutely will not just scour the entire build in search for them.
</details>
- [x] Separate force-dropping items from being downed
done: dropItemsOnEntering bool field. If true, will drop items upon
entering linked mobstate.
- [x] Don't drop items if `ForceDown` is true but `PickingUp` is also
true.
done: dropItemsOnEntering bool field. If true, will drop items upon
entering linked mobstate.
- [x] Actually check what are "conscious attempts" are used for
done: whether or not mob is conscious. Renamed the bool field
accordingly.
- [x] Look into adding a way to make people choke "slowly" in softcrit
as opposed to choking at "regular speed" in crit. Make that into a param
option? Make that into a float so the speed can be finetuned?
done: `BreathingMultiplier` float field added.
<details>
1f is regular breathing, 0.25 is "quarter-breathing". Air taken is
multiplied by `BreathingMultiplier` and suffocation damage taken (that
is dealt by RespiratorSystem, not all oxy damage) is multiplied by
`1-BreathingMultiplier`.
</details>
- [x] make sure the serializer actually does its job
done: it doesn't. Removed.
- [x] Make an option to prohibit using radio headsets while in softcrit
done: Requires Incapacitated parameter to be false to be able to use
headset radio.
- [x] Make sure it at least compiles
not done:
- [ ] probably move some other stuff to Params if it makes sense. Same
thing as with `IsIncapacitated` though: I kinda don't want to, at least
for now.
---
<details><summary><h1>No media</h1></summary>
<p>
:p
</p>
</details>
---
# Changelog
🆑
- add: Soft critical state. Crawl to safety, or to your doom - whatever
is closer.
---------
Signed-off-by: RedFoxIV <38788538+RedFoxIV@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 9a357c1774f1a783844a07b5414f504ca574d84c)
# Description
If a damageable entity gets hit three times in a quick succession, it
will get stuck slightly red. This effect is clientside-only, but will be
present on all clients that had this happen in their PVS range.
Presumably this was happening because TryComp returns the requested
component even if it's shut down and is about to be removed.
---
# TODO
- [ ] Find a way to cope with the mental illness this gave me
---
<details><summary><h1>Media</h1></summary>
<p>
<details><summary>Before</summary>
<p>
https://github.com/user-attachments/assets/5f9a8510-8faa-49df-9cac-b9312e330f53
</p>
</details>
<details><summary>After</summary>
<p>
https://github.com/user-attachments/assets/f1d88ebb-3e6c-460d-b4cc-9e93918f1015
</p>
</details>
</p>
</details>
---
# Changelog
🆑
- fix: Fixed damageable entities being stuck red after being damaged
several times in a quick succession.
(cherry picked from commit 2f88303c8a855ebb0064edc7c1d32bf2c0f2684c)
🆑
- fix: Salvage vendors will no longer accept any inputs to buy an item.
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
(cherry picked from commit 7c6582a39b77f4db6be1eb795e238b016e11dea4)
🆑
- fix: Fixed the most pressing issue: arcade games not working.
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
(cherry picked from commit bd5259a088fa059faaacd846526c36bc9c09f4a1)
🆑
- fix: Fixes the ChemMaster playing the button press sound on open.
---------
Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 9ddfa358a7f0916422d29493dbb353a62f87e5d2)
# Description
Last changes to CyberEyes broke nightvision, so this reverts those
changes.
# Changelog
🆑
- fix: Fixed night vision not working correctly.
(cherry picked from commit 3d24fed5daddef4d8cca8a17aa2572f54127668b)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Only use 1, 5, 10, 15, 20, 25, 30, 50 as default amounts.
Add the ability to add your own as you please.
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- tweak: Tweaked the ChemMaster to no longer have 300 buttons.
(cherry picked from commit dc0539733636b3b099539d67699b5658bde7e759)
# Description
This PR fixes an ANCIENT bug with the clothing system, whereby it wasn't
possible to have individual non-hardcoded clothing layers at the same
time as species-specific layers. Now we can have species-specific shaded
layers, such as the lights on hardsuits/tacsuits. To make use of this
new feature, I've started making new sprites for "Unpainted" suits,
which will largely replace the suits you get from either Cargo or the
Techfabs. Unpainted suits will generally be gunmetal grey, unless they
are made of a notably different material.
# TODO
<details><summary><h1>Media</h1></summary>
<p>




New unpainted Elite Tacsuit

</p>
</details>
# Changelog
🆑
- add: Clothing now supports having multiple species-specific layers,
and species-specific shaders.
- add: New "Unpainted" engineering hardsuit, and "Unpainted" Shanlin
Tacsuit. More to come soon.
- add: Unpainted variant of the "Shiwei" tacsuit(AKA: Elite suit). This
one is uniquely titanium white instead of the standard gunmetal grey. It
can either be ordered through cargo at an exhorbitant cost, or
manufactured with the Prototype Tacsuits research.
(cherry picked from commit 031a6c835b26a24d72a41d42294d7115640d3d17)
# Description
I'm going to go put powergamers on suicide watch. This PR makes it so
that specializing in psionic traits, and specializing in cybernetic
traits are both mutually exclusive. You are only allowed to have a
single cybernetric trait if you wish to have psionic traits. And you are
only allowed to have Latent Psychic with no other traits if you wish to
have Cybernetics.
Also fixes a bug with Thermographic Vision not correctly being measured
in seconds. You now get a 2 second pulse with Thermographic vision, as
intended.
# Changelog
🆑
- tweak: Psionic traits are now mutually exclusive with cybernetic
traits, and vice versa.
- fix: Thermographic Vision now correctly measures its pulse duration in
seconds instead of nanoseconds. It provides a 2 second scan.
---------
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
(cherry picked from commit 87eb664fa6e95b659c5753b07115d1aaea82b442)
🆑
- fix: ChemMaster no longer loses your last added progress because of a
silly goose move.
(cherry picked from commit 9a0c6b2f6cf8113a1a738f39479023a469966d7f)
# Description
Adds the Plasmamen as a playable species. Plasmamen are a skeletal
species who depend on Plasma to live, and oxygen is highly fatal to
them. Being exposed to oxygen will set them on fire, unless they wear
their envirosuits.
## Species Guidebook
<img width=500px
src="https://github.com/user-attachments/assets/a1ef91ef-87b2-4ae0-8b5c-922a0c34777f">
<img width=500px
src="https://github.com/user-attachments/assets/110f0fa0-7dc4-410b-a2c0-a517f0311484">
**SPECIAL:**
- Plasmamen speak the language Calcic, a language they share with
Skeletons.
## Shitmed Integration
Plasmamen are the first ever species designed with Shitmed in mind, with
one of their core mechanics (self-ignition) powered entirely by Shitmed.
Whether or not a Plasmaman ignites from oxygen exposure depends only on
their body parts. A Plasmaman with only their head exposed will not burn
as much as an entirely naked Plasmaman. You can **transfer** Plasmaman
body parts to non-Plasmamen through **surgery** so that they also ignite
from oxygen exposure. Meanwhile, a Plasmaman with a non-Plasmaman head
can expose their head without self-igniting.
https://github.com/user-attachments/assets/0aa33070-04be-4ded-b668-3afb9f4ddd7c
## Technical Details
This also cherry-picks
https://github.com/space-wizards/space-station-14/pull/28595 as a
quality-of-life feature to ensure Plasmamen keep their internals on upon
toggling their helmet with a breath mask on.
## TODO
### RELEASE-NECESSARY
<details>
- [x] Port more envirosuits / enviro helms (job-specific) and their
sprites
- [x] Remove breath masks from default plasmaman loadouts because the
envirohelms already allow them to breathe internals
- [x] Change default plasma tank to higher-capacity version
- [x] Prevent plasmamen from buying jumpsuits and helmets other than
envirosuits
- ~~[ ] **Client UI update for loadout groups min/max items and default
items**~~
- [x] Plasmaman-specific mask sprites from TG
- [x] Disable too cold alert for plasmamen
- [x] Create/port sprites for these jobs
- [x] Courier
- [x] Forensic Mantis
- [x] Corpsman (Resprite security envirosuit)
- [x] Prison Guard (Resprite security envirosuit)
- [x] Magistrate (No Paradise envirosuit so use new colorable
envirosuit)
- [x] Blueshield (Port from Paradise and tg-ify?)
- [x] NanoTrasen Representative (No Paradise envirosuit so use new
colorable envirosuit)
- [x] Martial Artist (use new colorable envirosuit and make pure white)
- [x] Musician (use new colorable envirosuit)
- [x] Reporter (use new colorable envirosuit)
- [x] Zookeeper (use new colorable envirosuit)
- [x] Service Worker (use new colorable envirosuit)
- [x] Gladiator
- [x] Technical Assistant
- [x] Medical Intern
- [x] Acolyte / Research Assistant
- [x] Security Cadet
- [x] Assistant
- You know what. These intern jobs are fine. They can use their normal
equivalent's envirosuits.
- [x] Logistics Officer (use new colorable envirosuit)
- [x] Adjust sprites to be closer to actual job
- [x] Captain (Shift color to be closer to ss14 captain)
- [x] ~~CMO (Remove yellow accents)~~
- [x] Port HoP envirogloves sprite
- [x] unique sprite for self-extinguish verb
- [x] Refactor conditional gear stuff to live only in
StartingGearPrototype with `SubGear`
`List<ProtoId<StartingGearPrototype>>` field and `List<Requirement>`
field for sub-gear requirements
- [x] Add starting gear for paradox anomaly, and antags and ghost roles
- [x] Paradox
- [x] Nukies
- [x] Disaster victims
- [x] Listening post operative
- [x] Make all envirosuit helmets have a glowing (unshaded) visor
- [x] Envirosuit extinguish visuals
- [x] JobPrototype: AfterLoadoutSpecial
- [x] Set prisoner envirohelm battery to potato, command/sec/dignitary
to high-powered
- [x] Set base envirosuit extinguishes to 4, sec 6 and command 8
- [x] Improve plasmaman organ extraction experience
- [x] Body parts now give 1 plasma sheet each, while Torso gives 3
- [x] Organs can be juiced to get plasma
- [x] Make envirohelm flashlights battery-powered
- [x] Plasmamen visuals
- [x] Grayscale sprites for color customization, and set default
skintone color to Plasmaman classic skintone
- [x] Plasmaman eye organ sprite
- [x] Add basic loadouts
- [x] Add way to refill envirosuit charges (refill at medical protolathe
after some research)
</details>
### Low Importance
<details>
- [x] Envirogloves
- [ ] (SCOPE CREEP) Plasma tanks sprite (only normal emergency/extended,
rather low priority)
- [ ] (SCOPE CREEP) Modify envirosuit helmet sprites to have a
transparent visor
- [ ] Glowing eyes/mouth marking
- [x] More cargo content with plasma tanks / envirosuits
- [x] Plasmaman survival kit like slime
- [x] Additional plasma tanks
- [ ] (SCOPE CREEP) Plasmaman EVA suits
- [x] ~~Add envirosuits to clothesmate~~
- [x] Add more plasma tanks to random lockers and job lockers
- [x] Turn envirosuit auto-extinguish into extinguish action
- [x] move self-extinguish verb stuff to shared for prediction of the
verb
- [x] move self-extinguisher stuff away from extinguisher namespace
- [x] unique sprite for self-extinguish icon
- [x] ~~IDEA: purple glowy fire extinguisher ~~
- [x] on self-extinguish, check for pressure immunity OR ignite from gas
immunity properly
- [x] See envirosuit extinguish charges in examine
- [x] Milk heals on ingestion
- [x] Plasma heals on ingestion
- [x] Self-ignition doesn't occur on a stasis bed
- [x] ~~Self-ignition doesn't occur when dead~~
- [x] Guidebook entry
- [x] Make self-ignition ignore damage resistances from fire suits
- [x] ~~Make self-ignition ignore damage resistances from armor~~
- [x] ~~Unable to rot?~~
- [x] Make the envirosuit helmet toggle on for the character dummy in
lobby
- [ ] (SCOPE CREEP) One additional Plasmaman trait
- [x] ~~Showers extinguish water as well as water tiles~~
- Unnecessary as stasis beds now prevent ignition, allowing surgery on a
plasmaman on stasis beds.
- [x] Unique punch animations for Plasmafire Punch/Toxoplasmic Punch
traits
- [x] Actually remove toxoplasmic it's just slop filler tbh
- [ ] Talk sounds
- [ ] Normal
- [ ] Question
- [ ] Yell
- [x] Positive moodlet for drinking milk / more positive moodlet for
drinking plasma
- [x] Increase moodlet bonus and also minimum reagent required for the
plasma/milk moodlets
- [x] Increase fire rate base stacks on ignite cause putting out your
helmet for a few secs isn't that dangerous due to the fire stacks
immediately decaying
- [x] I think halving firestack fade from -0.1 to -0.05 might work to do
the same thing too
- [ ] (SCOPE CREEP) Get bone laugh sounds from monke
'monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg'
- [ ] (SCOPE CREEP) When EVA plasmaman suit is added, 25% caustic resist
- [x] Envirosuit helmet
- [x] Equivalent of 100% bio / 100% fire / 75% acid resist
- [x] Envirosuit
- [x] Equivalent of 100% bio / 100% fire / 75% acid resist
- [x] Envirogloves
- [x] Equivalent of 100% bio / 95% fire / 95% acid resist
- [x] Put breath mask back on
- [x] Refactor: put body parts covered data into component instead of
being hardcoded
</details>
## Media
**Custom Plasmaman Outfits**
All of these use the same **absolutely massive** [envirosuit
RSI](0c3af432df/Resources/Textures/Clothing/Uniforms/Envirosuits/color.rsi)
and [envirohelm
RSI](0c3af432df/Resources/Textures/Clothing/Head/Envirohelms/color.rsi)
to quickly create the envirosuits that didn't exist in SS13 where the
envirosuit sprites were ported.
From Left to Right: Magistrate, Prison Guard, Boxer, Reporter, Logistics
Officer
<img width=200px
src="https://github.com/user-attachments/assets/bf990841-7d9e-4f4e-abae-8f29a3980ca1">
<img width=200px
src="https://github.com/user-attachments/assets/07ca7af7-4f43-4504-9eac-4ca9188ae98e">
<img width=200px
src="https://github.com/user-attachments/assets/0d20332c-826f-4fec-8396-74e84c23b074">
<img width=200px
src="https://github.com/user-attachments/assets/1634364e-7cb3-457b-b638-e1b562b7c0c5">
<img width=200px
src="https://github.com/user-attachments/assets/c2881764-f2fa-4e40-9fbf-35d1b717c432">
**Plasmaman Melee Attack**
https://github.com/user-attachments/assets/6e694f2c-3e03-40bf-ae27-fc58a3e4cb6c
**Chat bubble**
<img width=240px
src="https://github.com/user-attachments/assets/e3c17e6d-5050-410f-a42c-339f0bfa30a1">
**Plasmaman Body**
<img width=140px
src="https://github.com/user-attachments/assets/7ed90a47-9c33-487d-bd44-c50cec9f16dd">
With different colors:
<img width=140px
src="https://github.com/user-attachments/assets/0a28068e-7392-4062-950b-f60d2602da84">
<img width=140px
src="https://github.com/user-attachments/assets/9b652311-0305-4ec0-be60-e404697617a2">
**Skeleton Language**

**(Bonus) Skeleton chat bubble**
<img width=240px
src="https://github.com/user-attachments/assets/a2e2be5c-f3ae-49d9-b655-8688de45b512">
**Self-Extinguish**
https://github.com/user-attachments/assets/6c68e2ef-8010-4f00-8c24-dce8a8065be8
The self-extinguish is also accessible as a verb, which also means that
others can activate your self-extinguish if they open the strip menu.
<img width=200px
src="https://github.com/user-attachments/assets/291ab86d-2250-46ec-ae0c-80084ab04407">
The self-extinguish action has different icons depending on the status
of the self extinguish.
Left to right: Ready, On Cooldown, Out Of Charges
<img
src="https://github.com/user-attachments/assets/0340de8a-9440-43b1-8bff-1c8f962faa0c">
<img
src="https://github.com/user-attachments/assets/11f73558-6dc1-444d-b2ef-2f15f55174ca">
<img
src="https://github.com/user-attachments/assets/030ed737-f178-4c60-ba0c-109659e7d9cb">
**Envirosuit Extinguisher Refill**
<img width=300px
src="https://github.com/user-attachments/assets/9379294b-e3f3-436d-81bc-2584631869ef">
<img width=300px
src="https://github.com/user-attachments/assets/807b9e9e-7b4b-4593-aa1f-d9d24ac6985c">
**Loadouts**
<img width=400px
src="https://github.com/user-attachments/assets/55713b87-29bb-41b3-b7a3-88fbc6e5e797">
<img width=400px
src="https://github.com/user-attachments/assets/ab1757fa-9b70-4a66-b5ae-20fd9cabe935">
<img width=400px
src="https://github.com/user-attachments/assets/aacc4cf7-9ce1-4099-b8c7-108bef1f3bde">
<img width=400px
src="https://github.com/user-attachments/assets/58604dc2-82ef-4d42-b9e2-639548c93f40">
**Plasma Envirosuit Crate**
<img width=400px
src="https://github.com/user-attachments/assets/fa362387-9c10-47c3-b1af-2c11e6b00163">
<img width=400px
src="https://github.com/user-attachments/assets/bf773722-9034-4469-967d-e00dbf8c77a7">
**Internals Crate (Plasma)**
<img width=400px
src="https://github.com/user-attachments/assets/fcd4ff2e-09e9-423a-9b21-96817f6042a4">
<img width=400px
src="https://github.com/user-attachments/assets/bf773722-9034-4469-967d-e00dbf8c77a7">
**Glow In The Dark**

## Changelog
🆑 Skubman
- add: The Plasmaman species has arrived! They need to breathe plasma to
live, and a special jumpsuit to prevent oxygen from igniting them. In
exchange, they deal formidable unarmed Heat damage, are never hungry nor
thirsty, and are immune to cold and radiation damage. Read more about
Plasmamen in their Guidebook entry.
- tweak: Internals are no longer toggled off if you take your helmet off
but still have a gas mask on and vice versa.
- tweak: Paradox Anomalies will now spawn with the original person's
Loadout items.
- fix: Fixed prisoners not being able to have custom Loadout names and
descriptions, and heirlooms if they didn't have a backpack when joining.
---------
Signed-off-by: Skubman <ba.fallaria@gmail.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit e68e0c3f4b9cf263e07efc888b32a091df62fb51)
# Description
This ports Playing Cards from:
Estacao Pirata...
Frontier...
and GoobStation...
More specifically, ports
https://github.com/Goob-Station/Goob-Station/pull/1215 and
https://github.com/Goob-Station/Goob-Station/pull/1311 sequentially.
In short...
- Adds 3 skins of the playing cards: Nanotrasen, Syndicate, and Black.
- NT can be obtained as an item in your loadout but is locked behind a
command job.
- Syndicate can be obtained as a pointless item in the uplink for 1 TC.
- Black can be obtained both as an item in your loadout and from the
Games Vendor.
---
# TODO before review
<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->
- [X] De-namespace all of (_)EstacaoPirata? (not required, it is an EE
fork)
- [X] **_TO MAINTAINERS/CONTRIBS, NEED YOUR INPUT!!!_**: See
`Content.Client/Inventory/StrippableBoundUserInterface.cs:220`'s "DRAFT
TODO". Basically its me asking how to involve the thieving trait in the
omission of the playing cards in the strip menu. Currently, it does not
take into account the trait and simply obscures. (prolly dont take the
trait into account, obscure regardless)
- [X] Figure out what to do with the Nanotrasen deck variant: should it
remain free like the black deck or restricted like the syndicate? Locked
behind any command job? (prolly this)
- [X] Get media actually filled in
---
<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Playing Cards. You may get one in the Games Vendor or as an item
in your loadout.
---------
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 9b5cce20f185d8da3cdddd2fa6cad14ccd38db77)
Hate having to use the same buffer for pills? Want sorting and container
solutions for output? No need to wait _any_ longer! A brand new pill
buffer, a sort feature _for_ the new pill buffer **and** you have your
amount buttons back!
Showcase:
https://ptb.discord.com/channels/1218698320155906090/1218698321053356060/1332224976803074123🆑
- add: A new ChemMaster experience has been granted to the people of
Einstein Engines. Includes a pill buffer!
(cherry picked from commit 35c26cf0c907542f1580ab4d026d33e98863fd98)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Adds cosmetic pronouns, visible through examining people (if they have
any) as a PushMarkup.
Adds Station AI/borg name customization.
CCVars:
customize.allow_cosmetic_pronouns (default false)
customize.allow_custom_station_ai_name (default false)
customize.allow_custom_cyborg_name (default false, for borgs, mediborgs,
etc)
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Added cosmetic pronouns. (disabled by default)
- add: Added Station AI name customization through character
customization. (disabled by default)
- add: Added Cyborg name customization through character customization.
(disabled by default)
(cherry picked from commit 07fb6bc9a1a770f969bf44690676128970cb9eb7)
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
We like mechs here, yeah?
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑 Mocho, John Space
- tweak: The H.O.N.K. has received an airtight cabin for honk operations
in outer space.
- add: Added the Ripley MK-II, a heavy, slow all-purpose mech, featuring
a pressurized cabin for space operations.
- add: Added the Clarke, A fast moving mech for space travel, with built
in thrusters (not certain if they work properly though :trollface:)
- add: Added the Gygax, a lightly armored and highly mobile mech with
enough force to rip walls, or someone's head off.
- add: Added the Durand, a slow but beefy combat suit that you dont want
to fight in close quarters.
- add: Added the Marauder, a specialized mech issued to ERT operatives.
- add: Added the Seraph, a specialized combat suit issued to ???
operatives.
- add: The syndicate has started issuing units under the codenames "Dark
Gygax" and "Mauler" to syndicate agents at an introductory price.
- add: The exosuit fabricator can now be emagged to reveal new recipes.
- add: There are 4 new bounties cargo can fulfill for mechs. Feedback on
the cost/reward is welcome!
---------
Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: John Space <bigdumb421@gmail.com>
Co-authored-by: gluesniffler <159397573+gluesniffler@users.noreply.github.com>
Co-authored-by: ScyronX <166930367+ScyronX@users.noreply.github.com>
(cherry picked from commit e3003b67014565816e83556c826a8bba344aac94)
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Ports https://github.com/space-wizards/space-station-14/pull/32294
Ports https://github.com/ss14-harmony/ss14-harmony/pull/310 (and
everything needed for it to function)
Early-merges
https://github.com/space-wizards/space-station-14/pull/34302
Adds the ability for multiple central command maps that get randomly
selected.
Tested and works.
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑 Several contributors
- add: Added a new central command map that is randomly picked alongside
the old one (thank you to Spanky from Harmony)
- add: Added Advanced SMES for mappers.
- add: Added the atmospheric network monitor for seeing what the
temperature, moles, and pressure is on every pipe everywhere through a
computer.
- add: Nukie med bundle now contains a compact defibrillator.
- add: Ported a better mapping editor.
- add: Added the throngler plushie.
- remove: Removed the Throngler as a possible loot spawn for gamble
crates.
---------
Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 9272f65b64392f66a7cd4fd7c84bb152dc93b65a)
# Description
This PR fully replaces the "Tier 3 Tech Lockout" with a research
softcap. How it works is that technologies are allowed to set a softcap
contribution, meaning that they multiplicatively increase the cost of
all other research by a certain amount. By default, this is done by all
Tier 3 Technologies. Essentially, this means that you're no longer
limited to a single research category's tier 3 selections. Instead the
costs of research increase the more capstones you unlock. The current
cost increase for research is displayed on the console.
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
# Changelog
🆑
- remove: Removed the "Tier 3 Tech Lockout" mechanic. You are no longer
limited to 1 discipline worth of t3 research.
- add: Research is now "Softcapped" by Tier 3 unlocks. Each unlocked
Tier 3 technology multiplicatively increases the cost of all other
research. Rushing a capstone can be quite expensive, as will be getting
multiple capstones. I hope you're glad that you can build more than one
prober now without guaranteeing the station will explode.
(cherry picked from commit b7da1f4ff64ca3ce8c4dc4545186573174b3e89c)
The F3 coords manager is blocked if you're not an admin. This check happened even when playing a replay, where you actually aren't. There's now a check to make sure you are actually server-connected-to-game before running the logic.
Also moved it to a manager because this *shouldn't be a bloody entity system in the first place*.
(cherry picked from commit 3697509682a3d6f76bf9ea96dc9c3bf7b8739fab)
* Add mapping editor (#757)
* Remove mapping actions, never again
* Cleanup actions system
* Jarvis, remove all references to CM14
* Fix InventoryUIController crashing when an InventoryGui is not found
* Rename mapping1 to mapping
* Clean up context calls
* Add doc comments
* Add delegate for hiding decals in the mapping screen
* Jarvis mission failed
* a
* Add test
* Fix not flushing save stream in mapping manager
* change
* Fix verbs
* fixes
* localise
---------
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
(cherry picked from commit cb6a0902e7fd5a071d33eafd5e1d4c3becdcdbb7)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Changes how the ChemMaster works:
1. Removes the amount buttons and instead uses a textbox that resets
whenever a value is entered or focus ends.
2. Shrinks the ChemMaster again.
3. Adds sorting options, including for quantity, last added, and a sort
option for the (default) alphabetical order.
4. Sorting options save via the ChemMaster itself, not per-user.
Video showcase:
https://discord.com/channels/1218698320155906090/1218698321053356060/1330129166384894046
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Added sorting options to the ChemMaster.
- add: Added the ability to input custom amounts into the ChemMaster via
a textbox that resets on change.
- tweak: The width of the ChemMaster UI has been lowered.
- remove: Removed quantity buttons from the ChemMaster.
---------
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 9baa214ac1c1628a24470d9aeeeafa1d7893253b)
# Description
This PR adds in the classic Asimov's Three Laws of Robotics as a
standard lawset for Synthetics. The laws are given thus.
Law 1: A robot may not injure a human being or, through inaction, allow
a human being to come to harm.
Law 2: A robot must obey the orders given it by human beings except
where such orders would conflict with the First Law.
Law 3: A robot must protect its own existence as long as such protection
does not conflict with the First or Second Law.
The localizations for them are intentionally left exactly-as-is from the
original 3 laws written by Isaac Asimov. Yes this is totally different
from "Crewsimov", yes this does actually mean an Asimov AI isn't
required to obey orders given to it by a Moth. Yes this does actually
mean that the AI isn't allowed to "Harm" nukies so long as it can verify
that the Nukie in question is a human.
Also includes this cherry-pick
https://github.com/space-wizards/space-station-14/pull/31040
Because this is a fix for a crash that was happening in my dev
environment...
# TODO
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
# Changelog
🆑
- add: Added the classic Asimov's Three Laws of Robotics to the game.
- add: AI now starts with Asimov laws by default, instead of
"Crewsimov".
---------
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
(cherry picked from commit c1c61e96094cde0b15c80bd66e39e2ad8dcb62c5)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
Fixed not having enough space for longer chemicals on the ChemMaster UI.
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- fix: Fixed not having enough space for longer chemicals on the
ChemMaster UI.
(cherry picked from commit 2ce71b44baa2a8856f851d6953577cab1300dd08)
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑 sleepyyapril, Stop-Signs, Memeji
- add: Changed the Warden suit's capabilities. (Original author:
Stop-Signs)
- add: Repeater, Argenti, and 45 magnum rubber box to Bartender's
loadout.
- add: Red cloak to loadout (Port from Floof PR #390)
- add: Witch Robes to loadout (Port from Floof PR #390)
- add: Sawed-off PKA (Port from Floof PR #390)
- add: The ChemMaster now has 20, 75, and 80 unit options available.
- tweak: Made the ChemMaster wider.
- fix: Ported Frontier fix to mag visuals on specific guns.
- fix: Fixed heirlooms flickering negative mood when the moodlet ended.
---------
Signed-off-by: Stop-Signs <stopsign221@gmail.com>
Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: Stop-Signs <stopsign221@gmail.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: ErhardSteinhauer <65374927+ErhardSteinhauer@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit a9f7fe8e9a337d13ef34ec643064432d0cec2b60)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
This PR adds credits for lobby screens, the same as lobby songs have.
This works by adding `name` and `artist` to the LobbyBackground
prototype and storing the prototype rather than just the path to the
texture.
---
<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->
<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>
---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Added credits for lobby screens.
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 86f9dfd53ea28d382156b2fd2b999f26330d0de4)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->
# Description
<!--
Explain this PR in as much detail as applicable
Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Adds frequencies to handheld radios. Ports [this
PR](https://github.com/new-frontiers-14/frontier-station-14/pull/1833)
with changes.

---
# Changelog
<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->
🆑
- add: Added handheld radio frequencies, accessible by pressing your
"Use Item" key while holding one.
---------
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
(cherry picked from commit 19a350fc9ae0d958406b3d6018f71ab8af5447c4)