Commit Graph

244 Commits

Author SHA1 Message Date
metalgearsloth 1d63b4cfcb
Content update for UI prediction (#27214)
* Content update for UI refactor

* Big update

* Sharing

* Remaining content updates

* First big update

* Prototype updates

* AUGH

* Fix UI comp ref

* Cleanup

- Fix predicted message, fix item slots, fix interaction range check.

* Fix regressions

* Make this predictive

idk why it wasn't.

* Fix slime merge

* Merge conflict

* Fix merge

(cherry picked from commit 5896e6875266b22c565009b5d45f60ceb981d90a)
2024-05-03 00:15:32 +02:00
deltanedas be81d76b25
disable rehydration prediction (#27166)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 9482144a19930af85a22b90d6c610101b629bece)
2024-04-21 23:34:06 +02:00
Verm 21208c94f8
You can bless more containers with a bible (#26526)
* Made more things blessable

* Removed junk

* Remove whatever that was

* Make bowls blessable

* New mixablesolution component, converted everything to work with it

* Fix minor mishaps

* Fix extra spaces in bottle yml

* Fix last extra space, fix bottle havign the wrong solution name

* Remvoe unneeded event(I think), fix alcohol bottles not being mixable

* I missed cans
2024-04-21 23:31:16 +02:00
Nemanja 0d88c372e9
add fuel costs back to finishing welding (#27030)
* add fuel costs back to welding

* ack

* meh

* eek!

(cherry picked from commit a47c5561a9632b6577abdc252f712d7f2da823e6)
2024-04-21 23:20:07 +02:00
Tayrtahn 794302839d
Add ability to shake fizzy drinks so they spray in peoples' faces (#25574)
* Implemented Shakeable

* Prevent shaking open Openables

* Prevent shaking empty drinks. Moved part of DrinkSystem to Shared.

* DrinkSystem can have a little more prediction, as a treat

* Cleanup

* Overhauled PressurizedDrink

* Make soda cans/bottles and champagne shakeable. The drink shaker too, for fun.

* We do a little refactoring.
PressurizedDrink is now PressurizedSolution, and fizziness now only works on solutions containing a reagent marked as fizzy.

* Documentation, cleanup, and tweaks.

* Changed fizziness calculation to use a cubic-out easing curve.

* Removed broken YAML that has avoid the linter's wrath for far too long

* Changed reagent fizzy bool to fizziness float.
Solution fizzability now scales with reagent proportion.

* Rename file to match changed class name

* DoAfter improvements. Cancel if the user moves away; block if no hands.

* Match these filenames too

* And this one

* guh

* Updated to use Shared puddle methods

* Various fixes and improvements.

* Made AttemptShakeEvent a struct

* AttemptAddFizzinessEvent too

(cherry picked from commit cfa94be4c2044146298d07c703f3b71bc377ca63)
2024-04-21 22:08:21 +02:00
Leon Friedrich 0d8a432d74
Give names to solution & identity entities (#26993)
(cherry picked from commit faec39ced4d6a65b1ecbf373ba282202171f5224)
2024-04-21 22:01:02 +02:00
deltanedas 5e3d7350ba
scoopable ash and foam, solution transfer prediction (#25832)
* move SolutionTransfer to shared and predict as much as possible

* fully move OpenableSystem to shared now that SolutionTransfer is

* fix imports for everything

* doc for solution transfer system

* trolling

* add scoopable system

* make ash and foam scoopable

* untroll

* untroll real

* make clickable it work

* troll

* the scooping room

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 1db178b63254c5b509a6493a631fddb596b376a4)
2024-04-07 14:27:04 +02:00
Plykiya 3e38dc4de6
Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)
Prevent single-use hyposprays from getting the toggle draw verb

Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 90a880a9bea64601db77d5bbb2b184d5371dc082)
2024-04-07 14:20:24 +02:00
drteaspoon420 929b8978dd
Fix 'Hypopen shouldn't display solution examine text' (#26453)
* stealthy hypo

* ExaminableSolution hand check when in covert implement.

ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.

* cleaning code

* more cleaning

* Hidden datafield renamed to HeldOnly

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 4e618e9387ffe9696e1241f6073aaa03e126832d)
2024-04-07 14:20:11 +02:00
Tayrtahn 65b6765485
Prevent storing liquids in equipped buckets (#24412)
* Block access to solutions in equipped spillables.

* Stop Drink verb appearing if the solution can't be accessed.

(cherry picked from commit 1b94e0156311c918d17c7de4b79fedd328e04efc)
2024-04-07 14:20:07 +02:00
Plykiya 8d8a7b2004
Hyposprays Draw from Jugs (#25544)
* Hyposprays Draw from Jugs

* Fix last onlyMobs usage in yml

* Some Suggested Changes

* Remove unnecessary datafield name declarations

* Remove unnecessary dirtying of component

* Same line parentheses

* Added client-side HypospraySystem

* Cache UI values and only updates if values change

* empty line

* Update label

* Label change

* Reimplement ReactionMixerSystem

* Remove DataField from Hypospray Toggle Mode

* Change ToggleMode from enum to Bool OnlyAffectsMobs

* Add DataField required back since it's required for replays...?

* update EligibleEntity and uses of it

* Add user argument back

* Adds newline

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

* Guard for dirty entity

* Adds summary tag

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit f192d7901fedd134c38a6cab38731f8e93994492)
2024-04-07 14:14:28 +02:00
veprolet ac09dc586c
Cycle injector transfer amount on alt. use (#25566)
* Add toggle verb for injector transfer amount

* Fix injector verb priority scalability

---------

Co-authored-by: veprolet <>
(cherry picked from commit ad6ac73f6f41d1cbd3fe80a43c8bf4b83e03f392)
2024-03-17 14:58:50 +01:00
Plykiya 505106c7ab
Syringes that spawn with content start in inject mode (#25881)
* Remove unnecessary datafield names, syringes with stuff in them start in inject mode

* No trash tag

* Remove ViewVariables since DataField has them implicitly

* Revert "No trash tag"

This reverts commit 2c42172653d2cc70d58bd5bedf61a880b939bf20.

* Get rid of tags entirely for PrefilledSyringes

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 5cb48c922fa7236d07b463f0c38ada2d5805e54b)
2024-03-17 14:46:21 +01:00
deltanedas c0bfa9fc96
fishops nerf real (#25148)
* refactor ops

* inherit dna and fiber when fish hydrated

* :trollface:

* kid named finger

* :trollface:

* move rehydrating to shared :trollface:

* nobody noticed the popup being missing all this time

* method ops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 550612a37f4fd61088c994b289c833ed3d564855)
2024-03-07 01:24:59 +01:00
Plykiya 38719830b6
Syringe QoL improvements (#25480)
Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 4f7ff56e87d78a2acc0936466f83a6b841ee8fea)
2024-03-07 01:24:05 +01:00
Pieter-Jan Briers e7a3b82a8d
Use new ComponentPauseGenerator (#25183)
Also includes some (non critical) changes to the solution file to re-organize the Roslyn components.

(cherry picked from commit e00f74505c62310bd15aeaba8d6530f648397074)
2024-03-07 00:57:05 +01:00
Tayrtahn f40668818b
Add a container display to dispenser UI (#25391)
* Implemented contents display for dispenser UI

* Update Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Resolve the netent into a euid first

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit 100ece2e2078ab2fe99f4ce1ab36b2cd05319772)
2024-03-07 00:53:04 +01:00
Tayrtahn 4bb5cbead6
Make metamorphic glasses use last solution's empty sprite (#25322)
Make metamorphic glasses use empty sprite for the last solution they contained.

(cherry picked from commit c4c98a2f5986d8d00f8e1f40b95c9ad99a79580b)
2024-02-21 03:58:09 +01:00
Tayrtahn 292b92c039
Add support for metamorphic fill levels (#25022)
* Added support for fill levels to metamorphic glasses

* Fix warnings and cleanup

* Don't break non-metamorphic fills!

(cherry picked from commit e74f3019f7dc36a9e8ba19ae253692ed4af864c7)
2024-02-21 03:58:06 +01:00
Pieter-Jan Briers 589c55a6fc
Solution precision fixes (#25199)
* Add test for two chemistry issues

1. rounding issue with reaction processing when making chloral hydrate
2. reliable assert trip due to the ValidateSolution() heat capacity issue.

* Fix FixedPoint2 arithmetic

Fix internal floating point arithmetic in places where it could be avoided.

Fix incorrect rounding mode used in other places (it should always floor, like regular int arithmetic).

I had to add an explicit epsilon value for float -> FixedPoint2 because something like 1.05 is actually like 1.04999 and that'd cause it to be rounded down to 1.04.

This fixes reaction reagent processing in cases where the reagent inputs can't cleanly divide. Previously, when making 30u chloral hydrate by adding the chlorine in 10u increments you'd end up with 0.04 chlorine left over. This was caused by division in the reaction code rounding up in some cases. Changing division here to always round down fixes it.

* Attempt to fix heat capacity precision assert issues.

Fixes #22126

First, we just increase the tolerance of the assert. It was way too low.

Second, actually put a cap on float drift from one-off _heatCapacity changes.

* Fix float -> FixedPoint2 epsilon for negative number, fix tests.

* Fix DamageableTest

* Oh yeah I need to call CleanReturnAsync

(cherry picked from commit 33611b7094ba9540326a6f0f6edd2017640e61db)
2024-02-18 23:27:29 +01:00
Pieter-Jan Briers 1031a93942
Predict Injector (syringes), cleanup (#25235)
At least the mode/transfer amount logic. Actual transfer logic needs Bloodstream which I didn't wanna move into shared.

(cherry picked from commit 6d8be538c90cf4c3a6636e2f8b84631af457cd42)
2024-02-18 23:11:33 +01:00
deltanedas c73f3837bd
predict egg cracking + refactor (#25028)
* move stuff to server and some refactoring

* update spikables to not use triggering

* add Delete bool just incase

* a new egg

* mom can we have webedit. no, we have webedit at home

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 55dbe26019ed22e11f017393c028c6760699343d)
2024-02-08 12:41:42 +01:00
themias cd03dbac2b
Add inhand fill visuals (#24495)
* Add inhand fill visuals

* oops

* remove unused import

(cherry picked from commit bd100344a2f9f845e2dceb8351d36f8af913a5f1)
2024-02-08 11:54:38 +01:00
themias 87108e5822
Add reagent specific footstep sounds (#24406)
* Add sticky footsteps

* Update Resources/Audio/Effects/Footsteps/attributions.yml

Co-authored-by: ike709 <ike709@users.noreply.github.com>

---------

Co-authored-by: ike709 <ike709@users.noreply.github.com>
(cherry picked from commit 557e5eb476235398c3cf95aad793f36ab4b48f55)
2024-01-27 23:48:14 +01:00
0x6273 ebcdca5dfa
Use old reagent dispenser beaker slot ID (#24209)
Change the slot ID back to what it was to keep old map saves with an item in the slot loading correctly.

This also fixes the "You can't put this in the dispenser!" message not appearing when inserting an item without FitsInDispenserComponent because the whitelisted slot name wasn't changed.

(cherry picked from commit 7a7d0017b504dec4b1d390b941af9791d9677287)
2024-01-26 23:04:27 +01:00
Kevin Zheng 9cc361921b
Add limited-reagent dispensers (#23907)
* Add limited-reagent dispensers

* Add empty versions for all dispensers

* Fix lint

* Set initial window size so all buttons are visible

* Simplify logic, add parenthesis

* Use localized name for initial labels

* Adjust button style

* Avoid touching items before MapInit

* Remove pre-labeling

* Reduce diff

* Clean up YAML

* Fix test

* Really fix test

* Document

* Adjust based on review

* Add labels for obnoxiously long bottles

---------

Co-authored-by: AWF <you@example.com>
(cherry picked from commit 9394a262458df76d9c4156f147bed902e3feac75)
2024-01-26 23:03:30 +01:00
Trevor Day f0c4daca24
Explosion log fix fix (#24136)
* Reaction and Explosion admin log coordinates

* Remove extraneous whitespace

(cherry picked from commit d571ed940fc0fc506f7cf07d32b4e8059b348df8)
2024-01-26 22:55:51 +01:00
Nemanja 5a978c0430
Fix chem sources in guidebook (#23987)
* Fix chem sources in guidebook

* shabooya

(cherry picked from commit 0e45c63d2289387cbe3abc85665225fb2cfb114e)
2024-01-26 22:35:05 +01:00
Trevor Day e3a78e84b1
Update ChemicalReaction and ReagentEffect logs. (#23649)
* Update ChemicalReaction and ReagentEffect logs.

* Updated explosion log as well, and small cleanup.

(cherry picked from commit aa7fcb19ec2c5f93182da102579db6a3b17b80ec)
2024-01-26 22:08:19 +01:00
Kara 03b3e36d43
Examine prediction (#23565)
* Initial prediction

* new group handling

* groups for all examines that use multiple rn

* compile

* why was it doing this??

* handle newlines with sorting properly

(cherry picked from commit 0ae3858b69b695697ea9300609460f8ddb70ebbf)
2024-01-26 21:48:02 +01:00
Adrian16199 813e69cade
Allows a possibility for a new reagant to work on dead if applied. (#23298)
* Allows a possibility for a new reagant to work on dead if applied.

To use it, go to Resources\Prototypes\Reagents\medicine.yml and add worksOnTheDead: true to any reagent.

* Update Content.Shared/Chemistry/Reagent/ReagentPrototype.cs

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Update Content.Server/Body/Systems/MetabolizerSystem.cs

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit 78f4bec3e1fe51ab29b5b7e5b3a6e5416298f377)
2024-01-26 21:43:11 +01:00
Skye 3b5adde686
ChemMaster buffer preserves list ordering (#23352)
ChemMaster now maintains list order on reagent removal

(cherry picked from commit fbe72c848a8d24f9a653820e8ed915dd8446bcf5)
2024-01-26 21:24:21 +01:00
Nemanja 6fb12db0ed
Fix chem guide data build fail (#23289)
(cherry picked from commit a425bc78c56dd42eff1cab2938d92caf4e1b5962)
2024-01-23 23:04:39 +01:00
TemporalOroboros ce27944275
Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19e56a582b6b12f832bd318efbdac7c7)
2024-01-23 23:00:42 +01:00
Nemanja b38189c1e2
Add reagent sources to the guidebook (#22627)
* source in my guidebook

* finish it!

* sir yes sir oorah

* network that bitch, baby

(cherry picked from commit f538a2e34a4b62ac406a5871a3c52e51f8f0fad4)
2024-01-22 21:09:13 +01:00
Leon Friedrich 6dd211c44f
Fix rotation visuals desync & appearance state spam (#23016)
* Fix rotation visuals desync

* :bucklemeup:

* A

(cherry picked from commit cf98300ba223cc9b8bed72d9b6dff273a79119a3)
2024-01-22 18:37:45 +01:00
Leon Friedrich 3b8a4316fa
Make some prototypes use frozen collections (#22576)
* Make some prototypes use frozen collections

* poke tests

* Remove frozen dictionary enumeration

(cherry picked from commit 8587c3778abdf94041a491b1ff6330fbe6746c03)
2024-01-22 18:36:50 +01:00
Leon Friedrich 8494bd0885 Use ECS prototype-reload events (#22613)
* Use ECS prototype-reload events

* better constructors

* Maybe this fixes tests?
2023-12-22 23:25:35 +01:00
Nemanja d4ef5bec6c mild reagent prototype cleanup + other misc garbage (#22630) 2023-12-22 22:45:36 +01:00
Nemanja f5c0505252 Add electrolysis/centrifuge breakdown recipes (#22571)
* first pass

* chemical breakdowns !!!!

* mintemp salt because why not

* we don't really need this, no?

* if at first we don't succeed...

* ...then run debug tests again
2023-12-16 20:37:41 +01:00
Nemanja 9f0d39bcd3 add mixing categories to chem guidebook (#22566) 2023-12-16 20:32:27 +01:00
Nemanja 24902b7d30 Electrolysis and Centrifuge (#22517)
* electrolysis and centrifuge

* sprote

* final

* bomp!

* COUGH COUGH SPROTE

* boarsd
2023-12-16 20:30:32 +01:00
Nemanja 58bc3430f5 Gas Condensers (#22436)
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2023-12-16 20:19:56 +01:00
zero 04315f743f Sort reagent prototypes for solutions (#22049) 2023-12-02 20:35:37 +01:00
metalgearsloth b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
Leon Friedrich 6601803365 Fix ghost FOV bug (#21614) 2023-11-12 20:58:56 +01:00
DrSmugleaf 4257bd2c7e Make all prototype types partial (#21374) 2023-11-12 20:29:57 +01:00
Psychpsyo 3fc496001a Soapy Water & Edible Soap (#20364)
* soap reagent and soapy water

* make soapy water recognizable

* Fix tile cleaning bug

CleanDecalsReaction was able to take more than the reactVolume it was given.

* make soapy water an evaporating reagent

* Tile reactions when mopping

* Fix indescribably soap flavor

* Adjust soap flavours

Soap and soapy water now taste clean and syndie soap tastes like punishment.

* Better soap numbers & DeleteOnSolutionEmpty

* Changed TrashOnEmpty to TrashOnSolutionEmpty

* Last TrashOnSolutionEmpty change

* Fix merged code not compiling

* Requested changes.
2023-11-12 20:26:09 +01:00
TemporalOroboros 1f44aa8efc Generalizes solution overflow & slightly increases space lube yield (#21094)
* generalize SolutionSpikeOverflowEvent

* let reactions overflow

* spacelube: 3 -> 5

* restore TryMixAndOverflow threshold cap
2023-10-31 19:12:43 +01:00
Nemanja 23cbc4245e A return to foam (foam rework) (#20831) 2023-10-31 18:54:02 +01:00