* clean up a bunch of R&D code
* don't store components
* brug
* speedrun some sloth review
* technology disks
* expand functionality, begin work on printer
* disk printer ui
* file
* fix the rebase
* disk console is finito
* Update DiskConsoleSystem.cs
* Christmas trees now grant gifts.
* docs
* add holiday requirements, fix sound.
* doc
* remove redundant stuff
* rename GiftPackin to RandomGift.
* a word
* Update Content.Server/Holiday/Christmas/LimitedItemGiverSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* add osay command
* replace obsolete method
* inherit LocalizedCommands instead of IConsoleCommand
* streamline
* make OSay class public to match other commands
* re-scope namespace to file
* everything for mixing aside from yaml changes
* add recipe and canmix to bottles and the holy mixer tag to the bible
* fixes as a result of testing
* remove unused usings
* remove emptylines that are not required
Co-authored-by: 0x6273 <0x40@keemail.me>
* more empty line removal!
Co-authored-by: 0x6273 <0x40@keemail.me>
* add single space between if statement and condition
Co-authored-by: 0x6273 <0x40@keemail.me>
* fixes indentation on TryGetMixableSolution
* raise new AfterMixingEvent after attempting to mix a solution
* before mixing event and attempt get mixable solution event
* update reaction tests to be a beaker that can be mixed, and then pass a mixer component in to simulate mixing
* make two more beaker types mixable, add attribute for mixing feedback
* bible mix message
* mixing feedback on success
* updates test to use SpawnEntity over new as per feedback
Co-authored-by: 0x6273 <0x40@keemail.me>
* add ability to prevent ghosting to MindComponent.cs
* make minds preserve properties in certain transfer scenarios
* Revert "make minds preserve properties in certain transfer scenarios"
This reverts commit 333cae0db0faf4ef81767b93332271d944c90a0e.
* move PreventGhosting to the actual mind
* show modifications in access change logs
* skip logging and updates to name and job when no change was made
* add method to SharedAccessSystem.cs to get access tags
* add ID microwave logs
* split admin chat into new channel
* add ability to play audio when a chat message is received and add audio to admin chat
* give client control of AdminChat sound and volume + suppress sound for senders
* new version
* testy2
* working version
* new GroupExamineSystem
* restructure
* restructure again
* update icon
* adding group examine to prototypes
* change examine group title to a localized string
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
* InitialCommit (Broken)
* Fixes compile errors
* PR comments. More doc comments. Fixes
* Makes a singularity/event horizon without radiation/physics a valid state to be in
* VV 'fake' setters, fixes the visualizer, fixes the singularity trying to eat itself instead of nearby things.
* Removes unused dependency from Content.Client.GravityWellSystem
* Testing containment and fake VV setters for SingularityGeneratorComponent
* Fixes gravity wells (broken due to LookupFlags.None). Adds recursive Event Horizon consumption
* Fix merge skew
* Fixes for the master merge
* Fix engine commit
* Dirty is obsolete
* Switch over dirty
* Fix requested changes
* ambiant -> ambient
* Moves EventHorionComponent to Shared
* Proper container handling
* Fixes master merge. Fixes post insertion assertions for singularities. Extends proper container handling to gravity wells and the distortion shader.
* Better support for admemes throwing singularities.
* Moves update timing from accumulators to target times
* Update doc comments
* Don't stop me now, cuz I'm havin' such a good time (I'm havin' a ball!)
* YEET
* No changes to intended behaviour at this point. Pretty much just a refactor + bugfixes.
* tweaks to RandomizeState, removing an error caused by setting the state after setting the RSI
* Comments cleanup and removed IsSlippery. To re-add soon for this PR.
* test
* We don't actually use this PuddleGeneric anywhere
* cheeky
* Uncheeky, and tweaks based on #8203
* Recheeky
* A small price to pay for `checks passed`
* Beauty, like ice, our footing does betray; Who can tread sure on the smooth, slippery way
* Undo Slippery Checks
* Begin smoothing. Need to fix the animation-not-playing bug again
* Cleanup
* animation bugfix
* IgnoredComponents tests fix
* Spawns a new disk if one was deleted
* Adds tiledef to space checks, also adds a way to randomly check for a respawn point on station
* Removes unused method
* Cuts down on tile checks needed by checking surrounding tiles first
* Fixes up an issue where the coords wouldn't spawn
* Removes disk system, adds special respawning system and comp
* Fixes spelling error
* Fixes linter issue
* Maybe fixes the linter with a ref event?
* Empty commit to rerun tests
* Maybe fix?
* check for deleted grid
* Moves shutdown code to terminating code
* Customtypeseralizer
* changes name of datafield
* Removes owning station references
* Trying the queue event again
* Fix dead mobs sneezing and coughing
* SneezeCough update
* Streamlined Event code, moved dead-check
* cleanup
* I can has merge?
* Shared event for SharedMobStateSystem
* mechs
* interaction relay
* atmos handling
* fuck around with interaction events
SPAGHETTI CODE OH MY GOD
* more sprites and whatever the hell
* more mech shit
* more shit for equipment
* starting equipment (for nukie mechs and such)
* equipment cycling
* starting with some of the ui
* a fat chunk of ui prototyping
* done tinkering with ui
* a bunch of ui stuff and what have yous
* cleaning up grabber and state handling
* make the ui actually functional + watch me port a million icons
I swear i'll prune the sprites later blease
* start on construction
* construction yo mamma
* remove some unused files
* fix a silly
* make the graph sane
* make it actually constructible.
* print the boards as well, bozo
* rebalance part prices
* eject action
also i appease the russians by remembering to localize
* Punch Shit
* make mech integrity and repairs work
* Make the UI more based
STOMP STOMP STOMP STOMP
* make equipment even more based
* batteries and other such delights
* make the ui look pimpin af
* make the construction mega based
* UI but so epic
* equipment
* some sweat tweaks
* damage rebalancing
* restructure tech
* fix some shit
* mechs inherit access
* make icons actually use sprite specifiers
* TRAILING COMMAA!!!!!
* fix a mild indentation sin
* undo this change because it isn't needed
* actually fix this
* secret webeditting shhhh
* place this tech here
* comments
* foo
* Implement NetProbeCartridge
* Add audio and a popup when scanning a device
Add some doc comments
* Set program icon
* Add NetProbe cartridge as rare loot to maintenance loot tool spawner
* Make the maximum amount of saved entries configurable
Add a scrollbar that shows when there are more entries than fit on the screen
* Make device net id names translatable
* Add automatic emergency shuttle call
This adds a cvar shuttle.auto_call_time which is an integer N, that
calls the emergency shuttle automatically without intervention after N
minutes. This can be disabled by setting N to 0.
After a vote to extend, the shuttle will be called automatically every
shuttle.auto_call_extension_time minutes.
* Update Resources/Locale/en-US/round-end/round-end-system.ftl
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
Co-authored-by: Moony <moony@hellomouse.net>
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
* Add missing Dispose method to ForensicScannerBoundUserInterface.
* Remove old code from ForensicScanner.
* Prevent forensic scanner from being used on the floor and allow its window to stay open when active hand is swapped.
* Use more standardized UI code for ForensicScanner.
* Add a delay to ForensicScanner printing.
* Show name of what was scanned on ForensicScanner UI.
* Add a print sound for ForensicScanner.
* Add more error reporting for ForensicScanner.
* Centralize common logic in ForensicScannerSystem.
* Allow ForensicScanner blank printouts.
* Tweak ForensicScanner audio parameters.
Entities with MaterialStorageComponent should not accept materials if
they are supposed to be powered, and are not actually powered.
This fixes being able to insert ores into unpowered or unanchored ore
processors, among other issues.
* add lobby ready count to game ticker info
* Update Resources/Locale/en-US/game-ticking/game-ticker.ftl
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* simplify get info loc
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Work on cartridges
* Work on PDA UI
* Work on PDA UIs program list
* Work on PDA UI borders
* Add DeviceNetworkingComponent to the pda base prototype
* Fix submodule version
* Fix cartridge loader ui key
* Fix pda menu xaml
* Implement relaying ui messages
* Finish implementing the notekeeper cartridge
* Fix submodule version
* Fix errors from merging master
* Fix test failing
* Implement setting preinstalled programs
* Add some documentation to CartridgeLoaderSystem
* Add more doc comments
* Add localization to program names
* Implement review suggestions
* Fix background programs receiving events twice when active
* Xenoarch feedback
print out reports, weight node traversal, dialog for destroy menu, slight effect tweaks
* make the popup not bad
* the popup, jimbo...
* multi-node xeno artifacts
* refactor existing artifact effects
* more tweaks to generation
* more shit plus fix tests
* more generation stuff plus threat levels
* doink
* now make it build
* defer the artifact activation to not cause errors
also pricing
* some changes
* all of the yaml + ui stuff for artifact analyzer
* machine linking and starting to make the ui functional
* artifact analyzer display
* a shit ton of artifact analyzer stuff
* more changes; making destroy work properly; progress bar tweaks
* getting shit going!
ALL RIGHT
* small tweaks that didn't help much
* Komm susser todd: the end of analysis
* recipes and hints and ui, oh my!
* add some in-game sources
gotta prepare for day 1 launch
* node data + ditch random seed in place of id
* bunch of triggers
* finish off the last few triggers
* implement machine examine verb
* knock, flicker, blink, throw
* shatter, foam, shuffle, heat
* fix all the shit i broke
* *some* of these have to be good, no?
25 effects
* callin' it there for effects
* comments + reword some trigger hints
* don't mind this little commit here
* byref event
* fix brokey node entry
* fix low pressure trigger
* mirror review plus fixing 0x40's bug
also the throw artifact threw incorrectly
* randomize the event message a teeny bit
* Refactor ReagentGrinder
- It can now process partial stacks. (Before it would do nothing if the entire stack's solution didn't fit in the output container)
- Get rid of `SharedReagentGrinderComponent`, move shared stuff to `SharedReagentGrinder.cs`.
- Subscribe to events instead of massive switch/case.
- Get rid of update queue thing.
- Change `DoWork` so it's less duplicate code for grinding/juicing.
- Get rid of `ExtractableScalingEvent` and just scale directly based on item stack count.
- Add message for when you try to put something into the reagent grinder that doesn't fit.
- Fix obsolescence warnings.
* Use a timer on component instead of SpawnTimer
* s/StorageCap/StorageMaxEntities
* Don't predict body init
Client doesn't handle predicted entity spawning so the organs hang around.
* Just use init
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
* refactor: Removes FlashLightVisualizer (based on obsolete code) in favor or merging its functionality with HandheldLightComponent
fix: Low power lighting radius animations for lanterns, floodlights and flashlights now properly restore the original light radius when going back to full power
* refactor: Use the LightBehaviour component to animate HandheldLights
refactor: Remove unneeded HandheldLight definitions in some yaml files (already inherited by parents)
fix: Properly change the server side PointLightComponent Enabled property when turning HandheldLights on/off
feat: ReverseWhenFinished property on Fade light behaviours
* Empty commit to rerun CI with the new engine PR
* fix: Restore the correct HandheldLight addPrefix property, whoops
* refactor: blinkingBehaviourID -> blinkingBehaviourId, radiatingBehaviourID -> radiatingBehaviourId
* git mv
* Disable shader while box is open
* Hide entity menu / prevent examine
* fix recursion fix recursion fix recursion fix recursion
* Better visibility checks
* min and max visibility fields
* fix reference point
* adds an API to add station records from StationRecordsSystem
* removes a lingering comment
* adds a comment to AddRecord
* Update Content.Server/StationRecords/Systems/StationRecordsSystem.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* deregister sensors upon device list update and re-register after clearing devices
* fire alarms, too
* adds the last set of known devices to the device list update event
* update UI upon clearing everything out
* addresses reviews
* start work
* blindness actually works now
* doc
* doc you too.
* i desire to sneeze my lungs out
* no punchie
* s
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* humanoid sexmorph sprite restoration
can't believe i broke sex/gender AGAIN
* fixes default species appearances with no profile, tweaks randomization to no longer randomize species
* A
* fixes an oops
#11494
* user feedback for when you miss throwing something in disposals
* Update missed message
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
* Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* missing nullable check
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* restores species/age on examine
* makes the default human skin tone a little less green
* ensures human skin tone verification is rounded to the nearest integer value, adds tests for ensuring all human skin tones are valid and that the default skin tone is valid
* initial commit
- species prototype modifications
- markings points as its own file
- shared humanoid component
* adds a tool to convert sprite accessories to markings (in go)
* removes a fmt call
* converts sprite accessory to markings
* adds hair and facial hair to marking categories
* multiple changes
- humanoid visualizer system
- markings modifications for visualizer
- modifications to shared humanoid component
- lays out a base for humanoid system
* hidden layers, ports some properties from appearance component, shrinks DefaultMarkings a little
* squishes the initialize event calls into one function
adds stuff to set species/skin color externally from a server message - currently laid out as if it a dirty call to a networked component, may be subject to change (server-side has not been implemented yet)
* makes the sprite pipeline more obvious
* apply all markings, hidden layer set replacement
* ensures that markings are cleared when the new set is applied
* starts refactoring markingsset (unfinished)
* more additions to the markingset api
* adds constructor logic to markingset
* adds a method to filter out markings in a set based on a given species
* fixes enumerators in markingset
* adds validator into MarkingSet, fixes ForwardMarkingEnumerator
* modifications to the humanoid visual system
* ensuredefault in markingset
* oop
* fixes up data keys, populates OnAppearanceChange in visualizer
* changes to humanoid component, markings
marking equality is now more strict, humanoidcomponent is now implemented for client as a child of sharedhumanoidcomponent
* markings are now applied the visualizer by diffing them
* base sprites are now applied to humanoids from humanoidvisualizer
* passes along base sprite settings to the marking application so that markings know to follow skin color/alpha or not (see: slimes)
* custom base layers on humanoids
* merges all data keys into one data class for humanoid visualizers
* setappearance in sharedhumanoidsystem, removes custombaselayercolors
* humanoidcomponent, system (empty) in server
* adds some basic public API functions to HumanoidSystem
* add marking, remove marking
* changes appearance MarkingsSet to a List<Marking>, adds listener for PlayerSpawnCompleteEvent in HumanoidSystem
* ensuredefaultmarkings, oninit for humanoids
* markingmanager API changes
* removes MarkingsSet
* LoadProfile, adjusts randomization in humanoid appearance to account for species
* base layer settings in humanoidsystem, eye color from profile
* rearranges files to centralize under Humanoid namespace
* more reorganization, deletes some stuff
gotta break stuff to make other things work, right?
goodbye SpriteAccessory...
* fixes a good chunk of server-side issues
still does not compile, yet
* singlemarkingpicker xaml layout
* singlemarkingpicker logic
* magic mirror window (varying pieces of it, mostly client-oriented)
* removes some imports, gives MagicMirror a BUI class (not filled in yet)
* populates magic mirror BUI functionality / window callbacks
* fixes up some errors in humanoidprofileeditor
* changes to SingleMarkingPicker
SingleMarkingPicker now accepts a List<Marking>, species, and total possible markings available in that marking category
* fixes up hair pickers on humanoid profile editor
* fixes the errors in markingpicker
* markingsystem is now gone
* fixes a bunch of build errors
* so that's why i did it like that
* namespace issues, adds robustxamlloader to singlemarkingpicker
* another robustxamlloader
* human, lizard sprites/points
* prototype fixes, deletion of old spriteaccessory
* component registration, fixes dwarf skin toning
no, 'ReptilianToned' does not exist
* removes component registration from abstract humanoid component
* visualizer data now cloneable
* serialize for visualizer key
* zero-count edge case
* missing semi-colon moment
* setspecies in humanoidsystem
* ensures that default markings, if empty, will cause ensuredefault to skip over that given category
* tryadd instead of add
* whoops
* diff and apply should properly apply markings now
* always ensure default, fixes double load for player spawning
* apply skin color now sets the skin color property in humanoidcomponent
* removes sprite from a few species prototypes
* sprite changes for specific base layers based on humanoid sex
* layer ordering fix, and a missing base layer should now disallow markings on that layer
* anymarking base layer, adds the right leg/foot for humans
* loading a profile will now clear all markings on that humanoid
* adds missing layers for humans
* separates species.yml into respective species prototype files
* ensures that if layer visibility was changed, all markings have to be reapplied
* server-side enforcement of hiding hair (and other head-related markings) when equipping things that hide hair
* slime fix, clothingsystem now dictates layer visibility server side
* sussy
* layer settings should now ensure a marking should match the skin tone
* whoops
* skincolor static class and functions in UI
* skin color validation in humanoidcharacterappearance
* markingpicker now shows only the markings for the selected category in used
* getter for slot in singlemarkingpicker now ensures slot is 0 if markings exists
* FilterSpecies no longer attempts to do removal while iterating
* expands for SingleMarkingPicker
* humanoid base dummy has blank layers now (and snout/tail/headside/headtop)
* fixes an issue with visualizer system if the marking count was different but the markings themselves were (somewhat) the same
* whoops
* adds edge case handlers for count differences in humanoid markings
* preview now loads profile instead of directly setting appearance
* moves marking set loading to update controls
* clones a marking set in markingpicker by using the deep clone constructor
* whoops (deep cloning a marking now copies the marking id)
* adds replace function for markingset
* points should now update after the markings are remove/added
* merging base layer sprites into a humanoid should now clear them before merging
* sets dirty range start to count only if the dirty range start was never set above 0
* fixes up some issues with singlemarkingpicker
* color selector sliders in single marking picker should now expand
* hair from hair pickers should now apply in profile loading (client-side)
* category in singlemarkingpicker now sets the private category variable
* slot selector should now populate
* single marking picker buttons now have text, also shows the category name over all user-clickable elements
* removes a comment
* removing hair slots now sets it to bald, defaults to zero used slots if current hair is bald on hair/facial hair
* random skin color, eye color
* populate colors now checks if the marking count is greater than zero in singlemarkingpicker
* hair/facial hair pickers now just get the first possible hair from the respective species list
* different approach to random skin color
* oh, that's why it wasn't working
* randomize everything now just updates every single control
* selecting a new marking in SingleMarkingPicker should attempt to copy over old colors, populate list now uses cache,
* markingmanager now uses OnlyWhitelisted to populate by category and species
* filterspecies now uses onlyWhitelist to filter markings based on whitelist or not
* oops
* ui fix for singlemarkingpicker, ensures that cache is not null if it is null when populatelist is called
* order of operations for the horizontal expand for add/remove
* hair pickers should now update when you add/remove the hair slot
* fixes variable naming error in character appearance
* loc string fix in singlemarkingpicker
* lizards, vox now have onlyWhitelist, vox restriction for hair/facialhairs
* having zero possible hairs should no longer cause an exception in randomization
* setting species should now update hair pickers
* ignore categories for marking picker
* and a clear as well for the category button
* places that functionality in its own function instead
* adds eye base sprite, vox now also have their own custom eye sprites
* loading a profile client-side should do FilterSpecies for markings now
* client-side load profile does filter species after adding in the hairs now
* magic mirror
* callbacks now call the callback instead of adding it on construct
* whoops
* in removemarking too
* adds missing synchronize calls
* comments out an updateinterface call in magic mirror
* magic mirror window title, minimum sizing
* fixes minsize, adds warning for players who try to set their hair for species that have no hair
* removes spaces in xaml
* namespace changes/organization
* whoopsie (merge conflicts)
* re-enables identity from humanoid component
* damagevisuals now uses the enum given to it instead of the layerstate given on that layer tied to the enum
* removes commas from json
* changes to visuals system so the change is consistent
* chest
* reptilian
* visualizer system now handles body sprite setting/coloration, similar to how characterappearance did it
not a big fan of this
* adds a check in applybasesprites
* adding/removing parts should now make them invisible on a humanoid
* body part removal/adding now enumerates over sublayers instead
* synchro now runs in bodycomponent startup
* parts instead of slots
* humanoidcompnent check
* switches from rsi to actualrsi
* removes all the body stuff (too slow)
* cleans up resolves from humanoid visualizer system
* merging sprites now checks if the base sprites have been modified or not (through things like species changes, or custom base sprite changes)
* not forgetting that one again
* merging now returns an actual dirty value
* replaces the sequenceequal with a more accurate solution
* permanent layers, layer visibility on add/remove part in body
* should send all hidden layers over now
* isdirty in visualizer system for base layers
* isdirty checks count as well
* ok, IsDirty should now set the base layers if the merged sprites are different
* equals override in HumanoidSpritePrototypes.cs
temporary until record prototypes :heck:
* makes fields readonly, equates IDs instead
* adds forced markings through marking picker
* forced in humanoidsystem api, ignorespecies in markingpicker
* marking bui
* makes that serializable as well
* ignore species/forced toggles now work
* adds icon to modifier verb, interface and keys to humanoid bases
* needs the actual enum value to open, no?
* makes the key the actual key
* actions now propagate upwards
* ignore species when set now repopulates markingpicker
* modifiable base layers in the markings window
* oops!
* layout changes
* info box should now appear
* adds ignorespecies for marking picker, collapsible for base layer section of appearance modification window
* collapsible layout moment
* if base layers have changed, all markings are now dirty (and if a base layer is missing, the marking is still 'applied' but it's now just invisible
* small change to marking visibility
* small changes to modifier UI
* markings now match skin on zombification
* zombie stuff
* makes the line edit in marking modifier window more obvious
* disables vox on round start
* horizontal expand on the single label in base layer modifiers
* humanoid profiles in prototypes
* randomhumanoidappearance won't work if the humanoid has a profile already stored
* removes unused code
* documentation in humanoidsystem server-side
* documentation in shared/client
* whoops
* converts accessory into marking in locale files (also adds marking loc string into single marking picker)
* be gone, shared humanoid appearance system from the last upstream merge
* species ignore on randomization (defaults to no ignored species)
* more upstream merge parts that bypassed any errors before merge
* addresses review (also just adds typeserializers in some places)
* submodule moment
* upstream merge issues
* firelocks when alarmed will now use tryclose instead of emergencypressurestop
* just adds a power check to OnAtmosAlarm, instead
* restores emergencypressurestop usage, adds a newline to an if
* lathe and material storage refactor
* materialStorage ECS
it kinda sus tho
* beginning the lathe shitcode dive
* couple lathe visuals and lathe system
* lathe changes and such
* dynamic lathe databases
* rewrote internal logic
on to ui
* da newI
* material display clientside
* misc ui changes
* component state handling and various other things
* moar
* Update Content.Shared/Lathe/LatheComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* first volley of sloth review
* more fixes
* losin' my mind
* all da changes
* test fix and other review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
The issue is that both bodies go to sleep on the server-side so it mispredicts like crazy on the client then when you unbuckle it snaps.
This is just a bandaid until buckling + vehicles get some more love in future.
* Fix doc comment on FitsInDispenserComponent
It's clearly intended to be a doc comment, but wasn't.
* Allow the ChemMaster to accept canisters and bottles
* Give the ChemMaster an output container slot
* Tweak ChemMaster UI layout
* Make more ChemMaster UI tweaks
* Update ChemMaster SpinBox max handling
* Rework the ChemMaster
* Apply suggestions from code review
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Implement PR feedback
* Switch ChemMaster to a tabbed UI layout
* Rename Amount to Dosage for clarity
* Replace Amount with Dosage in messages
* Clarify dose in UI
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Add RemoveVolume()
RemoveVolume(vol) captures the common pattern of:
air.RemoveRatio(vol / air.Volume)
Change existing code to use this method where appropriate.
* Add gas recyclers
Gas recyclers catalyze the conversion of CO2 and N2O to O2 and N2. The
gas recycler component takes waste gas from the input net and releases
the result into the output net.
To make things more fun, the input net must be pressurized to 3 MPa and
heated to at least 300 C; otherwise, no reaction will occur.
Game-mechanic wise, gas recyclers contain the catalyst for the
conversion reaction, and therefore, requires no external power. However,
the external pumps and heaters required to make the reaction happen
still do.
* Fix gas recyclers
Fix negative sqrt, fix pressure check after remove.
* Add charcoal
Flush chemicals that are not the charcoal out of the chemical stream
* Add into EN localization to get chem dispenser to display correctly
* Remove method that wasn't needed
* Remove charcoal from dispenser
Charcoal is made by combing ash and carbon
* Place ash in elements prototype
* APC construction and deconstruction
Construction action GivePrototype
* APC needs screwing + sprites
* apc framework, working construction recipe
* Energy swords hot
* APC changes
* APC construction/deconstruction
* removed comments
* Revert "Energy swords hot"
This reverts commit 75228483abb3cc6252118b319bc8949d5198362d.
* Renamed function for clarity
* Fixed the last step not showing in the construction menu
* Some fixes
* Update Content.Server/Power/EntitySystems/ApcSystem.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Server/Construction/Completions/GivePrototype.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Structures/Power/apc.yml
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Structures/Power/apc.yml
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Server/Power/Components/ApcElectronicsComponent.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Client/Power/APC/ApcVisualizer.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* flavor profiles
TODO: every single flavor! yeah!!!
* adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message
* multiple and single flavor messages
* start on flavor localization, multiple flavors in localized flavors
* flavor prototypes
* a few more flavors, descriptions on what each section of the flavor file should be doing
* localization for flavor profiles in drink/food system
* adds an event that allows a flavor profile list to be transformed base on the user entity
* raises it on the food entity too
* changes a field in flavor, adds some more flavors, starts adding flavor prototypes
* adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors'
* changes call ordering in flavorprofile, adds flavor to ignored components server-side
flavor is really just a popup message, and those are all processed server-side
* fixes where food tried to get the flavor of the user instead of the food
* single flavors will now get the localized string
* getting the flavor message now ensures that flavors are deduplicated
* makes flavor processing more strictly unique bu making everything hashsets
* yeah, that could just not have distinctby now
* adds flavorprofile directly to food base instead for generic food taste
* FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes
* flavorprofilesystem now broadcasts the flavor profile modification event
* adds more flavors to the flavor profile loc file
* skips a flavor, if the flavor string is null/empty
* adds some more flavors, adds generic medicine flavor to medicinal chemicals
* more food flavors, adds flavors to swallowing
* adds some cocktails to the set of flavor profiles
* regenerates flavor prototypes
* adds flavor type to all flavors, adds whitespace between variants
* adds more flavors, adds flavors to several chemicals and food items
this is the part that took the longest
* changes backup flavor message
* spelling mistake
* more flavors, and flavors on food
* readds all the type fields, whoops
* fixes localization strings for forcefeeding food/drink
* fixes multiple flavor profile
* adds flavor limit for flavors
* makes that fetch the cvardef instead
* Add examines for damage values
Even immersive sims still give you values.
We should also do this for armour so people don't have to yml dive and so the general public actually know the balance of things.
* Slightly better
* Cleanup
* threshold balancing, restores none mode on atmos alarm
dear lord, panic mode with unbalanced thresholds was a nightmare
* that was 10%, not 1%
* adds widenet mode for scrubbers
* adds the vents to wide filter as well
* adds a check for if a firelock is powered before auto-opening
* fixes issue where resets would not propagate properly
* adds cvar bound for fire alarm access (defaults to all access)
* shuffles devicelist to shared, adds an overlay for devicelist
* adds space property to overlay
* moves networkconfigurator to shared, makes devicelistsystem clientside check activedevicelist
* dirties components upon change, adds networkedcomponent to sharednetworkconfigurator
* state handlers for networked components
* whoops
* lots of shuffling, renaming, and access changes
* randomizes color for every new entity added to the overlay
* adds a client-side action to clear all network overlays if they're active
* clones action (oops)
* localization, adds a command for clearing network link overlays (in case the action disappears)
* moves the entity manager up into the bui fields
* makes that a dependency
* attempts to just directly get the color from the dict when drawing, now
* fixes up a few comments
* adds dirty on init to devicelistcomponent
* hacky solution related to mapping with a networkconfigurator
* more stricter bound on that hacky solution
* just checks if the life stage is initialized instead of if the entity was initialized
* moves getalldevices to shared
* readds linq import
* tries to ensure that the show button is toggled on if the device we're trying to configure is currently being tracked by the overlay
* some reorganization
* C# half of Outer Rim commit 5081906bd17e715ecae422dd7a003d9f103e6884 "autolink gaming."
Ported from Outer Rim with permission.
* YAML half of Outer Rim commit 5081906bd17e715ecae422dd7a003d9f103e6884 "autolink gaming."
Ported from Outer Rim with permission.
* commit fixed AL summary
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* NewLinkEvent.User & LinkAttemptEvent.User now nullable, fix possible AccessReaderSystem AutoLink bug
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Add a new InfoSystem that sends SharedInfo from the server to client
when requested. Currently, only the rule header and rule text is sent.
Previously, the rule header and rule text was bundled in the client,
which means that the client would only display rules that it was built
with, even if the server has different rules.
This allows servers all running the same build to send different rules.
This could be useful, for example, for servers running the official
builds to send different rulesets without a client rebuild.
* Material
* good prototype
* Fix material storage
* You can insert biomass into the cloner
* ok, basic biomass subtraction works
* amogus
* ok chance works
* Alright, the biomass and genetic stuff works
* feedback for cloning
* more reclaimer polish
* ship it
* starting biomass + fix lathes
* I changed my mind on rat mass and these guys are definitely getting ground up
* Doafter
* clean up, sync the two
* fix naming, fix mass
* technology + construction
* additional logging, stop unanchoring when active
* fix event / logs
* dont gib dead salvage
* auto eject
* fix deconstruction behavior
* make warning message better, temporarily disable cancer scanner
* fix biomass stacks
* add easy mode CVAR
* stack cleanup, make biomass 2x as fast
* bugfix
* new sprite from hyenh
* fix tests
* hello? :smilethink:
* :smilethink:
* medical scanner gets antirotting
* fix cloner and medical scanner
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Fix a bunch of warnings
Also made ensnareable not broadcast as they're only used directed.
Mainly just Get<T> and AppearanceSystem
* buckle too
* fix tests
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add pneumatic valves
Pneumatic valves permit bidirectional flow between the inlet and outlet
if the pressure at the control port is high enough.
* Add construction recipe
* give more info in examine for rotting
* remove line
* Update MiasmaSystem.cs
* Update MiasmaSystem.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* changed the description of thieving gloves
* fixed the strip/place popups not being hidden
* moved the ev.Stealth check
* Revert "changed the description of thieving gloves"
This reverts commit e0d242ddb8902873fbcd095a58e49641588414f5.
* Refactor/format
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* fix mouse now cant insert other mobs on disposal, but still can jump inside
* Apply suggestions from code review
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* using popupSystem depedency and better fluent use
* change where the message You don't have hands are
* Caution popup
Co-authored-by: zero <ribeirolucasdev@gmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Converted PlantHolderVisualizer to component and system.
* Cleaned up Botany folder.
* Converted initialization of HydroTrayVisualizer under PlantHolderVisualizerSystem to it's own GenericVisualizer.
* Cleaned up hydro_tray.yml.
* stuff i'll have to fix anyway when n2o gets merged
* everything except the finished reactions
* freon coolant reaction but with bad curve
* miasmic subsumation
* freon production
* nitrogen and diff temp scaling
* uhh meant to change that
* #
* hitting that frezon boof
* removed verbs open and unlock for mobs with no hands
* fix the file where check the hands
* fix now using HasComp looking for SharedHandsComponent
* remove blank line
* remove blank line
Co-authored-by: zero <ribeirolucasdev@gmail.com>
* Port medibot + bot spawners from nyano
* Make the injection thresholds constants
* Remove warning
* Check against const in system too
* resolving systems just isn't worth it
* only resolve entity manager once
* Reduceother resolves too
* fix post-merge
* woops
* Per-map parallax support
* Comments for future sloth
* c
* bet
* Fix exception
* VV support
* Fix parallax
* mem
* weightless sounds
* Gravity stuff
* placeholder coz im too lazy to stash don't @ me son
* decent clouds
* sky
* Fast parallax
* Imagine spelling
* Loicense
* perish
* Fix weightless status
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
* Properly dirty changes when calling "SetInstrumentProgram" method
* Allow using swappable instrument verbs even while playing the instrument.
It's funnier this way
* Adds three new smites, headstand, locker stuff, and reptilian species swap.
* Localize all the smites.
* save work
* More smites...
* Final tweaks.
* oops
* !PLEH
* Adds disarm prone and improved hand removal options.
* fix chances.
* take out the trash.
* Add some admin TRICKS instead of more smites.
* oop
* Implements the admin test arena and associated trick.
* Tricks for granting/revoking access.
* e
* mfw
* Implement quick dialogs, for when you don't want to spend 20 minutes writing a simple dialog prompt.
* Forgot the rejuv icon.
* E
* docs
* augh
* Add rename/redescribe buttons.
* Adds objects menu, implements a couple tricks for stations.
* 1984
* Adds a trick for effectively infinite power.
* fixes some icon uggo.
* a
* HALT!
* Pause/unpause buttons.
* Forgor the textures.
* they broke every bone in their body.
* i added more
* more battery actions, touch up battery icon.
* Address reviews.
* Refactor traitor generation code.
* RandomTraitorAlive no longer crashes when 1 traitor. Also cleaner/faster
* Add Antag menu for admins, add Traitor to the list.
* Add zombie to admin-antag menu
* Pirates, lone op, make traitor consistent with the rest.
* Add name strings
* cleaned usings.
* Cleanup.
Co-authored-by: drakewill <drake@drakewill-crl>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* Change "CentComm" to "CentCom"
* Change "Centcomm" to "CentCom", skipping CVar and changelog
* Change "Centcom" to "CentCom", skipping lots of item IDs
* Change "centcomm" to "CentCom", skipping URLs, some var, IDs
* Change "centcom" to "CentCom", skipping IDs and alike
* Add AMIV disease stages
* remove unused import
* move stages to top for readability
* monkey immunity to amiv
* Update to use time instead of index
* Revert "Update to use time instead of index"
This reverts commit 6bc83b0d48c167fe30437fa94272a00ed1633c5d.
* add comments
* rerun test
* 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>
* Convert atmos plaque to generic visualizer
Use generic visualizer for atmos plaque. Also enables zumos plaque to
appear.
* Convert gas canister connecters
* Remove manual layer creation
* Remove gas canister visualizer
* Convert gas analyzers to generic visualizers
* Convert fire visualizer
* Fix layers on plasma and air canisters
* Remove commented out fire visualizer in barricades
* Add documentation for fire visuals component
* Remove redundant visualizer for milkalyzer
* Remove rogue item group
* 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>
* Add action to pull down mask
* Update based on review comments
* fix access
* cleanup
* Update based on review comments
* revert change to ToggleableClothingSystem
* switch to unequip
* Specify the unequip is for togglemaskevent only
* fix issue of activating mask in hands with something else in mask slot
* Update based on review comments
* switch to dependency for ActionSystem for consistency
* whoops other instance too
* review changes
* Adds Reach II
* Updated Reach II to work after refactor
* removing old map
* Adding the Central Command outpost
* Reachii isn't meant to be in here at all.
* updated possible error in .yml
* updating .yml
* Updated CentComm, fixed some issues like lighting.
* Imagine if we also docked at centcomm
* a
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Don't load cargo shuttle by default
Realistically only I am going to care and it wastes a few seconds per test / debugging locally.
* Make it a general cvar instead
* a
* cigars are marked as trash
* alt click added to trashbag disposals interaction
* request changes
* remove redundant check and auto refactor
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
There may be some situations to allow it but in actual combat if you have a big sprite like space dragon it's VERY easy to hit yourself and do sizeable damage.
* Add department-specific radio channels
This commit adds working department-specific radio channels, while
minimizing damage to the current codebase. It is expected that a future
refactor will clean this up a bit.
ChatSystem now has a RadioPrefix() method that recognizes
department-specific channels (e.g. ":e" and ":m") in addition to the
global channel (";"). It strips the prefix from the message and assigns
messages an integer representing the destination channel, if any.
IListen and IRadio now accept optional 'channel' arguments with this
channel in mind.
The ugly is that the integer channel number is hard-coded and also shows
up in chat.
Comms are not modeled at this time. You cannot break comms (yet).
All headsets have channels soldered into them. You cannot change
encryption keys to hop on new channels. Steal a headset instead.
* Remove debugging print
* Convert to prototypes
* Use prototype names in headset prototype
* Adjust list style
* Document prototype fields
* cringe
* some cleanup
* colours
* Remove alphas at least
* cc
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
* Added the stages , time to implelement them
* adjusted the zombie code to fit within the new staged system
* because I forgot it starts at 0
* mmmm Mistaken
* Removed unused comp
* removed DiseaseBuildup comp from IgnoredComponents.cs
* Resolved review
* Delete IgnoredComponents.cs
* Resolved review
* resolved review
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Show drink volume on examine
* Approximate measurement unless a beaker
* Changed percentage threshold and added subjectivity
* Update default switch case since it can never be 0 here
* Remove int cast from PercentFull method
* ECS containmentfieldgeneratorcomponent
* Fix tests and clean up one line
* check for anchored in a better way
* Fix dependency exception
I'm not really happy with this solution, it's not very good but I'm not
sure how to do it better without refactoring way more than I want to. Maybe
I'm missing something.
* review
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* lewd
* A
* Realtime
* Sleepy dork
* Draw radar position
* Accurate infiltrator
* experiments
* Better drawing
* Labels
* I need aan adult
* Cleanup
* Show toggles
* display I guess
* A
* fix
* fix
* cleanupsies
* Bit more polish
* Make sure mass scanners actually work
* Remove dummy state
* fren
* opposite
* aghost crash
* comment
* What's in a name
* woops
* Show docking ports
* Dock highlighting
* Drawing dock
* Shitty docks
* Lots of docking drawing
* Autodock working
* dork
* More graceful shutdown
* zoomies
* Lines and distance change
* revert
* Good enough
* cleanup
* Fix default range
* Dock UI and loc update
* Update on undock
* Loc fixes
Now it only plays when the round restarts *after* a regular roundend.
Meaning that if you spam the "restartroundnow" command, it won't play even if you have roundend sounds enabled in the options.
* Allow baton/battery to be inserted into recharger
* Revert "Allow baton/battery to be inserted into recharger"
This reverts commit ccf1f3d1827bf45c49bb6ca4f5c97990d1afba6e.
* Refactor stun batons to use internal batteries
* Implement DeviceList
Implement NetworkConfigurator
I sould really get into the habit of making smaller commits
* Remove ApcNetworkComponent from vents, scrubbers anf firelocks
* Change BeforeBroadcastAttemptEvent#Recepients to readonly IReadonlySet and add a ModifiedRecepients field
* Address revievs in NetworkConfigurationSystem
* Fix red and green button styles
* Change NetworkConfiguratorSystem#UpdateState to remove saved entites that don't exist anymore
* Add AtmosDevices device net id
* Add const strings for style classes
Fix wrong margin for NetworkConfiguratorConfigurationMenu
* Hello? Github?
* Add access check before opening the configuration ui
* Address reviews
* Fix call to access reader
* You shall not live again IgnoreComponent
* Fix interaction verb check
* Fix configuration window not closing when target gets deleted / out of range
* Change device is already saved message to say 'network device: ... is already saves'
* Apply suggestions from code review
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Fix applied suggestion
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* save changes
* naming rules
* changes
* changes
* last touches
* e
* use default
* better looping
* better prototype ig
* f
* c
* Revert "changes"
This reverts commit 111a7f36
* fuck i'm bad at git
* changes
* mfw
* e
* e
* Start implementing item pricing.
* Flesh out prices a bit, add the appraisal tool.
* Add prices to more things.
* YARRRRRRR
* gives pirates an appraisal tool in their pocket.
* Makes the various traitor objectives valuable. Also nerfs the price of a living person, so it's easier to bargain for them.
* Address reviews.
* Address reviews.
- Bojevic firerate dropped from 3 to 2
- Pellet damage from 13 to 8 (3 shotting players instead of 2 shot)
- Slightly more spread in line with the design doc. Slug spread I made as accurate as an SMG (so not quite full-screen mob hits but pretty close).
There's still some oddity around MobObserver / AdminObserver where if you move after suicide then aghost you return to your original body, but at least you won't spawn a billion AdminObservers anymore or crash if you controlmob one.
* weh
Multiplies the amount of power used by the battery guns, triple-ish for the laser cannon and a fuckton more for the xray
* Reduces nuke detonation time
* comment
* Update Content.Server/Nuke/NukeComponent.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* adds prototype reload for AlertLevelSystem, reorganizes selectable alerts a bit
* makes alert levels not necessarily require localization
* oops
* sus
* does the same for announcements as well
* oh, that's not how that works at all
* ok, NOW it works
* fixes localization, adds event for when alerts are reloaded
* addresses review
* Check if the ghost spawn position is in inventory/default/null-space
* attach to grid instead of default spawn point
* Simply attach to grid first before entity is deleted
* cameras but i didn't feel like git stashing them
* Adds more functionality server-side for surveillance cameras
* rider moment
* Adds skeleton for SurveillanceCameraMonitorBoundUi on client
* whoops
* makes surveillance camera monitor UI more defined
* removes tree from SurveillanceCameraMonitorWindow
* surveillance camera active flag, other routing things
* actually sets how SurveillanceCameraMonitorSystem sends camera info to clients
* adds entity yaml, changes field
* adds the camera/monitor entities, makes the UI open
* SurveillanceCameraRouters (not implemented fully)
* subnets for cameras, server-side
* it works!
* fixes rotation in cameras
* whoops
restores surveillance cameras to ignored components
makes it so that switching cameras now lerps the other camera
* makes the UI work
* makes it so that cameras actually refresh now
* cleanup
* adds camera.rsi
* cleans up prototypes a bit
* adds camera subnet frequencies, cameras in subnets
* adds surveillance camera router subnets
* might fix testing errors
* adds the circuit board to the surveillance camera monitor
* fixes up the camera monitor (the detective will get his tv soon)
* adds heartbeat, ensures subnet data is passed into cameras to send
* fixes up a few things
* whoops
* changes to UI internals
* fixes subnet selection issue
* localized strings for UI
* changes 'test' id to 'camera' for cameras
* whoops
* missing s
* camera static!
* adds a delay to camera switching
* adjusts a few things in camera timing
* adds setup for cameras/routers, localization for frequency names
* adds setup ui for routers, makes subnet names in monitor window follow frequency name in prototype
* localization, some cleanup
* ui adjustments
* adds surveillance camera visuals
* fixes a bug when closing the UI for monitors
* adds disconnect message to UI
* adds construction graph to cameras
* adds the camera to the construction menu
* fixes network selection for setup, tweak to assembly
* adds surveillance camera router construction, fixes up surveillance camera wire cutting
* adds disconnect button to monitor UI
* switches around the status text
* tweaks monitor UI
* makes the address actually show
* might make tests pass
* UI adjustments, hard name limit
* ok, that didn't work
* adds wireless cameras
* makes the television work/look nicer
* adds tripod cameras in addition to mobile cameras
* makes wireless cameras constructable
* fixes up those prototypes
* reorganization in C#, small cleanup
* ensures that power changes deactivate some devices
* adds a component to the television, comments out a function
* actually, never mind, i forgot that wireless cameras existed/are creatable for a second
* tweaks to router construction, removes SubnetTest from prototypes
* removes it from frequencies too
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* type serializers into components
* setup window opens centered, enum is now byte
* replaces active monitor list with ActiveSurveillanceCameraMonitorComponent
* adds paused/deleted entity checks, changes how verbs are given
* removes EntitySystem.Get<T>() references
* fixes bug related to selecting network from setup, alphabet-orders network listing in setup
* rider moment
* adds minwidth to surveillance camera setup window
* addresses reviews
* should fix the issue with camera visuals not updating properly
* addresses some reviews
* addresses further review
* addresses reviews related to RSIs
* never needed a key there anyways
* changes a few things with routers to ensure that they're active
* whoops
* ensurecomp over addcomp
* whoops
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add force mode for setting alert level
* Add console command for changing alert level
* Filename typo
* Return delta disableSelection property
* Make locked a component property
* Not lock green level after nuke disarm
* Adds seven new smites, moves the explosion smite to the verb category.
* adds even more smites.
* Even more smites, some messages for specific smites.
* Adds even more smites.
* Removes some junk, adds a smite that angers the pointing arrows.
* get rid of dumb component.
* Remove mistake from verb menu presentation.
* How did that happen?
* whoops
* c
* e
* fuck
* Loading...
* removes the BoM go away
* adds the funny kill sign. Fixes ghost smite.
* Move systems around.
* Adjust organ vomit.
* Adds a smite that turns people into an instrument, and one that removes their gravity.
* oops
* typo
Co-authored-by: Veritius <veritiusgaming@gmail.com>
* Extended access system
Allows jobs to specify "extended" access levels, which will be granted if the round-start crew count is below a certain threshold.
* Extended accesses for jobs
* Spook
* Make nukies usable
- Spawn points that work
- Radar default range bumped up
- Used the infiltrator instead
- Spawning works
I playtested it and it was working so anything new pops up then I'm gonna screm.
* a
* Partial work on StationSystem refactor.
* WIP station jobs API.
* forgor to fire off grid events.
* Partial implementation of StationSpawningSystem
* whoops infinite loop.
* Spawners should work now.
* it compiles.
* tfw
* Vestigial code cleanup.
* fix station deletion.
* attempt to make tests go brr
* add latejoin spawnpoints to test maps.
* make sure the station still exists while destructing spawners.
* forgot an exists check.
* destruction order check.
* hopefully fix final test.
* fail-safe radstorm.
* Deep-clean job code further. This is bugged!!!!!
* Fix job bug. (init order moment)
* whooo cleanup
* New job selection algorithm that tries to distribute fairly across stations.
* small nitpicks
* Give the heads their weights to replace the head field.
* make overflow assign take a station list.
* moment
* Fixes and test #1 of many.
* please fix nullspace
* AssignJobs should no longer even consider showing up on a trace.
* add comment.
* Introduce station configs, praying i didn't miss something.
* in one small change stations are now fully serializable.
* Further doc comments.
* whoops.
* Solve bug where assignjobs didn't account for roundstart.
* Fix spawning, improve the API.
Caught an oversight in stationsystem that should've broke everything but didn't, whoops.
* Goodbye JobController.
* minor fix..
* fix test fail, remove debug logs.
* quick serialization fixes.
* fixes..
* sus
* partialing
* Update Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Use dirtying to avoid rebuilding the list 2,100 times.
* add a bajillion more lines of docs (mostly in AssignJobs so i don't ever forget how it works)
* Update Content.IntegrationTests/Tests/Station/StationJobsTest.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Add the Mysteriously Missing Captain Check.
* Put maprender back the way it belongs.
* I love addressing reviews.
* Update Content.Server/Station/Systems/StationJobsSystem.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* doc cleanup.
* Fix bureaucratic error, add job slot tests.
* zero cost abstractions when
* cri
* saner error.
* Fix spawning failing certain tests due to gameticker not handling falliability correctly.
Can't fix this until I refactor the rest of spawning code.
* submodule gaming
* Packedenger.
* Documentation consistency.
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Fixes LINDA and monstermos clashing over high pressure difference direction
* Fix space wind CVar not disabling space wind entirely.
* Change 1 (one) variable name
* Vending machine jingle much less intense
* SpeechSoundsPrototype has a built in variation parameter
* Sounds in your face are louder but roll off more aggressively so that distant talking sounds are less distracting
* Redo that
* Speech noise system now supports variation of pitch
* license stuff
* PAIs have speech sounds now. Made by altering the pAI sounds.
* Monkeys have sounds from goon now
* New Speech Sounds
* Oops
* door bolts now set if power is off and wire is pulsed, makes WiresSystem get a new random every time the round restarts
* ??? what's shuffle doing in the interface ???
* oops
* Speech Sounds from Goonstation
* Added some speech sound prototypes for humans, mice, and vending machines. More to come later?
* Custom synthesized sound for a vending machine ad
* Gave mice and vending machines Speech Components on their base prototypes to make sounds
* Humans now talk using the 'Alto' voice. In the future this can be changed in customization screen
* New Prototype 'SpeechSounds' with three soundspecifiers for saying sound, asking sound, exclaiming sound.
* SharedSpeechComponent modified from being useless to being responsible for making speech noises.
* Initial creation of SpeechNoiseSystem for making Sounds when certain entities speak.
* whitespace fix
* License fix
* Remove leftover using from debugging
* Added a cooldown editable in yaml
* SharedSpeechComponent has the proper cooldown now. oops
* Move radiation collector to ECS
* Damagable system
* Remove IRadiationAct
* Add small helper field
* Update Content.Server/Radiation/Systems/RadiationSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Delete comment
* Fixed total rads
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Deprecate suspicion spawn markers.
* Add suspicion loot table.
* Add suspicion item tag component.
* Suspicion rule now spawns items randomly around the station on start.
Also cleans them up when it ends.
* Fix build
huh, that API changed quickly--
* fixes critical issue
* alright, this might be the actual fix
* removes useless null checks
* couple more
* removes default functions from unary device data
* Remote Explosives
* Apparently we forgot to push the changed files. Dumb.
We Forgor.#
* Made Requested Changes.
* And more changes.
* Added requested changes and tweaked a few other things.
* Fixed RSI issue (hopefully.) Readded Ensurecomp.
* Prototype that's mostly borked rather than completely borked
* ECS inserting mats
* Partial ECS mostly done, needs cleanup and visualizer
* Replace timers
* Power visualizes at least
* First ""working"" version
* Clean up all lathes
* Colors
* Fix animation timing
* Fixes greyscale, adds a bunch of colors
* Give every (used) material a color
* Made most lathes take long enough you can at least see there's some sort of animation
* Insertion feedback popup
* Sound for circuit printer and uniform printer
* Fix queueing, optimize update
* Remove mono crash
* cleanup
* Fix test failure
* Techfab inserting sprite
* Cleanup and commenting
* Fix bug in CanProduce check
* Fix UI resolves
* Mirror review stuff
* Fixes Holoparasites from killing their hosts when suiciding
* Adds the CannotSuicide tag to the Guardian Parent
This way it effects all guardian types and not just holoparasites.
* Adds check, fixes whitespace
* Fixes the ghosting check
* Explosions
* fix yaml typo
and prevent silly UI inputs
* oop
* Use modified contains() checks
And remove IEnumerable
* Buff nuke, nerf meteors
* optimize the entity lookup stuff a bit
* fix tile (0,0) error
forgot to do an initial Enumerator.MoveNext(), so the first tile was always the "null" tile.
* remove celebration
* byte -> int
* remove diag edge tile dict
* fix one bug
but there is another
* fix the other bug
turns out dividing a ushort leads to rounding errors. Why TF is the grid tile size even a ushort in the first place.
* improve edge map
* fix minor bug
If the initial-explosion tile had an airtight entity on it, the tile was processed twice.
* some reviews (transform queries, eye.mapid, and tilesizes in overlays)
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* is map paused
* GetAllTiles ignores space by default
* WriteLine -> WriteError
* First -> FirstOrDefault()
* default prototype const string
* entity query
* misc review changes
* grid edge max distance
* fix fire texture defn
bad use of type serializer and ioc-resolves
* Remove ExplosionLaunched
And allow nukes to throw items towards the outer part of an explosion
* no hot-reload disclaimer
* replace prototype id string with int index
* optimise damage a tiiiiny bit.
* entity queries
* comments
* misc mirror comments
* cvars
* admin logs
* move intensity-per-state to prototype
* update tile event to ECS event
* git mv
* Tweak rpg & minibomb
also fix merge bug
* you don't exist anymore go away
* Fix build
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Make flashlights, atmos hardsuit, and RGB use the new layer features
* avoid self-conflict
* fix rgb not updating on add
* cleanup
* Update Content.Client/Light/RgbLightControllerSystem.cs
Co-authored-by: mirrorcult <lunarautomaton6@gmail.com>
* cleanup diff
Co-authored-by: mirrorcult <lunarautomaton6@gmail.com>
* Adds support for a map rotation system.
It is now the default way of selecting a map, map votes have been disabled.
* whoops
* Randomize the map it starts off with, too.
(it'd pick bagel every time otherwise)
* Address review
* remove knight from rotation due to it being an unmaintained map.
* minor cleanup
* Disease system first pass
* Renamed HealthChange
* First working version of diseases (wtf???)
* Fix the cursed yaml initialization
* Pop-Up effect
* Generic status effect
* Create copy of prototype
* CureDiseaseEffect
* Disease resistance
* Spaceacillin
* Nerf spaceacillin now that we know it works
* Sneezing, Coughing, Snoughing
* Fix queuing, prevent future issues
* Disease protection
* Disease outbreak event
* Disease Reagent Cure
* Chem cause disease effect
* Disease artifacts
* Try infect when interacting with diseased
* Diseases don't have to be infectious
* Talking without a mask does a snough
* Temperature cure
* Bedrest
* DiseaseAdjustReagent
* Tweak how disease statuses work to be a bit less shit
* A few more diseases
* Natural immunity (can't get the same disease twice)
* Polished up some diseases, touched up spaceacillin production
* Rebalanced transmission
* Edit a few diseases, make disease cures support a minimum value
* Nitrile gloves, more disease protection sources
* Health scanner shows diseased status
* Clean up disease system
* Traitor item
* Mouth swabs
* Disease diagnoser machine
* Support for clean samples
* Vaccines + fixes
* Pass on disease resistant clothes
* More work on non-infectious diseases & vaccines
* Handle dead bodies
* Added the relatively CBT visualizer
* Pass over diseases and their populators
* Comment stuff
* Readability cleanup
* Add printing sound to diagnoser, fix printing bug
* vaccinator sound, seal up some classes
* Make disease protection equip detection not shit (thanks whoever wrote addaccentcomponent)
* Mirror review
* More review stuff
* More mirror review stuff
* Refactor snoughing
* Redid report creator
* Fix snough messages, new vaccinator sound
* Mirror review naming
* Woops, forgot the artifact
* Add recipes and fills
* Rebalance space cold and robovirus
* Give lizarb disease interaction stuff
* Tweak some stuff and move things around
* Add diseases to mice (since animal vectors are interesting and can be used to make vaccines)
* Remove unused reagent
* Chem master
* Drone support for handhelds
* Vending machines, scanners
* Cloners, R&D computers
* make research a little less sussy
* Unfuck wires
* PA control computer
* Unfuck merge
* Clean up git gore for good
* Disposals
* Microwaves
* paper
* Magic mirror
* More vendors for drones
* Solar computer whitelist
* EFR review updates
* Implement Intrinsic UIs, allowing the admin ghost to double as a computer.
* ignore moment
* remove debug statement, sort the actions.
* ffs
* didn't ever use this and don't need to, removed.
* rm dead code
* lil bit of commenting.
I have a feeling this might be the cause of the round restart bugs, so make sure the round hasn't ended in the spawned timer code and log every ghost spawned by this.
This makes SQLite DB ops properly asynchronous (instead of synchronously completing tasks). This makes them more consistent with postgres and means that any deadlock bugs introduced the next time somebody does .Result will be caught on SQLite too.
* Load Maps on Round Start, not Round Restart
* Fix admin log test.
It assumed maps/grids existed during pre-round, wihch is not a valid assumption anymore after this PR.
* Shutdown server if round fails to start 5 times.
* Fix bugs with round starting flag.
* Make StartRound not async, synchronously get new round ID from DB.
* Handle StationId.Invalid in PickBestAvailableJob
Instead of crashing, return null.
SpawnPlayer will handle this by making the player an observer or returning them to the lobby.
* Load Maps on Round Start, not Round Restart
* Fix admin log test.
It assumed maps/grids existed during pre-round, wihch is not a valid assumption anymore after this PR.
* Rejig Actions
* fix merge errors
* lambda-b-gon
* fix PAI, add innate actions
* Revert "fix PAI, add innate actions"
This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.
* Just fix by making nullable.
if only require: true actually did something somehow.
* Make AddActions() ensure an actions component
and misc comments
* misc cleanup
* Limit range even when not checking for obstructions
* remove old guardian code
* rename function and make EntityUid nullable
* fix magboot bug
* fix action search menu
* make targeting toggle all equivalent actions
* fix combat popups (enabling <-> disabling)
* fix networking
* Allow action locking
* prevent telepathy
* Implements bureaucratic error and random sentience.
* Adds the Vent Critters event.
* bug moment
* forgot ignores.
* undo something i included in the PR by mistake.
* address review
* Rejig Actions
* fix merge errors
* lambda-b-gon
* fix PAI, add innate actions
* Revert "fix PAI, add innate actions"
This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.
* Just fix by making nullable.
if only require: true actually did something somehow.
* Make AddActions() ensure an actions component
and misc comments
* misc cleanup
* Limit range even when not checking for obstructions
* remove old guardian code
* rename function and make EntityUid nullable
* fix magboot bug
* fix action search menu
* make targeting toggle all equivalent actions
* fix combat popups (enabling <-> disabling)
* * Fixed Reagent Tanks so they now dispense an amount according to the transfer amount of the bucket you use.
* Revert "* Fixed Reagent Tanks so they now dispense an amount according to the transfer amount of the bucket you use."
This reverts commit 3b565c0509e0a802b5aec63fc62007205ec330f1.
* Adds possums along with their sound effects and petting popup messages.
* Adds Morty my beloved
* Fixed a small error in InteractionPopupSystem that was causing an error: "[ERRO] root: Server tried to play audio file which does not exist."
* Added raccoons
* Adds Morticia the raccoon. Morticia my beloved! (Original character do not steal :P)
* Adds ferrets and their SFX
* Well excuuu-uuuuse ME, Princess!
* "It can't be THAT easy..." --Spider-man Noir
* It's that easy.
Thanks to julian figuring out IDesignTimeDbContextFactory exists in #6327.
All this DbContext configuration and options setup stuff is insane. Microsoft should be absolutely ashamed for coming up with this load of garbage.
* fuck
* oh boy
* Sorted every chem into guide groups
* WHY ARE YOU NOT ABSTRACT
* removes the target thing in favor of simply generating everything.
* eee
* Add group for med
* Update wiki JSON generation to use System.Text.Json
* Fix error on shutdown during wiki JSON generation
* First pass at automatic wiki workflow
* Add a temporary workaround while the build is continuing to give errors
* Update workflow to reference correct API url, track dependency.
* Compile wiki actions into one job rather than two
* Update page name to reference editable page
* Add other JSON file and parameterize root page path
* A few steps closer to using `System.Text.Json` to serialize properly
* Revert System.Text.Json and return to Newtonsoft.Json.
* Revert the revert. Return to System.Text.Json.
This reverts commit a5ea98dfdcfab3f605ac4d82d3b110f099324308.
* Add and register UniversalJsonConverter class.
* Narrow triggers for update-wiki GitHub action.
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* Step 1 of porting; grabbed most of the files via patches.
* Add species field to the DB
* Appearance patches for slimes.
* Fix the db test.
* Add slime's biocompat.
* slimby
* Fixes, allow specifying if a species is playable or not.
* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs
Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs
Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
* Update Content.Client/Preferences/UI/HumanoidProfileEditor.xaml.cs
Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
* Address reviews.
* Address reviews.
* make an if-case.
* Fix a goof where species wouldn't get shown in the editor correctly (it'd always default to human)
Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
* Enable lighting of Cigars with IsHotEvent
Subscribed to IsHotEvent in ThrusterSystem, added AfterInteractEvent to SmokingSystem.Cigar which will set SmokableState to Lit if IsHotEvent returns true
This should mean that cigs/Cigars should light on anything hot
* Revert "Enable lighting of Cigars with IsHotEvent"
This reverts commit db896e1f80940892a87d34aa7182b9c605fa53bc.
* Add the ability to kick your way out of welded or locked closets
Added a ResistLocker component/system that hooks into OnRelayMove to begin resisting out of lockers so that players aren't stuck in lockers forever
Also added check to EntityStorageComponent to not print out welded shut message if the entity attempting to open the locker is inside of it.
* Changes based on review
minor formatting changes
make components passed into AttemptResist nullable and resolve them inside of the function
Remove incorrectly named .ftl file
* Changes based on review
Ditched async DoAfter
Used PopupSystem over User.PopupMessage
Added Cancel token to ResistLockerComponent
Subscribed to EntRemovedFromContainer event to cancel DoAfter if the player is removed from a container
* I am in formatting hell, apparently
* Changes based on review
Added TryComp for the EntityStorageComponent instead of the event passed one
* Changes based on review
* Apply suggestions from code review
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Formatting changes based on review
* Shuffle functions around in LockSystem to properly trigger visualizer
Moved all the unlocking logic to a Lock method inside of LockSystem and TryUnlock calls this method if the user passes all of the access checks
* Formatting, replacing Resolve with TryComp and making AttemptResist arguments optional
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Check if the player is inside THE container not A container
me no read good
* ok ok I give my code is bad
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: Paul <ritter.paul1@googlemail.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: E F R <602406+Efruit@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* XAML PlayerTab entries
* Move command execution to PlayerTab
* Move command logic to the AdminSystem
* Clean up
* Add examine and context menu keybind handling to PlayerTab
* Fix remote admin verbs
* Remove examine for now
* Add server verbs
* Fix requests of verb by non-admins
* Clean up AdminSystem.Menu
* some work
* equip: done
unequip: todo
* unequipping done & refactored events
* workin
* movin
* reee namespaces
* stun
* mobstate
* fixes
* some work on events
* removes serverside itemcomp & misc fixes
* work
* smol merge fix
* ports template to prototype & finishes ui
* moves relay & adds containerenumerator
* actions & cuffs
* my god what is actioncode
* more fixes
* im loosing my grasp on reality
* more fixes
* more work
* explosions
* yes
* more work
* more fixes
* merge master & misc fixed because i forgot to commit before merging master
* more fixes
* fixes
* moar
* more work
* moar fixes
* suffixmap
* more work on client
* motivation low
* no. no containers
* mirroring client to server
* fixes
* move serverinvcomp
* serverinventorycomponent is dead
* gaming
* only strippable & ai left...
* only ai and richtext left
* fixes ai
* fixes
* fixes sprite layers
* more fixes
* resolves optional
* yes
* stable™️
* fixes
* moar fixes
* moar
* fix some tests
* lmao
* no comment
* good to merge™️
* fixes build but for real
* adresses some reviews
* adresses some more reviews
* nullables, yo
* fixes lobbyscreen
* timid refactor to differentiate actor & target
* adresses more reviews
* more
* my god what a mess
* removed the rest of duplicates
* removed duplicate slotflags and renamed shoes to feet
* removes another unused one
* yes
* fixes lobby & makes tryunequip return unequipped item
* fixes
* some funny renames
* fixes
* misc improvements to attemptevents
* fixes
* merge fixes
Co-authored-by: Paul Ritter <ritter.paul1@gmail.com>
* Rework AdminSystem to keep players in the PlayerTab until round end
* Prevent sending PlayerStatus to deadminned admins
* Change _playerList to non-nullable
* Clean up unused usings
* Consolidate duplicate foreach loop code
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
* git mv
* Move Access Component & system.
- Name space changes
- Rename AccessReader to AccessReaderComponent
- Also need an abstract TryGetSlot function for SharedInventoryComponent
* better TryGetSlot
* Ah yes, tests exist.
* [ADD] changes to be able to identify living downed players
* [FIX] format of tryGetComponent, fixed string
* [CHANGE] PR mind component suggestions
* [CHANGE] trycomp based on qa feedback
* [CHANGE] Condensed mindcomponent as per feedback
Co-authored-by: fishfish458 <fishfish458>
* Adds Administration verb category and AHelp verb.
For more convenient adminin'.
* abbreviate verb category to Admin
* Add explosion verb to admin category
* 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
* Disable check
* vehicle test
* Make PAI stop instrument when turning off (player leaves/ejected)
* Give pAI an instrument component with a custom soundfont
* Add pAI synth program to custom ss14 soundfont
* Add new PAIMidi action that pAIs use to open their instruments
* Changed instrument component to allow its player to be the actor of its parent item
* Oops. Readds instrumentcomponent.
* ECS Changes
* Changed soundfont to ringtone
* Revert "Disable check"
This reverts commit 86001d8b5e94ee38d0c9504cb19826327b04fb16.
* Remove action parameters from ghost placeholder
* Revert "vehicle test"
This reverts commit 8a8ecf41083e0d5c8d4363ff02981bdab04bcd1c.
* Fixes to whitespace
* Even more fixes to whitespace
* Removed paiSynth sample from spacestation14.sf2
* Yet another indentation touchup
* Revert "Remove atmos archiving."
This reverts commit 7fa10bd17b.
* Explosive Depressurization now brings tiles down to TCMB.
* Tiles now specify heat capacity.
* Do not serialize archived gas mixture values.
* Remove bad idea
* dumb typo
* Space gas mixtures now have a harcoded heat capacity.
This is a bit of a hack, but rooms exposed to space now cool down properly when monstermos is disabled.
Huge thanks to @LemonInTheDark for helping me with this!
* Clean up heat capacity methods
* Better logging based on the original monstermos' logging
* Comment explosive depressurization hack better
* Completely refactor how job spawning works
* Remove remains of old system.
* Squash the final bug, cleanup.
* Attempt to fix tests
* Adjusts packed's round-start crew roster, re-enables a bunch of old roles.
Also adds the Central Command Official as a proper role.
* pretty up ui
* refactor StationSystem into the correct folder & namespace.
* remove a log, make sure the lobby gets updated if a new map is spontaneously added.
* re-add accidentally removed log
* We do a little logging
* we do a little resolving
* we do a little documenting
* Renamed OverflowJob to FallbackOverflowJob
Allows stations to configure their own roundstart overflow job list.
* narrator: it did not compile
* oops
* support having no overflow jobs
* filescope for consistency
* small fixes
* Bumps a few role counts for Packed, namely engis
* log moment
* E
* Update Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Update Content.Server/Maps/GameMapPrototype.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* factored job logic, cleanup.
* e
* Address reviews
* Remove the concept of a "default" grid.
It has no future in our new multi-station world
* why was clickable using that in the first place
* fix bad evil bug that almost slipped through
also adds chemist
* rms obsolete things from chemist
* Adds a sanity fallback
* address reviews
* adds ability to set name
* fuck
* cleanup joingame
* Sending a mob out of a disposals unit shouldn't push them into a wall anymore.
* Something something resolves vs. OnRemove fighting it out
* Disposals yeet reduction: Address reviews and other oddities
* Refactor slip dropping to use throwing
* Update Content.Server/Fluids/EntitySystems/SpillableSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Uncringe
* Update Content.Server/Fluids/EntitySystems/SpillableSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Transfer most Instrument UI logic to a new component, ActivatableUIComponent
* Move more ActivatableUIComponent stuff to ECS
* ActivatableUI component ignore on client
* ActivatableUI: Get rid of component interfaces where possible
* Add in adminOnly attribute for activatable UIs
This is so that porting #4926 to this will be easier
* Transition Solar Control Computer to ActivatableUI
* Move communications console to ActivatableUI
* Move cargo console to ActivatableUI
* Move ID card console to ActivatableUI
* ActivatableUI: Make things more amiable to entity tests adding components weirdly
* ActivatableUI: Use handling or lack thereof of events properly
* ActivatableUI: component dependency issue resolution stuffs
* ActivatableUISystem: Fix#5258
* More fixes because master did stuffo
* Check for HandDeselectedEvent again because otherwise active-hand check doesn't work
* Move just a bit more code into the system, introduce a workaround for #5258
* Purge the player status detection stuff
* Oh and some obsolete stuff too
* Add a way to disable voting for maximum authoritarianism
* Allow disabling specific vote types via cvars
* Migrate standard-vote-to-cvar dictionary to being static
* add sprite and basic entity, no reagent or testing
* actually implement epinephrine and add it to the box
* allow creating it
* add it to nanomed
* fig
* Add admin logging, models, migrations
* Add logging damage changes
* Add Log admin flag, LogFilter, Logs admin menu tab, message
Refactor admin logging API
* Change admin log get method names
* Fix the name again
* Minute amount of reorganization
* Reset Postgres db snapshot
* Reset Sqlite db snapshot
* Make AdminLog have a composite primary key of round, id
* Minute cleanup
* Change admin system to do a type check instead of index check
* Make admin logs use C# 10 interpolated string handlers
* Implement UI on its own window
Custom controls
Searching
Add admin log converters
* Implement limits into the query
* Change logs to be put into an OutputPanel instead for text wrapping
* Add log <-> player m2m relationship back
* UI improvements, make text wrap, add separators
* Remove entity prefix from damaged log
* Add explicit m2m model, fix any players filter
* Add debug command to test bulk adding logs
* Admin logs now just kinda go
* Add histogram for database update time
* Make admin log system update run every 5 seconds
* Add a cap to the log queue and a metric for how many times it has been reached
* Add metric for logs sent in a round
* Make cvars out of admin logs queue send delay and cap
* Merge fixes
* Reset some changes
* Add test for adding and getting a single log
* Add tests for bulk adding logs
* Add test for querying logs
* Add CallerArgumentExpression to LogStringHandler methods and test
* Improve UI, fix SQLite, add searching by round
* Add entities to admin logs
* Move distinct after orderby
* Add migrations
* ef core eat my ass
* Add cvar for client logs batch size
* Sort logs from newest to oldest by default
* Merge fixes
* Reorganize tests and add one for date ordering
* Add note to log types to not change their numeric values
* Add impacts to logs, better UI filtering
* Make log add callable from shared for convenience
* Get current round id directly from game ticker
* Revert namespace change for DamageableSystem
* Food and Utensil to ECS, Made utensil less restrictive, no more soup eating with a knife...
* AltVerb "can eat" check
* removed HasFlag calls
* AltActionVerb -> InteractionVerb
* "required utensil" filed
* pass 1
* a little more reagent effect for breakfast
* move lots of stuff around
* implements all medicines
* implement all cleaning & elements
* implement toxins/pyrotechnic
* p
* linter fixies
* fixes + narcotic balancing
* fix and standardize
* reviews
* things
* Makes map vote and roundstart smart about player count.
No more Saltern with 30 players, or Knight Ship with 50.
* a typo
* Address reviews.
* Localized.
* Make fires do less damage
* Severely nerf fires and severely buff temperature protection
* fuck it, i'll nerf it so hard and we can buff it later if we decide
* new scaling func
* fix
* unused
* reviews + balance metabolism heat + reduce atmos air temp transfer efficiency
* little more balance
* just a wee bit more
* slight adjustment
* Rewrite solar panel update scheduling
* Use predicate to filter out non-anchored entities from solar raytrace
* Remove unused dependency
* Cache physics system
Co-authored-by: Tomeno <tomeno@lulzsec.co.uk>
* Ghost roles now get new Minds
* Some round start/end button stuff
* Mind tracking for better round end reports
* Make traitor kill objectives use mind CharacterName rather than actual occupied entity ("kill brain" prevention)
* Transition over to EntityUid for mind stuff because that's the only way to do it
* BrainSystem fix for PR rebase
* Doors no longer permanently glow orange + logic tweak
* Fix server-side order of operations for deny animation timer
* Delay between deny >= deny length to allow animation to reset
* Fix airlock assets to use the correct deny animation name
Co-authored-by: T <tomeno@lulzsec.co.uk>
* Convert StomachBehavior to a component/system + rejig body namespaces
* test
* slightly more namespace changes
* remove
* Hello?????
* fuck you github test runner
* reviews
* oobsy!
Co-authored-by: E F R <602406+Efruit@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: ike709 <ike709@github.com>
* Soft player cap that lets in only admins.
* Update Content.Server/Connection/ConnectionManager.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* Update Content.Server/Connection/ConnectionManager.cs
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
* basic system + convert all plantmetabolism
* stragglers
* convert all old metabolisms over
* fix YAML errors + dumb serialization issue
* remove unused thingy
* reimplement
* add organ type condition
* organtype condition but real
* cleanups + test fix
* metabolismtype -> metabolizertype
* solution resilience
* fixes
* serializer + use entityuid + hashset
* this is apparently an entirely different thing
* turns out it just works
* oops
* Remove IHandsComponent and ISharedHandsComponent
* Copy the documentation from the interfaces
* Revert "Copy the documentation from the interfaces"
This reverts commit 7638a2d4817743d487c7b255ba3e56add77dca86.
* Perform a minute amount of cleanup
* Pulling: Piano door stuck prevention (pulling angle-snap) and getting rid of a condition causing oddities with pull-to-location
* Pulling: Implement Newton's Third Law in regards to puller/pullee physics
Weightless condition was determined not to be necessary
* Fix pull-to-position on actively rotating/moving grids + fixes for rebase
* Add test pooling
* WIP test pooling changes
* Fix Destructible tests
* Don't pool unpooled or dummy ticker instances
* Change ServerPathfindingDebugSystem to replace existing entries
* Fix SaveLoadSaveTest comment
* Don't pool StartTest
* Comment out global setup
* Fix puddle tests
* Move SolarPanelComponent initialize to PowerSolarSystem OnMapInit
* Update RobustToolbox
* Finish fixing tests, make test threads background threads
* Bring back pooling
* Fix nullable
* Update RobustToolbox
* Set cvars on server return
* Un-pool tests with custom cvars
* Update RobustToolbox
* Update RobustToolbox
* Change where the main tile coordinates are
* Remove DisposalUnitTest grid check
* Fix test pooling being a fickle bitch
* Fix EntitySystemExtensionsTest
* Update RobustToolbox
* Update RobustToolbox
* Make nullable pool settings true
* Update RobustToolbox
* Wait other way around
* We are unitystation now
* Update RobustToolbox
* Create global setup
* Pool some more tests
* Fix not properly disconnecting clients before restarting the round
* Give more info on ran tests
* Standardize default test cvars
* Update RobustToolbox
* Update RobustToolbox
* Pool clients
* Fix test order issue
* Fix cvars in character creation test not being set properly
* Update RobustToolbox
* Update RobustToolbox
* Rider shut
* Update RobustToolbox
* Format tests ran better
* Update RobustToolbox
* Reset RobustToolbox
* Reset RobustToolbox harder
* Fix one instance of test order causing destructible tests to fail
* Stop pAIs from being able to wipe each other/do other odd things they shouldn't
* pAI: device changes name to indicate owner
* Make PAIComponent networked (just in case)
It'll be needed in future anyway
* Add pinpointer sprites
* Start working on pinpointer
* Updated pinpointer
* Working on visuals
* Working on a pinpointer and eye rotation
* Add client/server pinpointers systems
* Minor cleanup
* Add distance support
* Add nuke tag
* Remove redundant flag and add pinpointer to caps locker
* Disable rotation of pinpointer
* Fixed distance
Co-authored-by: Alexander Evgrashin <evgrashin.adl@gmail.com>
* basics & visuals
* pneumatic cannon works perf
* loc + popups
* gas tank does stuff + queue changes
* updates
* b
* forcefeeding
* inhand
* crafting!
* pie cannon now is a pneumatic cannon
* oopy
* fix for entman + verbs
* pie
* change for tools
* actual
* combat mode + better sounds
* reviews
* door drawdepth toggle
* git mv
* dooooors
* drawdepth adjustments
* fix door and missed projectiles
* firelock depth tweak
* Get sprite only when needed
* single letter typo
* forgot to include closing in _activeDoors.
* Make humans move based on their last grid's angle
* Fix ghost movement, fix weightless grid parenting
* Make sure to init the last grid angle without needing to move
* Adds a UI for gas filters
* Address reviews
* Update Content.Client/Atmos/UI/GasFilterBoundUserInterface.cs
* Update Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs
* Fix build
Co-authored-by: ike709 <ike709@github.com>
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>
The latter is very useful for any special machine cleanup that needs to happen when a machine is deconstructed.
The former will be useful for so many things!
* AMEPartComponent: Switch to ToolSystem.HasQuality because this bugs me.
* Multitool can read power when you examine a cable with the multitool held.
* Multitool power reading: Condense storage information
* power-sensing multitool: Fix ToolSystem ref.
* Power-reading multitools: Fix misuse of GetComponent
* Move entity solution entity systems to shared
* Move SolutionComponents to Server
* Fix namespaces
* Remove Networked Component.
* Fixes
* Add components to ignore list
* drain all batteries / drain battery command for saner eventing
* Reverts the part of the previous commit where drainallbatteries skips items, despite my better judgement
* setbatterypercent now takes the place of battery drainage commands
A more forall-oriented approach
* Uplink menu has icons now
* Add item icons
* Add few descriptions
* Better withdraw window
* Finished with withdraw window
* Refactored withdraw ui and fix some bugs
* Basic withdraw
* Quick fixes
* Removed uplink listing for TCs
* Move slider to separate control
* Final touches
* A bit more
* Not again...
* Fixed names
* Address review
* Fixed robust
* Non necessary check
* Some sanity checks on disposals movement, fix the interpolator
* Technically fix disposal routing, but I'm not done here yet
* Remove disposals reliance on implicit direction sensing entirely.
* XAML verb menu
* fix ghost FOV
* spacing
* rename missed "ContextMenu"->"EntityMenu" instances
* move visibility checks to verb system
* update comment
* Remove CanSeeContainerCheck
* use ScrollContainer measure option
* MaxWidth / texxt line wrapping
* verb category default
Now when you click on a verb category, it should default to running the first member of that category.
This makes it much more convenient to eject/insert when there is only a single option
* only apply style to first verb category entry
* Use new visibility flags
* FoV -> Fov
* Revert "only apply style to first verb category entry"
This reverts commit 9a6a17dba600e3ae0421caed59fcab145c260c99.
* make all entity menu visibility checks clientside
* Fix empty unbuckle category
* fix merge
* Brrrr ECS
* Create lit on powered system
* Light bulb ECS
* Finishing porting to ECS
* Minor touches
* Removed events
* Removed old comments
* Fixed test
* To popup system
- Completely rewrited the `ConstructionComponent` logic to be ECS, *without* looking too much at the original implementation.
- The original implementation was dirty and unmaintainable, whereas this new implementation is much cleaner, well-organized and maintainable. I've made sure to leave many comments around, explaining what everything does.
- Construction now has a framework for handling events other than `InteractUsing`.
- This means that you can now have CGL steps for things other than inserting items, using tools...
- Construction no longer uses `async` everywhere for `DoAfter`s. Instead it uses events.
- Construction event handling occurs in the `ConstructionSystem` update tick, instead of on event handlers.
- This ensures we can delete/modify entities without worrying about "collection modified while enumerating" exceptions.
- This also means the construction update tick is where all the fun happens, meaning it'll show up on our metrics and give us an idea of how expensive it is/how much tick time is spent in construction.
- `IGraphCondition` and `IGraphAction` have been refactored to take in `EntityUid`, `IEntityManager`, and to not be async.
- Removes nested steps, as they made maintainability significantly worse, and nothing used them yet.
- This fixes#4892 and fixes#4857
Please note, this leaves many things unchanged, as my idea is to split this into multiple PRs. Some unchanged things:
- Initial construction code is the same. In the future, it'll probably use dummy entities.
- Client-side guided steps are the same. In the future, the server will generate the guided steps and send them to clients as needed, caching these in both the server and client to save cycles and bandwidth.
- No new construction graph steps... Yet! 👀
* Rotate DefaultGrid on round start
Not ideal long-term but good for bugspotting short-term.
* Fix buckle test
Because gridtraversal was being triggered the pos was being fucked when moving back
* Fix buckle
* Buckle offset
Adds a "sturdy" tile flag, that in the future could be used by construction/etc to figure out if it's safe to build on a tile. (For example water isn't space, but it's not a sturdy building surface!)
* Remove WireNet node group from cables
Implement extension cable components and system
Remove connection over distance logic from ApcPower... components
* Add extension cable components to prototypes
* Implement ApcNetwork
Implement ApcNetSwitch
* Fix ignoredComponents.cs
* Add friend attribute to new components
* Add construction graph for a light switch
* Address reviews
* Fix broken test
* Move ConnectionType enum to DeviceNetworkComponent
Change netId data definition to use the ConnectionType enum values
Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
* ForAll command!
Implements "Bad Query Language", which has a few specifiers you can use for badminning, namely:
named <regex>
prototyped <prototype name>
with <component name>
tagged <tag name>
parented_to <parent entity uid>
For example: forall prototyped MobHuman parented_to 855 do explode $WX $WY 1 1 1 1; addcomp $ID Item
* oops
* fix a silent parsing bug, make parser louder.
* cleanup
* rename shit
* Moved access to ecs
* Fixed tests
* Moved test to integration
* Better IoC
* Moved preset ID card
* Moved id card to ECS
* Moved access component to ECS
* Fixed pda access
* Final touches
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Added debug bottle of meth as well as a damage increase on a Reagent Threshold
* fix for metabolism getting funked when there is a failed reaction condition
* removed max, raised minimum to 10
* reduced regular meth damage, increased overdose damage
Turns out the final position calculations were wrong, so I copied/pasted
from the equivalent parts of the Hands components.
Unfortunately, this means that picking up trash with a trash bag no
longer causes said trash to rapidly zoom to 0,0.