Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix InnatePsionicPowers For Mapped Entities #824

Merged

Conversation

VMSolidus
Copy link
Member

@VMSolidus VMSolidus commented Aug 30, 2024

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.

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: YML Changes any yml files labels Aug 30, 2024
@VMSolidus VMSolidus merged commit 6202056 into Simple-Station:master Aug 31, 2024
13 checks passed
SimpleStation14 added a commit that referenced this pull request Aug 31, 2024
VMSolidus added a commit that referenced this pull request Sep 2, 2024
# 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 #824

# Changelog

:cl:
- 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.
Remuchi pushed a commit to WWhiteDreamProject/wwdpublic that referenced this pull request Sep 3, 2024
# 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 Simple-Station/Einstein-Engines#824

# Changelog

:cl:
- 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.
Remuchi added a commit to WWhiteDreamProject/wwdpublic that referenced this pull request Sep 5, 2024
* 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
:cl:
- fix: You no longer need to have a station record to publish news.

Signed-off-by: Mnemotechnican <[email protected]>

* 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

:cl: 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Angelo Fallaria <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
# 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

:cl:
- 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
# 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added IPC as a playable species.

---------

Signed-off-by: Timemaster99 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: Daniela <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl: 
- tweak: Ifrit has received some damage resistance changes

---------

Signed-off-by: stellar-novas <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

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

---------

Signed-off-by: Danger Revolution! <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Fix RGB Moths (#777)

# Description

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

# Changelog

:cl:
- 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! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Mnemotechnican <[email protected]>

* 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

:cl:
- 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
:cl:
- 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

:cl:
- 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 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Supermatter Annoncements

Signed-off-by: FoxxoTrystan <[email protected]>

* 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


:cl:

- 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

:cl:
- fix: Fixed the FixGridAtmos command.

Co-authored-by: Leon Friedrich <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl: 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

:cl:
- 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

:cl:
- 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

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

---------

Signed-off-by: VMSolidus <[email protected]>

* 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
:cl:
- 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

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

Signed-off-by: ShatteredSwords <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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
:cl:
- 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 <[email protected]>

* 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

:cl:
- add: Glacier Returns.

---------

Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Velcroboy <[email protected]>

* 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

:cl:
- 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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

:cl:
- add: Diagonal windows now use connected textures.

---------

Signed-off-by: VMSolidus <[email protected]>

* 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

:cl:
- 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)

:cl:
- add: Changelogs should be shown in Discord now

---------

