* Remove obsolete code from Food, Drink and Respirator systems
* remove obsolete comment
(cherry picked from commit af752586018fa7323caa6e2047dcc8f6dbaa6d48)
* Update vomit organ smite to not use Component.owner
* is this what you want...?
* am I winning, dad?
* update the comment
* we love entity<t>
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 2a7883b92e59f3a5464db8602ab589e3ab346097)
* Add ContainerContainer component checking for moth food
* Use ItemSlotsComponent checking on food item
(cherry picked from commit 2fb2cde1253f08488df14cb3c6bc6735903cc0fc)
* Stop eating food if you drop it
* woops, unused param
* comments
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 2349fb485e1ebabb99a01dce511e5c33c868ba2b)
* Anchored pipes are no longer considered weapons
* Switch to overload utilizing a TransformQuery
(cherry picked from commit 644736b382a900645494ab32bfe9f0bd8ba25b4b)
* Added the ability for blood to track DNA using ReagentData; Forensic Scanner now accounts for solution DNA, non-DNA holders have "Unknown DNA"
* Removes touch DNA for puddles, adds DNA to vomit
* DNA now leaves traces in containers and those marked without don't show DNA on scan (except for puddles), gibbed parts have DNA
* Fix stupid metamorphic glass bug grrr
* Removed SpillableComponent since DnaSubstanceTraceComponent is used instead
* Removes data field from maps, adds DNA tracking for some missed items
* Give default value, fix missing values.
* Fixes recipe bug
* Review changes
* Make the Data list into a nullable type
* Revert map changes
* Move gibbed unknown DNA to forensicssystem
(cherry picked from commit 07174d0aaf2832bc6ecc3a6baba21bc0aa5e0556)
Fixes chairs disappearing when saving the map and adds the ability to
enable/disable locks on office chairs.
---
<details><summary><h1>Media</h1></summary>
<p>
https://github.com/user-attachments/assets/277d6ee8-cc51-47df-8b81-0b361234227d
</p>
</details>
---
🆑
- tweak: Now you can enable and disable the locks on office chairs.
* Add BreakOnDropItem, update do afters, remove unnecessary declarations
* bola
* Changed my mind about the nuke
* gennies too
* Make the comments more clear.
* Sorry for the trailing commas
* Revert "Sorry for the trailing commas"
This reverts commit e60fd9a30977393df3344948e6d5c0ce035723cd.
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 190ceda02eab7b3eee7d34542c35e5a3f4a8b487)
* PROJECT 0 WARNINGS: Resolve `'EntitySystem.Get<T>()' is obsolete` in content
* pass entman
* dog ass test
* webeditor
(cherry picked from commit 993eef1e7c22b2b79e528967ef5bb669f50236b1)
* Spawn dummy entities on client for vending machine UI
* Asked sloth, and we kinda need this pr
---------
Co-authored-by: Vasilis <vasilis@pikachu.systems>
(cherry picked from commit ac1bdd2c840a126b9f5114440b6b26c08c7ea0c4)
* Order normal space heater instead of anchored variant
* Make sure ordered objects don't spawn anchored
* Order space heater flatpack instead of a regular space heater
* Remove obsolete TODO
* Remove unnecessary name
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
(cherry picked from commit 229f6d697cd1234f1d187bce79f70fe098571285)
There were TWO bugs here
FIRST, APCs *did* update their visual state on initialization, but at that point the relevant power state hasn't been initialized yet, so it always returns a bogus result. There aren't guaranteed to be subsequent power updates that actually trigger the APC to update so this can get it stuck.
Fixed by just deferring the on-init update to be after the first update tick, which is itself ordered to be after power update.
SECOND: Once I fixed that, I ran into the issue that APCs created at *server startup* also fail to update, because the throttling system (to prevent frequent APC updates) thinks the LastChargeStateTime was at server startup.
Fixed by making that variable nullable so it defaults to null.
Also removed the useless datafields on the "last update" fields. These are all just used to cache and throttle updates, something that should not be persisted to a map file.
(cherry picked from commit 797aebb161d9574379e2a1db239af793bd8e0cb2)
* Make APC UI work correctly with multiple users
* Check access only on client, when constructing UI
* Do TODO (Thanks, Robust 236.1)
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
(cherry picked from commit 70b7747fddd58d556c1408464dcf969cdeb4a71a)
* Implement Equals for ApcBoundInterfaceState
Saves a lot on bandwidth. Also made it round to the nearest 5.
* Also this
(cherry picked from commit ce0a175c731bf205f59cb93dcb3a2268c4cedb24)
This fixes an issue whereby turrets were not capable of hitting players
who lay down on the floor. Now turrets have a 50% chance to hit them
anways, meaning that laying down offers some, but not perfect protection
from turrets.
<details><summary><h1>Media</h1></summary>
<p>
https://github.com/user-attachments/assets/599583be-d298-452c-8b1b-f32d8d545131
</p>
</details>
🆑
- fix: Turrets and NPCs can now hit players who are laying down on the
floor. They (by default) have a 50% chance to miss players who are
laying down, meaning it still offers some protection, but not perfect
protection from turrets.
# Description
This PR fixes a bug whereby the Holopads weren't respecting languages,
and actually basically every machine in the entire game wasn't. There's
an in-general broader issue that I would reaaaaaally like if UI elements
in general could be differentiated by language, but that's a lot harder
to do than this fix. This was shockingly easy to fix actually.
# Changelog
🆑
- fix: Holopads now correctly respect the speaker's language, and
transmit said language to the receiver. They are no longer Universal
translators. Have fun yelling at people over the holopad in whatever
obscure language your character knows.
- fix: Nearly every machine that can speak, now correctly respects that
languages exist. For example, mice can now no longer understand what
vending machines are saying.
This PR significantly reworks some parts of the mood system, namely by
completely restoring and reworking the saturation scale shader so that
its not completely terrible. Additionally, I've added numerous new
instances and locations where Moodlets can be found in the game,
particularly when it comes to food and drugs, as well as a new Mood
interaction with the Deep Fryer. Chef gameplay is significantly expanded
via the introduction of flavor related moodlets, as well as the almighty
deep fryer giving a unique, moderately strong, and long lasting moodlet
to anyone who eats whatever you deep fry.
Go ahead, give someone a deep fried stick of salted butter coated in
chocolate. You'll make their day.
The big differences with the Saturation Scale are that its now variable,
with smooth transitions, with the scale scaling with your character's
mood. The more depressed you are, the more desaturated the world
becomes. Whereas if you have entirely too many positive mood bonuses,
the world becomes incredibly vibrant.
<details><summary><h1>Media</h1></summary>
<p>
Shoukou's Bar as seen by someone with the Sanguine trait(and no other
moodlets)

Max mood

Saturnine trait:

Minimum mood(dead)

Smooth transitions for shader tone.
https://github.com/user-attachments/assets/3ab55da1-eca6-4cc5-9489-f4ad13ed0f27
</p>
</details>
🆑
- add: Re-enabled the "Mood shader" after significantly reworking it.
Mood visual effects now scale with your character's mood, instead of
only ever being near-greyscale. Being high life now makes the world more
colorful and saturated.
- add: A huge variety of medicines, drugs, and even food items(based on
flavor!) now have mood effects. Reaching for the packet of salt now
actually makes food provide a better mood buff.
- add: Being Tear-gassed causes a massive mood penalty.
- add: Deep frying food provides a strong mood bonus.
- add: Added new Manic, Mercurial, and Dead Emotions traits.
Signed-off-by: VMSolidus <evilexecutive@gmail.com>