Commit Graph

279 Commits

Author SHA1 Message Date
vanx
d45adc90ac [Add] Random Spawn Event Location (#953)
* location located

* Update Content.Server/StationEvents/Components/RandomSpawnRuleComponent.cs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

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

* fix

---------

Co-authored-by: vanx <vanxxxx@discord>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
2025-12-29 17:15:14 +03:00
Spatison
1219434d9c fix: Yaml linter: part 3 2025-07-20 22:05:50 +10:00
Winkarst
59bfbc466b Cleanup: Pass in `IComponentFactory in EntityPrototype.TryGetComponent calls inside ImmovableRodRule` (#35462)
Cleanup

(cherry picked from commit 45e7891706dea63db3c6edafbedf8afbef44f531)
2025-07-20 22:05:49 +10:00
SlamBamActionman
601a5ce227 Immovable Rod visual variations (#25932)
* Adds variations to immovable rod

* slash oopsie

* Changed prototypes from being hardcoded to being defined in the rules component

* Changed from 10% chance to 5%

* Changes based on feedback

* Fix nullable error

* Moved randomized logic to .yaml. Probabilities of alternate rods add up to 5%.

(cherry picked from commit 8f652eaa7560a47a750173d716426dcd1ad7c01b)
2025-07-20 22:05:48 +10:00
Spatison
c3fe18d234 fix: Yaml linter 2025-07-20 22:05:31 +10:00
ElectroJr
ad6b81233d Refactor map loading & saving (#34020) 2025-07-20 20:34:12 +10:00
slarticodefast
d421131054 Greytide Virus station event (#33547)
* proof of concept

* full implementation

* I commited a crime

* t

* min players increase

(cherry picked from commit 470c869ce2cd14136662b1895f2a8e31e68f6f6c)
Signed-off-by: Spatison <137375981+Spatison@users.noreply.github.com>
2025-07-20 15:18:51 +10:00
SlamBamActionman
84764260ec Fix Station AI being affected by Bureaucratic Event (#32021)
* init commit

* I forgot components exist

* delta told me to make it a list

(cherry picked from commit 5740a88208707510009d7d976394069d2a593d3e)
2025-07-20 15:10:35 +10:00
ScarKy0
0fab35bb11 Ion storm refactor (#33311)
Signed-off-by: Spatison <137375981+Spatison@users.noreply.github.com>
2025-07-20 14:58:55 +10:00
BIGZi0348
2f700868e0 Moved hardcoded string "PEOPLE" to Loc.GetString() (#32164)
(cherry picked from commit 20914fea367289c36e9988f6c22ec802a74065b8)
2025-07-20 14:54:33 +10:00
Eris
75a463cf5d Saving changes 1 2025-07-20 14:37:13 +10:00
Eris
110e22aa2f a 2025-07-20 14:25:39 +10:00
Mervill
57f4465934 Fix warnings related to non-exhaustive pattern matching. (#31763)
old man shakes fist at modern syntax

(cherry picked from commit de13ff96639d8da5ca45b214e0c4df5ebf20856a)
2025-07-20 14:20:14 +10:00
IProduceWidgets
e9b7da71db refactor event schedulers to use explicit game rules (#29320)
* works, still has testing values, im sure I did stupid shit.

* shitvent crapfactor

* snap extra word out of existence

* shit I died of old

* remove useless inaccurate design comments

* Oopsie, handle requirement params in RandomRuleSystem too

* I'm a slash slinging hasher

* Address reviews, add admin alerts I forgor

* EntityMan saves the day

* address reviews 1

* eh, I actually don't care about the cargo gifts thing.

* started

* Do reviews

* you actually meant 1.2 lmao

* dependency inheritance is a fickle bitch

* I have no idea.

* Threads are for sheets not computers.

* fix traitor rule test

* fix round type tattling

* break things

* It worky

* Toolshed makes we want to drink depresso.

* Finished?

* remove debug values

* timings

* use defaults

* alphabetize

* bobby drop tables

* Float required fr fr

* continue

* more continence

* uno mas

* obsolution

* cleanup and documentations

* Yell at self

* use the right value defaults

* housekeeping

(cherry picked from commit 07ec00ed05394f0d6c8929d8d015854b8dbbc3bb)
2025-07-20 13:53:36 +10:00
Killerqu00
f9c94423fb Sleeper agents event no longer occurs when evacuation is called (#30646)
no more evac sleeper agents

(cherry picked from commit 6503cb7833738ebbb7d02e7d6a68ea60d8f8d4cb)
2025-07-20 12:43:21 +10:00
TsjipTsjip
1b095b1dc2 CVarify meteor behavior (#29030)
* CVarify meteor behavior

* Cache value to reduce CVar calls, hook into OnValueChanged

* _cfg is still null at construction time, fixed by just making it set up on Started instead

* Invoke immediately! Learning more every step of the way.

* Move cached value initialisation to Initialize call

* Add explicit supercall

(cherry picked from commit 71eb4d91786b1b3eccbcd61dd5e10dff184fe197)
2025-07-20 12:43:20 +10:00
Mervill
e6fa747f95 Don't show Station Event announcements to players in the lobby. (#30886) 2025-07-19 15:08:00 +10:00
AJCM-git
1e1b7fa468 Fix mid round antags not starting (#28523)
(cherry picked from commit 9a23a6c695400d2b583b1a77e503cd366fb28cdc)
2025-07-19 15:08:00 +10:00
Errant
6fda92d3f2 Fix replayghost spawning location (#30252)
Fix replayghost spawn

(cherry picked from commit bf1450fdc85f978c0d1b313fab551d85a98087a5)
2025-07-14 14:14:00 +10:00
Nemanja
01ebec354f Revamped Meteor Swarm (#28974) 2025-07-14 13:23:01 +10:00
VMSolidus
c4e4bdf36e Solar Flare Performance Tweaks (#2473)
# Description

This system had a non-functional check for preventing it from running on
every frame. This PR fixes that.

🆑
- tweak:Improved the server performance of Solar Flare events.
2025-07-12 12:42:25 +10:00
MilenVolf
efd0b66036 Station event component and system tweaks (#28331) 2025-07-12 02:20:46 +10:00
Remuchi
1e363c7346 Revert "Merge pull request #462 from WWhiteDreamProject/revert-460-upstream"
This reverts commit 092dba42e5, reversing
changes made to e6315c2320.
2025-04-20 11:15:45 +07:00
DVONIKS
6c19771020 Revert "Upstream 04.04-18.04" 2025-04-20 06:34:09 +03:00
Timfa
eb8cc29fee Port Thaven From DeltaV, Who Ported It From Impstation (#2132)
<!--
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]?
-->

https://github.com/DeltaV-Station/Delta-v/pull/2948 and a bunch of other
PR's

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] fix markings causing a crash
- [x] fix displacement maps causing a crash

---

<!--
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/ad449fc4-93c7-47d4-8db7-c53da765aa51)

https://github.com/user-attachments/assets/033bec46-24c5-44ad-8e5c-7aae2ed85b03

https://github.com/user-attachments/assets/6fd647b5-2ee0-45e6-a124-9b90c35e2153

![image-71](https://github.com/user-attachments/assets/bdb7b129-a1b4-445d-9b1a-fa884b429ad4)

</p>
</details>

---

# Changelog

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

🆑
- add: Port Thaven from DeltaV, who ported it from Impstation

(cherry picked from commit 86a8e4d940eac038505c66a1649b376f6956cade)
2025-04-18 17:08:53 +03:00
ilmenwe
8338b0c699 Removed Duplicate Using. Removed Unused Using. (#2163)
# Description

Removed duplicate using statements, removed unused using statements.
this will decrease the number of warnings a small bit, and decrease
unused dependency references in general.
---

# TODO

- [x] Remove double references.
- [x] Remove unused references.
---

# Changelog

🆑
- remove: double references in code
- remove: unused references in code that had double references.

Co-authored-by: ilmenwe <no@mail.com>

(cherry picked from commit 9b73c88feefff68223f083893505826dc021ddee)
2025-04-18 17:04:50 +03:00
VMSolidus
95e393406d Fix Various Psionic Bugs (#1848)
# Description

This isn't fixing all of them by the way, I still need to completely
rewrite the equations for the glimmer generating structures so the math
there isn't completely terrible. This fixes a few bugs related to the
glimmer system, such as linear decay not being consistent regardless of
server ping, and also glimmer generating structures also not being
consistent based on server ping. Both are now correctly differentiated
with respect to time.

Problem though is that the glimmer generator math is still extremely
awful, so that's going to need a rewrite.

After deeply analyzing the glimmer equations, I figured out that they
were being screwed over by floating point precision limits, so to
address this I made Glimmer work on doubles instead.

I also fixed a bug where generating enough Potentia to gain two or more
powers in a single draw caused the user to permanently lose their
ability to generate new powers. It's not abundantly clear why this was
happening, because nothing changed this code at all since I last touched
it.

# Changelog

🆑
- fix: Fixed various bugs with psionics.
- fix: Fixed a bug where if you generated enough Potentia during a drug
induced psionics roll to gain two powers, you would only gain one power
instead, while permanently losing the ability to gain new powers.
- fix: Fixed glimmer being permanently stuck between 500 and 600 by
revisiting the math and discovering an algebra error I made a year ago.
- tweak: Glimmer now operates on double precision. Have fun with that
breaking change if you made any psionic code downstream. Hint, you can
cast doubles into a (float) if you don't wish to convert your system to
double.

(cherry picked from commit 43e333ec41ca1706f3c204ef994351d69fd5c28c)
2025-04-18 16:58:05 +03:00
sleepyyapril
08c1cc95e5 Prevent SecretRule From Picking Invalid Presets (#27456) (#1805)
trying to fix the prelobby heisentest

we use votes anyway! fuck it, we ball

---------

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
(cherry picked from commit d5d071a6d974a72357830821364dd906fa4d948d)
2025-02-28 16:23:29 +03:00
VMSolidus
4d2e140858 Glimmer Rework 1: "Swingy Glimmer" (#1480)
# Description

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

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

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

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

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

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

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

Psionics Guidebook

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

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

</p>
</details>

# Changelog

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

---------

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

(cherry picked from commit 638071c48fe3ac7c727a1294de3b6d5d8136e79f)
2025-01-20 20:50:02 +03:00
sleepyyapril
67ea5d8c3e Station AI Features and Fixes (Also General Fixes) (#1525)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Check the changelog for the full list.

---

# Changelog

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

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

---------

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

(cherry picked from commit 3e8a7d9b00e19e160321eb81d69a884189dfa4e6)
2025-01-15 00:12:29 +03:00
sleepyyapril
f6402b6af2 Fix Announcement Spam (#1491)
# Changelog

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

🆑
- fix: Fixed announcement spam caused by my silly blunder.

(cherry picked from commit c2c18f582b949350a81949e8fbcc4acfdecb74b0)
2025-01-14 02:14:00 +03:00
sleepyyapril
94be6bfb9e fix shitcode
(cherry picked from commit 385b667cf34a705dd7c3509f07f120c83e19db4d)
2025-01-14 02:05:16 +03:00
Psychpsyo
21ac70eae3 Re-add improved random sentience event (#29123)
* Re-add improved random sentience event

* Make randomly sentient PDA more likely

* Make vending machine sentience less likely

* Make requested changes

* Make randomly sentient captain's gear more likely

* Sentient captain sabre has pirate accent

* Tweak new random sentient object a bit more

* Sentient PDA improvements

* Apply recommended fixes

* Add requested changes

* Fix merge conflict

(cherry picked from commit 00adaa3c6bdde35da592e7164be0a23dbd6cb407)
2025-01-14 02:05:05 +03:00
sleepyyapril
04b14b8118 Fix Toolshed Crash (#1415)
I'm not fully confident in this fix, I can't test it right now.
closes #1409 1409

---------

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
(cherry picked from commit f026528f6e31b816758e600d66482bf991a0e88d)
2025-01-14 01:44:17 +03:00
VMSolidus
788fb664c6 Fix Pirate Radio Rule (#1438)
# Description

My last change to Pirate Radio made it so that it doesn't spawn at all.
So this PR updates it to instead use a more accurate "Use the spawnable
station" check. By picking a random valid spawnable station(in case
there's more than one).

# Changelog

🆑
- fix: Fixed the Syndicate Listening Post not correctly spawning.

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 6547c10b37e59d523ad2f7c2e90fb4f1a2086d36)
2025-01-14 01:35:17 +03:00
VMSolidus
6b690a5b89 Graytide Virus Event (#1293)
# Description

This is a simple event remake of the classic Graytide Virus event from
SS13. A virus infects "Some of the airlocks" on the station, but more
specifically it infects the security airlocks, causing them to emag
themselves after a short delay. As the name of the airlock virus
implies, this lets the prisoners out, and the greytiders in, until an
engineer can get to sec and repair the airlocks. It can be a rare and
somewhat very literal "Get Outa Jail/Second Chance" for traitors who are
caught and permabrigged earlier in the round.

# Changelog

🆑
- add: Added the GR4YT1D3 Virus event.

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
(cherry picked from commit 2e66dc9c15c9808e8f4285e9cadec1dad3df1f49)
2025-01-14 00:33:04 +03:00
sleepyyapril
885ee5a831 Wizmerge for Station AI (#1351)
<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

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

---------

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

(cherry picked from commit 93ed70acfeda357133a701f637d3faeec02749bb)
2025-01-14 00:13:42 +03:00
PuroSlavKing
7ec558348c [Feature] Wormhole Anomaly (#156)
* [Feature] Wormhole Anomaly

* duration edit

* timed teleportation

* IRobustRandom

* Update Content.Server/_White/Anomaly/Effects/WormholeAnomalySystem.cs

Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com>

* remove on shutdown

* counts

---------

Co-authored-by: Remuchi <72476615+Remuchi@users.noreply.github.com>
2024-12-22 12:19:01 +07:00
Spatison
7c4bf63a33 [Feature] TG Gases / TG Газы (#147)
* 237.2.0

* feat: /tg/ gases

* Revert "237.2.0"

This reverts commit 08ecd6b145.

* fix: sound

* Revert "237.2.0"

This reverts commit 08ecd6b145.

* tweak: AI rewie

* fix: tupo

* Revert "237.2.0"

This reverts commit 08ecd6b145.

* fix: tupo
2024-12-17 14:08:35 +07:00
Spatison
2fd69f53e3 [Fix] Mass Bug Fix (#130)
* Mass Bug Fixing (#1256)

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

Mass bug fixing, for bugs related to #1220.
Feel free to link or send bugs.

Fix list:
- #1242
- #1243
- #1244
- https://github.com/space-wizards/space-station-14/pull/28084
- https://github.com/space-wizards/space-station-14/pull/28282
- Actually fixed PirateRadioSpawnRule heisentest (with a bandaid) (I
cancel if it's 0)
- https://github.com/Simple-Station/Einstein-Engines/issues/1263

---

# Changelog

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

🆑
- fix: Fixed chair visuals drawing depth wrongly if you sat in a
north-facing chair.
- fix: Fixed buckling doing several buckles each time you did one.
- fix: Fixed the magic mirror.
- fix: Fixed beds re-positioning you every few seconds.
- fix: Fixed E not opening containers that are in another container.
- fix: Fixed disposal systems not flushing or ejecting properly.

---------

Co-authored-by: sleepyyapril <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>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit 41501bd335c5e1e2e65b5d2ad040a3ae6851d4e8)

* Automatic Changelog Update (#1256)

(cherry picked from commit 9798f5363135cbe71479d0a14cf3215d01ed28f0)

* fix

* Fix animation looping bugs. (#29457)

Summary of the problem is in the corresponding engine commit: a4ea5a4620

This commit requires engine master right now.

I think #29144 is probably the most severe one, but I touched Jittering and RotatingLight too since they seemed sus too.

Fixes #29144

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 8d015f5c9ff60107dccdf35fa48e1558728ff269)

* Fix arcade machines (#30376)

(cherry picked from commit e72393df712cb2f5d1b4f6b4e2dc417c5584f07a)

* fix

* fix test

* fix test

* fix test

* fix

---------

Co-authored-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com>
Co-authored-by: SimpleStation Changelogs <simplestation14@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
2024-11-25 01:20:13 +07:00
Spatison
a2557f75a6 Upstream (#129) 2024-11-21 17:49:04 +07:00
DEATHB4DEFEAT
47b10a01b0 Catch-Up Cherry Pick 2 (#944)
# Description

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

---

# TODO

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

---

# Changelog

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

---------

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

This PR implements a long overdue rework of the underlying system for
actually giving Psions their powers, by making it a semi-deterministic
system that favors people having a small handful of powers, unless said
person has inherent modifiers that let them generate them more
consistently. A common complaint I received from the new Psionic System
is that stations tended to become "Space Hogwarts" given enough time,
since people could very easily game the system to consistently get new
powers every 20 minutes, until a majority of the station was throwing
fireballs at each other.

Now, obtaining new powers gets more difficult the more powers you have,
exponentially so. Powers can also declare in their prototype how many
"Slots" they occupy, meaning that certain powers can make this even more
difficult, or not at all, as desired.

# Changelog

🆑 VMSolidus & Rane
- add: Psionic Power "Rerolls" have been reworked. Psions now have a
stat called Potentia, which is increased by sources of Psionic Rerolls
such as Space Drugs, Loto Oil, and Random Events. Instead of being an
all-or-nothing "D100 with modifiers" roll, whatever you roll is added to
your Potentia stat, and when Potentia reaches a certain threshold, it is
automatically "Spent" to buy a random new power. Your first power costs
100 Potentia, your 2nd power costs 200, 3rd costs 400, and so on. The
more powers you have, the more difficult it is to obtain new ones.
- tweak: Some powers, such as Telepathy and Xenoglossy, do not count as
a power for the purpose of Potentia Cost

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2024-10-19 12:57:32 +07:00
Remuchi
24f26f21dd [Upstream] Апстрим фич и фиксов с Einstein Engines. (#39)
* Remove the Stupid Station Records Check From News (#739)

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

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

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

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

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

# Description

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

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

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

# Media

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

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

New traits!

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

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

# TODO

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

# Changelog

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

---------

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

* Automatic Changelog Update (#739)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Automatic Changelog Update (#620)

# Conflicts:
#	Resources/Changelog/Changelog.yml

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

# Description

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

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

# Media

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

# Changelog

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

---------

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

* Automatic Changelog Update (#731)

* Fix Overlays (#756)

# Description

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

# Changelog

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

* Automatic Changelog Update (#756)

* Missing Psychic Trait Strings (#758)

# Description

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


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

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

---------

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

* Action Blacklists (#760)

# Description


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

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

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

# Changelog

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

* Automatic Changelog Update (#760)

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

# Description

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

# Changelog

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

* Automatic Changelog Update (#763)

* DeltaV/DS14 IPC Port (#744)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

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

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [X] Port
- [ ] Check for errors (Local tests wouldn't run on this one)

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

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



</p>
</details>

---

# Changelog

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

🆑
- add: Added IPC as a playable species.

---------

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

* Automatic Changelog Update (#744)

* Update MoodSystem.cs (#761)

# Description

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

---------

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

* Traits Refactor (#765)

# Description

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

# Changelog

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

* Automatic Changelog Update (#765)

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

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

title

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

---

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


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

</p>
</details>

---

# Changelog

no cl no fun

---------

Co-authored-by: whateverusername0 <whateveremail>

* Minor Ifrit Health Rework (#762)

# Description
Closes #754

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

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

# Changelog

🆑 
- tweak: Ifrit has received some damage resistance changes

---------

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

* Automatic Changelog Update (#762)

* Xenoglossy (#772)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description
Adds xenoglossy to the power pool. I originally planned it for
cataloguer but it looks like that doesn't exist anymore.

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

# Changelog

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

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

---------

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

* Automatic Changelog Update (#772)

* Increase Trait Point Granularity (#775)

# Description

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

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

# TODO

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

# Changelog

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

* Automatic Changelog Update (#775)

* Fix Heisentests (#778)

# Description

Attempt number 5000 to get the Heisentests to STOP.

---------

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

* Fix RGB Moths (#777)

# Description

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

# Changelog

🆑
- tweak: Moths can now be colorful again.

* Automatic Changelog Update (#777)

* Remove DV AGPL License Headers (#781)

# Description

They're confusing.

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

* Return Of The Cataloguer (#779)

# Description

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

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

# Changelog

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

* Automatic Changelog Update (#779)

* Psionic Power Feedback Messages (#776)

# Description

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

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

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

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

# Media

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


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

# Changelog

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

---------

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

* Automatic Changelog Update (#776)

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

# Description

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

---

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


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

</p>
</details>

---

# Changelog

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

* Automatic Changelog Update (#740)

* Add Insulation to Robots (#773)

# Description

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

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

* Implement Mind Contests (#757)

# Description

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

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

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

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

# Description

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

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

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

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

---

# TODO

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

# Changelog

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

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

* Automatic Changelog Update (#786)

* Fix supermatter.ftl (#790)

supermatter .ftl was broken, this fixes it.

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Easly fix the supermatter .ftl files that was not set correctly, why? i
dunno.
now its works.

---

# Changelog

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

🆑
- fix: Supermatter Annoncements

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

* Automatic Changelog Update (#790)

* Fix Door Access (#798)

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

# Changelog


🆑

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

* Automatic Changelog Update (#798)

* Cherry-Pick PR #27113 (#803)

# Description

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

# Changelog

🆑
- fix: Fixed the FixGridAtmos command.

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

* Automatic Changelog Update (#803)

* Return Of The Pibble (#789)

# Description

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

# Changelog

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

---------

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

* Automatic Changelog Update (#789)

* Make IPC Sounds Great Again (#811)

# Description

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

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

---

# Changelog

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

* Automatic Changelog Update (#811)

* Add IPC's Missing Components (#793)

# Description

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

# Changelog

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

* Automatic Changelog Update (#793)

* Temporarily Disable Telegnosis (#795)

# Description

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

# Changelog

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

* Automatic Changelog Update (#795)

* IPC Missing Deathgasp (#800)

# Description

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


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

# Changelog

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

---------

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

* Automatic Changelog Update (#800)

* Make Shoving and Stamina Great Again (#809)

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

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

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

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

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



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


</p>
</details>

---

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

* Automatic Changelog Update (#809)

* Thieves Outside of Traitor (#799)

# Description


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

---


# Changelog

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

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

* Automatic Changelog Update (#799)

* Telepathy (Minor)Refactor (#819)

# Description

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

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


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

</p>
</details>

# Changelog

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

* Automatic Changelog Update (#819)

* Psionic Insulation Trait (#820)

# Description

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

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

# Changelog

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

---------

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

* Automatic Changelog Update (#820)

* New Interaction System (#733)

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

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

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

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

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

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

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

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

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


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

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


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

</p>
</details>

---

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

---------

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

* Automatic Changelog Update (#733)

* feat: translation for new interaction system

* fix: fix interaction system changing state action to ours

* Glacier Real (#1169) (#728)

* glacier real

* troll

* atmosia tweaks

* 1 less can of plasma not too op

* replace troll generator with solar crate

* add StationSurface to glacier

* add surface map

* biome stuff upstream #28017

* unpause after loading

* fix no terrain

* comment out the surface spawning

* shipyard

* glacier justiceroid

* updateprototype and cleanup

* fix random shit

* untroll

* courier

* add to test :trollface:

* fix

* futureproofing

* hot loop inlet lmao

* tweak some pumps in atmosia

* carpy and make salv locker lighting better

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

---------

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

Ports Glacier from DeltaV. Justice department has been yeeted.

# Changelog

🆑
- add: Glacier Returns.

---------

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

* Automatic Changelog Update (#728)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* Rebase Saltern (#804)

# Description

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

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


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

</p>
</details>

# Changelog

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

* Automatic Changelog Update (#804)

* Core Supermatter (#792)

# Description

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

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

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


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


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

</p>
</details>

# Changelog

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

* Automatic Changelog Update (#792)

* Fix InnatePsionicPowers For Mapped Entities (#824)

# Description

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

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

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

# Changelog

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

* Automatic Changelog Update (#824)

* Update Credits (#837)

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

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

* Disable Mood In Debug (#806)

# Description

MoodSystem has a Race Condition against DeleteAllThenGhost.

# TODO

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

* Diagonal Window Smoothing (#805)

# Description

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


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

# Changelog

🆑
- add: Diagonal windows now use connected textures.

---------

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

* Automatic Changelog Update (#805)

* Maximize Default Description Limits (#788)

# Description

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

# Media


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

# Changelog

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

* Automatic Changelog Update (#788)

* Bot for Changelog (#833)

🆑
- add: Changelogs should be shown in Discord now

---------

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

* Update actions_changelogs_since_last_run.py (#841)

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

* Added Jukebox (#26736) (#802)

<!--

-->

# Description

<!--

-->

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



---
<!--
-->

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

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

</details>

---

# Changelog

<!--

-->

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

---------

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

* Automatic Changelog Update (#802)

# Conflicts:
#	Resources/Changelog/Changelog.yml

* remove: wrong changelog

* remove: wrong changelog

* fix: a few more incorrect translations

* Psionic Extraplanar Creatures (#829)

# Description

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

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

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

# Changelog

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

* Automatic Changelog Update (#829)

* Cloning Refactor (#735)

# Description

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

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

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

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

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


</p>
</details>

# Changelog

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

---------

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

* Automatic Changelog Update (#735)

* Delete All Then Ghost Fault Tolerance (#787)

# Description


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

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


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

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

# Changelog

No changelog because this isn't playerfacing.

* Update Issue Templates (#797)

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Rewrites the issue templates and removes the redundant security
vulnerability issue

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

Blame GitHub not me </3

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>
Here's the old one, can't make issues on a fork so I can't show how it
looks now.

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

</p>
</details>

---

# Changelog

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

N/A

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

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

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

---------

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

* Automatic Changelog Update (#843)

* Update actions_changelogs_since_last_run.py (#846)

string didn't become int
🆑
- fix: oatnsdaoersoaetaroeoertnsirlea

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

* Psychognomy (#808)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description
Psychognomy is a passive power that gives you a descriptor on the origin
of a telepathic message. There's enough of them that are ambiguous
enough. I also changed Oracle and Sophia a little bit, giving them
innate psionic powers.

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

---------

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

* Automatic Changelog Update (#808)

# Conflicts:
#	Resources/Changelog/Changelog.yml

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Signed-off-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Signed-off-by: stellar-novas <stellar_novas@riseup.net>
Signed-off-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Signed-off-by: v0idRift <163446847+v0idRift@users.noreply.github.com>
Signed-off-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Signed-off-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Co-authored-by: Daniela <43686351+Day-OS@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: stellar-novas <stellar_novas@riseup.net>
Co-authored-by: Rane <60792108+Elijahrane@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: v0idRift <163446847+v0idRift@users.noreply.github.com>
Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com>
Co-authored-by: Fansana <116083121+Fansana@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
Co-authored-by: ShatteredSwords <135023515+ShatteredSwords@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Evgencheg <73418250+Evgencheg@users.noreply.github.com>
Co-authored-by: TAZIKLIK <73418250+TAZIKLIK@users.noreply.github.com>
Co-authored-by: DJB1gYAPPA <whyeven42@gmail.com>
Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
Co-authored-by: DJBIGYAPPA420 <antoniobryandiii@gmail.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
2024-09-06 02:58:42 +07:00
VMSolidus
08822e34ba 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 <57200767+Timemaster99@users.noreply.github.com>
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: Timemaster99 <57200767+Timemaster99@users.noreply.github.com>
Co-authored-by: Timemaster99 <elijahrobot@gmail.com>
Co-authored-by: luckywill339@gmail.com <luckywill339@gmail.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>
Co-authored-by: Azzy <azzydev@icloud.com>
2024-08-15 10:11:48 -07:00
VMSolidus
dfe5c2c540 Psionic Refactor Part 1: Respacing To Keep Files Changed Down (#698)
# Description

Due to some inherent limitations of maintenance, code review, and me
having both severely crippling ADHD and a lifelong adderal dependency,
I've made the executive decision to break apart the Psionic Refactor
into a multitude of smaller, bite sized PRs. I'm keeping the original
Psionic Refactor PR open, because I'm going to need it for code
reference to keep track of the changes I had originally worked on, but I
need to essentially restart the entire refactor from scratch, and
approach it from a new angle that's going to make everything actually
way easier. I also need to be able to work on each available system
individually wherever possible, and this fact is most readily shown by
how the Lightning Refactor and Oracle Refactor were both done
separately.

To start off, this PR is ONLY moving all of the relevant psionics code
to core folders, and nothing more. I'm doing this first so that I can
immediately cut down massively on the "Files Changed" with the simplest,
most basic change necessary to start my work.

No changelog because this isn't player facing, and no media because
there's literally nothing to show.
2024-08-07 16:18:35 -07:00
Mnemotechnican
75b36bff1e Fix Event Manager Allowing to Start Multiple Events of the Same Type in a Short Time Window (#645)
# Description
Makes it so that the event scheduler doesn't pick events that were
already added (but not yet ended).

In order to fix this:

<details><p>


![image](https://github.com/user-attachments/assets/fd73dbce-7cbc-489b-8990-7ae791723351)

</p></details>
2024-08-03 23:34:22 +01:00
Mnemotechnican
58a1f88ded Revert "Refactor Ramping Event Scheduler (#592)" (#644)
# Description
This reverts commit 910b4c3c4e.

The PR was never tested properly, and after it was merged on deep
station, a lot of significant issues have been uncovered, including
station events appearing every 6-12 seconds regardless of the gamemode,
some RampingStationEventScheduler component fields being unused, some
CVars having misleading usages, some CVars being unused, and more.

The PR needs to be re-done and tested thoroughly before it can be
merged.

🆑
- fix: Reverted the station event scheduler rework due to it absolutely
breaking the game.
2024-08-02 18:52:41 -04:00
VMSolidus
910b4c3c4e Refactor Ramping Event Scheduler (#592)
# Description

The Ramping Event Scheduler originally followed a more or less linear
trend of "Slow events" to "Fast events", reaching its absolute maximum
event speeds at EXACTLY the point set by CVar. Additionally, the timer
CVars were set on initialization, which meant that event times could not
be modified live, thus voiding the entire benefit of having the CVars in
the first place.

I have completely rewritten the entire timer function to use a logistic
curve, which provides varying levels of transition rate from "Start",
"Mid", and "End". Shifts begin at their normal speed, and will
accelerate quickly until it reaches the "Midround", at which point event
timer growth begins to slow dramatically. Additionally, the timer
function accounts for both settings in Gamemode, as well as in CVar.
Minimum Time and Maximum Time are also now separate from each other, and
can be truly independently modified.

Finally, to show what this system is capable of, I've added a variant
"Long Survival" that can be set via admeme.

# Media

The new "Ramping Event Timer Equation". I have intentionally left this
public just in case anyone wants to use it for a different system.


![image](https://github.com/user-attachments/assets/50557a21-76ae-4b08-9cb1-edd8d991712d)

# Changelog

🆑
- add: Long Survival has been added as a new Game mode.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-07-26 23:00:24 -07:00
Mnemotechnican
527acd8e6d Fix FalseAlarmRule (#587)
# Description
Grrr, 3 lines changed. Filter out events that don't have a start
announcement.

# Changelog
🆑
- fix: False alarm event will no longer report events that should not be
reported.
2024-07-23 20:18:56 -07:00