Signed-off-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: TAZIKLIK <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Update actions_changelogs_since_last_run.py (#841)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* 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

<!--

-->

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

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: iNVERTED <[email protected]>
Co-authored-by: DJBIGYAPPA420 <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: 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! <[email protected]>

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

:cl:
- 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 <[email protected]>

* Automatic Changelog Update (#843)

* Update actions_changelogs_since_last_run.py (#846)

string didn't become int
:cl:
- fix: oatnsdaoersoaetaroeoertnsirlea

Signed-off-by: DEATHB4DEFEAT <[email protected]>

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

:cl: 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 <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#808)

# Conflicts:
#	Resources/Changelog/Changelog.yml

---------

Signed-off-by: Mnemotechnican <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Signed-off-by: Timemaster99 <[email protected]>
Signed-off-by: stellar-novas <[email protected]>
Signed-off-by: Danger Revolution! <[email protected]>
Signed-off-by: v0idRift <[email protected]>
Signed-off-by: FoxxoTrystan <[email protected]>
Signed-off-by: ShatteredSwords <[email protected]>
Signed-off-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Mnemotechnican <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: SimpleStation Changelogs <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: Daniela <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: username <[email protected]>
Co-authored-by: stellar-novas <[email protected]>
Co-authored-by: Rane <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: v0idRift <[email protected]>
Co-authored-by: FoxxoTrystan <[email protected]>
Co-authored-by: Fansana <[email protected]>
Co-authored-by: Leon Friedrich <[email protected]>
Co-authored-by: router <[email protected]>
Co-authored-by: ShatteredSwords <[email protected]>
Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Velcroboy <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Evgencheg <[email protected]>
Co-authored-by: TAZIKLIK <[email protected]>
Co-authored-by: DJB1gYAPPA <[email protected]>
Co-authored-by: iNVERTED <[email protected]>
Co-authored-by: DJBIGYAPPA420 <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
Peptide90 added a commit to Vault-Overseers/nuclear-14 that referenced this pull request Sep 18, 2024
* Vulpkanin Update (#715)

![WarningTrystan](https://github.com/user-attachments/assets/958f868b-11b9-48f0-80ab-13d9ff243f06)
<!--
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 is the rework regarding the unique feature for vulpkanins, this
is mostly due to the "FORCED" Issue by VM:
https://github.com/Simple-Station/Einstein-Engines/issues/711

This PR will mostly add the new features that will mostly make
Vulpkanins unique.

For Vulpkanin Stats changed please check this PR:
https://github.com/Simple-Station/Einstein-Engines/pull/713

- Flash Damge: Flashable has 2 new variables "EyeDamageChance" (Float)
and "EyeDamage" (int), those are default to 0 but if changed could give
a chance from 0 to 1 to give EyeDamage from the EyeDamage Value, this is
not fixed to vulpkanin and can be added to anything with the "Flashable"
Component.
- ScentTracker: Add a new Forensics type "Scent", scent will spread on
everything you wear and only the ent with the "ScentTrackerSystem" can
track a scent, tracking a scent will leave an effect on those who has or
the item with the scent, scent can be cleaned away with soap or you can
compleatly generate a new scent of a person by cleaning yourself, note:
someone with a scent does not mean his the one making that scent, they
may just have an item with the scent in their bag!
- Vulpkanins Screams: I have 5 Fox Screams that need to be edited and
need to be added in-game for vulpkanins with a lisence, just need to
have the time to do it and this PR seem the perfect place for it.

---

# 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] Flash Damage
- [x] Scent System
- [x] ScentTracker System
- [x] Vulpkanin Screams

---

<!--
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/3bd60c0f-2528-4be7-a52d-defe2990c475)

![image](https://github.com/user-attachments/assets/6756b6af-3f76-4faa-9fbd-c35964b267b3)

![image](https://github.com/user-attachments/assets/b4ff84a2-64eb-4985-876b-d3e93fc8bd12)

![image](https://github.com/user-attachments/assets/dd4b47ea-ae39-44c3-b5a2-27ee68703857)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: FoxxoTrystan
- add: Forensics Scent Type and Vulpkanins can now track scents, better
keep yourself clean!
- tweak: Vulpkanins eyes are sensetive, please dont flash them with
lights as this could damage them.
- add: Vulpkanins now has their own screams!

---------

Signed-off-by: FoxxoTrystan <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>

* Automatic Changelog Update (#715)

* Cherry-Pick Antag Refactor (#734)

This cherry-pick's Wizden's Antag Refactor, which is needed for all
future antag updates, as well as for me to cherry-pick over Cultists(Who
are going to need some editing to fit the antag refactor), Changelings,
Heretics, and Wizards. I actually selected the White-Dream-Public
version of the Antag Refactor, due to it having commits made tailored to
our repository, so it comes prepackaged with all the changes necessary
for our repo-specific content.

https://github.com/frosty-dev/ss14-wwdp/pull/10

Signed-off-by: Timemaster99 <[email protected]>
Co-authored-by: ThereDrD <[email protected]>
Co-authored-by: Jeff <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Azzy <[email protected]>

* Adds Fake Blindfold (#718)

# Description


![image](https://github.com/user-attachments/assets/ecd62f8e-1ac9-4795-b672-1fa57417d471)

# Changelog

:cl: DangerRevolution
- add: Adds a new blindfold variant into loadouts.

* Automatic Changelog Update (#718)

* Update Credits (#746)

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

Co-authored-by: SimpleStation Changelogs <[email protected]>

* [S] Onis: Get A Boatload Of Troll Horns. (#741)

# Description

Adds **16** new horns to Onis, 10 of which are inspired by **Homestuck**
trolls. Most of the new horns have three-tone variants, and some also
have striped variants.

New horns and available variants:
- Antlers (Three Tone)
- Aries (Three Tone)
- Double Thick (Striped, Three Tone)
- Erebia (Ringed, Three Tone)
- Inclined (Three Tone)
- Makara (Striped, Three Tone)
- Nepeta (Three Tone)
- Pisces (Striped, Three Tone)
- Sagittarius
- Serket (Three Tone)
- Taurus (Striped, Three Tone)
- Tavris (Three Tone)
- Unicorn
- Vantas (Three Tone)
- Virgo (Three Tone)
- Wavy (Striped, Three Tone)
- Three Tone for the existing Double Curved horn
- Three Tone for the existing Double Curved Outwards horn

## Media

**Serket (Three Tone)**


![image](https://github.com/user-attachments/assets/69beabb3-01ea-49ac-9e9e-8d9351bf99df)

<details><summary>See more</summary>

**Makara (Striped)**


![image](https://github.com/user-attachments/assets/839707b7-c063-41f4-b59f-dc36f2126967)

**Aries (Three Tone)**


![image](https://github.com/user-attachments/assets/ba7a65da-06d0-4ddd-b0d0-afa9cff5ad03)


![image](https://github.com/user-attachments/assets/b4abcdd2-a11e-4d4f-be61-1970e78cf588)

**Antlers**


![image](https://github.com/user-attachments/assets/cfb47d5b-f985-4dbe-b86d-96c31472007f)

**Pisces (Striped)**


![image](https://github.com/user-attachments/assets/9426c51e-49fe-41d4-b049-ee8b1a159c57)

**Wavy**


![image](https://github.com/user-attachments/assets/c29420aa-4576-49ec-af08-0ff38aff7ea4)

**Taurus (Striped)**


![image](https://github.com/user-attachments/assets/9aa3084e-4acc-473e-b875-465b242d0551)

**Nepeta (Three Tone)**


![image](https://github.com/user-attachments/assets/639abc4a-0cf1-456a-b214-6520e39e992f)

**Sagittarius (Three Tone)**


![image](https://github.com/user-attachments/assets/2a4a7c6f-0678-462d-8de6-f8fe6c10aef3)

**Unicorn**


![image](https://github.com/user-attachments/assets/6783cbd4-2dcf-4204-bb03-3f3601e1c6f7)


![image](https://github.com/user-attachments/assets/c09f7ef3-a0e3-429f-be70-76db0232ad01)

</details>

## Changelog

:cl: Skubman
- add: 16 new horns for Onis have been added, with three-tone variants
and some striped variants! The new horns include the Serket, Nepeta,
Vantas, Makara, and more.
- add: The Oni horns Double Curved and Double Curved Outwards have
received three-tone variants.

* Automatic Changelog Update (#741)

* 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
:cl:
- fix: You no longer need to have a station record to publish news.

Signed-off-by: Mnemotechnican <[email protected]>

* Automatic Changelog Update (#739)

* Revert "Cherry-Pick Antag Refactor (#734)" (#749)

This reverts commit 08822e34ba1fff304b90f636b830040954a273f0.

# Description

Our server partner White Dream had some unreported issues with their
cherry-pick of the Antag Refactor, which it turns out were server
breaking problems.

* Luxurious Loadout Items (#753)

# Description


This PR adds the Blunt and Joint in the Smokeables category, the Station
Map, Lantern, MRE Flask, and undepartmentalized flasks in the misc
category, and it adds Cow Tools for the clown in the Jobs category for 3
points. Also found out the hard way that renaming your branch
essentially deletes it, therefore closing your PR. Not doing that again!

---


# Changelog


:cl:
- add: Several useful items have been added to loadouts
- add: Cowtools are selectable for clown in the "Jobs" category of
loadouts

---------

Signed-off-by: ShatteredSwords <[email protected]>

* Automatic Changelog Update (#753)

* 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

:cl: 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Angelo Fallaria <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#620)

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Update SECURITY.md (#755)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added IPC as a playable species.

---------

Signed-off-by: Timemaster99 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: Daniela <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl: 
- tweak: Ifrit has received some damage resistance changes

---------

Signed-off-by: stellar-novas <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#762)

* Fix Missing Icon Error in Admin Menu (#770)

Admin menu tried to load a sprite that doesn't exist which spammed
errors in testing a lot.

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

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

---------

Signed-off-by: Danger Revolution! <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Fix RGB Moths (#777)

# Description

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

# Changelog

:cl:
- 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! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Mnemotechnican <[email protected]>

* 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

:cl:
- 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
:cl:
- 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

:cl:
- 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 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Supermatter Annoncements

Signed-off-by: FoxxoTrystan <[email protected]>

* 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


:cl:

- 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

:cl:
- fix: Fixed the FixGridAtmos command.

Co-authored-by: Leon Friedrich <[email protected]>

* Automatic Changelog Update (#803)

* Improve README/Legal Files (#782)

# Description

Was vague and poorly written, might still be a bit vague, but that's why
it's being reviewed.

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl: 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

:cl:
- 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

:cl:
- 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

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

---------

Signed-off-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#800)

* Update README.md (#817)

Fixes a broken link to RobustToolbox

Signed-off-by: Pspritechologist <[email protected]>

* 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
:cl:
- 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

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

Signed-off-by: ShatteredSwords <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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
:cl:
- 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 <[email protected]>

* Automatic Changelog Update (#733)

* Rebalance Radiation Shielding (#791)

# Description

This PR is a MUCH needed QOL update for all of our downstream servers
that have started mapping in Supermatter engines. I have gone through
every single entry of the RadiationResistance component in the game, and
tweaked the values of them so that it is actually reasonably practical
to provide some protection to the rest of the station during a
Supermatter delamination. This fact is highly relevant since one of the
things I am working on is a rebase of the wizden map CORE to EE, which
will include a replacement of its Singulo with a Supermatter engine.
With the pre-existing radiation shielding values, such an engine will
near instantly cleanse the entire station of all life within a matter of
seconds should it so much as think about delaminating. However with this
PR, it's actually practical to shield the station from it.

One major problem, and something that defies player expectations, is
that **Radiation Shutters did not previously provide significant
protection from radiation.** They were infact not much better than a
standard wall, and provided worse protection than a reinforced wall.

For reference to understand the issue, a Supermatter engine during its
delamination produces 45 rads per second. Which is so overwhelmingly
strong, that the Edge station's Supermatter could kill people from as
far away as the reporter's office. Something like 70% of the station
becomes lethally radioactive. On smaller maps such as Syndicate
Station's Shoukou, fully 100% of the map is lethally irradiated.

The flipside of this is that ordinary walls have had their radiation
resistance reduced. Don't count on anything not-reinforced to provide
protection. Trust your life in reinforced walls, radiation shutters,
blast shields, and plasma/uranium glass or walls. I did however add a
concession that firelocks now block 1 point of radiation. It's not much,
but it'll help just a smidge. :)

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

What I'm dealing with, and why I can't actually in good conscience
release said map unless this PR is merged:


![image](https://github.com/user-attachments/assets/fb4ab6cc-fda9-495e-9bfa-678828e4cdc7)

</p>
</details>

# Changelog

:cl:
- tweak: Radiation shielding objects have been rebalanced, such that
objects that players previously assumed would provide reasonable
protection from radiation, now factually do. For instance, Radiation
Shutters now actually block radiation.

* Automatic Changelog Update (#791)

* 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

:cl:
- add: Glacier Returns.

---------

Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Velcroboy <[email protected]>

* Automatic Changelog Update (#728)

* 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

:cl:
- 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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

:cl:
- add: Diagonal windows now use connected textures.

---------

Signed-off-by: VMSolidus <[email protected]>

* 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

:cl:
- 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)

* Reduce Default PowerAttack Stamina Cost (#840)

# Description

The default stamina cost for Power Attack was supposed to be 10, so
imagine my surprise when I find out it's been 20 this whole time. Which
wasn't intended.

# Changelog

:cl:
- fix: The default stamina cost for Power Attacks for any weapon that
doesn't explicitly modify it is now correctly set to 10 stamina(down
from 20).

* Automatic Changelog Update (#840)

* Bot for Changelog (#833)

:cl:
- add: Changelogs should be shown in Discord now

---------

Signed-off-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: TAZIKLIK <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#833)

* Update actions_changelogs_since_last_run.py (#841)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* 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

<!--

-->

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

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: iNVERTED <[email protected]>
Co-authored-by: DJBIGYAPPA420 <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#802)

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: 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! <[email protected]>

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

:cl:
- 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 <[email protected]>

* Automatic Changelog Update (#843)

* Update actions_changelogs_since_last_run.py (#846)

string didn't become int
:cl:
- fix: oatnsdaoersoaetaroeoertnsirlea

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* …
Zekins3366 added a commit to Corvax-Frontier/nuclear-14 that referenced this pull request Oct 7, 2024
* adds IDs for washington brotherhood

* Adding more recipes tables (#507)

* Update table.yml

* Update tables.yml

Added 3 table recipes

* Update furniture.yml

added 3 tables

* Added Accesses for Slanted doors. (Including new shopkeeper and doctor access) (#513)

* Added Accesses for Slanted doors. (Including new shopkeeper and doctor access)
Gave accesses too slanted doors so they can now be mapped, additionally slanted doors now break and have sound like other doors, and shopkeeper and doctor were given accesses as that was widely requested :)

* Zomfix

* Iamthelaw

* Jet recipe tweak (#512)

* Jet rework

* abraxo adjustment

* Update chems.yml

* Update chems.yml

* update orgroups for spawners and reduce radaway spawning

* brahmin dung fix (#515)

dung hotfix

* fix shelf drawdepth hiding items, this was necessary for tall walls

* fix linter

* Fix 125 Toolshed Commands Being Unusable for Anyone without +HOST (#572) (#518)

For reasons unknown, AdminManager has two command permission managers:
_commandPermissions and _toolshedCommandPermissions. It used to load
normal command permissions into the former, and toolshed command
permissions into the latter. Since _toolshedCommandPermissions is NEVER
actually used in checking whether a player can execute a command, all
toolshed commands remained unavailable to anyone without +HOST.

This PR provides a bandaid fix for that: it makes it so that the same
permissions are loaded into both managers at the same time. It's
necessary to load them into _commandPermissions in order to allow
regular players to execute them, and it's also necessary to load them
into _toolshedCommandPermissions because otherwise the ToolshedManager
will complain about those commands lacking permission flags.

This should also fixes some commands such as `spawn`, `pos`, `comp`
being inaccessible to admins with +DEBUG and more.

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

![image](https://github.com/user-attachments/assets/12afedef-0db3-43f2-8335-e95582a4a3f9)

![image](https://github.com/user-attachments/assets/f23ae98a-1e1b-4d28-8446-ca60e8239a03)

Admin-only commands are unaffected:

![image](https://github.com/user-attachments/assets/d64a5a8d-f184-4a9d-bc71-ae80635df626)

</p></details>

---

:cl:
- fix: Fixed toolshed command permissions. This will mostly affect
admins who don't have full host access.

(cherry picked from commit faa239a6e5bf7921351c17672503eb405df4f6e2)

* Sawed Off Shotgun (#509)

* Humungus

* Humungus

* Humunus fix

* Sacknt

* zomit2

* fix34

* sacket

* Humungus

* Humunus fix

* Sacknt

* zomit2

* fix34

* sacket

* FUCKING HELLPP HELP MEEE

* FUCKKKKK

* wow

* Holy Moly

* Added weapon recipes and minor fixes (#523)

1

* Sunnyvale Now in Washington (#524)

* Middle-major crafting update (#520)

* Sunnyvale v1.1 (#526)

Add files via upload

* Upstream merge 16th Sept 2024 (#527)

* Vulpkanin Update (#715)

![WarningTrystan](https://github.com/user-attachments/assets/958f868b-11b9-48f0-80ab-13d9ff243f06)
<!--
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 is the rework regarding the unique feature for vulpkanins, this
is mostly due to the "FORCED" Issue by VM:
https://github.com/Simple-Station/Einstein-Engines/issues/711

This PR will mostly add the new features that will mostly make
Vulpkanins unique.

For Vulpkanin Stats changed please check this PR:
https://github.com/Simple-Station/Einstein-Engines/pull/713

- Flash Damge: Flashable has 2 new variables "EyeDamageChance" (Float)
and "EyeDamage" (int), those are default to 0 but if changed could give
a chance from 0 to 1 to give EyeDamage from the EyeDamage Value, this is
not fixed to vulpkanin and can be added to anything with the "Flashable"
Component.
- ScentTracker: Add a new Forensics type "Scent", scent will spread on
everything you wear and only the ent with the "ScentTrackerSystem" can
track a scent, tracking a scent will leave an effect on those who has or
the item with the scent, scent can be cleaned away with soap or you can
compleatly generate a new scent of a person by cleaning yourself, note:
someone with a scent does not mean his the one making that scent, they
may just have an item with the scent in their bag!
- Vulpkanins Screams: I have 5 Fox Screams that need to be edited and
need to be added in-game for vulpkanins with a lisence, just need to
have the time to do it and this PR seem the perfect place for it.

---

# 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] Flash Damage
- [x] Scent System
- [x] ScentTracker System
- [x] Vulpkanin Screams

---

<!--
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/3bd60c0f-2528-4be7-a52d-defe2990c475)

![image](https://github.com/user-attachments/assets/6756b6af-3f76-4faa-9fbd-c35964b267b3)

![image](https://github.com/user-attachments/assets/b4ff84a2-64eb-4985-876b-d3e93fc8bd12)

![image](https://github.com/user-attachments/assets/dd4b47ea-ae39-44c3-b5a2-27ee68703857)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl: FoxxoTrystan
- add: Forensics Scent Type and Vulpkanins can now track scents, better
keep yourself clean!
- tweak: Vulpkanins eyes are sensetive, please dont flash them with
lights as this could damage them.
- add: Vulpkanins now has their own screams!

---------

Signed-off-by: FoxxoTrystan <[email protected]>
Co-authored-by: VMSolidus <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>

* Automatic Changelog Update (#715)

* Cherry-Pick Antag Refactor (#734)

This cherry-pick's Wizden's Antag Refactor, which is needed for all
future antag updates, as well as for me to cherry-pick over Cultists(Who
are going to need some editing to fit the antag refactor), Changelings,
Heretics, and Wizards. I actually selected the White-Dream-Public
version of the Antag Refactor, due to it having commits made tailored to
our repository, so it comes prepackaged with all the changes necessary
for our repo-specific content.

https://github.com/frosty-dev/ss14-wwdp/pull/10

Signed-off-by: Timemaster99 <[email protected]>
Co-authored-by: ThereDrD <[email protected]>
Co-authored-by: Jeff <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Azzy <[email protected]>

* Adds Fake Blindfold (#718)

# Description


![image](https://github.com/user-attachments/assets/ecd62f8e-1ac9-4795-b672-1fa57417d471)

# Changelog

:cl: DangerRevolution
- add: Adds a new blindfold variant into loadouts.

* Automatic Changelog Update (#718)

* Update Credits (#746)

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

Co-authored-by: SimpleStation Changelogs <[email protected]>

* [S] Onis: Get A Boatload Of Troll Horns. (#741)

# Description

Adds **16** new horns to Onis, 10 of which are inspired by **Homestuck**
trolls. Most of the new horns have three-tone variants, and some also
have striped variants.

New horns and available variants:
- Antlers (Three Tone)
- Aries (Three Tone)
- Double Thick (Striped, Three Tone)
- Erebia (Ringed, Three Tone)
- Inclined (Three Tone)
- Makara (Striped, Three Tone)
- Nepeta (Three Tone)
- Pisces (Striped, Three Tone)
- Sagittarius
- Serket (Three Tone)
- Taurus (Striped, Three Tone)
- Tavris (Three Tone)
- Unicorn
- Vantas (Three Tone)
- Virgo (Three Tone)
- Wavy (Striped, Three Tone)
- Three Tone for the existing Double Curved horn
- Three Tone for the existing Double Curved Outwards horn

## Media

**Serket (Three Tone)**


![image](https://github.com/user-attachments/assets/69beabb3-01ea-49ac-9e9e-8d9351bf99df)

<details><summary>See more</summary>

**Makara (Striped)**


![image](https://github.com/user-attachments/assets/839707b7-c063-41f4-b59f-dc36f2126967)

**Aries (Three Tone)**


![image](https://github.com/user-attachments/assets/ba7a65da-06d0-4ddd-b0d0-afa9cff5ad03)


![image](https://github.com/user-attachments/assets/b4abcdd2-a11e-4d4f-be61-1970e78cf588)

**Antlers**


![image](https://github.com/user-attachments/assets/cfb47d5b-f985-4dbe-b86d-96c31472007f)

**Pisces (Striped)**


![image](https://github.com/user-attachments/assets/9426c51e-49fe-41d4-b049-ee8b1a159c57)

**Wavy**


![image](https://github.com/user-attachments/assets/c29420aa-4576-49ec-af08-0ff38aff7ea4)

**Taurus (Striped)**


![image](https://github.com/user-attachments/assets/9aa3084e-4acc-473e-b875-465b242d0551)

**Nepeta (Three Tone)**


![image](https://github.com/user-attachments/assets/639abc4a-0cf1-456a-b214-6520e39e992f)

**Sagittarius (Three Tone)**


![image](https://github.com/user-attachments/assets/2a4a7c6f-0678-462d-8de6-f8fe6c10aef3)

**Unicorn**


![image](https://github.com/user-attachments/assets/6783cbd4-2dcf-4204-bb03-3f3601e1c6f7)


![image](https://github.com/user-attachments/assets/c09f7ef3-a0e3-429f-be70-76db0232ad01)

</details>

## Changelog

:cl: Skubman
- add: 16 new horns for Onis have been added, with three-tone variants
and some striped variants! The new horns include the Serket, Nepeta,
Vantas, Makara, and more.
- add: The Oni horns Double Curved and Double Curved Outwards have
received three-tone variants.

* Automatic Changelog Update (#741)

* 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
:cl:
- fix: You no longer need to have a station record to publish news.

Signed-off-by: Mnemotechnican <[email protected]>

* Automatic Changelog Update (#739)

* Revert "Cherry-Pick Antag Refactor (#734)" (#749)

This reverts commit 08822e34ba1fff304b90f636b830040954a273f0.

# Description

Our server partner White Dream had some unreported issues with their
cherry-pick of the Antag Refactor, which it turns out were server
breaking problems.

* Luxurious Loadout Items (#753)

# Description


This PR adds the Blunt and Joint in the Smokeables category, the Station
Map, Lantern, MRE Flask, and undepartmentalized flasks in the misc
category, and it adds Cow Tools for the clown in the Jobs category for 3
points. Also found out the hard way that renaming your branch
essentially deletes it, therefore closing your PR. Not doing that again!

---


# Changelog


:cl:
- add: Several useful items have been added to loadouts
- add: Cowtools are selectable for clown in the "Jobs" category of
loadouts

---------

Signed-off-by: ShatteredSwords <[email protected]>

* Automatic Changelog Update (#753)

* 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

:cl: 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: Angelo Fallaria <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#620)

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Update SECURITY.md (#755)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added IPC as a playable species.

---------

Signed-off-by: Timemaster99 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: Daniela <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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

:cl: 
- tweak: Ifrit has received some damage resistance changes

---------

Signed-off-by: stellar-novas <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#762)

* Fix Missing Icon Error in Admin Menu (#770)

Admin menu tried to load a sprite that doesn't exist which spammed
errors in testing a lot.

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

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

---------

Signed-off-by: Danger Revolution! <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: Timemaster99 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Fix RGB Moths (#777)

# Description

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

# Changelog

:cl:
- 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! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Mnemotechnican <[email protected]>

* 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

:cl:
- 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
:cl:
- 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

:cl:
- 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 <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* 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 `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- fix: Supermatter Annoncements

Signed-off-by: FoxxoTrystan <[email protected]>

* 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


:cl:

- 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

:cl:
- fix: Fixed the FixGridAtmos command.

Co-authored-by: Leon Friedrich <[email protected]>

* Automatic Changelog Update (#803)

* Improve README/Legal Files (#782)

# Description

Was vague and poorly written, might still be a bit vague, but that's why
it's being reviewed.

* 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

:cl:
- 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 <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* 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

:cl: 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

:cl:
- 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

:cl:
- 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

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

---------

Signed-off-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#800)

* Update README.md (#817)

Fixes a broken link to RobustToolbox

Signed-off-by: Pspritechologist <[email protected]>

* 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
:cl:
- 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

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

Signed-off-by: ShatteredSwords <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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
:cl:
- 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 <[email protected]>

* Automatic Changelog Update (#733)

* Rebalance Radiation Shielding (#791)

# Description

This PR is a MUCH needed QOL update for all of our downstream servers
that have started mapping in Supermatter engines. I have gone through
every single entry of the RadiationResistance component in the game, and
tweaked the values of them so that it is actually reasonably practical
to provide some protection to the rest of the station during a
Supermatter delamination. This fact is highly relevant since one of the
things I am working on is a rebase of the wizden map CORE to EE, which
will include a replacement of its Singulo with a Supermatter engine.
With the pre-existing radiation shielding values, such an engine will
near instantly cleanse the entire station of all life within a matter of
seconds should it so much as think about delaminating. However with this
PR, it's actually practical to shield the station from it.

One major problem, and something that defies player expectations, is
that **Radiation Shutters did not previously provide significant
protection from radiation.** They were infact not much better than a
standard wall, and provided worse protection than a reinforced wall.

For reference to understand the issue, a Supermatter engine during its
delamination produces 45 rads per second. Which is so overwhelmingly
strong, that the Edge station's Supermatter could kill people from as
far away as the reporter's office. Something like 70% of the station
becomes lethally radioactive. On smaller maps such as Syndicate
Station's Shoukou, fully 100% of the map is lethally irradiated.

The flipside of this is that ordinary walls have had their radiation
resistance reduced. Don't count on anything not-reinforced to provide
protection. Trust your life in reinforced walls, radiation shutters,
blast shields, and plasma/uranium glass or walls. I did however add a
concession that firelocks now block 1 point of radiation. It's not much,
but it'll help just a smidge. :)

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

What I'm dealing with, and why I can't actually in good conscience
release said map unless this PR is merged:


![image](https://github.com/user-attachments/assets/fb4ab6cc-fda9-495e-9bfa-678828e4cdc7)

</p>
</details>

# Changelog

:cl:
- tweak: Radiation shielding objects have been rebalanced, such that
objects that players previously assumed would provide reasonable
protection from radiation, now factually do. For instance, Radiation
Shutters now actually block radiation.

* Automatic Changelog Update (#791)

* 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

:cl:
- add: Glacier Returns.

---------

Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Velcroboy <[email protected]>

* Automatic Changelog Update (#728)

* 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

:cl:
- 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

:cl:
- 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

:cl:
- 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 <[email protected]>

* 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

:cl:
- add: Diagonal windows now use connected textures.

---------

Signed-off-by: VMSolidus <[email protected]>

* 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

:cl:
- 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)

* Reduce Default PowerAttack Stamina Cost (#840)

# Description

The default stamina cost for Power Attack was supposed to be 10, so
imagine my surprise when I find out it's been 20 this whole time. Which
wasn't intended.

# Changelog

:cl:
- fix: The default stamina cost for Power Attacks for any weapon that
doesn't explicitly modify it is now correctly set to 10 stamina(down
from 20).

* Automatic Changelog Update (#840)

* Bot for Changelog (#833)

:cl:
- add: Changelogs should be shown in Discord now

---------

Signed-off-by: DEATHB4DEFEAT <[email protected]>
Co-authored-by: TAZIKLIK <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#833)

* Update actions_changelogs_since_last_run.py (#841)

Signed-off-by: DEATHB4DEFEAT <[email protected]>

* 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

<!--

-->

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

---------

Signed-off-by: VMSolidus <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: iNVERTED <[email protected]>
Co-authored-by: DJBIGYAPPA420 <[email protected]>
Co-authored-by: VMSolidus <[email protected]>

* Automatic Changelog Update (#802)

* 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

:cl:
- 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

:cl:
- 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 <[email protected]>
Co-authored-by: Pspritechologist <[email protected]>
Co-authored-by: Danger Revolution! <[email protected]>
Co-authored-by: DEATHB4DEFEAT <[email protected]>

* Automatic Changelog Update (#7…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: YML Changes any yml files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants