Commit Graph

4060 Commits

Author SHA1 Message Date
Unkn0wn_Gh0st
e05ee08c05 Frontier Port: Pretty Money (#2398)
* Frontier Port: Pretty Money

* Update Resources/Prototypes/Entities/Objects/Misc/space_cash.yml

Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
Signed-off-by: Unkn0wn_Gh0st <shadowstalkermll@gmail.com>

* Updated 100k texture

---------

Signed-off-by: Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
(cherry picked from commit da772611f8b2b02f21f801ccf255220602e850e5)
2025-02-05 18:35:09 +03:00
sleepyyapril
bfc2de77ee ChemMaster Shorten Amounts (#1711)
<!--
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)
2025-02-05 18:17:55 +03:00
VMSolidus
cae9832a7d New Unpainted Hardsuits (#1692)
# 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>

![image](https://github.com/user-attachments/assets/80bb19f8-58fa-4b2c-b250-4f587cee1283)

![image](https://github.com/user-attachments/assets/46f131e7-ce82-4398-b5ed-d1f08343ebdf)

![image](https://github.com/user-attachments/assets/1fb971d9-816c-4ea5-b085-fd9e58a25152)

![image](https://github.com/user-attachments/assets/fb22bcdd-f230-49fd-b14d-22e0994dc629)

New unpainted Elite Tacsuit

![image](https://github.com/user-attachments/assets/0dc14c82-3519-46a1-84bf-2f60063b27a8)

</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)
2025-02-05 18:14:17 +03:00
VMSolidus
fe8a9cdb30 Mind Over Machine, Machine Over Mind (#1665)
# 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)
2025-01-31 20:18:36 +03:00
sleepyyapril
d75597e28b Display the Current Version in the Changelog Window (#34556) (#1678)
ver 0.1 no longer

Co-authored-by: Milon <milonpl.git@proton.me>
(cherry picked from commit 7d345cfc8149064fc6218fdf2800491234d6ed24)
2025-01-29 20:29:09 +03:00
Skubman
f4192fa06e Ghost Bar!!!! (From Goobstation) (#1675)
# Description

Adds the Ghost Bar from Goob LRP. Upon spawn, the character's loadouts
and traits will also be applied as if their job was their Ghost Bar job.

Adjusts the weights for kill objectives, re-enabling the kill objective
and reducing the weight of Teach a Lesson now that there's more things
to do after getting round removed.

Goobstation cherry-picked PRs:
- https://github.com/Goob-Station/Goob-Station/pull/454
- https://github.com/Goob-Station/Goob-Station/pull/464
- https://github.com/Goob-Station/Goob-Station/pull/689 (partially
applied to Ghost bar files only)
- https://github.com/Goob-Station/Goob-Station/pull/963
- https://github.com/Goob-Station/Goob-Station/pull/974
- https://github.com/Goob-Station/Goob-Station/pull/982 (partially
applied to Ghost bar files only)
- https://github.com/Goob-Station/Goob-Station/pull/1288 (partially
applied to Ghost bar files only)

Wizden cherry-picked PRs:
- https://github.com/space-wizards/space-station-14/pull/29103 (for the
foam force rifle that spawns in the Ghost bar)

## Media

**Ghost Bar UI**

![image](https://github.com/user-attachments/assets/e46603b9-1798-4376-8af5-3df518ede76c)

**Ghost Bar In-Game**

![image](https://github.com/user-attachments/assets/14dbdc0a-9d75-487b-994e-1b1eabe7bff3)

Notice how the Ghost Bar character has loadout items in the backpack and
the Skeleton Accent trait.

## 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
-->

🆑 Skubman
- add: Ghost Bar! When you die, you can now go to the Ghost Bar to chill
and talk about the round with other ghosts. (by Aidenkrz)
- add: Foam Force rifle to cargo lottery! (by IProduceWidgets)
- add: Re-enabled the Kill objective for traitors.
- tweak: Reduced the chances of traitors getting the "Teach a Lesson"
objective.

---------

Co-authored-by: Aiden <aiden@djkraz.com>
Co-authored-by: Rank #1 Jonestown partygoer <mary@thughunt.ing>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: Aviu00 <93730715+Aviu00@users.noreply.github.com>
(cherry picked from commit 0b4ceb21cc406cd39b894afe79decf40c2366369)
2025-01-29 20:27:23 +03:00
sleepyyapril
c2a702cf6c Fix Chemmaster Two (#1667)
simplify this shitcode

i borked it last time, sorry

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit af62f691553f2981ed2e64c256adb5a23750ec88)
2025-01-29 20:24:23 +03:00
sleepyyapril
eb30763d2b Hotfix ChemMaster (#1663)
🆑
- fix: ChemMaster no longer loses your last added progress because of a
silly goose move.

(cherry picked from commit 9a0c6b2f6cf8113a1a738f39479023a469966d7f)
2025-01-29 20:24:02 +03:00
SX-7
ff3595de9e Tajara (#1647)
# Description

~~On user end Felinids are removed and replaced with Tajara, mostly
inspired by the ParadiseStation sprites.~~

~~Most things from Felinids are ported over, either being untouched (in
which case they're left in the nyanotrasen directory), or somewhat
modified and copied to tajara directories. This is done because both
shadowkin and humans reference these files quite a bit, so we don't want
to break anything forwards/backwards,~~

~~Under the hood, felinid components are untouched, just simply set to
`abstract: true` and `roundstart: false`, once again to prevent any
breakage.~~

There's been like 50 changes all the ways, but basically, felinids are
staying, tajara get a few languages, they also are more "specialized"
than felinids due to big upsides and downsides (funny :)

---

# TODO

- [X] Add tajara
~~- [X] Hide felinids~~
~~- [x] Analyze and find now-orphaned felinid
protorypes/textures/references and remove them (optional)~~
- [x] Fix graphical bugs (if any)
- [x] Ensure the code structure is compliant with repo practices

---

<details><summary><h1>Media</h1></summary>
<p>

In captain attire

![{3169C46E-BABB-466F-BD75-D8A00D8F9105}](https://github.com/user-attachments/assets/74a7c43f-9d5d-440f-9c18-f1eb386ad3d7)
Testing emotes and languages

![{7EE18197-E788-46BF-9DA3-97B0718A2F0B}](https://github.com/user-attachments/assets/74dd9c17-92a2-4760-99f8-1bb893fa969d)
Emotes still working, same with hairballs

![{346EB863-EF92-4D82-8E72-409437372DC3}](https://github.com/user-attachments/assets/91b61aae-d460-4373-a0ba-79cbd64f8ec4)
Few character selector pictures
- The previously shown off tajaran

![{559C39A8-5333-4787-A3B7-2F882EB6B5E2}](https://github.com/user-attachments/assets/38d77c48-caa2-461f-858a-a6b1a235cc0f)
- Markingless male body

![{9D762061-C1F8-40A5-9F14-5809E803820C}](https://github.com/user-attachments/assets/719c18ba-0230-4b17-9166-fdd15cb67526)

![{98AFAEF1-D49A-4951-A18E-5E55ACC05A26}](https://github.com/user-attachments/assets/6f848c0a-9a1e-4aed-aeb7-0bbf7c1dab62)
- Markingless female body

![{8F42252C-DDC4-43FD-8B8F-BFF0FBD971CD}](https://github.com/user-attachments/assets/92ea11bc-2ddc-4569-b166-0380b34ee946)

![{EE2B152D-97AD-4C39-B51E-8D89E4C4B097}](https://github.com/user-attachments/assets/c6f3a8ee-20be-486a-bea8-b862cf2ea12e)
- Traits are updated, as is the case with other texts

![{6F1E0309-7262-48BA-ABF6-C2048E087437}](https://github.com/user-attachments/assets/778ede7d-3069-4b81-b09d-32aadb6c6b76)
~~- And a neon colored specimen to show off some markings~~ No longer
the case, fur hue is clamped to some reasonable colors

![{381F7D38-1ABE-4434-8F29-95908E8F1A4B}](https://github.com/user-attachments/assets/1ef52004-db37-4127-a113-0b5640087cc1)

</p>
</details>

---

# Changelog

🆑
- add: Added Tajara and related content

---------

Signed-off-by: SX-7 <92227810+SX-7@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit b7660b95566c8e138cb458a3d70732c1d3ea4602)
2025-01-29 20:19:56 +03:00
Skubman
a46b4f2b5a New Species: Plasmaman (#1291)
# 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**

![image](https://github.com/user-attachments/assets/89b2b047-3bfa-4106-926e-6c412ed6e57c)

**(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**

![image](https://github.com/user-attachments/assets/9728eb33-55d5-4f82-92ac-3a7756068577)

## 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)
2025-01-29 20:19:20 +03:00
RadsammyT
bb612d3ac7 [Port] Playing Cards (#1451)
# 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>

![image](https://github.com/user-attachments/assets/66c94a1d-4389-4a65-a547-c11c54efac42)

</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)
2025-01-29 20:10:09 +03:00
sleepyyapril
5235c08ade ChemMaster Improvements (#1650)
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)
2025-01-29 20:09:45 +03:00
Eris
d6f3265e83 MODsuits (Port From Goob #1242) (#1640)
# Description

Ports MODsuits from Goobstation PR
https://github.com/Goob-Station/Goob-Station/pull/1242. The PR author
has confirmed that he is okay with me doing this.

---

# TODO

- [X] Port in sprites
- [x] Port in YMLs
- [X] Port code
- [x] Port code PATCHES
- [x] Update EE with required fixes

---

<details><summary><h1>Media</h1></summary>
<p>

## Modsuit crafting

https://github.com/user-attachments/assets/8ff03d3a-0fc1-4818-b710-bfc43f0e2a68

## Modsuit sealing

https://github.com/user-attachments/assets/6671459a-7767-499b-8678-062fc1db7134

</p>
</details>

---

# Changelog

🆑
- add: Modsuits have been ported from Goobstation!

---------

Signed-off-by: Eris <erisfiregamer1@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit cb06c41fc07275e1f15af916babb44368c0c26c2)
2025-01-29 20:09:26 +03:00
DocNITE
05c30059d3 Better Progress Bar (#1648)
# Description

DoAfter progress bar like in ss13 forks.

---

![2025-01-24_01-04_2](https://github.com/user-attachments/assets/df524426-cecd-4a32-a3b3-f588f11684b1)

![2025-01-24_01-03](https://github.com/user-attachments/assets/62dcb13a-4259-4980-8aa2-87de6e77a226)

![2025-01-24_01-04](https://github.com/user-attachments/assets/493c0c54-4225-40c9-8518-4da613bb2e12)

---

# Changelog

Fuck it, no need this, im not a contributor.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 1ef0bd0f47aadfb3b0ea8f48c8c693c3f9118ad4)
2025-01-25 14:46:18 +03:00
VMSolidus
67ec276ea8 MathNet.Numerics Apparently Needed To Be In Server And Client Too (#1643)
Whoops. To be fair it's my first time adding something like this to a
project. :)

(cherry picked from commit 8e4fc9d6a2e58a8cd9ed609be00d417a2acfe0d5)
2025-01-25 14:46:09 +03:00
sleepyyapril
529420cc05 Player Customization (#1626)
<!--
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)
2025-01-23 08:08:54 +03:00
sleepyyapril
6249942d3e Goob Mechs (#1611)
# 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)
2025-01-23 08:06:20 +03:00
Timfa
0df12ec24a Gladiabot (#1548)
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: RedFoxIV <38788538+RedFoxIV@users.noreply.github.com>
(cherry picked from commit 01d1ec4d4b04f6d76f239ec0da0970dc705736ef)
2025-01-23 08:03:54 +03:00
sleepyyapril
d6e00dabad Kill Mana (#1623)
it is genuinely so bad

🆑
- remove: Remove mana.

(cherry picked from commit 89e8de3b6006ca6d4551546bf8a22c7ed7244aba)
2025-01-23 08:02:50 +03:00
Spatison
0eb98e8e63 fix upstream 2025-01-21 14:57:03 +03:00
John Willis
c565776b57 Psionics Registry Computer, PsiWatch, and Epi-Glasses/Epi-HUD (#1598)
# Description
This adds the wonderful `Psionics Registry Computer` which allows you
to, just like Criminal Records, mark people that will show their icons
to other individuals wearing the appropriate gear, and will allow you to
keep track of such individuals in a similar way by making a `PsiWatch`
app that will show the reasons.

For the purposes of easement, I've left the fingerprints and DNA in
there, but individuals will not show up with it in the actual file. The
game would just crash when I removed the filters, so I left them in. The
dropdown also just looked cleaner when it was there instead of removing
it and replacing it with a label.

I've recolored the sprites for the sec-glasses and sec-HUD to make the
epi-glasses and epi-HUD using Epistemics colors.
I've recolored the sprite for the CriminalRecords computer to look
different and be cool.

---

# TODO
A list of things I've done split into categories.

### Spriting
- [x] (Recolor) Sprite the epi-glasses and epi-HUD.
- [x] Sprite the PsionicsRecords computer screen.
- [x] Sprite the Psionics Status icons.
- [x] Change the sprite for the Psionics Abusing (it is hard to tell any
difference from suspected right now).

### Records
- [x] Set up records XAML that basically duplicates the Criminal
Records.
- [x] Remove History (not necessary).
- [x] Change all the naming schema to match.
- [x] Change the categories and setup reason-requirement for each
submission type.
- [x] Change the "reason" to "psionics" so it is more intuitive.

### Computer Setup
- [x] Setup computer to show UI.
- [x] Setup system to report to report to Epistemics (Science) radio
when anything is changed.
- [x] Setup the system to only accept Epistemics (Research) access.
- [x] Setup the computer board.
- [x] Setup the sprites for the computers.

### Equipment and Icons
- [x] Create the icons and ensure the ShowPsionicsRecordIcons prototype
works.
- [x] Create the entity prototypes for the glasses and HUD in the game
to show textures.
- [x] Set it up so the glasses and HUD show the user the icons when
they're wearing them (having hard time fixing this at 06:00 in the
morning).

### PDA App
- [x] Setup the PDA app to mimic the SecWatch app as its own (PsiWatch).
- [x] Add the PDA app cartridge to Chaplain, Mantis, Cataloguer, and
Mystagogue.
- [x] Add cartridge to the Mystagogue locker (so they can give others
it).

### Loadouts
- [x] Add the epi-HUD to the Chaplain, Mantis, Cataloguer and
Mystagogue.
- [x] Add the epi-glasses to the Mystagogue.
- [x] Add the epi-glasses to Chaplain, Mantis, and Cataloguer (for 3
points).

### Mapping
- [x] Add the Psionics Registry Computer to every map.

### Miscellaneous Fixes/Changes
- [x] Make the computer only work for Chaplain (Chapel), Cataloguer
(Library), Mantis (Mantis), and Mystagogue (ResearchDirector).
- [x] Fix Chaplain PDA (did not have any programs installed
automatically, now it does).

---

# Media
I will add more media when I finish the rest. For now, it's just us.

<details><summary><h3>Registry Working</h3></summary>
<p>

https://github.com/user-attachments/assets/f534a1b6-6873-4bcd-9fe5-c7138069ecc0

</p>
</details>
<details><summary><h3>Loadouts and PsiWatch</h3></summary>
<p>

Cataloguer

![image](https://github.com/user-attachments/assets/3a5c3b2c-13e8-470f-8ea7-cff828f03e8d)
Chaplain

![image](https://github.com/user-attachments/assets/35a1255c-9447-4aeb-b200-48f2d00782e1)
Mantis

![image](https://github.com/user-attachments/assets/155ac859-10fd-4233-a84d-31f8f32b2f71)
Mystagogue

![image](https://github.com/user-attachments/assets/ddfd178f-2d79-4e1f-9226-51352eb8c0c9)

---

No Users in PsiWatch

![image](https://github.com/user-attachments/assets/63186e30-8c04-409b-8478-eb6bc9006f5f)
Suspected in PsiWatch

![image](https://github.com/user-attachments/assets/e9009714-0ed5-496f-a836-04f01f9e13e8)
Registered in PsiWatch

![image](https://github.com/user-attachments/assets/5f565ec6-4f5f-4303-89cc-f9201de01568)
Abusing in PsiWatch

![image](https://github.com/user-attachments/assets/d2f623b4-f2fa-419b-9b3e-a77001aff8ae)
PsiWatch in PDA

![image](https://github.com/user-attachments/assets/262ffd2e-f798-41db-8e45-4b64613aac0d)
Picture of the PDAs and PsiWatch Cartridge

![image](https://github.com/user-attachments/assets/ed334e8d-6236-4252-82b8-327f59609751)

---

Mystagogue Lockers with PsiWatch Cartridge

![image](https://github.com/user-attachments/assets/e56cef9c-2d9e-46bb-87ca-3e6cd2c85240)

</p>
</details>
<details><summary><h3>Mapping Locations</h3></summary>
<p>

Arena

![image](https://github.com/user-attachments/assets/b24e997d-051d-4def-a28c-dc1029566f0d)
Asterisk

![image](https://github.com/user-attachments/assets/6e2faf02-350e-4608-b629-c402d8c2a0fc)
Core

![image](https://github.com/user-attachments/assets/0d43e3a0-36c2-4c51-9745-d2a4e1d70217)
Edge

![image](https://github.com/user-attachments/assets/478180e2-e63a-4d9a-bf13-365b2648778b)
Europa

![image](https://github.com/user-attachments/assets/a385fc48-016e-40bd-8dbc-dc3904b62f05)
Gaxstation

![image](https://github.com/user-attachments/assets/207c267b-bf01-4ba5-b829-034ad26d48ef)
Glacier

![image](https://github.com/user-attachments/assets/2432840a-2ecc-4957-b82e-ed8406453fbc)
Hive

![image](https://github.com/user-attachments/assets/d03ec8a0-de82-4f0f-af90-3bb3e76c1ff7)
Lighthouse

![image](https://github.com/user-attachments/assets/3a6b8cc0-5692-4e12-a90f-8d0427469cd5)
Meta

![image](https://github.com/user-attachments/assets/c8092fd1-a2cb-4b07-966c-c13a673f16ac)
Pebble

![image](https://github.com/user-attachments/assets/084d76a1-b458-4693-a22e-3787a00f69fd)
Radstation

![image](https://github.com/user-attachments/assets/a98b48dc-70e3-429c-b2f5-99ba2a5f194a)
Saltern

![image](https://github.com/user-attachments/assets/b7e52f6f-8d55-476f-9991-de72c559fc16)
Shoukou

![image](https://github.com/user-attachments/assets/2495e13f-f07a-414d-993e-7e29e48c7f9c)
Submarine

![image](https://github.com/user-attachments/assets/08a92a84-513f-40d2-8ed3-313189805838)
Tortuga

![image](https://github.com/user-attachments/assets/0009b512-ff07-4d17-8825-71a182cb67dc)

</p>
</details>

---

# Changelog
🆑
- add: Added Psionics Registry Computer. Now you can record Psionics
users in Epistemics.
- add: Added epi-glasses and epi-HUD to see Psionics Users icons.
(Chaplain, Cataloguer, Mantis, and Mystagogue have access in loadout).
- add: Added PsiWatch. Now you can see the Psionics Records data on your
PDA!
- fix: Fixed Chaplain not having any programs in their PDA on spawn.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

(cherry picked from commit fc7ecc44a748f8ef7a4cec613033f51acf238288)
2025-01-20 21:39:09 +03:00
sleepyyapril
a4ab8448b9 Mapping Mini-Wizmerge & New Central Command (#1610)
# 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)
2025-01-20 21:34:45 +03:00
VMSolidus
0acf7c5b4b Replace Tech Lockout With Softcap (#1605)
# 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>

![image](https://github.com/user-attachments/assets/e65fa1ee-c849-489c-b690-f7ce8d98b678)

</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)
2025-01-20 21:24:31 +03:00
sleepyyapril
b271af64da Fix Hissing & Another Airlock Error (#1596)
errors/test fail ops

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
(cherry picked from commit 7c5c4ba53b562720202937d19ae266b9e3c74f99)
2025-01-20 21:18:54 +03:00
metalgearsloth
fd96c031b3 Fix verb sub (#30667)
* Fix verb sub

Mapping casualty, verbs are weird.

* also this

(cherry picked from commit 39280652a695fd015aedf64088247f7437ef828b)
2025-01-20 21:18:49 +03:00
metalgearsloth
240235853b Fix verbs in mapping state (#30631)
(cherry picked from commit 42181ed75eddd4e90bf3029e6e803207c0ac7ce3)
2025-01-20 21:12:25 +03:00
Pieter-Jan Briers
9a0948ed37 Fix coords monitor in replays (#29512)
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)
2025-01-20 21:12:20 +03:00
DrSmugleaf
5abd427c35 Add mapping editor (#23427)
* 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)
2025-01-20 21:12:16 +03:00
sleepyyapril
853891dc37 Fix Airlock Error (#1593)
fixes the "missing layer" error

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
(cherry picked from commit d1fefc084d12f9f5fb27bb5acf87cba06539e8b7)
2025-01-20 21:09:36 +03:00
sleepyyapril
4bca17ccb0 ChemMaster+ (#1585)
<!--
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)
2025-01-20 21:08:25 +03:00
VMSolidus
11ac9a16fd Add Classic Asimov Laws (#1588)
# 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>

![image](https://github.com/user-attachments/assets/9276a514-78dc-4447-8324-4de6e28004af)

</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)
2025-01-20 21:08:17 +03:00
sleepyyapril
eab0eca223 Make Room for Longer Chem Names. (#1582)
<!--
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)
2025-01-20 21:05:38 +03:00
sleepyyapril
61bba20418 Downstream Port (#1509)
# 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)
2025-01-20 21:01:27 +03:00
Piras314
3b4af08ad6 Lobby Background Credits (#1558)
<!--
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>

![image](https://github.com/user-attachments/assets/6a348060-0ef2-4775-9adb-39a576a1c21e)

</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)
2025-01-20 21:01:09 +03:00
sleepyyapril
5eb30586c9 Handheld Frequencies (#1574)
<!--
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.

![image](https://github.com/user-attachments/assets/e39d8fce-7fa3-4e0a-918a-506b0446de35)

---

# 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)
2025-01-20 20:50:30 +03:00
Skubman
41fde3eb0b Martial Artist Rework + Fix MeleeWeapon Wizmerge Bugs (#1560)
# Description

Reworks the Martial Artist trait, making it a more impactful and
visually distinct trait.
- Left-clicks are now single-target power attacks, requiring less aim
than before.
- **50%** damage bonus reduced to **20%** damage bonus (same overall DPS
with next change).
- Gain **25%** attack rate bonus.
- The attack rate bonus helps make the trait feel and look distinct from
non-Martial Artist melee attacks.
- **50%** range bonus reduced to **10%** range bonus.
- The damage bonus is now also applied to Asphyxiation and Poison
damage, which Lamia unarmed attacks deal.
- Trait cost increased from **-3** points to **-5** points.
- Striking Calluses (which requires Martial Artist) cost reduced from
**-4** points to **-3** points to prevent the Martial Artist/Striking
Calluses combo from being too expensive. The combo used to cost **-7**
points, now it is **-8** points.

The reworked Martial Artist trait is also given to the Boxers, Martial
Artists and Gladiators.

Also reverted some wizmerge messery that messed up the melee attack rate
**again**, and messed up pistol whipping by making the cooldowns of
gunshots and melee attacks intertwined.

Also while we're at it, Natural Weapons Removal has been disabled for
all species whose damage is pure Blunt, including Diona, Dwarf, Arachne
and IPC. (IPC have 6 blunt so the trait would literally be a 0-point
negative trait for them)

## Technical Details

A new trait function has been added for Martial Artist:
`TraitModifyUnarmed`, which modifies the player entity's
`MeleeWeaponComponent`.

The Claws, Talons, Natural Weapon Removal, and Striking Calluses traits
have also been refactored under the hood to use `TraitModifyUnarmed`,
instead of replacing `MeleeWeaponComponent` which would wipe out all the
changes made by the Martial Artist trait.

## Media

### New Description

![martialartist](https://github.com/user-attachments/assets/de51530f-5f2a-41a8-b686-c12f746b5e4a)

### Martial Artist In Action

https://github.com/user-attachments/assets/7890aac2-2c74-4abd-be9f-b28c2922c865

### Striking Calluses New Description

![strikingcalluses](https://github.com/user-attachments/assets/bc15425e-3460-49f2-88f5-840c686e0053)

### Natural Weapons Removal New Description

![naturalweaponsremoval](https://github.com/user-attachments/assets/583adaa4-48c0-46e3-882b-1bb0f470018c)

# Changelog

🆑 Skubman
- add: Martial Artist Rework: Martial Artist now costs 5 points, but it
turns all unarmed melee attacks into single-target power attacks, with
20% bonus damage, 25% bonus attack rate and 10% bonus attack range.
- tweak: The reworked Martial Artist trait is now given for free to
Boxers, Martial Artists, and Gladiators.
- tweak: Martial Artists (the job) and Gladiators can now select the
Striking Calluses trait.
- tweak: The Martial Artist trait now applies bonus damage to the
Lamiae's unarmed Asphyxiation and Poison damage.
- tweak: The cost of Striking Calluses has been reduced from 4 points to
3 points.
- fix: Fixed a bug where slow weapons were fast and fast weapons were
slow.
- fix: You can pistol whip (right-click melee) immediately after firing
a gun again, and the cooldown on firing the gun after pistol whipping is
always 0.528 seconds again.
- fix: Prevented Dionas, Arachnae and IPCs, who all have pure Blunt
damage from selecting the redundant Natural Weapons Removal trait.

(cherry picked from commit 6c43d005e0804fe29007371a46a56e27bccbd4f8)
2025-01-20 20:50:21 +03:00
VMSolidus
4d2e140858 Glimmer Rework 1: "Swingy Glimmer" (#1480)
# Description

This PR brings back a feature that was present in the Psionic Refactor
Version 1, which ultimately never made it into the game. I have
substantially reworked the underlying math behind Glimmer, such that it
operates on a Logistic Curve described by this equation:

![GlimmerEquation](https://github.com/user-attachments/assets/b079c0f6-5944-408f-adf6-170b8472d6c2)

Instead of 0 being the "Normal" amount of glimmer, the "Normal" amount
is the "seemingly arbitrary" number 502.941. This number is measured
first by taking the derivative of the Glimmer Equation, and then solving
for the derivative equal to 1. Above this constant, glimmer grows
exponentially more difficult to increase. Below this constant, glimmer
grows exponentially easier to increase. It will thus constantly attempt
to trend towards the "Glimmer Equilibrium".

Probers, Drainers, Anomalies, and Glimmer Mites all cause glimmer to
"Fluctuate", either up or down the graph. This gives a glimmer that
swings constantly to both high and low values, with more violent swings
being caused by having more probers/anomalies etc. A great deal of math
functions have been implemented that allow for various uses for glimmer
measurements, and psionic powers can even have their effects modified by
said measurements.

The most significant part of this rework is what's facing Epistemics.
It's essentially no longer possible for Probers to cause a round-ending
chain of events known as "Glimmerloose". You can ALWAYS recover from
high glimmer, no matter how high it gets. As a counterpart to this,
Probers have had the math behind their research point generation
reworked. Research output follows an inverse log base 4 curve. Which can
be found here: https://www.desmos.com/calculator/q183tseun8

I wouldn't drop this massive update on people without a way for them to
understand what's going on. So this PR also features the return(and
expansion of), the much-demanded Psionics Guidebook.

<details><summary><h1>Media</h1></summary>
<p>

Psionics Guidebook

![image](https://github.com/user-attachments/assets/6449f518-bdce-4ba5-a9f5-9f87b5c424c9)

![image](https://github.com/user-attachments/assets/5cf5d5a1-8567-40ae-a020-af074cf9abe3)

</p>
</details>

# Changelog

🆑 VMSolidus, Gollee
- add: Glimmer has been substantially reworked. Please read the new
Psionics Guidebook for more information. In short: "500 is the new
normal glimmer. Stop panicking if Sophia says the glimmer is 500. Call
code white if it gets to 750 and stays above that level."
- add: The much-requested Psionics Guidebook has returned, now with all
new up-to-date information.
- remove: Removed "GLIMMERLOOSE". It's no longer possible for glimmer to
start a chain of events that ends the round if epistemics isn't
destroyed. You can ALWAYS recover from high glimmer now.
- tweak: All glimmer events have had their thresholds tweaked to reflect
the fact that 500 is the new "Normal" amount of glimmer.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 638071c48fe3ac7c727a1294de3b6d5d8136e79f)
2025-01-20 20:50:02 +03:00
Saphire Lattice
2277f5a039 Improve crayon UI to not be stuck in 1996 (#33101)
* Improve crayon UI to not be stuck in 1996

* Make a horrifying crayon spaghetti

* Crayon

* Undeprecate the crayon, describe the crayon

(cherry picked from commit 26ffe940b56e98d7d2ebce84da343245bf998aad)
2025-01-20 20:45:01 +03:00
Plykiya
e3dc8649da fix crayon (#30263)
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 882ce26862892655078ea2e85d56f90d3777d05c)
2025-01-20 20:44:56 +03:00
chromiumboy
9f45cb6e56 UI improvements for holopads (#34055)
* Initial commit

* Minor update

(cherry picked from commit 2b170b825583d5769bd232b1155e6b6fa567a998)
2025-01-20 20:41:39 +03:00
chavonadelal
87d931f71f Wires ui tooltip localization (#32284)
* Wires ui tooltip localization

* Corrections after review

(cherry picked from commit 5cf5f8907935a67f40c537a092bb84e41468195d)
2025-01-20 20:41:31 +03:00
themias
72ce6e8c72 Fix Ripley control panel (#30325)
(cherry picked from commit 3fa788c928868eaa70eff7281d1fdca2e2b40e13)
2025-01-20 20:41:15 +03:00
Spatison
3a4090a246 fix mindslaveicon 2025-01-16 22:56:04 +03:00
NeLepus
1dd823f071 Label Rendering For Vending Machines and Item Preferences Menus (#1538)
# Description

This PR removes label duplicates from item names in order to make actual
labels work properly and make them visible in vending machines' menus as
well as loadout preferences.

As we can see in Fig 1, the aluminium jug is not only labelled as
"aluminium 10u" but contains "(aluminium 10u)" in the item name, which
drives chemists homicidal when it comes to labelling the jugs.
This issue also appears with other labelled items such as pill canisters
in item preferences (see Fig 2), which led to a row of nameless pill
canisters being present in our server's menu.

My solution is to fetch the item's LabelComponent in the menu so this
redundancy is no more needed.
See Fig 3 for an example.

The VendingMachineMenu.xaml.cs code fetches and localizes the text from
the LabelComponent from the prototype the same way it fetches sprites,
and in the LoadoutPreferenceSelector.xaml.cs the task is pretty
straightforward since the item is spawned in the Nullspace anyway.

---

- [x] Added label rendering for VendingMachineMenu.xaml.cs
- [x] Stripped reagent jugs' names off their fake labels
- [x] Added label rendering for LoadoutPreferenceSelector.xaml.cs
- [x] Stripped pill canisters' names off their fake labels
- [x] Reformatted pills *that do not have explicit descriptions* to
match "pill (label)" format

---

<!--
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>

Fig 1, the issue with ChemVend's reagent jugs:
![Fig
1](https://github.com/user-attachments/assets/05983f8d-1bc6-4352-b13c-194a6ea172e9)

Fig 2, the issue with pill canisters:
![Fig
2](https://github.com/user-attachments/assets/5afec42f-ef55-4b9d-af2f-2cef6174225d)

Fig 3, demonstration of the solution:
![Fig
3](https://github.com/user-attachments/assets/bbc2d1b3-e773-4654-a32a-ab5d7205e0e9)

</p>
</details>

---

# Changelog

🆑 NeLepus
- add: Added label rendering for vending machines & item preferences
- tweak: Formatted pill without descriptions to follow  "pill (label)"
- remove: Fake label duplicates in reagent jugs and pill canisters

(cherry picked from commit f0f9512b491fefa2416f661e8f6b20fab215fa2f)
2025-01-15 23:56:04 +03:00
Piras314
cf247d1e4e Fix Night Vision (#1554)
<!--
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]?
-->

Fixes the bug where you could put a mouse on your head and get free
night vision. This works by adding a bool to the
SwitchableVisionOverlayComponent `IsEquipment` that will be checked for
before granting the thermal/night vision action. Port of
https://github.com/Goob-Station/Goob-Station/pull/1448

---

<!--
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>

No night vision with the mouse on your head:

![image](https://github.com/user-attachments/assets/ccde942c-7f08-405f-9215-b904e0d4dd6a)

Goggles still work:

![image](https://github.com/user-attachments/assets/a7c7e0f4-b49b-4255-86e3-511441234f02)

</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
-->

🆑 Piras314, Aviu
- fix: Fixed being able to get night vision from putting a mouse on your
head.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Aviu00 <93730715+Aviu00@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 03b7a8a6bfbbc13bc9b7bd27fe414086500592be)
2025-01-15 23:55:38 +03:00
Plykiya
90d89b0610 Update MoverController.cs to not use Component.Owner (#29965)
* Update MoverController.cs

* Update a bunch of movement code to use Entity<T>

* Last errors

* wow, there were more errors

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 5bb56c08d7dd6a64feefa503da3d004f8fb0966c)
2025-01-15 18:22:17 +03:00
Ed
f6f3f38d66 Sprite Movement working with AI movement (#33494)
* FINALLY

* Update animals.yml

(cherry picked from commit f9ac956c0c1a79bc73984989c2b625c25b357ca1)
2025-01-15 18:17:28 +03:00
Pieter-Jan Briers
3a25ae2ec5 Fix layout on wires UI (#33714)
Layout would break for machines with >6 lights because the column count was hardcoded. Uncap the UI width and fix the rows count instead.

Lights with less than 4 characters of text weren't aligned right, now they are.

(cherry picked from commit 7318cfbc74af588ae8efcf07e332b7abf1e1348e)
2025-01-15 18:11:19 +03:00
sleepyyapril
67ea5d8c3e Station AI Features and Fixes (Also General Fixes) (#1525)
<!--
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]?
-->

Check the changelog for the full list.

---

# 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 Holopads (unmapped)
- add: Intellicards are now useful for removing/adding a Station AI's
brain.
- add: Added the Communications Console to Station AI actions.
- add: AI now has a warp point.
- add: Added more things for the AI to press.
- add: More AI laws have been added.
- fix: Fixed the mail system
- fix: Fixed AI actions
- fix: Fixed invalid spawns for station AI breaking and ruining your
ability to play it.
- fix: The Station AI's name will now properly send in "arrived to the
station" announcements.
- fix: Changed the CPR sound to simply not loop until fixed.
- fix: Fixed unlocalized messages being sent for the random sentience
event.

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Zachary Higgs <compgeek223@gmail.com>
Co-authored-by: MendaxxDev <153332064+MendaxxDev@users.noreply.github.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

(cherry picked from commit 3e8a7d9b00e19e160321eb81d69a884189dfa4e6)
2025-01-15 00:12:29 +03:00
Spatison
a255206cb3 fix upstraem 2025-01-14 23:57:35 +03:00