* allow paper labels on seeds
* added the components required by PaperLabel to the SeedBase
* localize insert/eject for PaperLabel
* visualize the paper label on seeds
* new paper layer for seeds
* eject the seed label on use
* different looking paper label
* forgot to turn on a layer
* Added Popup for the Ligneous plant mutation when using hands.
There was some confusion for players with the Ligneous mutation which makes the plant harvestable only with sharp tools. Adding a popup with the message "The plant is too tough." to give them a hint to use something other than just their hands.
I decided to only put the message when attempting to harvest using hands, as the intent is clear that the player just wanted to harvest, but wasn't able to. Using any other tools like a crowbar or a screwdriver will not trigger the popup.
* Update Resources/Locale/en-US/botany/components/plant-holder-component.ftl
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
---------
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Several small sfx tweaks
* fix small yml oopsie
* Redo the basin code to use events
* now uses an event for when the transfer is successful, not when there's just an attempt
* forgot to remove this
* Update Content.Server/Botany/Components/PlantHolderComponent.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* adds sound variations to shoes as well
* variations on honkbots and the H.O.N.K mech
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
* fix compile issue
* oops forgot to delete this
* cleanup
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Instead of each mutation being a flag that gets checked at some unique point in BotanySystem somewhere, they're now EntityEffects that get applied when the mutation occurs and when produce is harvested. One new list was added to SeedData so that multiple other fields could be removed.
All the non-stat-change mutations that have been rolled are added to the Mutations list, and get applied to the plant when the mutation occurs or when a seed with the mutation is planted. Produce get mutations applied at harvest if they apply to the produce, and carry all of the plant's mutations over as a seed. This gets rid of the one-off checks for things like Slippery, Bioluminescent, Sentient, etc.
The base odds of a mutation applying should be equal to the odds of the original mutation check. It pretended to have 1 bit flip (on averge) per mutation power, and odds of each mutation was the odds of one of its bit being flipped (1 /275 * bits). The 'thermometer code' applied for numbers will be replaced with simple random rolls, as both average out to the middle value. The new checks are much easier to understand and don't obfuscate the actual changes of something happening behind 3 layers of math. The biggest player-facing change is that Potency will be able to get over 65 significantly more often than it did in the previous system, but it will be just as common to get low values as high ones.
Mutation definitions have been moved to a .yml file. These include the odds per tick per mutagen strength of that mutation applying that tick, the effect applied, if it applies to the plant and/or its produce. This makes mutations simpler to add and edit.
This PR is limited specifically to the mutation logic. Improving other aspects of the system will be done in other PRs per the design document. Mutations was chosen first because its got the largest amount of one-off checks scattered all over that could be consolidated. Once this is merged, mutations could be contributed to the codebase with minimal extra work for later botany refactor PRs.
* Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem
* guap
* More fixes
* Wait you can do that?
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Fixed bug with missing gas not getting reset
* Fix bug with MutateInt not using min/max in prob calculation
* Add divison by zero check
* Fix styling
* seed screams now SoundCollectionSpecifier
More types of scream sounds
* plants scream mutation have 10+ scream types
* plant scream reduce scream volume
And scream powerness get's from yml instead of hardcode, so from prototypes could be changed pretty much easilly
* plants review change
* Moved GasMixture to shared
* Temp Fix for sandbox violation, idk why Array.Resize isn't working properly. It's already sandboxed.
* The most powerful webedit in history
Clipping a plant in any condition currently causes it and its clippings to be damaged.
Make clipping harvestable (already eligible for seed extractor) plants yield seeds at full health.
* Initial prediction
* new group handling
* groups for all examines that use multiple rn
* compile
* why was it doing this??
* handle newlines with sorting properly
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class
* Switches over to the Solutions.Solution Solution
* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions
* Switches over to the Containers.XYZ namespace
* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods
* Start using SolutionSystem for Solution manipulation
* EnumerateSolutions
* Move TryGetMixableSolution
* Move EnsureSolution to Server
* Create Solution Entities
* Stop using obsolete solution system methods
* Fix prototype component tests
* Add using ..Audio.Systems; back
* Wrap solution container slots in ContainerSlots
* Actually add the slot to the solution container map
* Dirty SolutionContainerComponent when ensuring solutions
* Revert namespace changes
* Remerge SolutionSystem and SolutionContainerSystem
* SolutionContainerManagerComponent refactor
* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release
* Readd examine reagent sorting
* Fix errors
* Poke tests
* Fix solution names not being applied
* Fix WoolyComponent including statement
* Fix merge skew
* Fix compile errors
* Make reactions use solntities
* Reindent solution class namespace
* Field attribute changes
* AutoGenerateComponentState for SolutionContainerComponent
* SolutionContainerComponent -> ContainedSolutionComponent
* ref ReactionAttemptEvent
* Denetwork preinit solutions
* Misc 1
* Nullable TryGetSolution out vars
* Cache associated solutions
* Fix merge skew
* Use explicit regions in SharedSolutionContainerSystem.Capabilities
* Add debug assert
* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent
* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName
* SolutionComponent doc comments
* Implicit DataField names and property purge
* ReagentEffect DataField names
* Local variables for readability
* Sort using statements + Entity<T> event handlers
* Fix compile erros
* Fix compile errors
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* Even more consumption
* Revert "Even more consumption"
This reverts commit 94ae0eca0ba1b4a55913f92519e1354b77e70734.
Oops forgot a file
* Believe it or not, more nutrient consumption
* Buff ez nutrient and l4z
* Add left 4 zed to emagged nutrimax just because
* Change some thresholds
* Make the water consumption actually influenced by the seed's water consumption value
* Tweak default water and nutrient consumption
* Composting plants works now
* Tweak seeds YML, add ez nutrient bottle to Nutrimax
* Increase default nutrient consumption a bit
* starter API
* network ID cards
* Port more stuff from old identity
* Re-implement identity representation + name updating
* move
* proper name returning for `IdentityName`
* move everything important to server, give in to temptation
* shared / server / client split sadly. move ensure to shared and spawn to server
* identity update queueing + identityblocker
* fixes
* and just like that it's usable for admins
* huge identity pass
* pass dos
* jesus christ
* figs :D
* fuck u
* fix bad merge.
Co-authored-by: Moony <moonheart08@users.noreply.github.com>