* Data-driven NPC behaviors
* Nuked AiLogicProcessor
* BehaviorSets are now all stored in yaml (might try making actions also yaml someday)
* Added a test to validate all BehaviorSets
* Might also try pooling actions in the future to reduce allocs but that'll be way down the line (cough physics).
* Forgot to re-add sorting nothing suss
* Remove last references
* Proper vector2i serialization for tile atmos (#3266)
* update map files
* update submodule
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
* Remove weird "S" jumpsuit from existence (#3267)
* Change character names to use datasets prototypes (#3259)
* Remove old name lists in .txts
* Fix tests
* LATEST MASTER TECHNOLOGY
* Converts AdminMenu to partially use XAML (#3231)
* Cleans up Hydroponics content. (#3025)
* Adds to IgnoredComponents.cs
* Jackboots
* Half Done
* Moved to diff PR
* Everything functional
* Fixed Sprays
* Nice
* Fixed
* Update submodule
* Fix tests
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Stacked sprite visualizer (#3096)
* Add Stack Visualizer
* Add cigarette pack resources
Adds transparent layers for visualizing cigarettes
* Add Bag Open/Close Visualizer
So storage opened in inventory can have different icons when opened
or closed.
* Create a component that only enumerates single item
Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.
* Refactoring stuff
* Fix other usage of stack in Resources
* Add docs
* Apply suggestions from code review
Apply metalgearsloth suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Applied suggestions from metalgearsloth
* Changed SingleItemStorageComponent to StorageCounterComponent
Difference. New component doesn't spawn items, merely counts them.
* Refactored StackVisualizer
* Fix breakage with master
* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update with MGS suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* ApcNet updating fix (#3078)
* GridPowerComponent
* ApcNet Powered update bugfix
* PowerTest fix
* Add GridPower to Saltern
* test fix
* Update canceling cleanup
* code cleanup
* nullable & code cleanup for test
* undo power test nullable
* Replaces GridPowerSystem with ApcNetSystem
* build fix
* Update Content.Server/GameObjects/EntitySystems/ApcNetSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Change all XAML to use spacestation14.io namespace (#3277)
* fix pizzaboxes (#3291)
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
* Spikes fix reopened (#3203)
* DoAfter, dead and stun check, DragDropOn
* Not ignored anymore
* Copied comment deleted
* Herbert's an ass
* Woops
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Make component states dependant on the player getting them (#3280)
* Make component states dependant on the player getting them
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Updated submodule to v0.3.7.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Acruid <shatter66@gmail.com>
* Hoe fix (#3296)
* Initial (#3297)
* Sort reagent dispenser entries (#3272)
* Sort reagent dispenser entries
Saves manually doing it.
* zumzum's suggestion
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Made firelocks damageable & destructible (#3303)
* Move job priority enum parity test ot unit tests (#3300)
* Spill hand contents when dropping them in a fall (#3304)
* Spill hand contents when dropping them due to falling down
* Better approach
* cleanup
* grammar
* stupid
* PauseManager moved to Shared (#3288)
* Namespace changes for moving IPauseManager to shared.
* Namespace changes for moving ITimerManager from Timers to Timing.
* Rebase Fixes.
* Update engine submodule to v0.3.8
* Improves kick, teleport and ban menus (#3312)
* Fix the admin panel not showing the account name (#3322)
* Fix name serialization for secret stashes (#3301)
* Fix name serialization for secret stashes
* Fix old usages of secret part name
* Separate ghost warp message into two (#3310)
* Separate ghost warp message into two
* Remove redundant arguments
* Address reviews
* Move properties up
* Add health overlay and a command to toggle it (#3278)
* Add health overlay bar and a command to toggle it
* Remove empty line
* Content PR for YAML hot reloading (#3319)
* Content PR for YAML hot reloading
* Add CanAdminReloadPrototypes (host permission)
* IndexedPrototype fixes
* Update RobustToolbox
* Update RobustToolbox
* Add an unconspicuous, meaningless and in no way motivated by any external force XML doc to buckle component
* Update RobustToolbox
* Update submodule to v0.3.12.
* Removed unused using statements that prevented compiling.
Removed references to IIndexedPrototype that does not exist anymore in the engine.
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: mirrorcult <notzombiedude@gmail.com>
Co-authored-by: cyclowns <cyclowns@protonmail.ch>
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Leo <lzimann@users.noreply.github.com>
Co-authored-by: Swept <sweptwastaken@protonmail.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: collinlunn <60152240+collinlunn@users.noreply.github.com>
Co-authored-by: komunre <49118681+komunre@users.noreply.github.com>
Co-authored-by: Acruid <shatter66@gmail.com>
Co-authored-by: Peptide90 <78795277+Peptide90@users.noreply.github.com>
Co-authored-by: Clyybber <darkmine956@gmail.com>
* Add Stack Visualizer
* Add cigarette pack resources
Adds transparent layers for visualizing cigarettes
* Add Bag Open/Close Visualizer
So storage opened in inventory can have different icons when opened
or closed.
* Create a component that only enumerates single item
Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.
* Refactoring stuff
* Fix other usage of stack in Resources
* Add docs
* Apply suggestions from code review
Apply metalgearsloth suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Applied suggestions from metalgearsloth
* Changed SingleItemStorageComponent to StorageCounterComponent
Difference. New component doesn't spawn items, merely counts them.
* Refactored StackVisualizer
* Fix breakage with master
* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update with MGS suggestions
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* My first contribution in a while.Change AddAccent command to be case insensitive (#3112)
* got rid of the bottle of nothingness. thought it was an empty bottle.
* new correction
* Delete SpaceStation14.sln
I honestly don't know what happened here. I didn't code those lines.
* Revert "Delete SpaceStation14.sln"
This reverts commit 68876841dce9c6e2ce9d21996e4caef3512b1385.
* new attempt at fixing
* Revert "new attempt at fixing"
This reverts commit 780f66fda3d66b6d4d086871d0b2ea2f6d4ee004.
* Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)"
This reverts commit 08041a30365331b82309aedaf2136d7631459887.
* Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""
This reverts commit b2dc76a6683e8df88188d37a836f9ab9a54287b5.
* Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)"""
This reverts commit 478d2bfe5daf6098d2f5665249ce0f161704dd73.
* Revert "Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""""
This reverts commit 23c195143e1e3d05cb5f344329c01754432684a9.
* Revert "Revert "Revert "Revert "My first contribution in a while.Change AddAccent command to be case insensitive (#3112)""""
This reverts commit 23c195143e1e3d05cb5f344329c01754432684a9.
* still having figured what happened with the sln file
* please work
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Engine namespace changes.
* Automated remove redundant using statements.
* Simplified Graphics namespace.
* Apparently the container system stores full type names in the map file.😞 This updates those names.
* API Changes to LocalizationManager.LoadCulture.
* Update submodule to v0.3.2
* Added empty light
* Can build light fixture
* Can construct and deconstruct small light
* You can build bulbs only on walls
* Playing with placement conditions
* Refactored code a bit
* Added check for north direction and snapping
* Fixed all small light sprites (wrong directions order)
* Fixed weird problem with bulb lights
* Fixed rotation on all stations
* Fixed map again
* Much better placement mode
* Deleted shared wall component and moved all logic to raycasts
* Missing bracket
* Better texture
* Moved wallmount condition to tags
* Removed station station
* Added suffix and fixed on map init bug
* Remove ExplosivePassable collision layer
Now we have tags which can do this cleaner.
* Update typo
* Vera's review
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Cuff enhancements
* Cuffs now have an OnClick for the alert to remove them
* nullables
* Use default interaction range so highlights are accurate
* Cuffing fails more gracely
* Make shared abstract and add component references to client / server
* Don't cache AudioSystem and HandsComponent given cuffs are rarely used
* Fix test
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* Add Speech and Emoting components.
* makesentient gives you speech and emoting abilities.
* Ghosts do *not* need a SpeechComponent.
* I hate you all, and I hate shared code as well.
* WIP changes
* Fix tests, merge conflict and trigger once behavior
* Update yml
* Change test strings to be consts
* Fix total damage types and classes triggers
* Simplify damage trigger logic, move state to Threshold
* Update outdated code and docs
* Change the name of IBehavior back to IThresholdBehavior
* Change human gibbing to trigger at 400 brute damage
* Change gibbing from brute to blunt damage
* Fix one (1) typo
* Add damage class trigger test
* Add missing nullable enable to thresholds
* Janitor trashbag upgrade + FANCY ANIMATIONS
* Review, Bug fixes and Sounds
- Fixed hand-pickup animation playing if the entity originated from inside a container (e.g. bag on the ground) or from inside ourselves (e.g. something in our own inventory)
* Fix/Change. Just log if AnimateEntityPickup is called with an entity that has no SpriteComponent.
* More explicit log message. Error log.
* Merge. Fix.
* A big hecking chemistry-related refactor.
Changed SolutionContainerCaps. It now describes "stock" behavior for interacting with solutions that is pre-implemented by SolutionContainerComponent. As such things like syringes do not check it anymore (on themselves) to see "can we remove reagent from ourselves". That's assumed by it... being a syringe.
SolutionContainerCaps now has different flags more accurately describing possible reagent interaction behaviors.
ISolutionInteractionsComponent is the interface that describes the common behaviors like "what happens when injected with a syringe". This is implemented by SolutionContainerComponent but could be implemented by other classes. One notable example that drove me to making this interface was the /vg/station circuit imprinter which splits reagent poured in into its two reservoir beakers. Having this interface allows us to do this "proxying" behavior hack-free. (the hacks in /vg/ code were somewhat dirty...).
PourableComponent has been replaced SolutionTransferComponent. It now describes both give-and-take behavior for the common reagent containers. This is in line with /vg/'s /obj/item/weapon/reagent_containers architecture. "Taking" in this context is ONLY from reagent tanks like fuel tanks.
Oh, should I mention that fuel tanks and such have a proper component now? They do.
Because of this behavioral change, reagent tanks DO NOT have Pourable anymore. Removing from reagent tanks is now in the hands of the item used on them. Welders and fire extinguishers now have code for removing from them. This sounds bad at first but remember that all have quite unique behavior related to this: Welders cause explosions if lit and can ONLY be fueled at fuel tanks. Extinguishers can be filled at any tank, etc... The code for this is also simpler due to ISolutionInteractionsComponent now so...
IAfterInteract now works like IInteractUsing with the Priority levels and "return true to block further handlers" behavior. This was necessary to make extinguishers prioritize taking from tanks over spraying.
Explicitly coded interactions like welders refueling also means they refuse instantly to full now, which they didn't before. And it plays the sound. Etc...
Probably more stuff I'm forgetting.
* Review improvements.