Commit Graph

139 Commits

Author SHA1 Message Date
sleepyyapril
3330acd9f2 Revert ""Proper" "Softcrit" "Support" (#1545)" (#1741)
traits need to be updated with new "params"

@RedFoxIV

(cherry picked from commit d62392b2fe2c3e651ad1f8492bbceef6dad5138e)
2025-02-15 00:15:22 +03:00
RedFoxIV
daf4f66414 "Proper" "Softcrit" "Support" (#1545)
# 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.

![escape-from-tarkov-raid](https://github.com/user-attachments/assets/7f31702d-5677-4daf-a13d-8a9525fd3f9f)

<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.
-
![image](https://github.com/user-attachments/assets/33a6b296-c12c-4311-9abe-90ca4288e871)
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)
2025-02-15 00:12:50 +03:00
sleepyyapril
67fcc08a5c Fix Gun Contests (#1638)
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
(cherry picked from commit 46c8540aa4beb3519de25fbb50d7061ef6811791)
2025-01-23 08:06:30 +03:00
Skubman
8760623add Fix Mining Drills & Reduce Stamina Cost (#1579)
# Description

Fixes the attack values of mining weapons which were messed up in the
Wizmerge.

For the pickaxe, I reverted all damage values to be the same as before.
For the mining drill however, I opted to keep the rapid fire rate
because it was an interesting effect and just added the extra range from
pre-wizmerge and the throwing damage back. I also **greatly reduced the
mining drill's stamina cost** because it was a common complaint among
players.

Before the wizmerge, the mining weapons (pickaxe and drill) were in
`Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml` but
they got moved to
`Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml` and
thus the EE-specific changes got wiped.

Also fixes a subtle bug in `SharedMeleeWeaponSystem.OnMeleeSelected`,
responsible for resetting the cooldown of a melee weapon upon selecting
it, that treated attack rate as attacks per second as opposed to seconds
per attack :
```diff
    private void OnMeleeSelected(EntityUid uid, MeleeWeaponComponent component, HandSelectedEvent args)
    {
        ...
-       var minimum = curTime + TimeSpan.FromSeconds(1 / attackRate);
+       var minimum = curTime + TimeSpan.FromSeconds(GetAttackRate(uid, args.User, component));

        if (minimum < component.NextAttack)
            return;
        component.NextAttack = minimum;
        DirtyField(uid, component, nameof(MeleeWeaponComponent.NextAttack));
    }
```

Bug above was particularly noticeable for weapons with a very fast
attack rate like the mining drill and north stars, which caused the
`NextAttack` delay on select to be 4 seconds instead of 0.25 seconds.

Another subtle issue, the Goliath's attack rate field was `0.75` but the
field was set from Wizden and means attacks per second, not seconds per
attack so I changed it `1.33`.

## Media

**Pickaxe**
<img width=300px
src="https://github.com/user-attachments/assets/8bf1290e-6506-4ac8-9b8b-2bb23a2013b6">

**Mining Drill**
<img width=300px
src="https://github.com/user-attachments/assets/2f852a29-7b58-4e33-8264-67bab87254fd">

**Diamond Tipped Mining Drill**
<img width=300px
src="https://github.com/user-attachments/assets/750fa019-17dc-4d21-900c-88526c873771">

**Mining with Mining Drill**

https://github.com/user-attachments/assets/a9822ccb-c991-4341-a076-fd89a8689e0c

## Changelog

🆑 Skubman
- fix: The mining drill now has a fast fire rate and extra range again.
- fix: The pickaxe and the mining drill can now be used as throwing
weapons again.
- fix: Fixed a bug where selecting weapons with a fast attack rate took
a few seconds before you could attack with them.
- fix: Fixed the Goliath attacking too fast.
- tweak: The power attack stamina cost of mining drills has been reduced
to 0.7 stamina.
- tweak: Re-adjusted the damage of the pickaxe.

(cherry picked from commit 64c11963c6db0b6ea7c7bb576903c777d57b4256)
2025-01-20 21:03:53 +03:00
metalgearsloth
b502bdf35c Station AI (#30944)
* Station AI overlay

* implement

* Bunch of ports

* Fix a heap of bugs and basic scouting

* helldivers

* Shuffle interactions a bit

* navmap stuff

* Revert "navmap stuff"

This reverts commit d1f89dd4be83233e22cf5dd062b2581f3c6da062.

* AI wires implemented

* Fix examines

* Optimise the overlay significantly

* Back to old static

* BUI radial working

* lots of work

* Saving work

* thanks fork

* alright

* pc

* AI upload console

* AI upload

* stuff

* Fix copy-paste shitcode

* AI actions

* navmap work

* Fixes

* first impressions

* a

* reh

* Revert "navmap work"

This reverts commit 6f63fea6e9245e189f368f97be3e32e9b210580e.

* OD

* radar

* weh

* Fix examines

* scoop mine eyes

* fixes

* reh

* Optimise

* Final round of optimisations

* Fixes

* fixes

(cherry picked from commit d8ae58efa903749314e334278c1a47c0fddd2b16)
2025-01-14 02:01:43 +03:00
Skubman
a665f310a9 Throwing Mini-Update 1 (#1434)
# Description

Bug fixes:

- Re-enable damage examine for embeddable passive damage after the
Wizmerge for Station AI wiped it
(https://github.com/Simple-Station/Einstein-Engines/pull/1351)
- Fixed a bug where emags did not have embed passive damage (due to
`DamageOtherOnHitStartupEvent` only raising when `MeleeWeaponComponent`
exists on the entity)

Tweaks:

- Added a stamina cost to spears, 6 stamina, and removed spears dealing
damage to itself when thrown
- Floor tiles will now break when thrown 10 times instead of 4 times
- Added the MetalThud sound effect for structures when thrown, and
increased the base thrown damage of structures slightly from 8 to 9

Damage examine is now sorted properly. From top to bottom:
- Gun damage
- Melee weapon damage
- Throwing weapon damage
- Embed passive damage

## Media

**Laser rifle sorted damage examine**

![image](https://github.com/user-attachments/assets/6fe2a47b-b354-415a-8835-8f0e33c6da00)

**Spear sorted damage examine**

![image](https://github.com/user-attachments/assets/0c93c125-08ce-4e5b-9af9-5c5ceddcd3b1)

**Emag stats**

![image](https://github.com/user-attachments/assets/ac9b1073-b209-4a44-badf-8f8ec9f8514a)

## Changelog

🆑 Skubman
- fix: Fixed embeddable damage over time not showing when examining an
item's damage values.
- fix: Fixed the emag not dealing passive damage when embedded on a
target.
- tweak: Examining an item's damage values now shows values in a sorted
order. From top to bottom: gun damage, melee damage, throwing damage,
embedded damage.
- tweak: Spears now have a 6 stamina cost when thrown, and they no
longer break when thrown enough times.
- tweak: Floor tiles now break when thrown 10 times instead of 4 times.
- tweak: Closets, lockers and crates now play the proper sound effect
when thrown (by Space Wind).

(cherry picked from commit 6c70875882cb9435a6172ef103660e0fcf1d27fd)
2025-01-14 01:26:24 +03:00
VMSolidus
f25c7f4181 Lamia & Segmented Entity System (#11)
## About the PR
This is a draft PR for an upcoming new playable species, the Lamia.
Lamia are an older species from the 2022 era of Nyanotrasen, and were
previously abandoned code that was dropped from the game on October
13th, 2022. I was able to locate what I believe to be the last remaining
branch containing Lamia, from a defunct server repository that ran an
October 12th, 2022 build of Nyanotrasen. Thus I began a project to
refurbish this code for use on modern SS14.

The Lamia I wish to PR are only recognizable from the original Lamia in
that they share the Tail Segment System. That is, they prominently
feature a completely unique mechanic whereby their body is composed of
multiple entities linked together in a chain. The original version of
this code had a great many bugs related to the game's physics system,
and it was severely limited by the Robust Toolbox engine at the time. In
the year since Lamia's abandonment, Robust Toolbox has gone through many
iterations and improvements, and has deprecated large parts of the
physics system that old Lamia utilized.

## Redesigns from the original 2022 Lamia, AKA Nyanotrasen Lamia. Vs.
DeltaV Lamia
The original Nyanotrasen Lamia were made with several limitations in
mind. Their size was heavily restricted by the physics engine at the
time, we aren't beholden to that same limitation anymore. Thus DeltaV
Lamia are vastly larger than the Nyanotrasen Lamia, featuring a tail
that is 5 tiles in length, with fully functional physics collisions.
They were also not able to wear Hardsuits due to limitations of the
SpriteComponent, and thus were instead designed around having a
"Barotrauma resistance". On DeltaV code, we can arbitrarily state that
species use different optional sprites for items, therefore its possible
to have for example a Nukie Hardsuit, with its equipped-outerwear state,
equipped-outerwear-lamia, equipped-outerwear-lamiainitialsegment,
equipped-outerwear-lamiasegment, and so on. The Lamia Segments can
simply state that if they equip a hardsuit, they utilize the
-lamiasegment sprite option. Therefore its no longer necessary to create
an entire new item solely so that snakes can wear a hardsuit.

**Positive Traits**
- Extreme Size. Lamia are 5 tiles long, and weigh as much as a car. They
make a mockery of mass contests, and they can push physics objects
around simply by slithering into them.
- Significantly larger health bar. A Lamia is put into critical
condition at 200 damage, and dies at 300 damage. This is offset by the
Lamia having a certain percentage of damage taken by the tail
transferred to the main body.
- High resistance to forced movement. Space Wind at standard pressure
cannot move them.
- Unusual hybrid damage melee via their Hypo-Fangs. Lamia bite attacks
deal 1 point of armor piercing, 2 points of poison, 2 points of
asphyxiation, and inject 3u of Space Drugs. Planned traitor items exist
that add a fillable chemical reservoir that they can inject into people
with their attacks.

**Negative Traits**
- Extreme Size. Lamia are literally the size of a, "Broad side of a
barn". A blind person could throw a rock, and still hit the Lamia. By
extension its essentially impossible for a Lamia to evade attacks. Yea
you can take hits, but you're also going to *take* hits. All of them.
- Paramedics WORST ENEMY. Since they weigh as much as a car, even Oni
struggle to drag them. Even a rollerbed only slightly helps drag a Lamia
around.
- Vulnerability to AOE damage. An explosion that simultaneously strikes
a Lamia's entire tail, plus their body, will deal double damage.
- Cannot wear shoes. Although not being able to wear magboots is also
offset to their natural high resistance to space wind.
- Extreme size also means Lamia are functionally uncloneable. They
require 770 units of Biomass, the equivalent of 5.5 Onis, in order to be
cloned.

## Why / Balance
This PR is part of an ongoing project to add exciting new content to the
DeltaV repository, with a focus on keeping the theme of "Monster People"
species, per request by admins.

## Technical details
The code regarding Tail Segments is actually unfinished, and still needs
significant overhauling before this PR can be undrafted. Here's a few
concerns:

- [x] Implement "Marking Parity"
- [x] Make/Commission/Request new markings for the Lamia and her tail
segments
- [x] Implement "Hardsuit Appearance Parity"
- [x] ServerLamiaSystem now utilizes new physics engine options.
- [x] "We need to be able to spawn 80 Lamias without slowing down the
server -Debug", this is a hard requirement. Having 32 tail segments is
not required. I would prefer that we have 32 tail segments, but if we
optimize their code for performance and still find out we aren't meeting
the 80 Lamia hard requirement, I am willing to reduce them to as low as
16 to 20 segments.
- [x] Implement Wizden's upcoming "Shoot Over Corpses unless they're
targetted" for Lamia Tails.
- [x] Reimplement the mechanic for Segments sharing their healthbar with
the Lamia.
- [x] Possibly make it so that Lamia can only wear Jumpskirts? I'd want
to outright get rid of the layer mask if possible.

## Non-Technical TODO list
These are all the TODO's that don't necessarily involve C#, and
primarily live in the YAML side of things.

- [x] Implement marking customization for Lamia. They should have
marking variations for More/Less humanlike versions. Such as a Snake
Head(We can re-use the Lizard snake head), Medusa Head, changing how far
up the scales go, and if the Lamia has human skin or full scales. I'd
like to have tail pattern variations that can be set in the character
customization, but that is also pending the VisualizerSystem for tail
segments.
- [x] Make their hardsuit variants. Not actually difficult, just takes
some time.
- [x] Finely tune their numerical values. Basically nothing on the YAML
side of things is final, and is subject to change pending beta feedback
and/or testing.

## Media

![spacenoodle](https://github.com/DeltaV-Station/Delta-v/assets/16548818/a97de084-5fd3-4b27-b8ea-69786d1dbdcc)

One of the downsides of having extreme mass.

![image](https://github.com/DeltaV-Station/Delta-v/assets/16548818/840f694a-8898-4ada-b5dd-df7f2fc1299e)

Working Collision physics:
![Noodle
movement](https://github.com/DeltaV-Station/Delta-v/assets/16548818/70ccebcc-5446-4bda-9bb5-40edc65f55f6)

Finalized version of the damage system, also featuring significant
improvements to the tail systems.
![damage
system](https://github.com/Simple-Station/Einstein-Engines/assets/16548818/42918aab-f40d-4da2-bfc2-c70055facee0)

**Changelog**

🆑 VMSolidus, @Elijahrane, and @noctyrnal
- add: Lamia have been added to the game as a new playable species! They
are currently extremely buggy, and so are by default disabled as a
roundstart species. To enable them for (Buggy) playtesting, go to
/Species/lamia.yml, and set roundstart to true.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Rane <60792108+Elijahrane@users.noreply.github.com>
Co-authored-by: Aiden <aiden@djkraz.com>

(cherry picked from commit 1e356fbb38120a850fe5abc8a9ecef57f8c049f1)
2025-01-14 01:02:39 +03:00
sleepyyapril
885ee5a831 Wizmerge for Station AI (#1351)
<!--
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

the adding AI is now up to y'all because i'm not touching loadout code
for name datasets, but it shouldn't be too bad from here

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Signed-off-by: SolStar <44028047+ewokswagger@users.noreply.github.com>
Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Sphiral <145869023+SphiraI@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: ravage <142820619+ravage123321@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Intoxicating-Innocence <188202277+Intoxicating-Innocence@users.noreply.github.com>
Co-authored-by: Saphire <lattice@saphi.re>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: CaasGit <87243814+CaasGit@users.noreply.github.com>
Co-authored-by: BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: NakataRin <45946146+NakataRin@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Doomsdrayk <robotdoughnut@comcast.net>
Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: TGRCDev <tgrc@tgrc.dev>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: chavonadelal <156101927+chavonadelal@users.noreply.github.com>
Co-authored-by: SolStar <44028047+ewokswagger@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: ArchRBX <5040911+ArchRBX@users.noreply.github.com>
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: neuPanda <chriseparton@gmail.com>
Co-authored-by: neuPanda <spainman0@yahoo.com>
Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com>
Co-authored-by: Whatstone <whatston3@gmail.com>
Co-authored-by: VideoKompany <135313844+VlaDOS1408@users.noreply.github.com>

(cherry picked from commit 93ed70acfeda357133a701f637d3faeec02749bb)
2025-01-14 00:13:42 +03:00
Spatison
afaceb8a42 Upstream 12.12-26.12 (#208)
* Pistol-Whipping (Guns as Melee Weapons) (#1335)

# Description

Adds the ability to use guns as melee weapons and throwing weapons.

The gun melee attack is a Light Attack done with a right click. The
attack rate is slower than average melee weapons.

The cooldown on melee attacks after shooting has been removed entirely,
so you can right-click immediately after shooting (like in hero shooters
😎). The cooldown on shooting after a melee attack has been set to a
constant 0.5 seconds.

## Balance

Technically speaking, weaving shooting and pistol-whipping lowers your
overall DPS in most cases, because you can't shoot for 0.5 seconds after
doing a melee attack. With _skillful_ usage, however, it provides some
key tactical advantages:
- Preserving ammo by dealing damage without firing a shot.
- Deal stamina damage as a natural effect of dealing melee Blunt damage.
- Most non-pistol guns have increased blunt stamina damage factors to
help with this.
- Bypassing Piercing resists of armors with a higher Piercing resist
than Blunt resist like plate carriers.
- Doing the combo of right-clicking immediately after shooting deals a
big burst of damage.

Pistol-whipping also helps as a last resort when you run out of ammo.
However, it's almost always better to use a proper melee weapon instead
of a gun as a pure melee weapon, because you can't power attack with
guns and the guns' melee attack rate are slower by design than most
melee weapons.

Shotguns benefit the most from pistol-whipping, because their ideal
range is close-range where a melee attack can be performed, and their
low fire rate means they're not affected too much by the 0.5s shooting
cooldown.

Guns have received throwing damage. You can throw guns at the enemy once
you're out of ammo to deal extra damage. I think this makes fights a
little more spectacular to watch.

Melee damage sorted by group (from least to greatest):

1. Revolver
2. Pistol (+ Energy Pistol)
3. Sniper rifle
4. Rifle  (+ Energy Rifle)
5. Sub Machine Gun
6. Shotgun
7. Light Machine Gun (L6 saw)
8. Heavy Machine Gun

## Media

**mk 58**

![image](https://github.com/user-attachments/assets/d17bc1c7-7ec5-4124-93c3-306026f7a23f)

**Kardashev-Mosin (Wielded)**

![image](https://github.com/user-attachments/assets/52132262-48ae-48fa-a72c-3df5ae6bfd17)

**Basic Combat**

https://github.com/user-attachments/assets/922998d1-0cd0-4fea-8f0b-365bcff3c12b

**Particle Decelerator Combo (80 damage)**

https://github.com/user-attachments/assets/ce62334a-13dd-46d9-9c0e-453e26bf1261

Combo: Shoot + Power Attack, wait 1.6s then Power Attack + Throw

This combo costs 90 stamina which almost depletes 100 stamina leaving
you vulnerable, so the Vigor trait can help you pull off this combo.

## Changelog

🆑 Skubman
- add: Pistol-whipping has been added. You can press right click with a
gun to perform a Light Attack. Most guns will deal Blunt damage, apart
from the Kardashev-Mosin dealing Piercing/Slash damage with its bayonet.
Weaving bullets and melee attacks correctly will give you the upper hand
in combat.
- add: Guns can now be thrown to deal the same damage as their melee
damage.

(cherry picked from commit 5899f4ea5a978ded0362bdf46185f8fbb1a2607c)

* local #1335

* Fix Interact Verb (#1346)

Finally fixed it.

Interact verbs weren't appearing because this is required in BaseMob.

(cherry picked from commit 3e3ca59850f1a21f2bb8e249455d655ec6b63d2c)

* Fix Ripley Hydraulic Clamp (#1344)

# Description

Fix a bug in `MechGrabberSystem` causing the hydraulic clamps in Ripley
to drop items far away.

---

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

https://github.com/user-attachments/assets/d2c8e951-e391-42d7-b45d-78a275dc8bf2

</p>
</details>

---

# Changelog

🆑
- fix: Hydraulic clamps now drop entities correctly

(cherry picked from commit f0e4612612fe18a126cdf47d712b63bc083b5483)

* Automatic Changelog Update (#1344)

(cherry picked from commit 6dcb367adb769f51bcaf1a647a4ca6c886a10be7)

* Salvage Magnet UI and Character Switching Height/Width Bug Fix (#1347)

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

i fixed it

also added a button "Connect & Go to Lobby" for people testing lobby
stuff!

Resolves #1131

---

# 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 the bug where switching characters made your width/height
change to incorrect values.
- fix: Fixed the salvage magnet opening ten times.

---------

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

(cherry picked from commit c4c3e4283ae077fd0f55e4cce31710f31de046f7)

* Automatic Changelog Update (#1347)

(cherry picked from commit 8ff70215d9f6e2a73150b55313333b9d5ca87749)

* Update Credits (#1350)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
(cherry picked from commit 2a7a4719d39b51ffd232c667b1ca49dbce68dce6)

* Fix Bartender Mosin (#1337)

Bartender Mosin was replacing their duffel bag at roundstart.

(cherry picked from commit 3aa430f486dcdf40629468c715092aee0089187c)

* Trait Purchasable Mentalic Powers (#1343)

# Description

This PR adds a few of the "Mentalic" category of psionic abilities to
the Traits System, allowing them to be purchased by any character that
is also a Latent Psychic. These powers are:
- Dispel
- Metapsionic Pulse
- Xenoglossy (Also requires Natural Telepath)
- Psychognomy (Also requires Natural Telepath)

These are all quite expensive, so to help address the "Expensive trait
proliferation", I've increased the points granted by the Blindness trait
to 10. Have fun being a blind wizard. From this point on, we're going to
need to start adding more "High point value" negative traits.

# Changelog

🆑
- add: Dispel, Metapsionic Pulse, Xenoglossy, and Psychognomy can all be
purchased during character creation using trait points.
- tweak: Blindness now grants 10 trait points instead of 6.

(cherry picked from commit acec14d08879ebaf16e5425fccd26d8f066eda55)

* Automatic Changelog Update (#1343)

(cherry picked from commit adddc1df27184f74e5e48e5220e0cd4eeb57084c)

* Pointy Ears For Harpies And Arachne (#1348)

# Description

Like half the art references I have for Harpies have them with elf-like
pointed ears, another half have them with their feather tufts. We have
pointy ears markings, so this PR makes it so that Harpies can have them.
Actually it also gives them to Arachne, for similar reasons(It's an
oddly common thing on Arachne/Lamia art depictions).

# Changelog

🆑
- add: Added a variety of Pointy Ears markings for Harpy and Arachne
characters.

(cherry picked from commit 59a55c9d6ae6772d4ead0e73d5dab7b24c539e53)

* Automatic Changelog Update (#1348)

(cherry picked from commit 99d616953af89462d827fd8ca6e50a92e63e8203)

* Port Cosmatic Drift Arrivals (#1340)

# Description

Done after a lengthy discussion with @OldDanceJacket about mapping
issues, namely the existence of "Walk-In Closets" on maps that take up
an inordinate amount of space that would otherwise be usable for other
purposes. Seriously, Saltern has a 4x6 room that contains >200 medical
uniforms, and is on a map intended only for 15 people(And maximum of 6
medbay personnel). Every map in rotation is like this.

Ostensibly, Loadouts were created to provide a solution to this problem,
by making it so that players choose their DRIP before spawning in, so
that mappers don't need to put in a whole ass room dedicated to medical
uniforms. But Mappers ended up keeping the "Walk-in Closets" even after
Loadouts were introduced to serve as a "Sanity check" in case of events
such as people not choosing their loadouts, or getting hired during the
round by the HoP to work in the medbay, etc. To solve this, me and ODJ
agreed upon adopting Cosmatic Drift's solution to this, by making it so
that the Arrivals Terminal serves as the "Walk-in Closet Hotel" that
every map can just piggyback off of. Nobody needs to make the stupid
closet rooms, on ANY map, because every map is fully guaranteed to have
every closet the players could ever need in arrivals.

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

Dock

![image](https://github.com/user-attachments/assets/af28d549-83ab-4da0-9a4f-a5ec4bb52c7c)

Dorms(Spawn points)

![image](https://github.com/user-attachments/assets/b3d57428-ea91-4c4d-ab99-28a46e647b17)

Medbay:

![image](https://github.com/user-attachments/assets/ebd47dce-5fb3-45fc-858d-39680d5c511a)

Security

![image](https://github.com/user-attachments/assets/0f26a112-eeff-48da-b916-15d69ede601d)

Captain/HOP

![image](https://github.com/user-attachments/assets/74ec295f-154e-4743-b36f-8161a966ee4e)

Cargo:

![image](https://github.com/user-attachments/assets/ae9f7ee1-c6c8-4c94-8dd1-13731eeb1036)

Epistemics:

![image](https://github.com/user-attachments/assets/68293436-9b69-4157-a8eb-8471c18d4f73)

</p>
</details>

# Changelog

🆑
- add: Ported Cosmatic Drift's version of the Arrivals Terminal.
Terminal now includes every version of department clothing and material
lockers that players could ever need, allowing them to try on their
chosen job equipment and drip before departing for the station.

(cherry picked from commit 4509a9d030efb7eb45378824559a3f88c4caf4b4)

* Automatic Changelog Update (#1340)

(cherry picked from commit 9a1cda889a085974f666adb99c753ba4e1392355)

* More Dangerous Mindbreaking (#1249)

# Description

Somehow people weren't getting the memo despite the **HORRIFYING** texts
associated with Mindbreaking, that doing so is an almost comically evil
act akin to murder. So this PR fixes that. By making it even more
obvious.

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

![image](https://github.com/user-attachments/assets/cf3280a5-42b3-4137-9191-f1ad26773ced)

</p>
</details>

# Changelog

🆑
- add: Added a server option for "Scarier Mindbreaking". Mindbreaking
now irreversibly converts a player character into a non-sentient NPC.
- fix: Mindbreaking now only works on Psychics.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 80f83484e9653f159581ea0dfc82d56256e4947c)

* Automatic Changelog Update (#1249)

(cherry picked from commit 4d87be6ea66356156cdac6e7e9cd70af36daae24)

* Redshirt And Brittle Bone Traits (#1352)

# Description

This PR adds two additional "High Value" physical negative traits, to
help address a growing need for more high point value negatives, since
there is also a very large number of high point positive traits. These
two traits are fairly simple, the first is Redshirt, which decreases
your Dead threshold by 100, and Brittle Bone Disease , which reduces
your Crit threshold by 50. Taking both on an ordinary human would give
+18 trait points to work with, but would in turn give a healthbar of
only 50/100, compared with the standard healthbar of 100/200.

# Changelog

🆑
- add: Added Redshirt and Brittle Bone Disease traits. These give
extremely large negative modifiers to your healthbar, but also grant a
large amount of trait points to work with.

(cherry picked from commit 88edcd05aef76acb10e3d0924dd874eef22c7f71)

* Automatic Changelog Update (#1352)

(cherry picked from commit ed0e56aa446ea9ad9ecae1a1a1685438378b1814)

* Jackboots Slowdown Mitigation (PORT) (#1342)

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

Ports jackboot slowdown mitigation from [space-wizards
github](https://github.com/space-wizards/space-station-14/pull/30586).
Adds fake version for civilian use.

---

# 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 slowdown mitigation to jackboots
- add: Added fake jackboots for style outside of sec

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit f5d45d790d793acbba7d21258cd206568fe79f99)

* Automatic Changelog Update (#1342)

(cherry picked from commit 03dc85aa7071c70cd9f01392cabf7cb7fb2fa6ac)

* Fix Redshirt & Brittle Bone Traits (#1355)

These were supposed to be negative traits(They give you points), but I
accidentally made them positive traits(They cost points).

(cherry picked from commit ec60940fe5eae5d7d3e969bac132e1da2a659272)

* Example Hub Ad List (#1356)

# Description

this PR extends the list of default advertiser hubs to include every
existing hub except for SSMV(Which is mutually exclusive with the
others). If there are more hubs I have missed, please let me know. This
will allow our servers to appear on as many hubs as possible.

(cherry picked from commit 577126f987ff70ba213f2898ea9e5170b0dc5ea6)

* Saltern Update (#1357)

# Description

I would like to offer my thanks to the Singularity Network Mapping Team
for this update, they've done some great work! This PR launches Saltern
with a significant rework to everything on it except for arrivals.

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

Sorry, Map Renderer is dead right now.

![image](https://github.com/user-attachments/assets/53ad601b-087e-4525-b6b6-74b16c5e4dbd)

![image](https://github.com/user-attachments/assets/25bbbed0-18c4-4757-a966-c919379dc5e1)

</p>
</details>

# Changelog
Death do NOT change the name given for the Changelog author, the mappers
here have requested that "SiN Mapping Team" be given as the name for
this PR.

🆑 SiN Mapping Team
- add: Saltern has been fully reworked!

(cherry picked from commit a06b4661b08abe6f64460655962b98f4ccb9db07)

* Automatic Changelog Update (#1357)

(cherry picked from commit aab36bfe65d82cff13bb6d8b6a55c2b70a031aa2)

* v237.3.0 (#1354)

the robust toolbox updater!!

https://github.com/space-wizards/RobustToolbox/blob/v237.3.0/RELEASE-NOTES.md
(cherry picked from commit bf1b0d03aede161d62aedfc9166589335a5d7c4c)

* Hotfix Saltern (#1359)

# Description

Small maintenance to do. Bridge needed FixGridAtmos done, and a single
light in dorms needed wiring.

# Changelog

🆑
- fix: Fixed the Saltern bridge being a hard vacuum at roundstart.

(cherry picked from commit 3c1ed56ed3122866b32249006496c37be825c82a)

* Automatic Changelog Update (#1359)

(cherry picked from commit 48413d6a435de700197a4f6ceb1290d61f5130b4)

* Loadouts Debloating (Colorable Items) (#1364)

# Description

This PR cuts down significantly on Loadouts bloat by removing all
specific color versions of colorable items from the loadouts. I left the
original items untouched for compatibility reasons since certain things
in the game still need to be able to spawn a "Blue jumpsuit" etc.

Additionally, to help aid in clarity for players, I've added
localizations for all the generic colorable items so that they have
(colorable) in the loadout names, so that players can tell which items
have the option without needing to click into the customize button on
every item.

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

![image](https://github.com/user-attachments/assets/7ab30002-c7d4-4eeb-b018-45a9fda80ae6)

</p>
</details>

# Changelog

🆑
- add: Added labels to all generic colorable items in loadouts, so that
players can see which items have custom colors as customization options.
- remove: Removed all 'specific color' variants of colorable items from
Loadouts, such as "Blue Jumpsuit" when a colorable jumpsuit exists.

(cherry picked from commit 452b9113f61790e8258b95904361de5ed34a034f)

* Automatic Changelog Update (#1364)

(cherry picked from commit cd5a6f8b5743904dbecbf04e5d70614e4444d149)

* More Colorable Items (#1365)

# Description

This PR adds even more colorable items to loadouts, this time making
entirely new whitescale versions of existing items that did not have one
previously. This replaces several more options for items that had a
whole bunch of specific color entries with a single item that can take
any color.

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

![image](https://github.com/user-attachments/assets/31438bf7-6ca3-45d2-bf10-af5db5f6e4c4)

</p>
</details>

# Changelog

🆑
- add: Added colorable variants of fingerless gloves, headbands, berets,
hairflowers, cloth masks, and the neck gaiter.

(cherry picked from commit 0674895a3b6a84c2761eb13c7b5f35bc826fe19c)

* Automatic Changelog Update (#1365)

(cherry picked from commit cc1e52c47c7b27b8da9be5da701580efe42590ca)

* Make the EE Logo Match the Banner (#1361)

# Description

Light mode logo

(cherry picked from commit 35c95a5da3ccb7d23620eaa1aad43022be3d6673)

* Loadout Modular Functions (And Loadout Pets) (#1366)

# Description

This PR implements a reflection based system for applying functions
directly to entities spawned by loadouts. In order to provide an
"Example" use of this system, I have created a "LoadoutMakeFollower"
function, which can be applied to a loadout entity that happens to be an
NPC with the Follower blackboard, making it follow the player who
purchased that loadout.

Basically. Pet mouse. The pet mouse will follow its owner.

Yes I actually have tested this ingame, and it works great. The longest
part about coding this was me spending almost 30 minutes straight
wondering why the mouse wasn't following my character, until I
remembered that I had to make a special "Pet" mouse variant that had the
right HTN root task.

This could be extended to other things. I happen to know that Nuclear14
wanted something like this for a Pet Dog.

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

![image](https://github.com/user-attachments/assets/a18b026b-07a3-4ad7-8cce-4ea4dc4c3036)

</p>
</details>

# Changelog

🆑
- add: Loadouts can now apply modular functions to items upon spawning
in.
- add: A new LoadoutMakeFollower function, which lets you buy NPC
followers in loadouts.
- add: added Pet Mice, Cockroach, Mothroach, and Hamster to Loadouts.
All of which use the new LoadoutMakeFollower function.

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 311b86e012ac7d40363b5027ab51b09c9d2285e2)

* Automatic Changelog Update (#1366)

(cherry picked from commit 18a751d5c3d53cd4ff36728dd585ada37e9175b9)

* Plushies! (#1369)

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

Added two new plushies to the game! A harpy plushie and a plushie for
the beloved station pet Morty!

![image](https://github.com/user-attachments/assets/3e202da2-3571-4c67-82c9-54a6aaf3c91f)

![mortplush](https://github.com/user-attachments/assets/9f131eb9-ed89-4818-b54c-e9da949e8ce2)

![harpyplushie](https://github.com/user-attachments/assets/47aa5b91-0747-4a2c-8c5c-18c5429ab570)

---

# 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: two new cuddly friends to the station! (harpy and morty plush)

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: juniwoofs <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>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 6fb12233d48de476c2b06415031fa2e9c9a1d327)

* Automatic Changelog Update (#1369)

(cherry picked from commit 5293b92007f7ca81375d9806cccf9be38846c8d3)

* Traits System Anticheat (#1358)

# Description

It turns out that there was no system in place for serverside fact
checking of whether or not people have a legal traits list. Last night a
bug was reported whereby a player used Cheat Engine to give himself
every trait in the game, bypassing the points system entirely. It's not
actually possible to reduce a trait selection down to a legal list
without creating interesting race conditions, which limits my options on
how to deal with it.

So I made it a vote on the Einstein Engines discord, and the vote was
unanimous. PUNISH THE CHEATERS.

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

https://www.youtube.com/watch?v=X2QMN0a_TrA

</p>
</details>

# Changelog

🆑
- add: Implemented Anti-cheat for Traits. Attempting to join a round
with an illegal traits list will result in hilarious consequences.

(cherry picked from commit 2fc1f25bc0daa29e2017490adbdf41f9db4f4927)

* Automatic Changelog Update (#1358)

(cherry picked from commit 9d738c8f36c0762e0ba3942fb26ef25735ade327)

* Make Prisoner Not Shitter Role (#1341)

# Description

Prisoner is consistently the most problematic role in this entire game,
being seen as "The Self Antagging Role", which produces endless amounts
of administrative burden. This is especially a problem with lowpop
servers, or servers that are understaffed with admins. Players just join
as Prisoner, *immediately* break out of the permabrig, and then go on a
self antagging spree. The solution to this was staring us in the face
the whole time. Just give them the same Pacified component that the
Thief antag has. Now it's impossible for them to smash the permabrig
windows, someone has to intentionally let them out, and even if they do,
they will be hard pressed to selfantag when they can't turn on harm
intent.

# Changelog

🆑
- add: Prisoners now spawn with a Pacifier Implant.

(cherry picked from commit 7f8d76ea6f63d334c894fc0f7ada6fd1359408f1)

* Automatic Changelog Update (#1341)

(cherry picked from commit 68cb9ea4888c16056c6cfe9fea17de1a78420374)

* Fix Jittering (#1334)

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

Title.
Ported from https://github.com/Fansana/floofstation1/pull/393
Resolves #1277

---

# 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 jittering displacing your character when shaken.

(cherry picked from commit a13d9640ec77e07b532b729ac540dc95b689c557)

* Automatic Changelog Update (#1334)

(cherry picked from commit bfb32cf24eda47ff3dbd5d4b15b58e25ae597947)

* Basic Soft-Crit Implementation (#1370)

# Description

This PR adds a simple server configuration option for enabling basic
"Soft-Crit", and not much else because oh my god this system is horribly
complicated. When enabled, characters can crawl around very slowly while
in crit, and really not much else. This more or less mirrors how crit
affects character movement in SS13, where you can at least crawl to
relative safety while bleeding to death.

# Changelog

🆑
- add: Added server config options for basic "Soft-Crit". When enabled,
characters who are critically injured can still slowly crawl, but are
otherwise still helpless and dying.

(cherry picked from commit dff8c69f2afff6714b893a7c9572a84bd384ff89)

* Automatic Changelog Update (#1370)

(cherry picked from commit 9430b9046a9a40cc2f96bb3c66251aabbaf9e80a)

* local upstream

* Revert "Make Prisoner Not Shitter Role (#1341)"

This reverts commit c7d0eddc96.

* RobustToolbox 237.3.0

* fix: snowball testfailing fix

---------

Co-authored-by: Skubman <ba.fallaria@gmail.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: Kyoth25f <41803390+Kyoth25f@users.noreply.github.com>
Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Blu <79374236+BlueHNT@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: juniwoofs <jakbroeder@gmail.com>
Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
2024-12-31 08:58:44 +02:00
Spatison
0e0ffb6d14 Upstream (#142)
* Fix Power Attacks Being Faster Than Left Clicks (#1252)

# Description

This fixes some stupid math. Power attacks are now correctly slower than
left clicks. Previously they were faster.

# Changelog

🆑
- fix: Power Attacks now correctly apply a penalty on swing speed, and
are no longer faster than left clicking.

(cherry picked from commit 049a995f64c42734e5286229b524161a730aaea9)

* Automatic Changelog Update (#1252)

(cherry picked from commit 8a88bfd11f1384fa2fb01fd7ace6477202a68499)

* Tweak Wizden Trait Descriptions (#1260)

# Description
Converted the descriptions of most wizden traits to a more formal and
roleplay-oriented style, also clarifying some aspects of other traits in
the process.

---

TODO:
- [ ] Test this

---

# Changelog
🆑
- tweak: Tweaked the descriptions of most Wizden traits to be more vivid
and descriptive.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
(cherry picked from commit 411cb213ac9ab2e6a0b790e72b25a142a4945217)

* More Trait Functions (PushMarkup & AddArmor) (#1253)

# Description

This PR effectively "Reworks" several of the Bionic Traits through use
of new modular TraitFunctions. These being,

**TraitPushDescription**: Ensures that an entity has the new
ExtendDescriptionComponent, then writes to said component.
ExtendDescriptionComponent serves as a new highly modular "One stop
shop" for any system wanting to add text to the shift-click examine
window. It even accepts arguments for text color, font size, and whether
or not a person must be standing within touching distance to "See" the
provided texts. It accepts arbitrarily any number of descriptions.

**TraitAddArmor**: This takes advantage of a new functionality for the
DamageableSystem, whereby entities are able to have more than one
DamageModifierSet. This allows arbitrarily any number of traits to add
as many modifier sets as desired, without fear of any compatibility
issues. These can be both negative and positive, and as Skubman has
pointed out, this can also be used to create negative traits that make a
character more vulnerable to a given damage type!

Additionally, most of the Bionics Traits have been reworked. CyberEyes
has been split into two modules, one for the base implant, and one for
the Flash Protection. Dermal Armor has been reworked using
TraitAddArmor, so that it no longer replaces your original modifier set,
and instead stacks multiplicatively with whatever your original species
modifier set was. Thus, it can now be taken by any species.

# TODO

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

TraitPushDescription

![image](https://github.com/user-attachments/assets/4661671a-6f20-4cb1-9fad-41c36f7ad79e)

TraitAddArmor

![image](https://github.com/user-attachments/assets/bbc823e1-73bf-471d-b5f6-ef8cdf35c746)

</p>
</details>

# Changelog

🆑
- add: Five new functions for the Trait System, AddArmor,
PushDescription, ModifyMobThresholds, AddSolutionContainer, and
ModifyStamina.
- tweak: CyberEyes Basic System has been split, now Flash Protection is
a separate module.
- add: Dermal Armor no longer replaces your original species damage
resistances. It now stacks multiplicatively with your original
resistances.
- tweak: Dermal Armor can now be taken by any species, not just Humans.
- add: Dermal Armor, and Bionic Arms can now be revealed by a close
examination. Shift click on someone within touching distance will reveal
if they have these "Obvious" cyberware.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
(cherry picked from commit 29d2cb1ed85ab089d83c702f7405e938a0d9374c)

* Automatic Changelog Update (#1260)

(cherry picked from commit 8d54aa2fffdd3726e948d6d228287b01c0a81413)

* Feat: Anomaly Scanner Data Copying (#1250)

# Description
Makes it so that using one anomaly scanner on another transfers the
anomaly data onto the used scanner.

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

![image](https://github.com/user-attachments/assets/b212e6e8-58a3-4a64-a216-3ba496a81d4a)

</p>
</details>

# Changelog
🆑
- add: You can now touch one anomaly scanner with another to copy the
anomaly scan data from it.

(cherry picked from commit 0574be444b90137808c07f85e10b59c464f054cf)

* Automatic Changelog Update (#1253)

(cherry picked from commit 6fa8d6817fa81e6d6d20b61f5ec4b7b96fdb185b)

* Automatic Changelog Update (#1250)

(cherry picked from commit 1b5704535ce42041c068d201cdb447af42004c20)

* Rename "Pierce" Typo to "Piercing" (#1267)

# Description

Oops. Some files refer to the non-existent **Pierce** damage type when
the proper name is **Piercing**.

# Changelog

🆑 Skubman
- fix: Piercing damage can now dismember body parts, just like Blunt and
Slash damage.

(cherry picked from commit 992b2e486855cea6646cf5d4af51ca8cbf61b29d)

* Buff Medical Due to Shitmed Changes Cherry-Pick (#1259)

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

+ Buffed applicable medication heal values.
+ Buffed applicable medication stack sizes.
+ Slightly buffed dylovene, burn, and brute chems.
+ Buffed applicable medication doAfter delay from 3s to 2s.

---

## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was
changed. Link any relevant discussions or issues. -->
This change was made with the advent of the new Limb Damage system. This
PR seeks to achieve making SS14 Medical more equivalent to SS13 Medical
when it comes to healing damage values.

This was done as Bruise Packs and Ointment only heal 5 Brute or 5 Burn
respectively when applied to a limb. When each limb has a 100 Crit
threshold, this can make it extremely hard even with surgery to heal
limbs in the absence of Chemicals.

Furthermore on higher pop, this will lead to people burning through
applicable meds even faster than before Limb Damage was implemented. It
would take 34 bruise packs to heal someone with 170 Blunt spread out
across their limbs, with this change it would reduce that to 12 bruise
packs.

Full list of numerical val changes:
 - Healing component doAfter Delay reduced. was 3s, now its 2s.
 - Applicable medical items now have a max stack size of 15 (was 10).
- Ointment heals 15 of each burn type, 10 caustic (was 5 of each burn
type, 1.5 caustic)
 - Mesh now heals 20 of each burn type (was 10 of each burn type).
- Bruise Packs now heal 15 of each brute type (was 5 of each brute type)
 - Sutures now heal 20 of each brute type (was 10 of each brute type)
- Bloodpacks now heal 2.5 Bloodloss & restore 10% bloodlevel (was .5
Bloodloss and 5%)
 - Gauzes now heal 15 Slash and 20 Pierce (was 5 Slash and 10 Pierce)
 - Dylovene now heals 1.5 Poison per .5u (was 1 Poison per .5u)
 - Bicaridine now heals 2.5 Brute per .5u (Was 2 Brute per .5u)
 - Dermaline now heals 2 Burn per .5u (was 1.5 Burn per .5u)
- Epinephrine now heals 1 Burn & 1 Brute per .5u (was .5 for each per
.5u)
 - Kelotane now heals .5 Burn per .5u (was .33 Burn per .5u)
- Omnizine now heals 3 Burn, Toxin, Airloss, and Brute per .5u (was 2
per .5u)
- Lacerinol now heals 4 Slash per .5u (was 3 per .5u)
- Bruizine now heals 4 Blunt per .5u (was 3.5 per .5u)

# TODO

<!--
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] Cherry-pick Medical changes merged in Goobstation

---

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

 ## Breaking changes
<!-- List any breaking changes, including namespaces, public
class/method/field changes, prototype renames; and provide instructions
for fixing them.
This will be posted in #codebase-changes. -->
Should values be overtuned, they can be reduced in a future PR or before
this PR is merged.

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or
changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of
the comment block in order for it to show up.
Changelog must have a 🆑 symbol, so the bot recognizes the changes and
adds them to the game's changelog. -->
🆑
- tweak: Increased applicable medication heal values.
- tweak: Increased stack size of applicable medications.
- tweak: Slightly increased dylovene, burn, and brute chemicals heal
values.
- tweak: Decreased Medical item application time from 3s to 2s

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Signed-off-by: Tmanzxd <164098915+Tmanzxd@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit b431d24f86f94433ea0c53982db83e40ef1d3f2c)

* Automatic Changelog Update (#1267)

(cherry picked from commit 02dd8ab06333a5b2dabe03845bfd6719ca09ef48)

* Automatic Changelog Update (#1259)

(cherry picked from commit 09d59007d4c55ee9f7daa0f56cae672c51951843)

* The Blood Cult (#1001)

<!--
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
Adds a new game mode - The Blood Cult.
Hail to Nar'Sie!

---

# TODO

- [x] Gamemode
- [x] Roles
- [x] Runes
- [x] Constructs
- [x] Structures
  - [x] Forge
  - [x] Archives
  - [x] Altar
  - [x] Pylon
    - [x] Structure
    - [x] Placement System
  - [x] Airlocks
    - [x] Repulsor system
  - [x] Construction system
- [x] Items
  - [x] Eldritch Whetstone
  - [x] Construct Shell
  - [x] Mirror Shield
  - [x] True Nar'sian Hardened Armor
  - [x] Flagellant's Robe
  - [x] Eldritch Longsword
  - [x] Zealot's Blindfold
    - [ ] Night vision system
  - [x] Shuttle Curse
  - [x] Veil Shifter
  - [x] Void Torch
 - [x] Reagents
   - [x] Holy Water
- [ ] Actions
  - [x] Cult Magic
    - [x] Stun
    - [x] Teleport
    - [x] Electromagnetic Pulse
    - [x] Shadow Shackles
    - [x] Twisted Construction
    - [x] Summon Combat Equipment
    - [x] Summon Ritual Dagger
    - [x] Blood Rites
  - [ ] Cult Leader Magic
    - [ ] Final Reckoning
    - [ ] Mark Target
    - [ ] Eldritch Pulse
  - [ ] Construct's Magic
    - [ ] Artificer
      - [ ] Summon Cult Floor
      - [ ] Summon Cult Wall
      - [ ] Greater Conjuration
      - [ ] Summon Soulstone
    - [ ] Wraith
      - [ ] Phase Shift
    - [ ] Juggernaut
      - [ ] Shield
      - [ ] Gauntlet Echo
- [x] Cult leader selection system
- [ ] Rending/Apocalypse rune placement markers
EXTRA:
- [ ] Spirit Realm rune
- [x] Eldritch language
- [ ] Conceal magic
- [ ] Ru locale
---

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

![Example Media Embed](https://example.com/thisimageisntreal.png)

</p>
</details>

---

# Changelog

🆑
- add: Added Blood Cult Gamemode.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: Remuchi <RemuchiOfficial@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 150020866ddd383f297dfccd7717017c23222d82)

* fix

* Automatic Changelog Update (#1001)

(cherry picked from commit a179e186fa812e5dbce34983e11ef7af56ccdcf4)

* Engine Update v237.2.0 (#1270)

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

Updates to engine version v237.2.0.
Fixes disposals systems breaking and not using the proper direction.

---------

Co-authored-by: sleepyyapril <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>
(cherry picked from commit dcc1c38fb729b00fdb15b79b38372f3e1e8bc951)

* [QoL] Show Oni Damage Bonus In Damage Examine (#1268)

# Description

Examining an item's damage values as an Oni now calculates your bonus
damage, and it also works with all of the Oni combat traits.

## Technical details

`OniSystem`, instead of adding melee damage through `MeleeHitEvent`, now
adds damage through `GetMeleeDamageEvent`, the same event that examining
melee weapon damage raises through `GetDamage`.

## Media

**Normal damage values**

<img
src="https://github.com/user-attachments/assets/9de255ef-29e6-4119-93cc-356349812a6f"
width=300px>

**Oni damage values**

<img
src="https://github.com/user-attachments/assets/18d44aaf-5a70-4ba9-a8c8-be29e92d7267"
width=300px>

# 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
- tweak: As an Oni, examining the damage values of weapons now takes
into account the melee damage bonus from your species or trait.

(cherry picked from commit 613e7937392d5d4fd9bf906f571adc237c706367)

* Automatic Changelog Update (#1268)

(cherry picked from commit 5fe4b1e94b987f787807cc10df06f667b87d124e)

* Loadouts V4 (#1164)

# Description

# TODO

- [x] Custom name/desc/color tint, toggleable individually per-loadout
	- [x] Fix them not changing correctly between profiles in-editor
	- [x] Preview colors in the lobby
- [x] Allow the users to null the color themselves (and default it to
such)
	- [x] Pick what should be allowed to be recolored
- [x] Guidebook links
	- [x] Make an example
- [x] Special components for loadouts
- [x] Heirlooms
	- [x] Pick what should have heirlooms
- [x] Decimate lag
- [x] Fix live character preview
- Maybe do characters per job
  - Rethink unusable

---

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

<!--
![image](https://github.com/user-attachments/assets/cce7dcf3-eeb6-4998-ae88-6373db8cb93f)
-->

https://github.com/user-attachments/assets/bcf61517-6b64-40d2-b299-7462e2469fe2

</p>
</details>

---

# Changelog

🆑
- add: Players can set custom names, descriptions, and color tints for
their loadout items
- add: Certain loadouts may have Guidebook pages shown in the editor
- add: Players can pick a list of loadout items to have one randomly be
their family heirloom for a mood bonus or deficit if they are carrying
it
- fix: Loadouts have almost as little lag as possible (hopefully none)
- fix: Everything properly updates your character editor's live preview

---------

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>

(cherry picked from commit f0463062812428625da9e8adad60c8a567fdacbe)

* Automatic Changelog Update (#1164)

(cherry picked from commit 57917a746f514aba3f142d870a9280c9b1eb9a4f)

* [Fix] Added Robust.Xaml to the Project Solution (#1266)

Mirrors https://github.com/space-wizards/space-station-14/pull/31573

Signed-off-by: Remuchi <RemuchiOfficial@gmail.com>
(cherry picked from commit 1d65d548e69862295926fb08aee962d8fbd0b5c4)

* Update Credits (#1274)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
(cherry picked from commit 39f4ad8a8884bc5bb9e64530b1a708ea41b4de32)

* Fixes Make Cultist Admin Verb to Act on Target Not Self (#1289)

There's a small error on the admin verb for blood cultists which made
the verb only work on self. This fixes it.

(cherry picked from commit 6c2b2a8a4ab7c7b0c5e18d796ccd94d09b087509)

* IPC Instrument Menu Fix (#1287)

<!--
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 IPCs being unable to use the midi menu.

---

# 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 IPCs being unable to use the midi menu.

(cherry picked from commit f133b9b7cf175815a3c6de59d541e12f0fc60790)

* Automatic Changelog Update (#1287)

(cherry picked from commit 92a6e099fca1581ea8a0cfd16bf7f13ae8d1108a)

* Change Target Doll Icon For Ashen Theme (#1282)

# Description

![target_doll](https://github.com/user-attachments/assets/1fdcd665-251f-4a3f-b80e-e11b77f13eef)

(cherry picked from commit 327247585612d9d65e20b8b856864701ceb1c933)

* Fix Applicable Medication Stack Bug (#1278)

<!-- Guidelines:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->

## About the PR
<!-- What did you change? -->
- Fixed a bug where applicable medication stacks would revert back to 10
after 1 use.

## Why / Balance
<!-- Discuss how this would affect game balance or explain why it was
changed. Link any relevant discussions or issues. -->
- Did you know maxstacks were stored in a separate YML? Me neither,
until now.

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or
changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of
the comment block in order for it to show up.
Changelog must have a 🆑 symbol, so the bot recognizes the changes and
adds them to the game's changelog. -->
<!--
-->
🆑
- fix: Fixed a bug where applicable medication stacks would revert back
to 10 after 1 use from full.

Signed-off-by: Tmanzxd <164098915+Tmanzxd@users.noreply.github.com>
(cherry picked from commit d4879f9129ae484f24f57eb642cc7d600f2323e0)

* Automatic Changelog Update (#1278)

(cherry picked from commit 8d485e8c0d4e3932835aeed210388e85988a0213)

* Re-Enable Language Color and Font (#1294)

# Description

Re-enables language font and colors showing up in chat messages. The
language font/colors were bugged after adding language names in chat
(https://github.com/Simple-Station/Einstein-Engines/pull/1165)

I also overhauled the format for chat messages to be more aesthetically
pleasing, and made sure chat bubbles use the language color/font.

## Media

**Nekomimetic**

![image](https://github.com/user-attachments/assets/4cb88d7b-7466-42ed-bf2d-b68c68edb62c)

![image](https://github.com/user-attachments/assets/adec7fd7-0a84-4e21-9eff-c1a387e2d529)

**Bubblish**

![image](https://github.com/user-attachments/assets/c49f5573-ac96-4375-a584-e8b2cc6f5fee)

![image](https://github.com/user-attachments/assets/c739c249-9d1e-453e-9e92-3f7ef24a4d61)

**Tau-Ceti Basic (Default Language)**

![image](https://github.com/user-attachments/assets/e6660039-ac2f-449b-96e0-44e0142d3715)

![image](https://github.com/user-attachments/assets/2baec2ca-975d-4111-85b0-3b2056fdd7f7)

**Rootspeak**

![image](https://github.com/user-attachments/assets/99d94f8d-9a1c-4be9-8c98-b42c9c7cffd7)

![image](https://github.com/user-attachments/assets/c20b4621-1ca7-42f5-a22a-82c9a4d1dddf)

## Changelog

🆑 Skubman
- fix: Language colors and fonts will show up in text messages again,
both on in-person messages and on the radio.
- tweak: The text on chat bubbles now uses the color and font of the
language being spoken.
- tweak: The language prefix before the name on chat messages now uses
the language's color.

(cherry picked from commit 1a9763528a9b15f11f474a2fa7ecfdde98aa9a15)

* Automatic Changelog Update (#1294)

(cherry picked from commit 7d802e35dc45c37016681c3a009bdaebe2707178)

* Shitmed Update 2 - [Insert Snarky Remark] (#1271)

# Description

![image](https://github.com/user-attachments/assets/b10f1e33-94fb-4ded-a644-b9945b58dbc5)

Honey wake up, another shitmed PR with 5 features and a trillion bugs! I
love bloat.

---

# Known Bugs
- A lot of shit with changelings lol
- Markings suddenly disappear from your entity apparently at random.
Wizden exclusive issue as of now.
- Fire heretics explode when ascending due to part damage shitcode
(sorry)
- Some exceptions/null point references at round end, tentatively
related to salvage corpses.
- Slots having wonky behavior due to not being networked. More of a
broad issue with how I implemented them initially.
- Arachne are FUCKED with surgery, I was incredibly tempted to set them
to roundstart: false, but I'll try to hotfix it this week.

---

# Changelog

🆑 Mocho, Deltanedas
- add: Ported Ghetto Surgery from Deltanedas!
- add: Ported fishops organs from Deltanedas!
- add: Added different step durations to each surgery step.
- add: Added a T2 research for advanced surgical tools
- add: Added a T3 research for an omnitool for surgery.
- add: Added Surgical and Advanced Surgical modules for Mediborgs
- add: Mediborgs can now perform surgery!
- add: Added lobotomies as an operation. Godspeed you psychopaths.
- add: Added cybernetic arms, legs and eyes.
- add: Added EMP weaknesses to all cybernetic parts (the day of
reckoning will come for IPCs soon)
- add: Losing your eyes now blinds you.
- fix: Fixed a few species that did not inherit from BasePart's, thus
taking damage types they shouldn't on their limbs.
- fix: Fixed harpy lungs not being usable in surgeries.
- fix: Fixed biosynthetic and other printable parts not allowing you to
attach body parts to them.
- fix: Fixed fire being able to destroy your chest.
- fix: Fixed entities being able to take over your body by just
inserting a brain or another head on top of you.
- fix: Fixed some shitcode that didnt let rejuvenate or godmode work
properly.
- fix: Fixed bionic arm, and cybernetic eyes traits not working properly
due to shitty networking.
- tweak: Increased tend wounds's speed by double, and bumped up the
values on its calculations. DEATH TO TOPICALS, LEAVE THOSE TO TIDERS.
- tweak: Beheading an entity now doesnt let it move, speak, and forces
it to the ground immediately (literally 1984!!11!!)
- tweak: Changed sprites on most surgical tools to now use /tg/ sprites.
- tweak: Unbound shitmed targeting doll keybinds by default (did you
know we have those).

---------

Signed-off-by: gluesniffler <159397573+gluesniffler@users.noreply.github.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: goet <6637097+goet@users.noreply.github.com>
Co-authored-by: Saphire Lattice <lattice@saphi.re>

(cherry picked from commit 2eafa0d47e7b9a3270ae797f82dd7b1772dffb15)

* Admin Tooling Cherry Picks (#1290)

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

Link to every PR I cherry-picked:
1. https://github.com/new-frontiers-14/frontier-station-14/pull/2283
2. https://github.com/space-wizards/space-station-14/pull/29219
3. https://github.com/space-wizards/space-station-14/pull/30075
4. https://github.com/space-wizards/space-station-14/pull/28639
5. https://github.com/space-wizards/space-station-14/pull/32527
6. https://github.com/space-wizards/space-station-14/pull/28030
7. https://github.com/space-wizards/space-station-14/pull/28178

The main purpose of this PR is the first cherry-picked PR. It adds the
ability for admins to reply to ahelps via discord using an HTTP POST
request. See all relevant details in the initial PR by Myzumi.

---------

Co-authored-by: Myzumi <34660019+Myzumi@users.noreply.github.com>
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
Co-authored-by: Whatstone <whatston3@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: to4no_fix <156101927+chavonadelal@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

(cherry picked from commit b8e75dae0e25301da4ffdd1f6ca5b4aebdf5a2b8)

* Automatic Changelog Update (#1271)

(cherry picked from commit d58d397a69fc2bb5b2bbce9280a978d5d899bba0)

* More Loadout Equipment (#1281)

# Description

This PR adds a bunch more equipment selections for Engineering loadouts,
plus Suit/Skirt selections for the jobs that were missing it.

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

![image](https://github.com/user-attachments/assets/031224b4-e348-4030-9ea4-7f2dbc64c87d)

</p>
</details>

# Changelog

🆑
- add: All engineering roles have had their equipment loadouts
significantly expanded upon. Engineers can now buy construction
materials with their loadout points.
- fix: All engineering jobs now have their Suit/Skirt selection via
loadouts.
- add: Salvage techs can now select from a variety of knife options to
start their spess adventures with.
- add: Epistemics staff now have *some* equipment selection options that
they share. More to come when I finish making the Potentiometer.

(cherry picked from commit 0bd9a9ea81c2e6e9ef775a131b547b8b861548b1)

* Automatic Changelog Update (#1281)

(cherry picked from commit c7f1b4fa3c57f3650154150e1c30ce28e3302230)

* Dynamic Hostname System (#1296)

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

Change your hostname whenever map, preset, or runlevel changes!

Variables given on all hostname locale strings:
- {$mapName} - The name of the current map.
- {$preset} - The name of the current preset.
- {$originalHostname} - What you originally had game.hostname set to,
before updating.

---

<!--
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/97cba40b-5ceb-40f8-91e4-93450cd22b78)

![image](https://github.com/user-attachments/assets/2cf27e65-b493-4916-bedd-aa69eaa0135b)

![image](https://github.com/user-attachments/assets/234f5be0-7a8c-41e1-abdf-10e9c6700a90)

![image](https://github.com/user-attachments/assets/522525d6-fb23-45b9-b559-deffb3f37a58)

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

(cherry picked from commit de98c2aec2c072abeb6c81c74b830d72e29ba0c8)

* Religious Headgear For Character Customization (#1297)

# Description

This PR adds a few articles of various kinds of religious headgear to
loadouts, namely a Hijab, Turban, and Kippah. All 3 are whitescale items
that are set as colorable, allowing players to make them whatever color
is desired.

Farida can finally have the pink Hijab she was always supposed to have.

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

![image](https://github.com/user-attachments/assets/35fca330-98ba-439b-8e23-eec917b0d30c)

</p>
</details>

# Changelog

🆑
- add: Added various articles of religious headgear to loadouts, such as
Hijab, Kippah, and Turban. All of these are set to allow custom colors.

(cherry picked from commit e46a8636eb235e627023cdd3d42428b34c134353)

* Automatic Changelog Update (#1297)

(cherry picked from commit 56be69053045a2d2184c975c2325889df69838e0)

* Don't Require Running in Release to Test Mood (#1257)

(cherry picked from commit f2871885b6dd13b418dfd7ff55ffe0559a4f7044)

* Update Credits (#1300)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
(cherry picked from commit 9ef825252a0dc0054b1ba9626e7283d296150f3b)

* Start of Lore Documents

(cherry picked from commit dfb12e53abf1ef5d767240a19b28ba12dd35ef9b)

* Finally Done

(cherry picked from commit 2a8bf58dfc61f24796a55940e4a7ab6be3ced3ec)

* Automatic Changelog Update (#1298)

(cherry picked from commit 8a368bbdce5dd05adae998ec55f15fd5ff04b52f)

* Fashion Update: Earrings & Makeup (#1299)

# Description

Adds **38** new earrings, **31** new face markings, and **16**
bracelet/watch markings, based from Aurorastation cosmetics. Each
earring, bracelet, and watch marking is applied to just one side of the
body, allowing for greater customizability and mixing-and-matching
markings.

Most notably, the new face markings unlock **full customization of every
pixel** in the 5x4 pixel space of the face. Examples of this are shown
below.

Arachne now have access to **more than a hundred** markings above the
leg, after not having any markings in their 2 years of existence.

## Media

### Pauline

<img height=270px
src="https://github.com/user-attachments/assets/8316effb-34b3-4fa1-a80f-af2a3cd670c2">
<img height=270px
src="https://github.com/user-attachments/assets/be75770a-c5bb-46a7-afb4-2ec54bd5a5e5">

**Head (Side):** Drop Earrings (Left), Drop Earrings (Right)
**Left Hand:** Left Bracelet

### Red and Blue

<img height=270px
src="https://github.com/user-attachments/assets/8c1356fc-6eaa-484f-afb6-5ace7f45d895">

**Head:** Cheek Spot (Left), Eye Corner (Left), Cheek Spot (Right), Eye
Corner (Right)
**Head (Side):** Double Gemstone Earrings (Left), Double Gemstone
Earrings (Right)
**Left Hand:** Left Watch (Colorable)
**Left Arm:** Left Arm Bracelet
**Right Hand:** Right Watch (Colorable)
**Right Arm:** Right Arm Bracelet

### Pink

<img height=270px
src="https://github.com/user-attachments/assets/ae376cc3-7cd5-4e91-a3a0-ebe48202f5e6">

**Head (Side):** Hoop Earrings (Left), Double Gemstone Earrings (Right)
**Left Hand:** Left Bracelet
**Left Arm:** Left Arm Bracelet
**Right Hand:** Right Bracelet
**Right Arm:** Right Arm Bracelet

### Psychic

<img height=270px
src="https://github.com/user-attachments/assets/eaa8069a-2e51-4456-a315-414aa64cd41a">

**Head:** Bindi, Full Blush
**Head (Side):** Long Crystal Earrings (Left), Long Crystal Earrings
(Right)
**Left Hand:** Left Bracelet
**Right Hand:** Right Bracelet
**Right Arm:** Right Arm Bracelet

### Cyclops

<img height=270px
src="https://github.com/user-attachments/assets/55e67db9-0aa4-488d-a25b-32e8fd92044b">

**Head [Eyes]:** Bindi, Glabella, Nose Tape
**Head [Cover for mouth area]:** Lip Corner (Left), Lip Corner (Right),
Cheek Spot (Left), Cheek Spot (Right), Lips
**Head (Side):** Cross Earrings (Left), Cross Earrings (Right)

### 😂

<img height=270px
src="https://github.com/user-attachments/assets/4001b95a-60e1-431c-8463-1e2904cf767a">

### Arachne

![image](https://github.com/user-attachments/assets/b9935347-8977-4424-9b9b-b08aecb458b2)

**Head:** Left Arachne Eye, Right Arachne Eye, Lips, Neck Cover (Slim
Thick)
**Head (Side):** Long Crystal Earrings (Left), Long Crystal Earrings
(Right)
**Left Arm:** Left Robotic Arm from Hesphiastos Industries
**Left Hand:** Left Robotic Arm from Bishop Cybernetics
**Right Arm:** Right Arm Bracelet
**Right Hand:** Right Watch (Colorable), Right Nail Polish

## Technical Details

I did a quick fix in
[MarkingsSet.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fashion-update-markings?expand=1#diff-54373833c74b35579f9b3293d5bb0c17eda0d214c11f27dcb40c334ef8c6b513)
to handle a list index out of bounds error where the number of default
markings was lower than the maximum allowed markings, like with Onis who
have a default horn but can wear 2 earrings.

# 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: 80+ new markings have arrived, including earrings, makeup,
bracelets, and watches. Sashay over to Character Setup to personalize
your character like never before!
- add: The Arachne species can now select markings above the leg,
including cybernetics, makeup, tattoos, noses, earrings, heterochromia,
bracelets, gauze, and more!
- tweak: The available points for Head (Side), Left Hand, and Right Hand
markings have been increased for most species to support the new
markings.
- tweak: The Nail Polish markings have been moved from the Overlay
category to the Left Hand and Right Hand categories.

(cherry picked from commit 932f9e31eab9b2c11c4429b7c9c36effc327e733)

* Automatic Changelog Update (#1299)

(cherry picked from commit b05ab8e0d1e8aa043a60ca96843061f4778136e6)

* ♂️ Add Male Arachne (#1301)

# Description

Adds the ability for Arachne to be male.

Also in this I added chest/arm Arachnid markings for Arachne to use. I
enabled footstep sounds for Arachne since it doesn't seem that they were
intended to have silent footsteps.

## Media

<img height=160px
src="https://github.com/user-attachments/assets/04e3b066-e75c-4ee7-bfd6-762c2defcaf8">

<img height=160px
src="https://github.com/user-attachments/assets/d4582c12-72d8-413f-92e6-145cb90c76c3">

## Changelog

🆑 Skubman
- add: Arachne can now be Male instead of only being Female. They can
now also wear Facial Hair.
- add: Arachne can use Arachnid chest and arm markings.
- fix: Arachne will now have footstep sounds instead of being quiet when
moving.

(cherry picked from commit 1bab6b8844c679897b3a695b363620589292d783)

* Automatic Changelog Update (#1301)

(cherry picked from commit 5476ee090bd735d7791b4ae7f1e8aeea674cd55a)

* Add Localization for Senior Physician and Senior Engineer (#1302)

<!--
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 localization for the Senior Engineer and Senior Physician roles
that were recently enabled.

---

# TODO

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

n/a

---

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

![Snímka obrazovky 2024-12-01
164702](https://github.com/user-attachments/assets/ca69e08d-5adb-4e71-aeda-5969d595e429)
![Snímka obrazovky 2024-12-01
165626](https://github.com/user-attachments/assets/18289899-2314-4d21-9b09-9e3e3415a6e0)

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

🆑 zelezniciar
- fix: Fixed Senior Engineer and Physician names not appearing correctly

(cherry picked from commit 4bf762411e866952c0257ce7d255b2610d7a3a21)

* Automatic Changelog Update (#1302)

(cherry picked from commit 9169818f60ef0cf156bb1b095d66e5e9d0b4575b)

* Make Cultist Constructs Speak Eldritch (#1303)

# Description

Fixes cultist constructs only speaking Universal and not being able to
understand anyone else due to a missing `LanguageKnowledgeComponent`.

## Changelog

🆑 Skubman
- tweak: Cultist constructs and soul shards now speak Tau-Ceti Basic and
Eldritch.

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 8573914e8b6183197abc250d3e8f3c186194b0a6)

* Automatic Changelog Update (#1303)

(cherry picked from commit 114ecde8384ae3d98350aa80d38b96766dc49cfa)

* Fix Lobotomy (#1306)

# Description

Fixes several bugs in the lobotomy procedure.

The lobotomy effect is now stored in the brain instead of the body, so
transferring a lobotomized brain will still give the lobotomy effects,
and a brain transplant to a body where a lobotomy occurred no longer
applies the lobotomy effects. The "Mend brain tissue" procedure to
reverse a lobotomy has been unlocked after a bug prevented it from
showing in the surgery UI.

Lobotomies now add the `ClumsyComponent`, which makes the lobotomized
target as clumsy as clowns.

## Technical Details

This deletes
[SurgeryComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-3786e2be1879fd877a8b501352bbd92baa3a17aecfa4a62827ad41497deb0fd7)
which was only used for the lobotomy procedures (incorrectly, it was
checking for `OhioAccentComponent` in the body part) in favor of
[SurgeryPartComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-7e180742b3a6f00b9f867d3ee4e8891dd00587dc4a2da8ad5e199180a387d18d)
and
[SurgeryBodyComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-249e5a937ba929ffc76f85e8a43f17918afc9ba866e81f4ea4eba2c90fd0c408).

These two components are currently unused as the lobotomy procedures use
a new condition component checking for the brain's
`OrganComponent.OnAdd` field, but they provide a way to check for
components on the body part and on the body, respectively.

## Media

**Lobotomy**

![image](https://github.com/user-attachments/assets/4deb80a8-30d1-4a01-9caa-bc288a88ba95)

**Mend brain tissue**

![image](https://github.com/user-attachments/assets/44403092-cac1-4d12-bd25-ebb7f3f1bc53)

**Remove organ step picture**

![image](https://github.com/user-attachments/assets/85d6960a-1f54-4525-ad53-84b039c91fda)

## 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: The lobotomy procedure makes the target clumsy like the clown.
This makes them bonk when climbing tables and makes guns they're
shooting blow up on their face.
- tweak: The lobotomy step now requires a scalpel instead of a drill.
- fix: Enabled the "Mend brain tissue" surgical procedure on a
lobotomized target.
- fix: The lobotomized effect is now stored in the brain instead of the
body. The same brain stays lobotomized throughout brain transplants, and
transferring a normal brain to a body where a lobotomy occurred no
longer applies the lobotomized effect.
- fix: The lobotomy procedure now shows the proper popup during the
lobotomization step.
- fix: Removed the ability to perform lobotomies on bodies without a
brain.
- fix: The "Remove organ" surgery step on the UI now properly shows the
retractor sprite instead of the hemostat.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 1895f3addc871e3ad18845c22c61f422f9807107)

* Automatic Changelog Update (#1306)

(cherry picked from commit 71c641283a13fc79c68f8ad23fa1397052b7e74b)

* You Can Now Drag People Into Deep Friers (#1279)

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

You can now drag entities like people into deep fryers. Yes, this will
cook them. Yes, you can cannibalize your own dead crew.

---

# TODO

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

- [ ] Add a doafter
- [ ] Add a popup warning everyone of what you've done

---

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

obs is broken part 295

</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: You can now shove people into deep fryers by drag-dropping them
onto it.

---------

Signed-off-by: Eris <erisfiregamer1@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 82b2b28f3ee0f534b7f32fe54a70ba58d9ebbe1c)

* Automatic Changelog Update (#1279)

(cherry picked from commit cbc76ef649396a827a6c3b38b83c4a20f1affc7b)

* Revert "Emp Flashlight (#5)"

This reverts commit 932f1f6c

* Emp Flashlight (#5) (#1189)

# Description

Ports https://github.com/WWhiteDreamProject/wwdpublic/pull/5

# Changelog

🆑
- add: Added the EMP Flashlight to Syndicate Uplinks.

---------

Co-authored-by: Ivan <126400932+HellCatten@users.noreply.github.com>

(cherry picked from commit 7c0c16e3f2c07bad045c09e13a95855c356024ac)

* Automatic Changelog Update (#1189)

(cherry picked from commit 7beea8901ceea287918f35bd33f8d9445582427a)

* Add Europa Map to Rotation (#1152)

<!--
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 an old map to rotation called "Europa", originally a
planetary map, but due to several problems it was not able to be played,
I updated a good part of the map adding things necessary to be able to
be played in the EE code, using the same idea To make the Glacier map a
"planet", I created a parallax using the desert texture for the map and
set the atmosphere on the outer side to a temperature of 356.2 K (83 C)
with a high presence of CO2

---

# TODO

<!--
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] Rework eng
   - [x] add Super Matter engine
   - [x] better layout

- [x] Rework Epi
  - [x] Better layout
  - [x] missing content

- [x] Minor fixes on the map

- [x] test the map
- [x] add image

---

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

![Europa-0](https://github.com/user-attachments/assets/12839795-60cd-44a2-adab-00d4f68b7ce3)

</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 a new map called "Europa" to rotation

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 831a7b3092aaab0ef130072a8dfde5354d7809df)

* Automatic Changelog Update (#1152)

(cherry picked from commit b1c3703cdec223ba10aa8e46d28c88694f97450c)

* Update medicine.yml (#1210)

Merges the med doc by floof.
At least one original change by XavierSomething (will update when other
PRs are found)

https://github.com/Fansana/floofstation1/pull/222

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
(cherry picked from commit c22325983ecd0a90b8a042585d20568030d69aaf)

* Atmospheric Alerts Computer Upgrades (#1313)

<!--
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 upgrades the capabilities of the Atmospheric Alerts Computer by
displaying colored zones on the station map corresponding to air alarm
status.

Additionally, it makes the Atmospheric Alerts Computer board obtainable
in a Circuit Imprinter once Epi has researched "Atmospheric
Technologies".

This is a port of [Wizden
#31910](https://github.com/space-wizards/space-station-14/pull/31910) by
@chromiumboy

---

# TODO

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

n/a

---

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

![Snímka obrazovky 2024-12-04
131829](https://github.com/user-attachments/assets/598fcfb4-2983-431e-8192-248880cba1b2)
![Snímka obrazovky 2024-12-04
134819](https://github.com/user-attachments/assets/2eb39995-f9fe-4f11-a01e-a457d3487231)

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

🆑 zelezniciar
- tweak: Atmospheric Alerts Computer now displays colored zones
corresponding to air alarm status on the station map
- fix: Atmospheric Alerts Computer board is printable in a circuit
imprinter

---------

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
(cherry picked from commit e2ee77db5c7dd20958fa246c893d44b767826868)

* Automatic Changelog Update (#1313)

(cherry picked from commit 6c9270d0cf4526bd632d9d975eaa98c9d6767513)

* More Bug Fixes (#1311)

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

[Mice pickup
fixed!](https://github.com/space-wizards/space-station-14/pull/33602)
[Mobs can no longer spill
jugs](https://github.com/space-wizards/space-station-14/pull/33602)
Rest in changelog.

# Changelog
🆑
- fix: You can pick up mobs again with left click.
- fix: No more mob jug spill, including you revenants.
- fix: Set the Gloves of the North Star to the proper attack speed.
- fix: Medibots will no longer try to heal borgs.

---------

Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

(cherry picked from commit 978173efd5f6e7a7cd9f5a52234291e29ed862dc)

* Automatic Changelog Update (#1311)

(cherry picked from commit 1b156683af55eb6e4fef1f1be46f69ff6b258856)

* ChemMaster Sorting (#1310)

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

[Ports this Frontier
PR.](https://github.com/new-frontiers-14/frontier-station-14/pull/2498#issuecomment-2513268858)

---

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

🆑 DmitriTheDemon
- tweak: The ChemMaster is now sorted.

---------

Signed-off-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
Co-authored-by: Dmitri <reznoriam@gmail.com>
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
(cherry picked from commit 32e17a621bc78ba70b330036bb5ba2fd371286e0)

* Automatic Changelog Update (#1310)

(cherry picked from commit 01a13e3c9f0beaa595b03acd0e50af4cb6de40bf)

* Port Shipyards (#1314)

# Description

I needed this extremely badly.

# TODO

- [x] Move all of this out of the DeltaV folders.

# Changelog

🆑
- add: Added Shipyards.

---------

Signed-off-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Null <56081759+NullWanderer@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: Plykiya <58439124+plykiya@users.noreply.github.com>
Co-authored-by: plykiya <plykiya@protonmail.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>

(cherry picked from commit d69b516ce2fe3f8da65db745f1157ae259f60e96)

* Automatic Changelog Update (#1314)

(cherry picked from commit 36cd6ca4706196e9c3097efcff3443bc30896c19)

* Port UserActivateInWorldEvent and BypassInteractionChecksComponent (#1295)

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

See https://github.com/space-wizards/space-station-14/pull/28393 and
https://github.com/space-wizards/space-station-14/pull/28236 for
breaking changes and extra information
Works perfectly on a downstream of EE. Changes in third commit have been
tested with doors.

---

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

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>

(cherry picked from commit 1016a0809c6636147647347e9736846cf0536e68)

* Inverts the Check for Material Whitelist in CanChangeMaterialAmount (#1320)

This change was actually suggested by April, I'm not the author.

It fixes Pacman generators and god knows what else.

Prior to the change you could insert steel in it, or just the wrong kind
of fuel.

Since you could only load the wrong kind of fuel the generators were not
working at all.

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

Description.

---

# TODO

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

---

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

Ejecting steel from a pacman gen

![image](https://github.com/user-attachments/assets/28771e24-4c46-48f1-94dc-c3db03b059a6)

Them working after the fix.

![image](https://github.com/user-attachments/assets/cce907b2-097c-4d4a-837a-606e3c19b5b9)

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

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 54d15c03617c5c33b3804ad233e6dc6d7444080d)

* Build Your Own TEG! (#1316)

<!--
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 the option of constructing a Thermoelectric Generator (TEG)
from scratch, by adding flatpacks for the TEG Center and TEG Circulator,
as well as a crate that can be ordered from logistics that contains the
flatpacks.

The aim is to give engineering crews the ability to add a TEG to
stations that might lack one, as a "fun" engineering project that can be
pursued on shift. This capability already exists for the Singularity
Engine and Tesla Engines.

The cost of the TEG Construction Kit is set at 8000 spesos, but this can
be changed for balance reasons.

Note: Kit may contain small parts not suitable for children under 3
years old. Some assembly required.

---

# TODO

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

n/a

---

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

![Snímka obrazovky 2024-12-05
202816](https://github.com/user-attachments/assets/6c6c9f0d-89b2-4558-aa13-ca1c5bbca58d)
![Snímka obrazovky 2024-12-05
203211](https://github.com/user-attachments/assets/69227645-1382-45f0-848b-96b45e6da92f)

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

🆑 zelezniciar
- add: TEG components now be ordered from Logistics and assembled on
station.

(cherry picked from commit f1b8f960f7aa9f29e638cb794d6f2639b63225e8)

* Automatic Changelog Update (#1316)

(cherry picked from commit 3d2cdd73bfd52e89ae9c11d60cba5c801bf68c8e)

* Several Small Map Fixes to Europa (#1319)

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

Description.

---

# TODO

<!--
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] Lack of radiator underneath the SM crystal
- [x] Wrong kind of vent and lack of connectors at the gas chambers
- [x] Inverts one of the connector pumps in the SM's closed loop
- [x] Adds a decal to this inverted pump which was missing
- [x] Lack of Mv wire under a APC on a hallway at the north side
- [x] Lack of Hv wire connection to a substation in the bridge which
powers the bridge and the bar area
- [x] Switches a medical records computer in medbay to a crew monitoring
one
- [x] Adds an autolathe to cargo
- [x] Protrudes the cargo dock which was too tight to fit the shuttle

---

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

Previous docking issue:

![image](https://github.com/user-attachments/assets/30ce4994-8294-40ff-8919-47fa28224dea)

Change in cargo dock design

![2024-12-06_09-25](https://github.com/user-attachments/assets/f968d153-28fe-4007-9b47-d8e36522cfc2)

Crew monitoring replacing medical records

![image](https://github.com/user-attachments/assets/719df986-fe72-4e6b-9263-9aa18b8c2237)

Autolathe added to cargo

![2024-12-06_09-19](https://github.com/user-attachments/assets/4d527179-2242-4d05-a229-d0fcc0aed360)

<h2>Atmos/SM/Wiring changes:</h2>

Added missing Hv connection to a substation in the bridge

![image](https://github.com/user-attachments/assets/0449cf0a-83f4-4ae5-a7cf-49e2f55a5197)

Added one missing Mv wire to this APC

![image](https://github.com/user-attachments/assets/79e939ed-1082-46e2-b572-2f5a31affa7c)

Changed regular vents into passive vents, added connector slot and
attached canisters to it

![image](https://github.com/user-attachments/assets/e8a9c686-f97e-46c3-a9e9-6b1da6776ba3)

Radiator added to SM

![2024-12-06_08-51](https://github.com/user-attachments/assets/e30549dc-1ea3-40d3-b12e-168497e9f19b)

These two pumps in the SM which were redundant, also one of them were
missing decal to the same tile

![image](https://github.com/user-attachments/assets/66e4dcdf-6b8c-4778-910e-288dcc8168ef)

Showing the changed pump after being inverted

![image](https://github.com/user-attachments/assets/ea571ad3-c6aa-4424-ae74-11319ac0f551)

---

Recenter changes:

There were three APC in cargo and north of in which one was connected
with cargo's APC for no apparent reason and the other was missing wires
entirely. I've put the one missing wires to work in the Lv wiring around
it and cut the Lv wires were it seemed appropriate to prevent connecting
multiple APCs with Lv for no reason.

![image](https://github.com/user-attachments/assets/b7a3f1e4-5d1e-48a8-8d54-31efecb9c691)

![image](https://github.com/user-attachments/assets/669d6827-510c-475a-9039-878fbc221faf)
Excess lamps not included in the change

![image](https://github.com/user-attachments/assets/6f1bb7fc-3b5c-4f76-96da-1e362a0c3921)

![image](https://github.com/user-attachments/assets/3e25bd5b-02ff-438a-89da-91310ca3e473)

![image](https://github.com/user-attachments/assets/f2a7990d-f09f-4c44-b68b-830305743c8f)

![image](https://github.com/user-attachments/assets/953948fe-6b3b-48fb-a18f-4a1b2541ccaf)

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

🆑
- fix: Several small fixes to Europa map, namely to cargo dock, SM and
atmos piping and wires, adds autolathe to cargo and crew monitor to med

(cherry picked from commit 50eb2173c25073d8bed2aaf3dc5a8e4db44a261d)

* Automatic Changelog Update (#1319)

(cherry picked from commit f4152a5597156c58731308e0ef0869862035dce2)

* Fix Rules (#1321)

# Description

The latest update killed our generic rules, and made them not work
anymore. This PR brings them back.

![image](https://github.com/user-attachments/assets/2c7c7a64-3f06-4635-afe4-e6e941a374b7)

# Changelog

🆑
- fix: Server rules work again.

(cherry picked from commit 06a8cee785e74db4c820d072aa3fdafcf2e4c403)

* Automatic Changelog Update (#1321)

(cherry picked from commit 9989c4d3d2214b22f90045c15e32b04f93adb3b0)

* fix

* 237.2.0

* fix

* 237.2.0

* Uplink: Remove Deception Category (#1309)

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

[Ports this downstream
PR.](https://github.com/Fansana/floofstation1/pull/315)

---

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

🆑 fenndragon
- tweak: Moved the uplink deception category into utility.

---------

Co-authored-by: fenndragon <fenndragon@gmail.com>
(cherry picked from commit ec650c49cf9aa00ef94a8ef6fd122e9f2906f98b)

* Automatic Changelog Update (#1309)

(cherry picked from commit 5d64873978b40fc03108674d9554e0cf11e4b454)

* [Feat] Bring Back Die Glorious Death, Hijack And Ian's Meat Traitor Objectives (#1323)

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

Title

---

# 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: Reintroduced 3 traitors objectives: steal Ian's meat, Die
Glorious Death and Hijack Evacuation Shuttle

Signed-off-by: Remuchi <RemuchiOfficial@gmail.com>
(cherry picked from commit 0c60671d98a565cbc81daed2df438853fc03c5bb)

* Automatic Changelog Update (#1307)

(cherry picked from commit 33f80d679da22d870fb5e7d0beddfd67366b77a4)

* Automatic Changelog Update (#1323)

(cherry picked from commit 3ae43708cadfc9e1ab1b3ef1b4f8bc7144017065)

* The Throwing Update (#1307)

# Description

Turns a plethora of items into throwing weapons that deal damage when
thrown. Throwing weapons cost stamina to throw.

## Technical/Balance Details

To make a melee weapon also a throwing weapon, just add `- type:
DamageOtherOnHit`, and it will automatically inherit the damage from a
light melee attack and the melee sound effect as the thrown hit sound
effect. You can set a custom damage value with the `damage` field
(necessary when the item is not a `MeleeWeapon`) and stamina cost with
`staminaCost`.

To make the throwing weapon embed and deal damage over time when
embedded, add `- type: EmbeddableProjectile` and `- type:
EmbedPassiveDamage`. By default, the embed damage per second is 5% of
the throwing damage, but it can be modified on `EmbedPassiveDamage` with
`throwingDamageMultiplier`.

The default stamina cost for throwing is 3.5 stamina. The baseline cost
for almost all DoT embeddables is 5 stamina, because of the extra damage
the DoT brings.

When a thrown item hits a target with body parts, it will randomly
select a body part and only deal throwing damage to that body part. It
will also embed to the same body part and only deal passive embed damage
to it.

## TODO

The unchecked checkmarks are best addressed in another PR but they will
stay here for now.

<details><summary>Show Todo</summary>

- [ ] Deal with prediction issue on embeddable projectile removal
- [ ] This happens even before this PR so not really a big issue, maybe
in a separate PR
- [x] Add embeddable damage numbers to embeddables
- [x] Fix throwing angle for surgery tools after the surgical tools
sprite update
- [ ] Try to make the throw knockback function as if it hit a wall
- [x] Esword/desword/e-dagger toggle embed damage
- [x] Don't start passive embed damage if EmbedPassiveDamageComponent
has no damage
- [x] Make DamageOtherOnHit.Damage not nullable
- [x] Throwing damage only to a specific body part

### Traits

- [ ] **Enraged Throw** (Oni)
  - [ ] Oni/trait damage bonus applied to throwing weapon too
- [ ] Can throw carried bodies, which will do a MassContest between the
thrown body and the hit body to determine blunt damage, and stun
duration for each party
  - [ ] 15% resistance to thrown/embed damage
- This helps when their enemy uses the items they throw against them.

- [ ] **Sharpthrower** (Human)
  - [ ] 10% more Brute thrown damage
  - [ ] 50% chance of throw hitting targetted body part
  - [ ] 40% throwing stamina cost reduction
  - [ ] 15% resistance to thrown/embed damage

### Embeds

- [x] Adjust embed damage per second to be like /tg/ (in /tg/ spear has
around ~1.2 embed DPS, adjust for ~45% embed chance since we're not
implementing embed chance and its 0.54)
- [ ] Merge EmbeddableProjectileComponent and
EmbeddablePassiveDamageComponent
- [ ] Split SharedProjectileSystem into EmbeddableProjectileSystem
- [x] Embed to a specific body part and deal damage only to that part,
for now can randomly select body parts on embed
- [ ] ~~Normal passive damage becomes x0.2 when lying down~~
- [ ] Increased damage when moving, more bonus damage for running
(Jostle DPS on /tg/ is 0.2 running and 0.1 when walking/crawling)
- [x] All embeddables have a fall out time (30 or 45 secs)
- [ ] - [x] On damage examine, can see that an object is embeddable "It
can embed on a target if thrown."
- [ ] Negative moodlet for attached harmful embeddables
- [ ] On health examine target with embeds, can see embedded objects "He
has a spear embedded in his left arm."
- [x] On examine item that is embedded, can see to which body part the
item is embedded "The spear is embedded on Urist McHands's left arm."
- [ ] An embeddable removed outside of surgery deals a lot of damage (x2
thrown damage)
- [ ] Lying down prevents natural falling out and thus the damage with
non-surgical removal
- [ ] Surgical procedure on a body part to remove all embeds on it,
using hemostat for removal
- [x] Allow anyone to remove embedded cultist weapons even if they're
not a cultist

</details>

## Media

**Throwing Toolbox Tools**

https://github.com/user-attachments/assets/4e20568f-adf0-4be8-ac38-fc6b21fed03c

**Examine**

![image](https://github.com/user-attachments/assets/ef95e653-1491-4d9b-8f84-785c3df22763)

**Examine After Embedding**

![image](https://github.com/user-attachments/assets/edc79c8f-db23-4bd3-9fa7-3b47f79c5881)

## Changelog

🆑 Skubman
- add: The Throwing Update is here. You can throw most melee weapons at
the cost of stamina to deal damage from afar.
- add: Dozens of throwable weapons, mainly sharp weapons will now embed
on throw and deal damage every second until they're manually removed or
naturally fall off after some time.
- add: Examining the damage values of an item now shows its throwing
damage, throwing stamina cost, whether or not it embeds on a throw, and
if the embed deals damage over time.
- add: Examining an embedded item now shows what body part it's embedded
in.
- tweak: The traits High Adrenaline, Adrenal Dysfunction, Masochism and
Low Pain Tolerance now affect throwing attacks just like melee attacks.
- tweak: The default time to remove embedded items has been increased
from 3 to 5 seconds, and both the remover and the target with the
embedded item need to stand still during the removal.
- tweak: The time to pry up a floor tile with a crowbar and other tools
has been decreased from 1 second to 0.5 seconds. The throwing damage of
floor tiles has been increased. Go figure.
- fix: Attempting to throw a Blood Cultist item without being a cultist
will stun you and drop the item you're holding properly.

---------

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

(cherry picked from commit c40af73e43c394edb1e96f2bfcc278ca0d54f94e)

* fix

* Automatic Changelog Update (#1307)

(cherry picked from commit 33f80d679da22d870fb5e7d0beddfd67366b77a4)

* Replace Direct Uses of GameTicker Dictionary with `TryGetValue` (#33222) (#1329)

Cherry picks "Fix station events schedulers, antag selection and
possibly other systems acting weird in a rare scenario."
# Description

This is being PRed mostly as a fix to an issue which caused the round to
fail to start due to an error in antag selection, which did happen in
Thief antags and may also happen with Bloodcult gamemode.

Double posting from discord:
> It fixed issues caused with antag selection at roundstart which
affected roundstart Thief selection.
>
> Since cultists are also selected exactly at roundstart - unlike
traitors for instance, I think this might help with cultists too.
>
> I tried to force start bloodcult gamemode in the past and it failed to
start but I since I had tracebacks disabled trying to improve
performance I'm not sure this was the cause.
>

Credits to April for pointing this out for me after I commented on the
issue.

----

This cherry picks 79ff990ddf7c7af40f70bcc7ba2d3220730852ab removing
changes which change methods which do not exist yet on our side.

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

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>
(cherry picked from commit 8216a6e60b114a65fb4662587e6e6f2e38dd242f)

* Fix Debug Assert. (#1325)

nothin' crazy, just annoying.

(cherry picked from commit ca7e5768be4350d13a0541005ad795b9fb17c2a7)

* Fix Melee Weapon Attack Speed (#1330)

Description.

Melee weapons got swapped from attacks/second to second/attack but the
actual attack rate value didn't get changed so weapons got all jumbled.
I'm pretty sure I got them all but I might've missed a few in weird
folders

🆑
- fix: Fixed melee weapons.

---------

Signed-off-by: dge21 <129136517+dge21@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit f9133933e72bb9c3f7b5d130fc3c3ceb4358b9cd)

* Automatic Changelog Update (#1330)

(cherry picked from commit 1592c0e225593707d03626f24e009ad089631e49)

* CVar CharacterRequirement (#1322)

<!--
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 takes in one CVar and one required value and simply checks if the
CVar's value as a string is equal to the required value. I could make it
use a list of them, but I really didn't think it was needed considering
CharacterAndLogic.

I also cleaned up CharacterRequirements.Profile.cs a bit.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
(cherry picked from commit 34209e69c0251e279a7090bbd097825ffae70fde)

* Update Credits (#1326)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 49b9c34f66528c92303fb3bf6dd8f8db55c435b6)

* Back Out "Flash Now Flashes Black Instead of White. (#14642)" (#1331)

Original commit changeset: c3dcc7a124

# Description

Dark flash is cowardly. Billions must be flashbanged irl

# Changelog

🆑
- tweak: Flashes are bright again!

(cherry picked from commit 6b1feac3b12fecb33cfb7e30354347e8443b9c41)

* Automatic Changelog Update (#1331)

(cherry picked from commit 48951ffc83393b6d0d007283206efc8af678c92a)

* Nix housekeeping

(cherry picked from commit 142ff101a3e7794250bd91422db7c3dbabcf1161)

* Port N14 Mapper Assets (#1315)

# Description

By request from Old Dance Jacket, who wanted to be able to use N14
Mapping Assets in SS14. We should probably trim this list down for what
assets aren't actually needed (Any asset that is 100% unique to Fallout
for instance)

# Changelog

🆑
- add: Added a large number of mapping assets from Nuclear14

(cherry picked from commit 3e9387686105cc7a0928e65682b8075f7e7737f4)

* Automatic Changelog Update (#1315)

(cherry picked from commit b4e9e44b0e2641fc5ea7936d9cdb5c156d3a2d39)

* Billions Must Flip (#1318)

# Description

Billions must flip.

https://github.com/Goob-Station/Goob-Station/pull/828
https://github.com/Goob-Station/Goob-Station/pull/832

# Changelog

🆑
- add: Spin, flip, and jump emotes have been added.

---------

Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
(cherry picked from commit 0ed26cebf3e82c3aeb3d5d5096a3be6750cf1e77)

* Automatic Changelog Update (#1318)

(cherry picked from commit 39d250fb74e5da7d87fae08c662cd88f914d2df6)

* Re-Enable Clown/Mime Hardsuit and Clown Snoring (#1324)

# Description

Reverses one of the countless content removals from the old codebase EE
was based on by adding back the Clown hardsuit and Mime hardsuit as
craftable items. Also re-enables the unique clown snoring sound.

## Media

**Hardsuits (renamed to Vacsuit)**

<img width=400px
src="https://github.com/user-attachments/assets/92f77ef3-3380-4b98-a099-7ed28e260de2">

<br>

<img width=400px
src="https://github.com/user-attachments/assets/7940d34c-0e7c-4979-bd95-3992e3d79e98">

**Honk Mimimimi**

https://github.com/user-attachments/assets/2d8af9a6-d17d-4a94-9f59-7b3aafd987a2

## Changelog

🆑 Skubman
- fix: Fixed an issue where players could not craft clown hardsuits and
mime hardsuits on the crafting menu.
- fix: Fixed an issue where clowns did not have their signature silly
snore sound when sleeping.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 946b7664763b8b823215a710743d74b4b0dd6a79)

* Automatic Changelog Update (#1324)

(cherry picked from commit 48d63bacf6bd665c8ff98e33d5da3a0e1e4ffb52)

* Blood Cult DLC 1: Make It an Actually Playable Game (Mode) (#1276)

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

You don't actually have to pay for it, y'know?
---

# TODO

<!--
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] Fix bugs from discord thread.

---

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

![Example Media Embed](https://example.com/thisimageisntreal.png)

</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: In-game guide book to kickstart your sinister activities.
- add: Constructs now have abilities.
- add: Rending rune and apocalypse rune now should only be placed in the
specific spots on maps. Needs to be mapped.
- add: Veil Shifter now displays how much charges it has when examining.
- add: Cult runes now have descriptions. Also stating how much invokers
required for each rune.
- add: Blood rites can now be dropped&deleted.
- add: Blood rites now suck... blood in 0.5 tiles radius.
- remove: Non-cultists can no longer examine runes.
- fix: Fixed Cult Objective Target selection. You can (and should)
sacrifice your own people now.
- fix: Non cultists can no longer use veil shifter.
- fix: Teleport spell is no more a cheap rip-off and now actually
teleports.
- fix: Timed Factories can't no more produce infinite number of
entities.
- fix: Offering rune should now properly convert someone.
- fix: Sacrificing body with mind now properly transfers their mind to
soul shard.
- fix: Shadow Shackles now cuffs the target instead of the caster
(lmao).

---------

Signed-off-by: Remuchi <RemuchiOfficial@gmail.com>
Signed-off-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
Co-authored-by: Raphael Bertoche <bertocheraphael@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 975c673d41f7379975e3d9bed07d29a33371b39a)

* Automatic Changelog Update (#1276)

(cherry picked from commit 149afb608d2f84f4bd8c48443374ba7b9d72ff34)

* Automatic Changelog Update (#1335)

(cherry picked from commit 478e159fb76c497423e370bd583958295bbbb443)

* RobustToolbox

* fix: stun

* fix: stun

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation Changelogs <simplestation14@users.noreply.github.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: Skubman <ba.fallaria@gmail.com>
Co-authored-by: Tmanzxd <164098915+Tmanzxd@users.noreply.github.com>
Co-authored-by: Remuchi <72476615+remuchi@users.noreply.github.com>
Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+deathb4defeat@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Raphael Bertoche <rbertoche@cpti.cetuc.puc-rio.br>
Co-authored-by: DocNITE <docnite0530@gmail.com>
Co-authored-by: gluesniffler <159397573+gluesniffler@users.noreply.github.com>
Co-authored-by: zelezniciar1 <39102800+zelezniciar1@users.noreply.github.com>
Co-authored-by: Eris <erisfiregamer1@gmail.com>
Co-authored-by: Ichaie <167008606+ichaie@users.noreply.github.com>
Co-authored-by: Emily Smith <41290202+Suraru@users.noreply.github.com>
Co-authored-by: Raphael Bertoche <bertocheraphael@gmail.com>
Co-authored-by: dge21 <129136517+dge21@users.noreply.github.com>
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
2024-12-14 10:41:27 +02:00
Spatison
a2557f75a6 Upstream (#129) 2024-11-21 17:49:04 +07:00
Spatison
266ae606de [Port] Crossbow / Арбалет (#76)
* add: crossbar

* add: crossbar

* add: crossbow

* clean up

* AI rewie

* fix

* fix

* fix :(

* Update tags.yml

* fix
2024-10-26 16:41:08 +07:00
Spatison
d5d5278999 [Port/Tweak] Eshield / Е-Щит (#94)
* tweak: eshield

* add: energy shield

* fix
2024-10-23 17:23:44 +07:00
DEATHB4DEFEAT
47b10a01b0 Catch-Up Cherry Pick 2 (#944)
# Description

Picked 400 commits (and skipped many, many more) from WizDen since #540.
Stopped at commit 332f54a3aebe669f6e50d26e7b047f0bdc28e0fb (Lobby
Refactor).

---

# TODO

- [x] Pick
- [x] Compile
- [x] Fix runtime errors
- [ ] Fix up humanoid profile editor
- [ ] Test everything

---

# Changelog

🆑
- add: Merged 400 WizDen PRs. Happy testing!

---------

Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: FungiFellow <151778459+FungiFellow@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Magnus Larsen <i.am.larsenml@gmail.com>
Co-authored-by: Hanz <41141796+Hanzdegloker@users.noreply.github.com>
Co-authored-by: Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com>
Co-authored-by: Gotimanga <127038462+Gotimanga@users.noreply.github.com>
Co-authored-by: Mangohydra <156087924+Mangohydra@users.noreply.github.com>
Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Morb <14136326+Morb0@users.noreply.github.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: KrasnoshchekovPavel <119816022+KrasnoshchekovPavel@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: KittenColony <149278380+KittenColony@users.noreply.github.com>
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: T-Stalker <43253663+DogZeroX@users.noreply.github.com>
Co-authored-by: ERROR404 <100093430+ERORR404V1@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Jezithyr <jezithyr@gmail.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Ciac32 <aknoxlor@gmail.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: NotSoDana <75203942+NotSoDana@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: nao fujiwara <awkwarddryad@gmail.com>
Co-authored-by: Michael <107807667+Doc-Michael@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Lamrr <96937466+Lamrr@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Jay <67732946+DuskyJay@users.noreply.github.com>
Co-authored-by: Just-a-Unity-Dev <67359748+Just-a-Unity-Dev@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Tyzemol <85772526+Tyzemol@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
Co-authored-by: RumiTiger <154005209+RumiTiger@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Ty Ashley <42426760+TyAshley@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: TurboTracker <130304754+TurboTrackerss14@users.noreply.github.com>
Co-authored-by: OnsenCapy <101037138+LGRuthes@users.noreply.github.com>
Co-authored-by: pigeonpeas <147350443+pigeonpeas@users.noreply.github.com>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: Rio <110139251+Riolume@users.noreply.github.com>
Co-authored-by: vorkathbruh <152932728+vorkathbruh@users.noreply.github.com>
Co-authored-by: Sphiral <145869023+SphiraI@users.noreply.github.com>
Co-authored-by: PrPleGoo <PrPleGoo@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: Джексон Миссиссиппи <tripwiregamer@gmail.com>
Co-authored-by: Brandon Li <48413902+aspiringLich@users.noreply.github.com>
Co-authored-by: Jajsha <101492056+Zap527@users.noreply.github.com>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: youtissoum <51883137+youtissoum@users.noreply.github.com>
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Geekyhobo <66805063+Geekyhobo@users.noreply.github.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
# Conflicts:
#	Content.Client/Input/ContentContexts.cs
#	Content.Client/Lobby/LobbyState.cs
#	Content.Client/Lobby/UI/HumanoidProfileEditor.xaml
#	Content.Client/Lobby/UI/LobbyGui.xaml
#	Content.Client/Lobby/UI/LobbyGui.xaml.cs
#	Content.Client/Preferences/UI/CharacterSetupGui.xaml.cs
#	Content.Client/UserInterface/Systems/MenuBar/Widgets/GameTopMenuBar.xaml
#	Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
#	Content.Server/Fluids/EntitySystems/PuddleSystem.Spillable.cs
#	Content.Server/GameTicking/GameTicker.Spawning.cs
#	Content.Shared/Alert/AlertType.cs
#	Content.Shared/Input/ContentKeyFunctions.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
#	Resources/ConfigPresets/EinsteinEngines/default.toml
#	Resources/Prototypes/Alerts/alerts.yml
#	Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
#	Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
#	Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml
#	Resources/Prototypes/Recipes/Crafting/Graphs/improvised/makeshiftstunprod.yml
#	Resources/Prototypes/Voice/speech_emotes.yml
#	Resources/keybinds.yml
2024-10-19 14:53:37 +07:00
Spatison
2ed017c842 [Port] Hristov / Христов | [Port] Manual Sending Of The Cartridge / Ручное Досылание Патрона (#58)
* tweak: hristov

* WD EDIT

* fix
2024-09-21 17:21:44 +07:00
vanx
7d640ca293 Added Right Click Melee Attack to Guns (#24)
* meleeweaponsystem

* gun prototype changes

* stop breaking the game !!!!!!!!

* okey lets go (#WD EDIT TIME) (GOIDA!!!!)

* antigoida (file removed because moved) ILOVEGITILOVEGITILOVEGITILOVEGITILOVEGIT

* WD EDIT START

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

* summary typo fix

---------

Co-authored-by: vanx <#vanxxxx>
Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
2024-09-14 01:36:00 +07:00
Remuchi
24f26f21dd [Upstream] Апстрим фич и фиксов с Einstein Engines. (#39)
* Remove the Stupid Station Records Check From News (#739)

# Description
It was never used but caused annoyance all the time: the listening post
could never use the news console and ghosts/centcom officials/skeletons
could never publish news because of it.

(This was not tested, I recommend either waiting til I test it or making
someone else test it before merging)

# Changelog
🆑
- fix: You no longer need to have a station record to publish news.

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>

* Morale System (Port From White Dream) (#620)

# Description

This Feature has been graciously provided for Einstein Engines to port
from the White Dream codebase.

Mood is a system for tracking a character's current Mental State, which
fluctuates throughout the round as a result of various events that can
modify it. Each consisting of a single line event that can be trivially
inserted into any other system, and a yml configured "Moodlet", which is
applied to said character. Moodlets can be temporary or permanent, and
can also modify a characters mood in either positive or negative
directions. Things like, "Being Hungry", "Being Injured", "Petting a
cute animal", "Being Hugged", all create a Moodlet.

Mood can provide buffs or debuffs, primarily to movement speed. In fact
Mood's movement speed modifier actually completely replaces the movement
speed modifiers from Hunger & Thirst. Instead Hunger & Thirst create a
negative moodlet that persists until you eat and drink, which _can_ give
you a speed penalty. But you might for instance diminish the negative
effects by seeking out other positive sources. Or they might just get
worse, who knows what could happen?

# Media

Mood takes the form of a series of Moodlets, which modify your
character's internal Mood stat. It's kinda like a healthbar, but for
your mental state. Whenever you gain a moodlet, it appears in a popup.
White text for standard moodlets, red text for negative moodlets. By
clicking on your mood icon, text will show up displaying all of your
currently active Moodlets.

https://github.com/user-attachments/assets/3e9420bb-3a43-4d97-9127-31d704c15287

New traits!

![image](https://github.com/user-attachments/assets/4ddf968e-3dbd-44e1-a53e-79bb7b955d01)

Permission from Codeowners:
![morale code
permission](https://github.com/user-attachments/assets/c3d089fa-3e0f-4402-8757-c47e911c3554)

# TODO

- [x] Refactor the Crit Threshold modification, and Movement Speed
Modification to make it more granular.

# Changelog

🆑 VMSolidus & Skubman
- add: The Mood System has been ported from White Dream. Mood acts as a
3rd healthbar, alongside Health and Stamina, representing your
character's current mental state. Having either high or low mood can
modify certain physical attributes.
- add: Mood modifies your Critical Threshold. Your critical threshold
can be increased or decreased depending on how high or low your
character's mood is.
- add: Mood modifies your Movement Speed. Characters move faster when
they have an overall high mood, and move slower when they have a lower
mood.
- add: Saturnine and Sanguine have been added to the list of Mental
traits, both providing innate modifiers to a character's Morale.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: Angelo Fallaria <ba.fallaria@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
# Conflicts:
#	Content.Server/GameTicking/Rules/TraitorRuleSystem.cs

* Automatic Changelog Update (#739)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Automatic Changelog Update (#620)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Psionic Refactor Version 2, Part 1 (#731)

# Description

Finally, after many long months, and this project surviving a complete
restart from square one, I have now made actual, real progress on an
actual proper "Refactor" of Psionics. This PR primarily moves ALL of the
logic for initializing Psionic Powers into highly configurable YML. The
initialization of psionics is no longer handled by components, and is
instead now handled entirely by a centralized system. To even further
cut down on component bookkeeping, nearly all logic needed for
generating Psions has been moved to the PsionicComponent. The
PotentialPsionicComponent now no longer exists.

Additionally, and although they are not currently implemented(I will do
so in the next PR after this), I have also laid the groundwork for
substantial reworks to the other aspects of Psionics. Power generation,
casting stats, feedback messages, non-action powers, and so on. It's
actually possible to now add a psionic power that does not add any
active abilities at all, rather by adding one or more components, thus
enabling purely Passive Powers. Or a combination of the two,
active-powers with a passive component.

# Media

https://github.com/user-attachments/assets/0fd6b9a4-7d84-4e6e-980a-9d7dd4264f6f

# Changelog

🆑
- add: Latent Psychic has been added as a new positive trait.
- tweak: Psionics have received a substantial refactor. While no new
powers have been added this patch, this initial refactor lays the
groundwork so that new psionic powers will be easier to create.
- tweak: Latent Psychic is now fully required to become psionic, or to
interact with Oracle.
- tweak: Psychics can now have more than one active power.
- remove: Mimes are no longer Psionic.
- tweak: Chaplain, Mantis, & Mystagogue all receive the Latent Psychic
trait for free, automatically.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
# Conflicts:
#	Content.Server/Zombies/ZombieSystem.Transform.cs

* Automatic Changelog Update (#731)

* Fix Overlays (#756)

# Description

Overlays have a funny bug where the calls to update them are global.
Meaning if any single person gets a bad enough mood to greyscale
themselves, everyone globally gets greyscaled. This bug was also present
on Dogvision and Ultravision, and had the same cause. Frontier luckily
had a fix for those two, and the fix works here as well for the Mood
Overlay.

# Changelog

🆑
- fix: Fixed an issue where Overlays(Dogvision, Ultravision, Mood) would
apply globally to all entities when updating.

* Automatic Changelog Update (#756)

* Missing Psychic Trait Strings (#758)

# Description

I accidentally deleted these at some point, so here they are again.


![image](https://github.com/user-attachments/assets/c6216f11-f2bc-48a6-86ae-739de0cfe1df)

No changelog because I don't want to publicly admit the error. :)

---------

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

* Action Blacklists (#760)

# Description


![image](https://github.com/user-attachments/assets/febab792-59ca-4938-8f84-e4a94f2a5b31)

I noticed that EntityTargetAction prototypes have a Whitelist field, but
no Blacklist field. This turned out to be trivial to add, and now it's
no longer necessary for Psionic powers to hardcode in C# that they can't
affect anyone psionically insulated or Mindbroken. In total only 3
powers had this change, but new powers in the future that affect a
target can now arbitrarily blacklist any component(Most likely,
PsionicInsulation and Mindbroken. :))

All of this, just to remove 9 total lines of C# hardcoding. 

# Changelog

🆑
- add: Actions no longer need to hardcode in target blacklists, and can
now blacklist entities in YML. This is notably useful for Psionic
powers, which all share a common feature that they can't target people
with Psionic Insulation (Or have been Mindbroken).

* Automatic Changelog Update (#760)

* Psionic Powers Add Components With Arguments. (#763)

# Description

While coding another Psionic Power feature, I discovered that the
current implementation of iterating over components does not carry over
arguments for the components. So I copied over the method used by Traits
exactly-as-is, and just changed the names of the variables to
accommodate the PsionicSystem.

# Changelog

🆑
- add: PsionicPowers that add a Component now also allow for adding a
Component with Arguments. This works exactly like the trait system's
implementation of components.

* Automatic Changelog Update (#763)

* DeltaV/DS14 IPC Port (#744)

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

Ported over IPC from DS14, with the fixes from DeltaV.

---

# TODO

<!--
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] Port
- [ ] Check for errors (Local tests wouldn't run on this one)

---

<!--
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 IPC as a playable species.

---------

Signed-off-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Daniela <43686351+Day-OS@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#744)

* Update MoodSystem.cs (#761)

# Description

MoodSystem was lacking a Component Shutdown to yeet the alert, so it was
causing intermittent test fails.

---------

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

* Traits Refactor (#765)

# Description

I decided traits weren't flexible enough, so I refactored them to also
optionally add Actions(Activatable Abilities), and PsionicPowers(Going
through the PsionicAbilitiesSystem). Neither of these have any current
implementations, I'll leave that to other people. Trait Components are
by extension no longer a hard requirement, although if you add a blank
trait that adds nothing, you have only yourself to blame. But doing so
won't crash the game or throw an error anyway.

# Changelog

🆑
- add: Traits can now add Active Abilities to a character.
- add: Traits can now add Psionic Powers to a character.

* Automatic Changelog Update (#765)

* Made Stamres Show in Resistances View Take 2 (#767)

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

title

for some reason something went horribly wrong
[here](https://github.com/Simple-Station/Einstein-Engines/pull/766)

---

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


![image](https://github.com/user-attachments/assets/a9e71b67-ae47-437f-a370-d25b6388d48d)

</p>
</details>

---

# Changelog

no cl no fun

---------

Co-authored-by: whateverusername0 <whateveremail>

* Minor Ifrit Health Rework (#762)

# Description
Closes #754

Ifrit is a fire spirit, he really shouldn't be taking 1.5x fire damage.
This makes sense and should help with players accidentally killing
themselves with the fire ball.
For balance, the cold damage modifier was changed to 0.5x, unsure if it
should be lower.

Minor passive regeneration has also been added, since there isn't
another way to heal other than the Mystagogue sitting there hitting them
with the book of mysteries.

# Changelog

🆑 
- tweak: Ifrit has received some damage resistance changes

---------

Signed-off-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#762)

* Xenoglossy (#772)

<!--
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
Adds xenoglossy to the power pool. I originally planned it for
cataloguer but it looks like that doesn't exist anymore.

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

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

🆑 Rane
- add: Added Xenoglossy to the psionic power pool.

---------

Signed-off-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#772)

* Increase Trait Point Granularity (#775)

# Description

Since we now have a LOT of Traits, and soon to be another fresh batch of
Traits coming in now that they've been refactored to offer even more
options, it's come up that Traits are kinda hard to balance with the
current combination of point costs and allotted starting points. To help
alleviate this problem, I've both doubled the point values of every
trait in the game, as well as doubled the default allotted starting
points. There is now more room to balance trait costs against each
other.

I have not however actually made use of the new range of point costs
yet, and would like to consult with other contributors and maintainers
on which traits need to be adjusted.

# TODO

- [ ] Go over trait point costs again to address balance.
- [ ] Do this again in 6 months when we have 200 traits.

# Changelog

🆑
- tweak: Trait points have been made more granular by both doubling the
available number of trait points, and increasing the base cost of all
pre-existing traits.

* Automatic Changelog Update (#775)

* Fix Heisentests (#778)

# Description

Attempt number 5000 to get the Heisentests to STOP.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Fix RGB Moths (#777)

# Description

Magic single line Yml Fix obtained by digging through DeltaV's Blame 
**GO!**

# Changelog

🆑
- tweak: Moths can now be colorful again.

* Automatic Changelog Update (#777)

* Remove DV AGPL License Headers (#781)

# Description

They're confusing.

Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>

* Return Of The Cataloguer (#779)

# Description

Cataloguer has returned to Epistemics as the newest 4th member of the
"Crew Aligned Wizards Club". The Cataloguer is a variation on the
Librarian role, which automatically starts with the new Xenoglossy
Psionic Power, which allows him to know and speak all languages.
Additionally, the Cataloguer is now once again a member of Epistemics
instead of Civilian, and has had Epi added to his access.

On all maps that previously did not have a Librarian spawner, one
Scientist spawner has been replaced with a Cataloguer.

# Changelog

🆑
- add: Cataloguer has been re-added to the game as a new roundstart
Psionic role. The Cataloguer is a unique role that will always start
with the Latent Psychic trait, as well as the new Xenoglossy power,
which allows him to know and speak all languages.

* Automatic Changelog Update (#779)

* Psionic Power Feedback Messages (#776)

# Description

This PR implements the previously planned feature whereby obtaining a
Psionic Power plays some form of notification to alert the player that
they have gained a new ability. Since some Psionics like Xenoglossy are
purely passive, it's very important to give an indication to players
what's going on. To that end, PsionicPowerPrototype has been expanded to
include new datafields related to Initialization Feedback. There are now
three kinds of feedback messages: Popup, Feedback, and Metapsionic.

All feedback will only play for powers obtained during the round, rather
than for entities that innately start with powers.

- Popups will appear over your character's head as a small, brief
message. These should be no more than a sentence at most.
- Feedback will appear in the Chat window as a message only visible to
the Psion themself. These can be as much as a paragraph in length.
- Metapsionic messages are coming in their own separate PR:
https://github.com/Simple-Station/Einstein-Engines/pull/774

In a separate PR, I also wish to add Audio feedback as well.

# Media

I apologize that the video has been bitcrunched to a point that the chat
window can't be read.


https://github.com/user-attachments/assets/11e30e91-8fc6-48a2-b6a5-9ecf7127065e

# Changelog

🆑
- add: Gaining a new Psionic Power can now display messages to alert the
player, both as a short popup, and optionally a lengthier message sent
to the user's Chat window.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>

* Automatic Changelog Update (#776)

* Allow Playing Multiple Announcement Sounds at Once (#740)

# Description

@VMSolidus said he had issues with SuperMatter announcements not playing
correctly.

---

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


https://github.com/user-attachments/assets/e0cbbe77-00ce-4c9e-837a-00c91fee8623

</p>
</details>

---

# Changelog

🆑
- fix: Announcements can play multiple sounds now (you can revert to the
old behavior in sound setting if you want though)

* Automatic Changelog Update (#740)

* Add Insulation to Robots (#773)

# Description

Soulless Robots didn't have PsionicInsulation, which meant they were
eligible targets for powers such as Mindswap. This is a pretty simple
fix.

# Changelog
🆑
- fix: Robots and other mechanical creatures are now correctly immune to
non-physical psionic powers.

* Implement Mind Contests (#757)

# Description

Now that the initial Psionic Refactor is out of the way, this is my
first new standalone Psionics PR, filling in the MindContest function
that was added over a month ago(but was set to always return 1f as a
placeholder).

Mind Contests are unique among the Contests System in that they do not
treat the lack of a Psionic Component as a failure condition, and
instead as a variable.

No changelog because MindContests are not currently used anywhere, all
I'm doing is adding the actual function logic.

* Added Language and Healing Components to IPC Entities (#786)

# Description

This pull request introduces two new components to the IPC entities:

1. **LanguageKnowledge**: This component allows IPCs to speak and
understand Galactic Common and RobotTalk. Previously, IPCs were limited
to Universal language, which caused communication issues with the crew.
With this addition, IPCs can now effectively communicate using the
Galactic Common and RobotTalk languages.

2. **WeldingHealable**: This component enables IPCs to heal themselves
using a welding tool. Given the nature of IPCs as robotic entities, this
feature is essential for self-maintenance and ensures they can stay
operational even after sustaining damage.

These changes aim to improve the functionality and immersion of IPCs
within the game, allowing them to better integrate and interact with
other entities while also providing them with the ability to
self-repair.

---

# TODO

- [x] Add `LanguageKnowledge` component to IPC entities to support
Galactic Common and RobotTalk.
- [x] Add `WeldingHealable` component to IPC entities for self-repair
with welding tools.

# Changelog

🆑
- add: Added the ability for IPCs to speak and understand Galactic
Common and RobotTalk languages.
- add: Enabled IPCs to heal themselves using welding tools via the
WeldingHealable component.

Signed-off-by: v0idRift <163446847+v0idRift@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#786)

* Fix supermatter.ftl (#790)

supermatter .ftl was broken, this fixes it.

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

Easly fix the supermatter .ftl files that was not set correctly, why? i
dunno.
now its 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
-->

🆑
- fix: Supermatter Annoncements

Signed-off-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>

* Automatic Changelog Update (#790)

* Fix Door Access (#798)

# Description
Somehow all the doors accesses broke. Seems somebody used the
AccessReader Component on the door instead of the door electronics. This
PR fixes all the doors that I could find that were broken.

# Changelog


🆑

- fix: Fixed most door accesses including: Lawyer, Mantis, Corpsman,
Boxer, Clown, Mime, Musician, Reporter, Library, Zookeeper, Salvage and
Psychologist.

* Automatic Changelog Update (#798)

* Cherry-Pick PR #27113 (#803)

# Description

This is a cherry-pick of
https://github.com/space-wizards/space-station-14/pull/27113
Which fixes a bug that has been reported here where the FixGridAtmos
command does not work.

# Changelog

🆑
- fix: Fixed the FixGridAtmos command.

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* Automatic Changelog Update (#803)

* Return Of The Pibble (#789)

# Description

This PR Rebases one of Nyanotrasen's funniest features: The Pibble.
I mean "Lab Mix", according to the description. Lab Mixes are comically
muscular dogs famous for their ability to attack and destroy Felinids,
Mailmen, and more recently Harpies. Watch out, there is also a rare
variant of Lab-Dachshund Mix, colloquially known as the "Ventbull",
which can occasionally be found roaming the station's vents. Please keep
your children, Felinids, and Birbs at a safe distance.

# Changelog

🆑
- add: Lab Mixes have been added to the game as a new random animal. Be
sure to keep Felinids and Harpies away from them.

---------

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

* Automatic Changelog Update (#789)

* Make IPC Sounds Great Again (#811)

# Description

This PR brings back Ekrixi IPC sounds, and rebases IPC sounds on top of
silicons.
Duplicate of #810 [due to](# "Due to your attempt to evade your ban, you
are banned indefinitely. You may appeal your ban, but only at least 6
months after your last ban evasion attempt, and only with a voucher of
good behavior from another SS13/SS14 server.") `master` branch skill
issues.

<details open><summary><h2>Media</h2></summary>
None
</details>

---

# Changelog

🆑 router
- add: Added more sounds to IPCs. IPCs can now also whistle, whirr,
beep, boop, ping, chime, buzz and buzz twice.
- fix: IPCs no longer have the default wilhelm sound.
- tweak: Silicon deathgasps are now darker.

* Automatic Changelog Update (#811)

* Add IPC's Missing Components (#793)

# Description

IPCs were missing Offer Item, Laying Down, and Carriable.

# Changelog

🆑
- fix: IPCs can now lay down, offer people items, and be picked up and
carried.

* Automatic Changelog Update (#793)

* Temporarily Disable Telegnosis (#795)

# Description

Telegnosis is broken, and so I'm temporarily disabling it. 

# Changelog

🆑
- fix: Temporarily disabled Telegnosis pending a lengthier update.

* Automatic Changelog Update (#795)

* IPC Missing Deathgasp (#800)

# Description

IPC were missing a deathgasp, so I wrote one for them.


![faridaiscute](https://github.com/user-attachments/assets/2e78dcc0-0163-4ec7-bf07-424dbd9d0a91)

# Changelog

🆑
- fix: IPC now have their own unique deathgasp message.

---------

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

* Automatic Changelog Update (#800)

* Make Shoving and Stamina Great Again (#809)

# Description
First off, shoving was broken badly. It would roll shoving chance twice,
meaning that you had only about 6% chance to actually shove someone, and
it would only remove 6% of their stamina. Additionally, stamcrits have
always pissed me off by just how stupid they were. Also, some of the
code in the stamina system had highly misleading names, which has led
vmsolidus to implement mass contests the wrong way there.

This PR introduces changes to fix those issues:
- Shoving only rolls the shove chance once.
- Shoving deals 50 * shove chance stamina damage, as intended, without
depending on target's stamcrit threshold. In the future it should depend
on the weapon used (claws, fists, etc), but for now it's fine.
- Shoving advantage ranges were re-evaluated. Mass difference now can
give 0.5x-2x advantage, and health difference can give 0.75x - 1.25x.
Stamina difference still gives a neglectable 0.9x - 1.1x advantage.
- The stamina slowdown is now added and calculated dynamically using
MovementSpeedModifierSystem, which means the slowdown will no longer
disappear 3 seconds after receiving damage, and will not stack (however,
it now scales with stamina damage).
- When you exit stamcrit, you start at (100 - epsilon) stamina damage.
There still exists another check that prevents you from getting
re-stunned in the next ~5 seconds (maybe we should remove that too?),
but the slowdown and combat disadvantages will apply as they are
supposed to. This means you can no longer stand up after being exhausted
to the point of fainting on the ground and immediately rush back into
combat.

In addition to that, I also did the following:
- Re-added the mass contest to EscapeInventorySystem. It seems like it's
been nuked when the new mass contest system was being implemented and
never added back.
- Fixed the mass contest in carrying again

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



https://github.com/user-attachments/assets/076b3c3b-cdd1-4ec7-969d-2564c814a40e


</p>
</details>

---

# Changelog
🆑
- fix: Shoving once again works correctly, and mass difference matters a
lot when shoving someone.
- fix: The time it takes to escape one's hands once again depends on the
mass difference between the escapee and the holder.
- tweak: Exiting stamina crit now leaves you with 0 stamina. You can't
be immediately stunned again, but you will suffer from slowdown and
combat disadvantages!

* Automatic Changelog Update (#809)

* Thieves Outside of Traitor (#799)

# Description


Mirroring a PR from Floof that I was much too lazy to cherry-pick. This
just changes gamemodes outside of tator and rev to allow thieves if it
makes sense to.

---


# Changelog

🆑
- tweak: Thieves are now in Survival, Hellshift, and Extended.

Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>

* Automatic Changelog Update (#799)

* Telepathy (Minor)Refactor (#819)

# Description

This PR re-introduces a feature that was present in the Psionic Refactor
version 1, that of the Natural Telepath trait. Where before Natural
Telepath was treated as an "Upgraded" version of Latent Psychic, now it
is a standalone trait that makes use of new functionality, where traits
can add psionic powers directly, as opposed to relying on just adding
components. To accomodate for this, the Telepathy functionality has been
modified such that it no longer makes the expectation that
PsionicComponent users have the ability to coherently speak
telepathically, and instead checks for a specific TelepathyComponent.
Since Telepathy is added to a Psion via their ActivePowers list, it is
also eliminated when the Psion is mindbroken.

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


![image](https://github.com/user-attachments/assets/b017b027-d283-484e-812e-37804d839c4a)

</p>
</details>

# Changelog

🆑
- add: TelepathyComponent has been split off from the PsionicComponent,
now as it's own standalone feature.
- add: Telepathy has been added as a new Psionic Power
- add: Natural Telepath has returned from Psionic-Refactor V1, now using
new functionality from the trait system that allows traits to buy
psionic powers directly.
- add: Latent Psychics who have neither bought Natural Telepath, nor
acquired Telepathy during the round, can sometimes hear snippets of
conversation from telepathic chat.
- tweak: The cost of Latent Psychic has been reduced from 6 to 4 points,
this is to accommodate for the loss of Telepathy as a bonus feature for
all Psionics. Since Natural Telepath is a 2 point trait, this gives a
net 0 change in trait points for anyone who wishes to keep being a
roundstart Telepath.
- tweak: Psionic Mantis, Mystagogue, Chaplain, and Cataloguer are all
Naturally Telepathic, and thus get the new trait for free.

* Automatic Changelog Update (#819)

* Psionic Insulation Trait (#820)

# Description

This PR brings back the x-Waveform Misalignment trait from Psionic
Refactor version 1. There's not really much to say here. Having this
trait means that you are completely immune to most psionic powers and
effects, with the only exception of the physical effects of Elementalist
abilities. It is also an extraordinarily expensive trait, the most
expensive in the game by far.

This trait will get even more useful when Cultists, Wizards, and
Heretics are brought into the game.

# Changelog

🆑
- add: x-Waveform Misalignment has been rebased from the Psionic
Refactor v1. x-Waveform Misalignment is an extraordinarily expensive
trait that grants full immunity to nearly all psionic powers and
effects, both positive and negative.

---------

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

* Automatic Changelog Update (#820)

* New Interaction System (#733)

# Description
This implements the New Interaction Verb System™©, designed to allow
defining verbs using yml and make adding new verbs way easier than it
was before. This was initially designed just to bring back generic no-op
interactions like hugging, but can now be used to create way more unique
interactions for all the different entities.

In the core of the system lies InteractionVerbPrototype. Besides
defining the obvious qualities of the verb itself, such as the name,
description, interaction constraints, it also has several important
properties:
- The requirement of the verb - what is required for the verb to show up
as "enabled" in the context menu and be allowed to be performed. There's
just one requirement slot, but using the ComplexRequirement class you
can use multiple requirements and choose whether they are combined via
boolean or, boolean and, or something in-between.
- The action of the verb - it defines its own IsAllowed (whether the
action is applicable to the target entity at all), CanPerform (called
before and after the potential do-after), which defines whether this
exact attempt at performing the action succeeds and shows a success
popup, or fails and shows a fail popup, and finally Perform, which tries
to perform the action and return a boolean result, which determines...
well, what was stated before. Similarly to requirements, there are
complex and conditional actions which can be combined into whatever
monstrousity you can imagine... In fact, it is entirely possible to
build a turing-complete programming language out of actions!
- Effects, specifically three of them: one that is shown when the
interaction performs successfully, one that is shown when it fails, and
one that is shown when the do-after for the interaction begins
succesfully (which means the first CanPerform check of the verb has
succeeded). Each one of them defines a popup (configuration for which is
stored in a different prototype) and a sound. Those are also designed to
be highly customizable: you can choose who sees the popup and where, and
more.

Verbs can be global or local. Global verbs are added to any entity
should it meet the prerequisites and pass all the necessary checks
(which are also designed to be highly configurable). Local verbs are
defined in OwnInteractionVerbsComponent and InteractionVerbsComponent of
the user and target respectfully.

At the moment of writing there are 8 built-in global verbs and 1
non-global verb, not including abstract verbs:
- 3 no-op actions that are made for RP purposes, that is looking at
someone, hugging someone, petting someone. The latter two may be later
used to modify the target's morale should the PR for it be merged.
- 2 actions related to standing: one for forcing someone down, and one
for helping them get up, waking them up and removing 2.5 seconds of stun
in addition to that (before you could click someone with empty hand to
remove 1.5 seconds of stun - I removed that in favor of the new system)
- 1 action for making someone who's laying down (on the bed or
otherwise) to sleep.
- 1 actions for falling asleep yourself (no need for bed or bag or
whatever to tell you that you can sleep - this does not provide any
healing properties or anything like that, purely an RP feature).
- 1 action for pinching yourself - made simply with the intent of
testing some possibilities of the new system, I decided to keep it
because it's a bit funny.

Local actions include:
- An action for knocking on windows, doors, windoors, computers,
machines.

More are to be added to this list as the progress continues.

# TODO
- [X] Implement the core of the system
- ~~Add more, way more actions. Possible ideas include:
[slapping/kicking someone, hugging toys/plushies, pressing random
buttons on a computer, ... ]. I could use some ideas for that.~~ -
skipping for now, we can do it in follow-up prs to clutter this one
less.
- [X] Port all InteractionPopupComponents to the new system, and remove
their old usages from non-animals.
- [X] Introduce contests and a way to configure them (could reuse
RangeSpecifier for that; certain actions such as pushing down/helping up
would benefit a lot from this).
- [X] Hide chat logs for people who cannot see the action being
performed.
- [X] Implement cooldowns
- [ ] Cleanup.

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

Note: this video was made before a few important fixes were made.


https://github.com/user-attachments/assets/17b616dd-4bc8-4af3-916c-6a5d16c77064

Newer video - demonstrates various actions and shows that chat logs
cannot be seen if the source of the logged popup is outside the view.


https://github.com/user-attachments/assets/d6228855-fb7f-45d1-812f-56afe10f3f86

</p>
</details>

---

# Changelog
🆑
- add: A new interaction system has been implemented. The right-click
menu now provides a wide variety of different interactions with
different entities. Some old default interactions, such as hugging,
knocking, fence rattling, have also been moved to that system.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>

* Automatic Changelog Update (#733)

* feat: translation for new interaction system

* fix: fix interaction system changing state action to ours

* Glacier Real (#1169) (#728)

* glacier real

* troll

* atmosia tweaks

* 1 less can of plasma not too op

* replace troll generator with solar crate

* add StationSurface to glacier

* add surface map

* biome stuff upstream #28017

* unpause after loading

* fix no terrain

* comment out the surface spawning

* shipyard

* glacier justiceroid

* updateprototype and cleanup

* fix random shit

* untroll

* courier

* add to test :trollface:

* fix

* futureproofing

* hot loop inlet lmao

* tweak some pumps in atmosia

* carpy and make salv locker lighting better

* Edit lights, move salv dock, add justice maints, edit entity names for
casing consistency, other minor edits

---------

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

Ports Glacier from DeltaV. Justice department has been yeeted.

# Changelog

🆑
- add: Glacier Returns.

---------

Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>

* Automatic Changelog Update (#728)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Rebase Saltern (#804)

# Description

Saltern, now featuring a full Epistemics department, and a Supermatter
engine. :)

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


![Saltern-0](https://github.com/user-attachments/assets/10de83fa-5ddb-47fe-b62f-3441314225be)

</p>
</details>

# Changelog

🆑
- add: Saltern has been added to the map rotation. Now featuring a
compact Supermatter engine, full Epistemics department, and a
significantly expanded Chapel and Library.

* Automatic Changelog Update (#804)

* Core Supermatter (#792)

# Description

**Walks into a room**
**Slaps down CORE, but with Supermatter**
**Doesn't elaborate**
**Leaves**

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


![Core-0](https://github.com/user-attachments/assets/4fbb8e6d-b4b8-4c73-b048-7349711a624a)


![image](https://github.com/user-attachments/assets/d5c37ac8-e500-404e-a0ad-520a68ca6d8e)

</p>
</details>

# Changelog

🆑
- add: Core has been added to the list of maps in rotation. This time
featuring a custom Supermatter Engine

* Automatic Changelog Update (#792)

* Fix InnatePsionicPowers For Mapped Entities (#824)

# Description

InnatePsionicPowers needed to be moved from ComponentStartup to
MapInitEvent, which is a deceptively named event that ALSO functions
identically in use to ComponentStartup, except that it's safe to use for
entities that are mapped in, in addition to joining the round or being
spawned in. Whereas ComponentStartup isn't allowed to modify or add
components for any entity that is mapped(which includes Spawners
apparently).

This change allows for entities like Oracle and Sophia to make use of
InnatePsionicPowers, which is done by request from Rane, who for
mysterious reasons wishes for the two divine statues to be both
Prayable, and have the Noospheric Zap Power.

I have also verified by ingame testing that this does infact apply to
people who join after the map is initialized, as well as things
pre-existing on the map. So Oracle still gets her powers, while a
latejoining Mystagogue still gets his.

# Changelog

🆑
- fix: InnatePsionicPowers now operates on MapInitEvent instead of
ComponentStartup, meaning that it can now be safely used on entities
that are mapped in instead of spawned.
- add: Oracle and Sophia are now recognized as Divine, and as such are
creatures that can be prayed to.

* Automatic Changelog Update (#824)

* Update Credits (#837)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>

* Disable Mood In Debug (#806)

# Description

MoodSystem has a Race Condition against DeleteAllThenGhost.

# TODO

- [ ] Run the tests 10 times in a row to see if DeleteAllThenGhost will
appear.

* Diagonal Window Smoothing (#805)

# Description

Diagonal windows weren't updated to use the new smoothing when we added
a bunch of new sprites designed around connected textures. This PR fixes
that for all diagonal windows.


![image](https://github.com/user-attachments/assets/4a54a00f-32d6-4365-ad0a-d96ecdbe6114)

# Changelog

🆑
- add: Diagonal windows now use connected textures.

---------

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

* Automatic Changelog Update (#805)

* Maximize Default Description Limits (#788)

# Description

The current in game UI can reasonably support names up to 48 characters
in length, as well as descriptions up to 1024 characters long. Any
longer, and the UI requires a scroll bar. This change is present on
Cosmatic Drift, which uses the same character UI we currently have. I've
had many people requesting this change, and while I am aware that we
wish to at some point update to a new character UI(such as Parkstation's
UI), but a stopgap here is still nice, and it's just two Const
variables.

# Media


![image](https://github.com/user-attachments/assets/d68c3e05-9659-464b-8fb1-8de7e41a674b)

# Changelog

🆑
- tweak: Character names can now be up to 48 characters in length.
- tweak: Character descriptions can now be up to 1024 characters in
length. This is the maximum size descriptions can be without the menu
having a scroll bar. And while we'd like it to be bigger, we're going to
want to get a new UI for this in the future!

* Automatic Changelog Update (#788)

* Bot for Changelog (#833)

🆑
- add: Changelogs should be shown in Discord now

---------

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: TAZIKLIK <73418250+TAZIKLIK@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Update actions_changelogs_since_last_run.py (#841)

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Added Jukebox (#26736) (#802)

<!--

-->

# Description

<!--

-->

Adds super cool super nice Jukebox to the bar! Ran off .ogg files, can
use any royalty free song.



---
<!--
-->

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

![Example Media on] 
![Screenshot 2024-08-26
061947](https://github.com/user-attachments/assets/352a0491-5cec-4b03-949b-8407aa858cb8)

</details>

---

# Changelog

<!--

-->

🆑 Kacey, Nova
- add: Added Jukebox with basic songs.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
Co-authored-by: DJBIGYAPPA420 <antoniobryandiii@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#802)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* remove: wrong changelog

* remove: wrong changelog

* fix: a few more incorrect translations

* Psionic Extraplanar Creatures (#829)

# Description

Certain things in the game were intended to be classed as Psionic(And
mostly without powers), but were apparently lacking the components. To
clarify, ANYTHING that comes from an alternate layer of reality,
alternative plane of existence, extra dimensions, other universes,
bluespace, etc, is intended to have a PsionicComponent to abstract
represent their nature as a magical being of some variety. The
importance of this is largely related to the use of Metapsionics to
detect them, but also for the valid target lists for Anti-Psychic
abilities, such as the bonus damage from the Anti-Psychic Knife.

While here, I've also added the "Loto Oil Slime" from Psionic Refactor
Version 1, now that Reagent Slimes(as Extraplanar creatures brought to
this world by Liquid Anomalies) have a PsionicComponent.

needs https://github.com/Simple-Station/Einstein-Engines/pull/824

# Changelog

🆑
- add: Revenants, Reagent Slimes, and Ore Crabs are now considered to be
Psionic(But cannot gain powers randomly). This is due to their status as
"Magical And/Or Extraplanar Creatures", which makes them valid targets
for anti-psychic abilities such as the Psionic Mantis' Anti-Psychic
Knife.
- add: Some Reagent Slimes can now contain Lotophagoi Oil.

* Automatic Changelog Update (#829)

* Cloning Refactor (#735)

# Description

Since Cloning code is effectively abandonware by it's original
codeowners, and I was the last person in this entire game to update it,
I am technically the codeowner of Cloning. And by extension, it's also
my responsibility to maintain the Cloning code. I've been putting this
off for awhile due to how busy I've been with other projects, but since
I'm now waiting on all my other refactors to be reviewed, I decided to
finally sit down and comprehensively refactor Cloning.

In addition to massive substantial code cleanup(Cloning machines no
longer run on Frametime for one!), here's most of the changes.

- Cloning Pods must be powered for the entire 30 second duration of the
cloning process.
- Said "30 second duration" is no longer hardcoded. Although no methods
currently exist to reduce it. I plan on revisiting this after I bring
back Machine Upgrading.
- Cloning can now FAIL partway through. If the cloning pod is Depowered,
Unanchored, or Emagged, it will automatically swap to the "Gore" state.
- When in a Gore state, Cloning Pods will destroy the entity they were
trying to clone, replacing them with a pool of blood and ammonia that
scales with the mass of the entity that was to be cloned!
- Clones come out of the pod with a significant quantity of Cellular
damage, and are almost always in need of resuscitation. Consider using
Cryogenics to "Finish" your clones. Doxarubixadone is literally named
after this process, and is a perfectly suitable cryo chem for
resuscitating clones.

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

New gore sprites for the Metem machine, because it can now have gore
mode.
![Metem gore
spites](https://github.com/user-attachments/assets/7cc06ce2-c8eb-413c-b996-85e555b67db3)


</p>
</details>

# Changelog

🆑
- add: Cloning & Metempsychosis Machines have been refactored!
- add: Cloning can now fail at any point during the cloning process,
turning the would-be clone into a soup of blood and ammonia.
- add: "Clone Soup" scales directly with the mass of the entity you're
attempting to clone. Fail to clone a Lamia, and you'll be greeted with
an Olympic swimming pool worth of blood when the machine opens.
- add: Cloning will fail if at any point during the procedure, the
machine is depowered, unanchored, or emagged.
- add: Clones come out of the machine with severe Cellular damage.
Consider using Doxarubixadone in a Cryo tube as an affordable means of
"Finishing" clones.
- tweak: Cloning Time is now increased proportionally if an entity being
cloned is larger than a standard human(smaller entities are unchanged)
- tweak: The cost to clone an entity can now be configured on a
per-server basis via CCVar "cloning.biomass_cost_multiplier"
- tweak: The Biomass Reclaimer can now be toggled to round-remove
ensouled bodies or not via CCVar "cloning.reclaim_souled_bodies"
- add: The effects of Metempsychosis now scale with a Psion's relevant
caster stats. More powerful psychics are more likely to get favorable
results from being forcibly reincarnated.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#735)

* Delete All Then Ghost Fault Tolerance (#787)

# Description


![image](https://github.com/user-attachments/assets/4135c3fa-d2e0-41ca-b8f4-49e149d43ef3)

I'm putting this here as an option to deal with our Heisentest problems,
by making the tests "Fault-Tolerant" wherever practical, but I don't
want this merged without Death and Psprite agreeing to this. For the
most part I believe that these tests are failing because they are
essentially checking that "Random events are not creating entities", by
creating their own enforced Race Conditions. This particular test is
repeatedly failing because the Mood System has no way of deducing that
it's in a test. Even though the alleged issue is a nothingburger.


![image](https://github.com/user-attachments/assets/777b31f1-87a7-4eee-8a62-993acb322315)

Tests absolutely shouldn't have been designed around race conditions.

# Changelog

No changelog because this isn't playerfacing.

* Update Issue Templates (#797)

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

Rewrites the issue templates and removes the redundant security
vulnerability issue

Also, sorry Death, titles are now sentence case to maintain consistency
with the auto generated security policy one

Blame GitHub not me </3

---

<!--
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>
Here's the old one, can't make issues on a fork so I can't show how it
looks now.

![image.png](https://github.com/user-attachments/assets/ae8319ed-b66c-4415-9f6d-1048ddc53e07)

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

N/A

Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>

* Add PR URL to Changelogs and Make Author a Header (#843)

🆑
- add: New changelogs should now show links to their PRs
- tweak: Changelog authors should now be a header instead of bold text
- fix: Changelogs shouldn't send random amounts of old changelogs

---------

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#843)

* Update actions_changelogs_since_last_run.py (#846)

string didn't become int
🆑
- fix: oatnsdaoersoaetaroeoertnsirlea

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Psychognomy (#808)

<!--
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
Psychognomy is a passive power that gives you a descriptor on the origin
of a telepathic message. There's enough of them that are ambiguous
enough. I also changed Oracle and Sophia a little bit, giving them
innate psionic powers.

🆑 Rane
- add: Added Psychognomy.
- tweak: Reverted Sophia name change.
- tweak: Minor tweaks to psionic chat eligibility and formatting.
- add: Some new utility has been added to player-controlled Oracle or
Sophia. NPC functionality later :^)

---------

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

* Automatic Changelog Update (#808)

# Conflicts:
#	Resources/Changelog/Changelog.yml

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Signed-off-by: stellar-novas <stellar_novas@riseup.net>
Signed-off-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Signed-off-by: v0idRift <163446847+v0idRift@users.noreply.github.com>
Signed-off-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Co-authored-by: Daniela <43686351+Day-OS@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: Rane <60792108+Elijahrane@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: v0idRift <163446847+v0idRift@users.noreply.github.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: Fansana <116083121+Fansana@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
Co-authored-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Evgencheg <73418250+Evgencheg@users.noreply.github.com>
Co-authored-by: TAZIKLIK <73418250+TAZIKLIK@users.noreply.github.com>
Co-authored-by: DJB1gYAPPA <whyeven42@gmail.com>
Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
Co-authored-by: DJBIGYAPPA420 <antoniobryandiii@gmail.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
2024-09-06 02:58:42 +07:00
OldDanceJacket
c8c859a6a8 Melee Pt2 (#693)
# PT2 of Melee Weapons The Numbers Don't Lie

This is part 2 of the ongoing work of Solid and myself going through and
touching up the melee combat in the game. In this part I rebalance all
of the melee weapons to generally do less damage, more stamina damage,
and be more unique in regards to slight range changes, attack speed
adjustments, along with every weapon getting slightly adjusted heavy
swing changes ranging from attack rates, damage, range, angle, and how
many targets you can hit.

Majority of weapons will hit the standard amount of targets of 5(the old
norm), but a few are lowered to be single target hits. These are usually
tightened in the angle that they attack in(old angle range was 60).
Similarly all melee weapons have individual stamina costs on their heavy
swings, most of these are in the range of 5 or 10, and following this PR
the new standard should be 10 as the outliers that would abuse this have
been addressed in this PR.

---

# Changelog

Normally I would do a changelog but this took awhile and I forgo. 

🆑 ODJ
- tweak: Melee Weapons now feel different across the board, from the
Wrench to the Chainsaw, try out their normal swings and their heavy
attacks!

---------

Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: jcsmithing <jcsmithing@gmail.com>
2024-08-10 13:00:06 +01:00
Mnemotechnican
92dcd724d4 Refactor Sign Languages and Language Markers (#575)
# Description
This refactors #510 and #553. #553 specifically was reverted and
re-implemented from scratch. As a consequence to all of this, the chat
system was refactored a bit too, hopefully for the best.

Changes:
- InGameICChatType, InGameOOCChatType, ChatTransmitRange were all moved
to shared and made serializable
- Added a method to wrap whisper messages to reduce code duplication in
chat system
- Both WrapPublicMethod and WrapWhisperMessage call the same generic
WrapMessage method, which allows to add speech verbs to whispers and
more. That method is also fully responsible for adding language markers
and deducing speech verbs now.
- Everything related to speech was moved out of LanguagePrototype and
into SpeechOverrideInfo. LanguagePrototype now holds an instance of
that.
- Added AllowRadio, RequireSpeech, ChatTypeOverride,
SpeechVerbOverrides, MessageWrapOverrides to SpeechOverrideInfo, all of
which are used in implementing the sign language.
- Suffered a lot

# TODO
- [X] Cry
- [X] Fix the sign language not displaying properly over the character.
- [X] Find a way to circumvent being unable to speak??

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


![image](https://github.com/user-attachments/assets/845ec5d3-20aa-4786-bdc8-c39c80e0a4a3)

See below

</p></details>

# Changelog
No cl no fun

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
2024-07-26 13:11:42 -07:00
DEATHB4DEFEAT
ec385000a3 Merge branch 'master' of https://github.com/Simple-Station/Einstein-Engines into wizden-mass-pick-1 2024-07-17 22:15:12 -07:00
VMSolidus
806dc0107b Mass Contests Remake (#480)
# Description

Part of Issue #467 

This is a complete re imagining of the Nyanotrasen Mass Contest
System(Long since removed from the game). This system adds a highly
flexible function that outputs a ratio of a given entity's mass, that is
optionally relative to another entity. I've primarily written this
system to be used in conjunction with PR #458 , as it adds several new
implementations of variable player mass to the game.

How this differs from the original Mass Contest system is that it is
configured via hotloaded CVars, and is inherently clamped so that
character mass only modifies functions by a finite amount rather than
providing infinite scaling. This essentially means that while an Oni is
25% better at shoving a Felinid to the floor thanks to their different
masses, a 2000kg Lamia is also only 25% better at shoving a Felinid to
the floor, rather than 50000% better. The inverse is also true, a small
player character can only be 25% better or worse at a given
implementation. These implementations are not handled directly by the
ContestSystem, and are instead handled directly by other systems that
call upon it.

This percentage limit can be modified by a new CVar at any time.
Additionally, the entire MassContest system can be optionally toggled
off completely at any time via CVar, without needing to modify any code
that calls upon it.

At this time, I have included three different implementations to serve
as suitable examples for how MassContest can be used.

1. Weapon recoil is now modified by an entity's mass relative to the
human average baseline. Smaller characters experience more recoil,
larger characters experience less recoil
2. Disarm/Shove is now modified by Mass Contests. Entities that are
sized differently from their target have their shove/disarm chance
modified based on the ratio of performer and target mass.
3. Certain types of handcuffs(such as Cablecuffs and zipties) are now
faster to slip out of if you are smaller than the average.

# Changelog

🆑
- add: Mass Contests have returned in a new reworked form. 
- add: Weapon Recoil is now resisted by character mass. More massive
characters take less recoil, less massive characters take more recoil.
- add: Disarm and Shove actions are now modified by relative character
mass. It is easier to shove people around if you're bigger than them.
- add: Cablecuffs and Zipties are now easier to escape out of if you're
smaller.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
2024-07-13 09:05:51 +01:00
metalgearsloth
13e5c560f6 Loadouts redux (#25715)
* Loadouts redux

* Loadout window mockup

* More workout

* rent

* validation

* Developments

* bcs

* More cleanup

* Rebuild working

* Fix model and loading

* obsession

* efcore

* We got a stew goin

* Cleanup

* Optional + SeniorEngineering fix

* Fixes

* Update science.yml

* add

add

* Automatic naming

* Update nukeops

* Coming together

* Right now

* stargate

* rejig the UI

* weh

* Loadouts tweaks

* Merge conflicts + ordering fix

* yerba mate

* chocolat

* More updates

* Add multi-selection support

* test

h

* fikss

* a

* add tech assistant and hazard suit

* huh

* Latest changes

* add medical loadouts

* and science

* finish security loadouts

* cargo

* service done

* added wildcards

* add command

* Move restrictions

* Finalising

* Fix existing work

* Localise next batch

* clothing fix

* Fix storage names

* review

* the scooping room

* Test fixes

* Xamlify

* Xamlify this too

* Update Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Security/detective.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* ben

* Margins

---------
2024-07-12 02:28:31 -07:00
BITTERLYNX
76624a8c01 Fire sprite change for mice (#26758)
* Add new fire sprite for mice that fits them better

* Add the sprite change to rats as well

* Moffroach and hamsters now also have more fitting fire sprites

* made the meta.json easier to read
2024-07-11 21:32:38 -07:00
Tayrtahn
1769ba7908 Combine solution injection systems; Fix embeddable injectors (#26268)
* Combine injection systems

* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-07-11 21:14:47 -07:00
Bixkitts
147e574d1f MeleeHitSoundSystem (#25005)
* Began work to unscrew melee noises

* finished

* cleanup

* cleanup

* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* _Style

* Fix merge

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-07-11 21:10:16 -07:00
VMSolidus
30fa1207b2 Update Submodule to 219.2.0 (#536)
Uses the following Cherry-Picks:
https://github.com/space-wizards/space-station-14/pull/26994
https://github.com/space-wizards/space-station-14/pull/26518
https://github.com/space-wizards/space-station-14/pull/26279
https://github.com/space-wizards/space-station-14/pull/24946
https://github.com/space-wizards/space-station-14/pull/27188

Requires:
https://github.com/Simple-Station/Einstein-Engines/pull/535
https://github.com/Simple-Station/Einstein-Engines/pull/534

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Jake Huxell <JakeHuxell@pm.me>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: DEATHB4DEFEAT <zachcaffee@outlook.com>
2024-07-11 17:40:02 -07:00
VMSolidus
40d411bbbc Cherrypick "Shoot Over Bodies" And Related PRs (#479)
# Description
This is a manual cherry-pick of the following PRs:
https://github.com/space-wizards/space-station-14/pull/27905
https://github.com/space-wizards/space-station-14/pull/28072
https://github.com/space-wizards/space-station-14/pull/28571

I REQUIRE these for my work in PR #11 , and cannot complete said PR
without these cherry-picks. This set of PRs from Wizden adds a feature
where entities can selectively opt-out of being shot at unless a player
intentionally targets them, which I can use as a simple and elegant
solution to one of the largest glaring issues for Segmented Entities. I
could simply give Lamia segments the new
RequireProjectileTargetComponent, which adds them to the system. Future
segmented entities such as the hypothetical "Heretic Worm" may or may
not use this feature, depending on their intended implementation.

---------

Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
2024-06-23 01:00:32 -04:00
VMSolidus
b353d958ec Port Randomly Fire Dropped Weapons (#471)
# Description

Ports
https://github.com/Simple-Station/Parkstation-Friendly-Chainsaw/pull/19

I have added a new stat for firearms, the "Reliability" stat, which is a
number between 0 and 1. It's used as a percentage chance for the weapon
to fire itself when violently thrown into anyone. This PR differs from
the original one slightly in that to get it to actually work without
crashing, I set the system to listen to an event that triggers whenever
the gun collides with another entity, not necessarily just the floor.
This is the same event responsible for the clown's cream pie system, or
for glass shards embedding in an entity.

# Changelog

🆑
- add: NanoTrasen has disabled the unneeded safeties on your guns- Make
sure you're careful with them!
- tweak: All Firearms now have a reliability stat, some are more
reliable than others. The more reliable a weapon is, the less likely it
is to accidentally discharge when yeeted.
2024-06-20 23:17:02 +01:00
Tayrtahn
a8d082374d Remove all obsolete BatteryComponent method calls (#25871)
Removed all obsolete, non-ECS method calls to BatteryComponent

(cherry picked from commit 2935e5bd780d6cd08897521ba0b54adccb3fd0da)
2024-03-07 01:52:46 +01:00
Debug
b1958e9ac6 Revert "Cleanup ExecutionSystem (#24382)"
This reverts commit dc56c5992f.
2024-03-07 00:51:07 +01:00
nikthechampiongr
dc56c5992f Cleanup ExecutionSystem (#24382) 2024-03-05 09:55:50 +01:00
metalgearsloth
345cb0f96d Remove contests (#25425)
- Not mentioned anywhere ingame.
- Stupid.

(cherry picked from commit 012e6e6c86e2637b6fa8788a59af4eb974e990b8)
2024-03-05 09:39:03 +01:00
Jessica M
f5a0ac1688 Makes clumsy not delete guns (#25243)
clumsy no longer deletes guns

Co-authored-by: Jessica M <jessica@maybe.sh>
(cherry picked from commit d0c24f9aff574e4f929dff66c7dac4c167e51fb5)
2024-02-18 23:11:19 +01:00
metalgearsloth
ac052e4666 Revert "Make flare gun explode, damage and stun the player when used … (#24679)
* Revert "Make flare gun explode, damage and stun the player when used with the wrong ammo (#22349)"

This reverts commit e301378114b245fa6927372f83c19868cb90b13c.

# Conflicts:
#	Content.Shared/Weapons/Ranged/Components/GunComponent.cs
#	Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml
#	Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml

* Fix revert conflicts

* Update Content.Shared/Weapons/Ranged/Components/GunComponent.cs

(cherry picked from commit e1901aa6b602516f0f7cc3f29844c77e90c77977)
2024-02-08 11:52:32 +01:00
metalgearsloth
823d9dd892 BatteryWeaponFireModes refactor (#24502)
* BatteryWeaponFireModes refactor

Made the code a bit better but still needs integrating into attachments.

* murder

* Fix serialization

* weh

* weh

(cherry picked from commit 58b55ba06c5de031079915a607ccf3adad781f93)
2024-02-08 11:52:31 +01:00
DrSmugleaf
5329280378 Add events for GunComponent values, muzzle flashes and cartridge spread (#24077)
* Add a modifier event for GunComponent values

* Add docs

* Add VV readwrite to modified values

* Add more docs

* More docs

* Add Gun parameter to GunRefreshModifiersEvent

* Add another event for handling cartridge spread

* Fix pneumatic speed

(cherry picked from commit 4e8b1fb0d3ef23c79ea3ca0cec05932de03601f5)
2024-02-08 11:52:29 +01:00
LordCarve
3dfd479199 DamageSpecifier Total => GetTotal (#24160)
* DamageSpecifier [Obsolete] Total => GetTotal()

* Remove obsolete Total member from DamageSpecifier.

(cherry picked from commit c77eb8691dc08d384a88ddaf3b734f7777d741b5)
2024-01-27 23:42:35 +01:00
Ed
145c2158ca Star Wars 14: Shuttle weapon update (#23644)
* setup codebase

* make auto-fire, but its broken

* collider problem

* fix rate, add toggle port

* add laser

* power cages

* ginormous cells

* fix inhand

* add pirate cannon

* salvage gun

* functional Nuke cannon

* rewrite to standart grenade

* fix naming, add emp sprite

* grenade cartridge

* thruster fix

* nuke cannon

* audio + visual polish

* balance tweak

* tweaks

* laser balance tweak: new Electronic damage modifier set, reduce structural cannon damage

* resprite energy cages, start implementing in game

* fix cage recharger craft

* add small laser gun

* fix colliders

* add  lasers and ptk to research and crafting

* finish implementing weapon to rnd and sec

* some fixes

* splitted grenades and cannon balls

* integrate new cannon balls

* tweaks stick

* move circuits to sectechfab, fix

* fix?

* add ability to E shoot, without signals

* fix!

* fix?!?! and naming tweak

* go!

* Lank fix

* oh

* mornings don't start with coffee.

* the morning starts with bug fixes.

* fucking bugs!

* finally

* it is now possible to craft projectiles separately from cartridges

* +2 fix

* refactor

* piu

* More weight

* add AutoShootGunComponent

* move autoshoot to partial

* SetEnabled()

* some fixes

* remove CanShootWithoutUser field

* remove null-checks ToCoordinates from AttemptShoot()

* war without reason

* return to home

* ?

* forgot remove it

* review

* Fix formatting and update path

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

(cherry picked from commit a2d5d74b46060d330e5aa14e166692f32dcce7a9)
2024-01-27 23:40:06 +01:00
keronshb
0c8d256d71 Moves ShootProjectile to shared (#24007)
(cherry picked from commit 2375a6cd1d2edfe6692c4a0ad388d2a3f5a3ce01)
2024-01-26 22:34:26 +01:00
metalgearsloth
b1738dcf9c AutoCompState + ItemToggle fixes (#23422)
* AutoCompState + ItemToggle fixes

Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.

* Also catch these

(cherry picked from commit 2166958bd0c23b7b9fd5c699eaeee910d1db62bf)
2024-01-26 21:27:29 +01:00
TemporalOroboros
ce27944275 Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19e56a582b6b12f832bd318efbdac7c7)
2024-01-23 23:00:42 +01:00
TemporalOroboros
aebae6fab7 Content ecs containers (#22484)
(cherry picked from commit 7a77d6d5dd73a34be238fdebc284da5bc2917c67)
2024-01-22 18:47:55 +01:00
Darkie
03abecd365 ItemToggle system expansion (#22369)
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.

* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!

* Changing Stunbaton system to include the itemToggle system.

* Adapted changes that have come up in the meantime.

* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.

* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.

* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.

* Removed unnecessary usings.

* Small modification to the stun prod.

* Made the integration test use the new method to turn the welders on.

* Fixed a few testing issues, applied a few changes requested by Delta.

* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.

* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.

* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.

* Renamed variables used to make them less generic.

* Simplified the light update code.

* Fixed the unit test to use the itemToggle system for welders now.

* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.

* Fixed some YML issues.

* Added a client side item toggle system just to make the shared code run on local UID's too.

* Fixed some more Yaml.

* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.

* Made the zippi lighter its own in-hand sprites.

* Added a summary for the activated property in itemtoggle component.

* Fixed a typo in the itemToggle Component.

* Fixed a typo.

* Added to the remarks for the ItemToggleComponent.

* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.

* Fixed a bug I introduced accidentally with the humming sound.

* Removed 2 unnecessary events from the ItemToggleSystem and component.

* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.

* Cleaned up some names and functions getting called.

* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.

* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.

* Fixed a typo. Added some comments.

* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.

* Fixed the namespaces for the server components and whatnot.

* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.

* Added the zippo lighter to the detective's trench coat.

* Removed the default hit sound for the double e-sword since it was unnecessary.

* Changed e-sword damage numbers to be in line with the changes made by Emisse.

* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.

* Typo.

* Fixed a bug where the welder would blind you if you used it while it was off.

* Created a single abstract method called when an item has completed its toggle.

* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Fixed a comment.

* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.

* Removed trailing white spaces.

* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.

* Small fixes.

* Removed ForceToggle, just use the toggle method instead.

* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).

* Used ProtoId in the welder component.

* Made damage NetSerializable as well.

* Added networking and data fields to a couple of components.

* Made component variables autonetworked. Added some comments.

* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.

* Made all the component variables readWrite again.

* Added the component get to the WelderStatus.

* Added a predictable bool to the item toggle component.

* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.

* Added a reflect update raise event.

* Removed the Zippo changes. To add in a later PR.

* Removed the zippo from meta.json too.

* Small fix.

* Another small fix.

* Fixed the wieldable system thing in ItemToggle.

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

(cherry picked from commit a3fbab84e645a16a30845aa1e683e7ffc0e3b8cd)
2024-01-22 18:29:05 +01:00
Debug
18f0af1f68 Implement gridinv, proper (#703)
* Implement gridinv, 1500 squashed commits :elp:

* Me when

* Linter errors

* Fix katana belts
2024-01-21 19:58:28 +01:00
brainfood1183
5b911e7067 Weapon Random Fixes (documented and removed hardcoded cluwnecomp) (#22352)
Weapon Random Fixes
2023-12-22 22:56:13 +01:00
MendaxxDev
a908b24ba1 Make flare gun explode, damage and stun the player when used with the wrong ammo (#22349)
* Flare gun can now only be loaded with actual flares

* Make flare gun loadable with other shells, but destroy it and damage and stun the user when used

* tweak

* Logic fix + QOL add-ons

* damageOnWrongAmmo in gun component

* cleanup
2023-12-16 20:30:33 +01:00
Errant
ef250013fc Don't allow disarm on incapacitated targets (#22298) 2023-12-16 19:39:24 +01:00
metalgearsloth
b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
Nemanja
27624ad280 Speed Boots [Tier 3 Civ-Service] (#21438)
* Speed Boots

* validate

* monkey
2023-11-12 20:48:04 +01:00
Leon Friedrich
e66c0b5035 Un-revert IPlayerManager refactor (#21244) 2023-10-31 19:00:44 +01:00