* Yay
* Do a LOT changes in yml
* and again
* Finale changes
* yml and locale
* locale tweak
* yml and charp cleanup
* fix carpets
* and some-some
* And some
* I want to believe that its last🙏🙏
* 😭
* 😭😭
* clean
* fix
* AAHHAHAHAHAHAH
* fix
* FINAL
* thisguyusa...
* LAST_ONE
* wawa
* merge2
* sdobfjibwdsjaqaksmzxsowaw2edqw84
* aoaoaooaoaao
* this hardcode took 30 minutes of my life
* fix aaaa
* fix test
* FIX BUILD
* oops
* oops
* aaooaoaoa
* fuck
* oops
* refactor: cleanup after merge + use protoId in KitchenSpikeComponent
* refactor: fix butcherable stuff again!~
* fix: now actively checks for EdibleComponent on slicing, predicted items splitting
* fix: changed knife.yaml to use Slicing tool
* fix: no more sounds spam on chop-chop
* refactor: cleanups
* refactor: default time value for slicable
* refactor: whitespaces and extract variables
* fix: slicable no longer prevents InteractUsingEvent by marking handled w/o actually handling
* feat: chopping trees now requires sawing tool, same for slicing logs
* refactor: cleanup after merge
* refactor: fix non-related PR changes
* refactor: rename locid
* refactor: remove unneeded red 'slice' verb name when slicing entities with mob-state.
* refactor: simplify test code changes
* refactor: better readability for test
* refactor: linebreak for unary op
* refactor: xml-doc for SliceableComponent corrected to be more fitting.
* refactor: cleanup SliceableSystem some more
* refactor: use HasComp instead of TryComp in AddSliceVerb
* refactor: extracted methods to improve readability
* refactor: remove unchecked operator - not needed when casting from uint
* refactor: SliceableSystem cleanups, fix logs not being chopped due to solution splitting
* fix: slice verb is now showing up even if disabled, slicing is done even if there is no solution to split, replaced direct dependency for sliceable component to food component with default solution-name
* refactor: comment about RandomPredicted + toy knife now fits into clown shoes
* refactor: remove EdibleComponent dependency from SliceableSystem
* refactor: moved SliceableSystem into ToolRefinableSystem
* refactor: basic renaming for comps
* refactor: cleanup after merge
* refactor: reorder methods, renaming, simplify polymorph related conditions on slicing
* refactor: xml-doc + reorder yaml fields
* refactor: fixing yaml + method renaming, unused usings removed
* refactor: removed unused usings
* refactor: fix typo
* refactor: remove reference for deleted meat proto
* refactor: clean up yaml after merge
* refactor: fix multiple typos from mass replace
* refactor: fix missed field renaming
* refactor: ensure all entities that had ToolRefinable got BaseSlicingRefinable (aftermerge cleanup)
* refactor: undo solution-related changes for animals.yml
* refactor: fix invalid parent set for corgi + fix amount of slices for the rest of pies
* refactor: revert Solution to SolutionContainerManager changes after merge
* refactor: revert Solution to SolutionContainerManager changes after merge
* refactor: fix invalid property name for toolMissingQualityTooltip in yml, fixed missing entity on which AttemptToolRefineEvent is raised
* refactor: remove over-indent for components of BaseSlicingRefinable and for Slicing tool quality
* refactor: remove over-indentation on MobCarpHolo
* empty collection
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: iaada <iaada@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.
* Fix outdated component name in assaultbelt whitelist
RangedMagazine was replaced with BallisticAmmoProvider in the Gun
refactor (#8301)
* Move FlashOnTrigger, SmokeOnTrigger, Flash components to Shared
* Move LightReplacerComponent to Shared
* Move Utensil, Mousetrap components to Shared
* Move SprayPainterComponent to Shared
The PaintableAirlock tag has also been removed, as it was unused &
unnecessary, likely a vestige of spray painter development when the
PaintableAirlock component wasn't in Content.Shared.
* Add trivial Produce and Seed components to Client
This allows the plant bag and botanical belt whitelists to correctly
match produce and seeds on the client, fixing the extraneous "Can't
insert" message that previously appeared.
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* 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>
* Refactors the entirety of the AtmosphereSystem public-facing API to allow for multiple atmos backends.
* actually compiles
* Remove commented out code
* funny bracket
* Move archived moles, temperature from GasMixture to TileAtmosphere.
* WIP customizable map default mixture
still VERY buggy
* broken mess
aaaaaaaaaaaaa
* Fix lattice, etc not being considered space
* visualization for "IsSpace"
* help
* Update Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Holy SHIT it compiles AGAIN
* Fix AtmosDeviceSystem crash at shutdown
* Fix immutable tiles on map blueprints not being fixed by fixgridatmos/revalidate.
* Use space instead of gasmixture immutable for heat capacity calculations
* Remove all LINDA-specific code from GasMixture, move it to TileAtmosphere/AtmosphereSystem instead.
* Fix roundstart tiles not processing
* Update Content.Server/Atmos/Commands/SetTemperatureCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs
Changed Files tab is so large I can't commit both suggestions at once mfw
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* lord save me
* UI/ChatBox: Use the new `defStyle` param for `RenderMarkup`
The previous iteration didn't work because `AddMessage` can't inherit
its color from the PushColor (since we're not doing actual tag stacks
anymore).
* rebase touchup