* Unghettoify mindshield icons
Adds support for layers in status icons, through the StatusIconLayer enum and the new "layer" datafield. Defaults to the Base layer where functionally remains unchanged.
* TG icon for shield
probably better than the shitty one I made in paint
* forgor meta.json
I forgor
* Emo review
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Facelift Microwave UI
Includes new background light in UI, Uses predictive input, UI now properly disables buttons when microwave is active
* Microwave now shows Elapsed time
* Fixed bad formatting
* Added new term for "BottomMargin"
* Change yellow color
* Update StyleNano.cs
just spacing fixed
* Cook time countdown now detached from server
Instead of the server constantly sending out messages for the cook countdown, it is now predicted client side using TimeSpan
* Update MicrowaveMenu.xaml
forgot to re-add item space
* Implement closing; add open/close verbs
* Add breakable seals
* Allow custom verb names; make condiment bottles closeable
* Remove pointless VV annotations and false defaults
* Split Sealable off into a new component
* Should have a Closed event too
* Oh hey, there are icons I could use
* Ternary operator
* Add support for seal visualizers
* Moved Sealable to Shared, added networking
* Replaced bottle_close1.ogg
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
* make door status use SendSignal
* LastSignals and logic, add ClearSignal api too
* make everything outputting a logic signal default to false
* refactor ops
* :trollface:
* :trollface:
* protoid for LastSignals
* oop
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Adds option to disable character names in chat/speechbubbles
* Moved the coloring of names to clientside
* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs
* Changed to be put under Accessibility section
* Cache CVar
* Predict two-way levers
Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.
* space
* a
* Moving Gibbing rework out from medrefactor into it's own PR
* Re-enabled warning for missing gibbable on TryGibEntity
* Implemented better logic for gibbing failover and better logging
* Allowing audio params and drop scattering customization per component. Created UnGibbable organ base types and made brains ungibbable.
Removed delete brain from gibBody function. Artifact crusher does not destroy brains anymore. It only destroyed brains before not other organs which was wierd.
* Update Content.Shared/Body/Systems/SharedBodySystem.Body.cs
Fixing space for multiplication
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Added event raised when attempting to gib contained entities to allow modification of allowed and excluded container ids
* removing audioParams var from component (sound specifier includes it)
* Fixing signature
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* move stuff to server and some refactoring
* update spikables to not use triggering
* add Delete bool just incase
* a new egg
* mom can we have webedit. no, we have webedit at home
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* add face bandanas
* oops
* make face bandanas butcherable, also one bite
* oops
* Add mouth IdentityBlocker to bandanas
* refactor to use foldablecomponent
* remove some leftover bits
* remove HamsterWearable until face sprite updated
* oops
* review changes
* remove a few unneeded bits
* adds refunds to stores
* Adds method to check for starting map
* comments, datafields, some requested changes
* turns event into ref event
* Adds datafields
* Switches to entity terminating event
* Changes store entity to be nullable and checks if store is terminating to remove reference.
* Tryadd instead of containskey
* Adds a refund disable method, disables refund on bought ent container changes if not an action
* Removes datafield specification
* Readds missing using statement
* Removes unused using statements
* What the heck is listing data
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Decoupled from gravity, constant animation time, manual networking, cubic interpolation
* Reduced overshoot
* Implemented PointAttemptEvent, reacts with mobstate & sleeping
* Brains can no longer point, PBs must be inside a chassis
* Removed chassis check, made callback more obvious
* Pulling rework
Fixing up the FOUR systems managing pulling, all the shitcode, and also making it nicer ingame.
* More pulling cleanup
* stats
* More cleanup
* First draft
* More pulling
* weh
* Fix puller
* Pulling working
* Fix merge
* Dunked
* Self-merge time
This standardises it with audio and whatever. Me when I sprinkle nullchecks everywhere.
Was 50/50 on making new non-nullable methods but figured it would bloat too hard and you can't access strings by .Value anyway.
* refactor and add Department to PaintableAirlock, move it to server dir since its in namespace
* add departments to doors, cleanup
* add style -> departments mapping
* AirlockDepartmentsPrototype
* update shared spray stuff to have department
* name file the same as the class name
* department optional
* refactor spray painter system + send department
* fixy
* client
* no need to rewrite ActivateableUi
* pro ops
* the reckoning
* hiss
* .
* :trollface:
* add standard atmos colors to palette
* Update Content.Shared/SprayPainter/SharedSprayPainterSystem.cs
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Fix outdated component name in assaultbelt whitelist
RangedMagazine was replaced with BallisticAmmoProvider in the Gun
refactor (#8301)
* Move FlashOnTrigger, SmokeOnTrigger, Flash components to Shared
* Move LightReplacerComponent to Shared
* Move Utensil, Mousetrap components to Shared
* Move SprayPainterComponent to Shared
The PaintableAirlock tag has also been removed, as it was unused &
unnecessary, likely a vestige of spray painter development when the
PaintableAirlock component wasn't in Content.Shared.
* Add trivial Produce and Seed components to Client
This allows the plant bag and botanical belt whitelists to correctly
match produce and seeds on the client, fixing the extraneous "Can't
insert" message that previously appeared.
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Moves FlashComponent.cs, FlashOnTriggerComponent.cs, and SmokeOnTriggerComponent.cs to Shared
* Moves ExplodeOnTriggerComponent.cs, OnUseTimerTriggerComponent.cs, ActiveTimerTriggerComponent.cs, and SmokeOnTriggerComponent.cs to Shared
* Delete .run/Content Server+Client.run.xml
HOW DID THIS GET IN HERE ITS NOT AHHHH
* Update Content.Client/Explosion/SmokeOnTriggerSystem.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Shared/Explosion/Components/ActiveTimerTriggerComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Shared/Explosion/Components/OnUseTimerTriggerComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Shared/Explosion/Components/OnUseTimerTriggerComponent.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Shared/Explosion/EntitySystems/SharedTriggerSystem.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update Content.Shared/Explosion/EntitySystems/SharedSmokeOnTriggerSystem.cs
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
* Update ExplodeOnTriggerComponent.cs
* Revert "Delete .run/Content Server+Client.run.xml"
This reverts commit 29ee05f57de60eab5c92158d8eba5e3acba483c2.
* Fix?
* cannot figure out how to get this to go back please forgive
* Fixes a network issue
* leftovers
* Fixes
---------
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Initial work on having the Rev icons not be visible to ghosts depending on a Cvar and a component.
This commit just makes it so that the revcomponent and headrev component
are not shared with clients that shouldn't know about them. This is due
to the concern that clients having access to those components, even if
no image was displayed could allow modified clients to have meta
knowledge of revs.
Currently this has the issue that if a player later
for example becomes a rev, none of the existing rev components get
networked to them. I am not sure there is currently an effecient
solution to this.
This is probably in an issue for a lot more stuff. I might just make it
so all the logic just moves to the client on whether to put the icon
again.
Also this commit adds the ShowRevIconsComponent to allow anyone with it to just
view rev icons.
* Rev components now get communicated to clients that didn't have them previously and the AntagIconSystem is now properly checking whether to give the icons.
We now dirty all the rev/headrev components when someone gets converted
or gets the ViewRevIcons component. The AntagIconSystem now checks
whether it should draw the icons mostly based on an event, this is still done
client side.
This is not a full proof solution to make it so clients can't know
someone is an antag when they shouldn't because:
1. There are other components that need similar treatment, to my
knowledge not to for revs but for other antags. Maybe even the mind
component. This could be addressed in future PRs.
2. We cannot ensure that clients forget about these components if the
client gets deconverted for example. We can of course have code that
does this, but it will necessarily need to be done on the client and
if the client is modified then there is no way to ensure this.
Of course at that point they should already know who their fellow
revs are so this might not be an issue.
I now need to do the same thing for zombies in a future commit.
A similar system for nukies also needs to be looked at but I will not be
doing that in the PR this commit ends up in.
* Misc name changes and cleaning up the ZombieSystem
Changed some names around and decoupled the ZombieSystem from the
AntagStatusIconsystem. Now there is a cvar for ghost visibility for them
as well. The Zombie Component was not made SessionSpecific because:
1. Zombies are pretty visible anyways
2. The Component is needed to change the appearance of zombie players.
* Misc name changes and cleaning up the ZombieSystem
Changed some names around and decoupled the ZombieSystem from the
AntagStatusIconsystem. Now there is a cvar for ghost visibility for them
as well. The Zombie Component was not made SessionSpecific because:
1. Zombies are pretty visible anyways
2. The Component is needed to change the appearance of zombie players.
* Merged 2 if statements into 1 on the Zombiesystem.
* Cut down on code duplication in AntagStatusIconSystem
Now instead of having a seperate function for each component, there is 1 generic function. Functions for special cases
like the Rev/Headrev comp can have a separate function that does the special check and then calls the generic one.
This is done through the IAntagStatusIconComponent interface which provides a common interface to get the Icon.
* Removed some duplication from the SharedRevolutionarySystem with generics.
I have no idea why I didn't think of this sooner.
* Addressed Reviews I think
I think events get unsubbed automatically but I am probably missing something that I have not understood.
Either way this is a requested change.
* Replace war crimes with actual fixes for reviews
It was not clear to me what the reviews meant
* Addressed reviews by removing need for cvars.
Whether icons are visible to ghosts is now determined by a bool in IAntagStatusIcon which all antag components
with status icons should implement.
* Update Content.Shared/Revolutionary/SharedRevolutionarySystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add AFK detection for aHelp relay and admin specific afk time.
* Correct query to new refactor
* Change AFK timeout to 10min or else Pancake closes my PR 😭
* It wasnt a bug it was a feature, way less aHelps that way.
* aHelp Colors arn't real!
* Update Content.Shared/CCVar/CCVars.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* add Placeholder and make default buttons flags consistent w old behaviour
* DialogWindow ops
* make QuickDialog use DialogWindow
* Update Content.Client/UserInterface/Controls/DialogWindow.xaml
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Adds Visitor role and ShowInIdCardConsole property
* Add visitor to Agent ID card
* Fixes yaml test
* Fixes based on feedback
* Fixes based on feedback
* Change emagged laws to append modifiers instead of completely changing them.
* Maybe fix everything not working
* bugfix
* Fix missing secrecy law and allow basic borgs to be emagged correctly
* Localization
* Actual localization
* test
* Test
* Remove dummy debug value
* Fix bad law ordering
* Tweak the secrecy law
* Minor law tweaks
* Remove obsolete argument
* Fix YAML
* Remove wheelchairs
Vehicle code is dogwater and wheelchairs just keeps exposing edgecases. If someone wants it brought it back they can do vehicle refactor.
* Also this one
* Remove vehicles
* goodbye vehicles
* Remove this check
* sasd
* Cronch
* Add sprites back
* jani
* Raise `StationPostInitEvent` broadcast
* Basic variation pass handling
* standardize names + rule entities
* why does it work like that?
* add to defaults
* light break variation pass
* ent spawn entry
* move some stationevent utility functions to gamerule + add one for finding random tile on specified station
* forgot how statistics works
* powered light variation pass is good now
* station tile count function
* public method to ensure all solutions (for procedural use before mapinit)
* move gamerulesystem utility funcs to partial
* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit
* trash & puddle variation passes!
* oh yeah
* ehh lets live a little
* std
* utility for game rule check based on comp
* entprotoid the trash spawner oops
* generalize trash variation
* use added instead of started for secret rule
* random cleanup
* generic replacement variation system
* Wall rusting variation rule
* account for modifying while enumerating
* use localaabb
* fix test
* minor tweaks
* reinforced wall replacer + puddletweaker
Fix improper prediction on unpryable doors.
Entities that had CanPry to false on their components would get
improperly predicted as pryable on the client because the check was only
preformed on the server. Same problem existed for welded doors. Moved
the check from server to shared.
* added signal control to portable generators
* added documentation
* Discard changes to Content.Server/Radio/EntitySystems/HeadsetSystem.cs
* added DeviceNetworkComponent and WirelessNetworkConnectionComponent to generator prototype
* made GeneratorSignalControlComponent nicer
* implemented auto-revving
* added back necessary dependency
* can't send do-after event manually
* repeat now works with auto revving
* fixed
* removed vv
* stopping generating when it is revving now makes it stop revving
* Update Content.Shared/Power/Generator/ActiveGeneratorRevvingComponent.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* used resolve instead of TryComp
---------
Co-authored-by: Julian Giebel <juliangiebel@live.de>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Revert "Make flare gun explode, damage and stun the player when used with the wrong ammo (#22349)"
This reverts commit e301378114.
# Conflicts:
# Content.Shared/Weapons/Ranged/Components/GunComponent.cs
# Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml
# Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml
* Fix revert conflicts
* Update Content.Shared/Weapons/Ranged/Components/GunComponent.cs
People are using these as unhackable and hard-to-tailgate airlocks into sec. They should not be trivial for security officers to move through.
Made LockComponent have configurable lock times to implement this.
* PACMAN generators show network load/supply.
This gives more feedback to players that their PACMAN is properly connected and what the network status is (i.e. you don't have enough generators).
* Buff JRPACMAN to 8 kW.
Shifted all power values up by +3 kW.
They're frequently too weak to power even single rooms so they deserve a buff.
* Change unit format helpers number format.
Always displays one digit of precision. This avoids jumping around when a value is changing live.
* Add announce message length to UI and make a cvar for it
* Update comm console server-side trim to use the cvar
* Rely on the new OnTextChanged event
Because OnKeyBindUp only works for keys that have binds
* Add a similar indicator to nukies' war declaration UI
* Remove message length indicators for now cuz it requires the engine update
* Rename cvar slightly
* Refactor duplicated code to a helper method
* Remove message trimming from *Window class as it's better to live in the BoundUserInterface where the other message handling happens
* Rename to chat.max_announcement_length
* sans
* Papyrus
* add to game
* tweak stick
* fixes
* Update Resources/Prototypes/Entities/Objects/Misc/kudzu.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Update Resources/Prototypes/Entities/Structures/Specific/Anomaly/anomalies.yml
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* localize beacons
* No not like that
* Tesla beacons were already depreciated, time to give the reaper their due
* Entity name fallback
* The real treasure was the far easier solution we missed along the way
* weh
* Shared mapinit
* fix RT version
* a single line break
* Check and restrict players from fultoning their equipped items
* Changed fulton whitelist to items and anchorables
* Stop from anchored items being fultoned
* Moved containermanager check to CanFulton function
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Prevent EntityStorages from being opened while inside a mech.
* compressed into few lines
* unneeded line
* Popup client
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Various sounds ported
* Replace wall_bonk.ogg
* Metal/metalglass break sound pass
* Replace metalbreak.ogg
* Replace woodhit
* Replcae tap.ogg n some smack uses
* Fix lint
* Replace bang.ogg and some instances of hit_kick.ogg
* couple more
* fix wood sound
* i may be stupid
* le attributing
* bro what
* standardize more destruction sounds
* fix melee hit sound cutting off
* window threshold sounds and remove `destroySound` it literally doesnt exist
* Restarts have max player count
* Now counts ingame ghosts to determine if restart can be called
* consistant cvar name
* Added a player count with state conditional
Change the slot ID back to what it was to keep old map saves with an item in the slot loading correctly.
This also fixes the "You can't put this in the dispenser!" message not appearing when inserting an item without FitsInDispenserComponent because the whitelisted slot name wasn't changed.
* Add limited-reagent dispensers
* Add empty versions for all dispensers
* Fix lint
* Set initial window size so all buttons are visible
* Simplify logic, add parenthesis
* Use localized name for initial labels
* Adjust button style
* Avoid touching items before MapInit
* Remove pre-labeling
* Reduce diff
* Clean up YAML
* Fix test
* Really fix test
* Document
* Adjust based on review
* Add labels for obnoxiously long bottles
---------
Co-authored-by: AWF <you@example.com>
* Execution (you monster)
not done
* woops
* more stuff
* Melee executions
* Prevent executing those who can interact
* Better checks for if you can execute
* Scale the execution time of a knife with its attack speed
* Translations for fucking up an execution
* rename some functions
* Properly scale execution speed of melee weapons
* Fix checks in CanExecuteWithAny
* Allow executing yourself (funny)
* More versatile localisation
* Suicide with guns
* Popups for successful gun executions
* whoops
* Stop flare guns crashing the game on executions
* Various tweaks
* Remove some old usings
* Pacifists can no longer execute
* Remove unnecessary check
* Use CanShoot in gunsystem
* Capitalisation in ftl string
* Fix melee executions not playing a sound
* localisation tweaks
* Added TransferActionWithNewAttached and TransferAllActionsWithNewAttached and OnActionAdded event method to ActionContainerSystem. These are needed where the action needs to have a different attached entity for usage. Fixed a bug with not being able to upgrade actions between levels. Added a way to grant and remove a singular action.
* adds an action container component to mind on action added to fix tests
* Swaps trycomp for hascomp
* Maybe this will fix the thests
* Grants action container to performer as well
* Wait that makes no sense, removing that
* fixes mind action grant logic
* Changes ent check back to netent check
* Reverts unintended container changes
* Cryogenic sleep units
* pause map support
* no more body deletion
* Cryogenic Storage Units
* boowomp
* no more emag, no more dropping present people
* Fix error when the client gets an Eui state message before its open message
* Revert "Fix error when the client gets an Eui state message before its open message"
This reverts commit 440e2746ee8d77306f59ddea558eda32ec927f18.
* Make all Eui msgs reliable ordered
* feat(star.yml): make throwable star damage stamina
* feat(Components): add new StaminaTresholdDamageOnEmbedComponent
* feat(SharedProjectileSystem): update system with new events to change
stamins treshold on embeed projectile remove / add
* feat(StaminaSystem): update system with new subscriptions
* feat(throwing_stars): update yml with new component
* feat(StaminaDamageOnEmbed): add stamina damage on embeed
* cleanup unused / ajust numbers
* fix(StaminaSystem / OnEmbedComponent ) apply requested changes
* Rest of the review
* another warning
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* add primary departments
* make command and station specific secondary
* add a unit test
* fixy
* compile
* webedit ops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Fixes#23645
The problem is that the solution editor UI is an EUI, so the UI updates before the game states are applied.
A correct fix would be to move it to a BUI in some way, but that's a little involved as we don't really have pre-existing code that uses BUIs in a manner good for this. I decided against this because I realized we'd want to have more tools similar to this and tbh I kinda figured integrating it with VV would be a better fix instead, so...
This is a bad workaround to manually synchronize the UI updates against game timing. It's not pretty but it works.
* Give .props files 2-space indents.
* Move to Central Package Management.
Allows us to store NuGet package versions all in one place. Yay!
* Update NuGet packages and fix code for changes.
Notable:
Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.
* Remove dotnet-eng NuGet package source.
I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.
* Remove Robust.Physics project.
Never used.
* Remove erroneous NVorbis reference.
Should be VorbisPizza and otherwise wasn't used.
* Sandbox fixes
* Remove unused unit test package references.
Castle.Core and NUnit.ConsoleRunner.
* Update NUnit to 4.0.1
This requires replacing all the old assertion methods because they removed them 🥲
* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.
* Add Robust.Analyzers.Test
* Update submodule
* commit to re-run CI
* Move Exclamation entity
* Add Whistle Component and Whistle System
* Add BaseWhistle prototype
* Add sound to BaseWhistle
* Add SecurityWhistle prototype
* Add Sprite and Icon to SecurityWhistle
* Add whistleExclamation prototype
* Fix SecurityWhistle prototype
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
* Add whistles to sec vendingMachine
* Revert "Add sound to BaseWhistle"
This reverts commit 0c2eeab1286fb778ed7a845e59c642f667582a4a.
* Add sounds for BaseWhistle
* Make atributions compact
* Remove unnecessary spaces
* Make WhistleSystem class sealed
* Remove possibility to exclamate one person from WhistleComponent
* Remove delay from WhistleSystem
Increase delay
* Remove unnecessary HashSet
* Try replace Resolve
* Refactor sound emmiting
* Rework spawn of exclamation
* Move WhistleComponent from Server to Shared
* Edit WhistleComponent because of moving
* Move WhistleSystem from Server to Client
* Edit WhistleSystem because of moving
* Add new event
* Add server part of WhistleSystem
* Modify system for prediction
* Add documentation to WhistleComponent
* Revert "Modify system for prediction"
This reverts commit 89abb290571ff47deb5491b0f720f6bde079110b.
* Revert "Add server part of WhistleSystem"
This reverts commit ca52ca081f30fb164f401c1818d08531f02af284.
* Revert "Add new event"
This reverts commit 5ca9694757c94c03ca72d5b2f56f5f23503a3263.
* Move system from client to shared
* Modify whistle system because of moving
* Separate checks and action
* Organize file folders according to conventions
* Make component Networked
* Change trigger component for WhistleSystem
* Put indents betwen methods
* Rework WhistleExclamation prototype
* Change variable name
* Add serializer to WhistleComponent
* Rename one variable
* add predict possibility to Shared
* add Client part of prediction
* Add Server part of prediction
* Increase whistle distance
* Prevent spawn for invisible entities
* WhistleComponent now use file-scoped namespace
* Delete unnecessary part from MakeLoudWhistle
* Add Resolve check
* Delete Server and Client part for prediction
* Make system prediction properly
* Change prediction behaviour
* Fix unexpected error occured
* Avoid using obsolete methods
* Add comments
* Update DataField to make it shorter
* Update size for new size system
* Prevent ping for invisible entities for real now
* Avoid triggering unnecessary debug asserts
---------
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
* Add doors to the navmap
* tweaksies
* gah
* draw primitive
* draw primitive? at least take me out to dinner first!
* Update Content.Client/Pinpointer/UI/NavMapControl.cs
* casualties
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Moved vendor thank you messages into AdvertisementPack, making them vendor-specific.
Wrote a few example messages.
* Only display thank yous when closing the UI after a purchase.
* Tweaked a few messages
* More custom messages
* Missed one
* Stuff
* Fix RoundStatus Action
* Rename stuff
* Also needs to run on the main thread
* minor stuff
* Move to not be an EntitySystem
* Part 1 of making this less shit
* Make some more stuff run on main thread
* Actor check, logging and remove token from log.
* Better log
* Change ActionKick to use Guid instead of username
* Fix build
* Bandaid fix for test fails
* fixing access levels and removed strings from data defs
* Fixing proximity detector performance
- Re-added component filtering for the close entity search.
- Changed criteria functionality to only allow for searching for entities with all specified comps (matching any would be too unperformant)
* Set pAI up with a trackless map
* Added a untracked map user interface class to support gps-less mapping
* Added to pAI by default, expect it to be given to borgs as well in time.
As the personal AI is literally immobile as a ghost, it is useful to ensure that people carry one. With that idea in mind, it is worth giving the pAI a reason to be carried that doesn't depend on the player having a cracking selection of midi files on hand.
* Tried to use new ProtoId and have EntityUid on the client as commented by metalgearsloth
* Review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Initial prediction
* new group handling
* groups for all examines that use multiple rn
* compile
* why was it doing this??
* handle newlines with sorting properly
* Fix Round Restarted Announcements not playing
Just make the RoundFlow manager play the funny
announcement sound effect, rather than pass it
through to players in an event that doesn't work.
Only three round end announcements probably
isn't enough. Maybe it is time for fresh memes.
* Remove the handling in ClientGameTicker.
* Pass in a specific filepass to broadcast.
* you make one line change in vscode and the linter
goes AH-HAH I CAN HELP YOU LET ME CLEAN
THIS UP and I'm like 😔 and have to revert
* Allows a possibility for a new reagant to work on dead if applied.
To use it, go to Resources\Prototypes\Reagents\medicine.yml and add worksOnTheDead: true to any reagent.
* Update Content.Shared/Chemistry/Reagent/ReagentPrototype.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Update Content.Server/Body/Systems/MetabolizerSystem.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* PR 1
* fix an error with health bar overlay (#1292)
* Revert "Revert "Replace `ResourcePath` with `ResPath` (#15308)" (#155… (#15566)
* [1612] change ShowHealthBarsComponent's DamageContainer field to a list (#1662)
* fix build
* no crit entities from not updating
* cleanup
* namespace
* undu irrelevant changes
* undo icon change
* make health bar 1 px taller and icon 1 px shorter
* fix medibot
* fix comment
* don't show health bar ratio when in crit
* fix build
* put the crit bar back
* don't render healthbars for mobs that are in containers
* draw more boxes without the background sprite
* fine status icon for all bio mobs
* add wacky mandatory things
* attempt 2
* whoops wrong file
* cool, this works too
* move null check to top
* only 1 init
* security huds
* remove shader
* fix build after cleanup
* slight cleanup
* little more cleanup
* Remove clothing grant component system
* security HUD now shows a job icon on entities with a body
* remove sec stuff and do similar changes to split off PR + remove unused comp
* process comments
* don't return
* update to ComponentAddedOverlaySystemBase
* no cache
* colors and not rendering out of sight
* touch ups
* fix build & cleanup
* undo
* remove shader from icons
* process comments
* documentation
* fix licence
* validate prototype id
* just use args
* rename method and append in method
* type
* just fucken delete the command
* space
* undo
* remove
* don't use LocalPlayer
* re-add showhealthbars command, but working
* rename icon lists and conform health icon code to the others
* space
* undo
* update command
* oops
---------
Co-authored-by: Rane <60792108+Elijahrane@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Fix robusted dionas not being recoverable
* Implement a polymorph cooldown field, used for TreeMorph
Allows the polymorphed Diona some time to work off robust harvest
without immediately polymorphing again.
* Minor adjustment to polymorph cooldown timing
* Apply suggestions from code review
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* fix: trigger polymorph revert on destruction
As suggested by mirrorcult, DamageThresholdReached is not the ideal
candidate for reverting a polymorph on destruction, as there exists a
DestructionEventArgs to listen for instead.
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* HellSpawn Mob
* added spawner
* summary for the namespace
* larger collider, cannot enter single tile corridors.
* fix
* remove duplicate from yml, fix attributions.
* moved action to shared, moved comp to shared, networked comp, separated heal, fixed attributions
* removed flammable from hellspawn
removed the healing effect from firestarter ability (healing can be separate ability).
* Update attributions.yml
fix attributions
* fix
* fix
* moved ComputerBoardComponent to Content.Shared
* made flatpacker accept computer boards
* made flatpack system and ui function with computer boards
* fixed it so that flatpacks of computers are correctly coloured to fit their computer board colour
* unhardcoded the computer flatpack assembly cost
* Combined GetFlatpackCreationCost(...) with GetflatpackCreationCostForComputer(...)
* removed code duplication in SharedFlatpackSystem
* removed code duplication from FlatpackCreatorMenu.xaml.cs
* remove code duplication from FlatpackSystem (on the server)
* fixed indentation error
* kobold variety - allows kobolds to have random colors and horns
* hey lets maybe not crash in this case, lets maybe let the color continue being null in this case
* excuse us vscode what the fuck is this
* brightens kob base, makes kob outline more bold, fixes to the prototype because our code spaghett
* okay yeah angler horns just dont work At All. the floppy kobold ears, however? MWAH. chef's kis
* we've been staring at these critters all day - makes base color line up with the base color of some of the markings
* update cvars
* vote 1984
* rip
* add custom reason
* make panic_bunker.enabled a server cvar
I am kind of guessing
---------
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
* AutoCompState + ItemToggle fixes
Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.
* Also catch these
* Flatpacker and flatpacks
* ok that's good enough
* convert solars/AME to flatpacks
* mats, mats, we are the mats
* basic mechanics are DONE
* thing
* final UI
* sloth
* rped jumpscare
* rename
* SS14-23184 Migrate Lathe Material Ejection Code to MaterialStorage
The lathe material ejection code acts as a do-nothing
man-in-the-middle system that does work that would be
reasonable for any MaterialStorage-using machine to
use. This has been fixed by migrating the ejection
code to MaterialStorage, allowing anything that uses
the system to eject mats it is storing.
* Fix some YAML references. Science!!
* Artifact analyzer now pauses on power-loss
Instead of just cancelling the current scan, the artifact analyzer
will now pause in case of power-loss.
Scanning will automatically resume when power returns.
* Improve artifact scanning pausing
This builds upon the latest improvements in artifact scanning
regarding UI update.
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class
* Switches over to the Solutions.Solution Solution
* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions
* Switches over to the Containers.XYZ namespace
* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods
* Start using SolutionSystem for Solution manipulation
* EnumerateSolutions
* Move TryGetMixableSolution
* Move EnsureSolution to Server
* Create Solution Entities
* Stop using obsolete solution system methods
* Fix prototype component tests
* Add using ..Audio.Systems; back
* Wrap solution container slots in ContainerSlots
* Actually add the slot to the solution container map
* Dirty SolutionContainerComponent when ensuring solutions
* Revert namespace changes
* Remerge SolutionSystem and SolutionContainerSystem
* SolutionContainerManagerComponent refactor
* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release
* Readd examine reagent sorting
* Fix errors
* Poke tests
* Fix solution names not being applied
* Fix WoolyComponent including statement
* Fix merge skew
* Fix compile errors
* Make reactions use solntities
* Reindent solution class namespace
* Field attribute changes
* AutoGenerateComponentState for SolutionContainerComponent
* SolutionContainerComponent -> ContainedSolutionComponent
* ref ReactionAttemptEvent
* Denetwork preinit solutions
* Misc 1
* Nullable TryGetSolution out vars
* Cache associated solutions
* Fix merge skew
* Use explicit regions in SharedSolutionContainerSystem.Capabilities
* Add debug assert
* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent
* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName
* SolutionComponent doc comments
* Implicit DataField names and property purge
* ReagentEffect DataField names
* Local variables for readability
* Sort using statements + Entity<T> event handlers
* Fix compile erros
* Fix compile errors
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* upload all textures
finished easiest part - TeslaGenerator
* Added Tesla energy logic
* add lightning pulse priority
* work
* optimise lightning arc system
* now tesla moving to LightningTarget entity and consume it
* some audio work
add airlock and computers to the LightningTarget
* add nice visual and explosions
add crashing to game
* rsi meta fix
* disabling explosions (crashing server)
I'll get back to that problem later.
* adding important admin logging
* a little bit of cleaning and documentation
* Persistent attempts to fix the server crashing on explosions. Accidental cleaning of everything I see.
* now the tesla incinerates everything it touches except the containment field.
* colliders work
* fix falling tesla on ground after being exploded
* add consume sound, add spawn and collapses sound
* added TeslaGenerator to cargo trading console
* add all tesla part to cargo trading console
* Tesla coils: Turn on and off, get energy from lightning, give energy to the grid.
* tesla coil is ready
* tesla grounding rod is ready
* clean up
* clean up 2
* grounding rods now working without power
* add LightningResistance parameter for LightningTarget Component
* add chaotic teleport
* eletrocution remove?
* deltanedas fix pack
* more fixes
* FIXES
* FIIIXEEES
* The "Grounding Rod" component is removed, and replaced with "LightiningSparking", which is responsible for changing the visuals when hit by lightning. Duplicate code from the coil is removed.
* ops
* fix
* nah, is escaped anyway
* increase tesla collider size
* keron bb
* try fix test?
* fix
* bruh
* check turn off sus comp
* prototype cleaning
* FIIX
* return and fix sus component
* fix tesla eating lightnings, now mini tesla is electrocuted
* commented some issues
* remove linq sorting
fix jumping system
minor fixes
* fix second Linq
* fix tesla colliders! Yeah, it works
* fix componentregistration
* Just retests
* not fix
* FIX TESLA
* fixes
* store targets
* back
* make dictionary of hashsets
* some sloth fixes
* stump
* playtest balance energy generation, return to unpotimized (but working) lightning shoot
* parity
* work on
* some new fix, some new bug (chasingComponent not chasing)
* comment
* fix ChasingWalkSystem
* fix collider tesla problem
* revert old unoptimized shoot lightning
* new fix pack
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>