* Add Utensil component
For eating. With utensils.
Added to fork, plastic fork, spoon, plastic spoon and plastic knife.
Ignored component on the client.
* Add break chance to utensils
Set to 20% for plastic ones
* Add break sound to utensils
* Add utensil kinds
None, fork, spoon and knife.
For sporks, forknifes and sporknifes, of course.
* Add restricting foods by utensils needed
* Fix utensils breaking when food isn't eaten
* Moved getting held utensils to FoodComponent
* Add breaking a clicking utensil even if its not necessary to eat the food
* Move use utensil code to a separate method
* Add telling a handless entity when they need an utensil to eat
The immersion is off the charts
* Change food trash to only be held when the food was also being held
* Fix Wi-Fi utensils
* Remove unnecessary utensil ItemGroup
* Made TryUseFood public, removed redundant trash position update
* Renamed UtensilKind to UtensilType
* Remove eating food when clicking with it on nothing
* Disable eating food when clicked directly if it requires an untensil to eat
* Adds tile removing behavior to CrowbarComponent.
Add FloorTileItemComponent.
Add genhit.ogg
Add tile.png for testing
* fixes
* Gives ContentTileDefinition a default value for tile item to drop.
Adds a few more tileitems.
* Changes per review request
* move stack.use and if statement
* Add hunger and thirst
Based on the SS13 systems.
Food (Nutriment) / Drink -> Stomach -> Hunger / Thirst
* Cleanup rebase
* Cleanup stuff that was prototyped
* Address feedback
Still need to add a statuseffects system in a separate branch
* More cleanup on nutrition
Fix Remie's feedback and also damage tick.
* Re-implement nutrition with master
* Updated to use the StatusEffectsUI update
* Removed all clientside components as they only receive the UI updates now
* Implemented PR feedback
* Had to make a slight adjustment to the chemistry SolutionComponent given it doesn't have an Owner, same with Solution
Still TODO:
* Metabolisation effects
* Change drink contents to alcohol / wine etc.
* Add items to the dispensers
* For transparent containers use RecalculateColor
Could probably genericise DrinkFoodContainer as well to be a temporary item dispenser
* Fix broken bottle parent
* Add basic chemical reaction system
What it adds:
- Reactions defined in yaml with an arbitrary amount of reactants (can be catalysts), products, and effects.
What it doesn't add:
- Temperature dependent reactions
- Metabolism or other medical/health effects
* Add many common SS13 chemicals and reactions
Added many of the common SS13 medicines and other chemicals, and their chemical reactions. Note that many of them are lacking their effects since we don't have medical yet.
* Add ExplosiveReactionEffect
Shows how IReactionEffect can be implemented to have effects that occur with a reaction by adding ExplosionReactionEffect and the potassium + water explosion reaction.
* Move ReactionSystem logic into SolutionComponent
No need for this to be a system currently so the behavior for reaction checking has been moved into SolutionComponent. Now it only checks for reactions when a reagent or solution is added to a solution. Also fixed a bug with SolutionValidReaction incorrectly returning true.
* Move explosion logic out of ExplosiveComponent
Allows you to create explosions without needing to add an ExplosiveComponent to an entity first.
* Add SolutionComponent.SolutionChanged event. Trigger dispenser ui updates with it.
This removes the need for SolutionComponent having a reference to the dispenser it's in. Instead the dispenser subscribes to the event and updates it's UI whenever the event is triggered.
* Add forgotten checks
`SolutionComponent.TryAddReagent` and `SolutionComponent.TryAddSolution` now check to see if `skipReactionCheck` is false before checking for a chemical reaction to avoid unnecessarily checking themselves for a reaction again when `SolutionComponent.PerformReaction` calls either of them.
* Change SolutionComponent.SolutionChanged to an Action
The arguments for event handler have no use here, and any class that can access SolutionChanged can access the SolutionComponent so it can just be an Action with no arguments instead.
* Add more dakka
Some slight codebase changes to facilitate more robust behaviour.
* Update Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs
Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Remix last stereo to mono
hpistol + ltrifle
* initial explosiveComponent
* remove garbagee
* assets
* tile mass deletion baby
* grenades
* tweaks
* Update Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs
Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Ex_act based on damage, fixes and tweaks
* One finishing touch
Done the most cringe way
* ex_act explosions, tables are destructible now
also adds fuel tanks
* adds ex_act to mobs
* ports clown and sec outfits
* bikehorn and soundemitters
* very smol bike horn
* working fine sounds
* Oh wow i can do it through github
Co-Authored-By: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* fixes for review
* fixes prototype
* fixing entrypoint
- fixes inhand sprite visibility
- adds visible charge level
- refactor sound recourse load, now you can specify fire sound from YAML
- adds laser cannon - more powerful laser
- adds new assets for cannon