* zap icon
* recipe todo
* add module
* add action image
* add electrified sprite to engi xenoborg
* add one pixel
* anti fun change
* remove useless action
* remove texture
* add shock delay
* check is done in the right place now
* pause stuff
* use custom serializer
* make shock only 3 seconds
* change values
* microbalance commit
* move down
* captalization
* Fix electrified objects not shocking on world activation
* add ordering for event subscription
* Something definitely went wrong
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* documentation pass on content.server -> E!
* APi pass on content.server for the E folder.
* documentation pass on content.shared for e.
* Apply suggestions from code review
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* fixing documentation according to review part 1.
* typo
* Very minor fixes
* And a short explanation about EUI
---------
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
* Remove all IPrototypeManager instances
* Remove redundant IComponentFactory instances too
* Found some stragglers
* DestructibleSystem.PrototypeManager: no dependency
* not based
* Update DamageableSystem to modern standards
* DamageContainerId -> DamageContainerID with lint flag
* Replace strings with protoids
* Make CVar subscription declarations all consistently whitespaced
* ChangeDamage -> TryChangeDamage, cope with C# jank
* Revert event signature changes
* Restore a comment
* Re-add two queries
* Init the queries
* Use appearanceQuery in DamageChanged
* Use damageableQuery in TryChangeDamage
* Use damageableQuery in SetDamageModifierSetId
* Final cleanup, fix sandboxing
* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage
* Re-organize DamageableSystem
* first big fuck you breaking change.
* THATS A LOT OF DAMAGE!!!
* Fix test fails
* test fixes 2
* push it
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* The only commit that matters
* I had to stop playing with my cat to push this change
* Yaml removal
* Proper drunk status effect and remove shitcode
* Review changes
* whoops
* Whoops x2
* Update master fix merge conflicts
* Fix merge conflicts
* Dunk Component kill
* MORE RELAYS
* Holy fucking breaking changes
* Ough
* 46 file diff
* Fix bad commits
* Erm what the test fail?
* Fix those last two
* Merge conflicts
* Me when I fix the merge conflicts
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* hey look I knocked out a todo :shockedface:
* Update Resources/Locale/en-US/electrocution/electrocute-command.ftl
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Create TurfSystem equivalent for and obsolete TurfHelpers.GetTileRef
* Fix EntitySystem uses of TurfHelpers.GetTileRef
* Fix EntitySystem uses of TurfHelpers.TryGetTileRef
* Fix construction condition uses of TurfHelpers.GetTileRef
* Fix last use of TurfHelpers.IsBlockedTurf
* Create TurfSystem equivalent to and obsolete TurfHelpers.GetContentTileDefinition
* Fix uses of TurfHelpers.GetContentTileDefinition(TileRef)
* Fix uses of TurfHelpers.GetContentTileDefinition(Tile)
* Create TurfSystem equivalent to and obsolete TurfHelpers.IsSpace
* Fix EntitySystem uses of TurfHelpers.IsSpace(Tile)
* Fix EntitySystem uses of TurfHelpers.IsSpace(TileRef)
* Fix remaining uses of TurfHelpers.IsSpace
* Fix uses of TurfHelpers.GetEntitiesInTile
* Delete TurfHelpers.cs
* Add GetEntitiesInTile lookup methods
* Convert some GetEntitiesInTile methods to LookupSystem extension methods
* Use new GetEntitiesInTile methods
* Recycle spiderweb hashset
* Recycle floor tile hashset
* Predicted gas pumps
I wanted to try out atmos and first thing I found.
* a
* Atmos device prediction
- Canisters
- Tanks
- Internals
AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.
* Remove details range
* Gas tank prediction
* Even more sweeping changes
* Alerts
* rehg
* Popup fix
* Fix merge conflicts
* Fix
* Review
* Extracts magic strings from Tag calls
When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!
* Adds missing libraries
* Remove not yet implemented TagSystem changes
* Fix tag spelling error
Genuinely surprised there was only 1!
* Styling and proper type changes
* Styling
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Boom! Emergency access!
* Emergency access sound
* locale
* Updated sounds
* bleh
* Door electrify base
* feat: popups on attempt to activate AI action when wires cut
* refactor: use SharedApcPowerReceiverComponent to check if AI can interact with door
* refactor: added icon and sound for door overcharge
* meta.json should use tabs not spaces
* refactor: extracted sounds for airlock overcharge to static field in system
* refactor: cleanup, ScarKy0 mentions for resources
* refactor: removed unused textures
* feat: now notification is displayed when AI attempting to interact with door which have wire cut
* StationAiWhitelistComponent is properly gating BUI OnMessageAttempt, SharedPowerReceiverSystem.IsPowered is now used to check if device powered
* refactor: use PlayLocal to play electrify sound only for AI player
* refactor: SetBoltsDown now uses TrySetBoltDown, checks for power.
* bolts now check for power using SharedPowerReceiverSystem
* electrify localization and louder electrify sounds
* extracted ShowDeviceNotRespondingPopup, reverted airlocks not opening/closing when ai wire was cut
* refactor: cleanup
* New sprites and fixes
* Copyright
* even more sprite changes
* refactore: cleanup, rename overcharge => electrify
---------
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Makes electrocution damage based on the voltage of the wire and bring down the damage to a sane level. It's no longer primarily based on the power being received.
LV Cable -> 10 damage
MV Cable -> 20 damage
HV Cable -> 30 damage
Having a primarily power-based damage system causes there to be massive fluctuations in damage based on things outside of a regular player's control, like the station power output. This removes a lot of player agency and turns grilles into a risky gamble where they can either do no damage or instantly fry the player due to simply being hooked up to the engine.
While this may be a more accurate simulation in some regards, the reality of the gameplay is that it's often just frustrating, resulting in constant death traps as players brushing against electrified grilles and punching wires take absurd amounts of damage. By making them flat rates, it's possible to actually balance the damage output.
* 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
* Fix hotkey
* Fix container changes
* oop
* Fix multi-pulling
* Move alerts cleanup.
* pulling fixes
* 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
* Adds the ability to better protect to the internal wiring of airlocks
- Achieved by opening the maintenance panel, adding either steel or plasteel to the airlock, then welding the plate in place
- To access the wiring, the plating must be cut with a welder and then pried out with a crowbar
* Code revisions
- Cleaned up the code
- Cutting the security grille can now shock you
- Atmospherics and Security dept airlocks start with a medium level of protection (a welded steel plate)
- Command dept airlocks start with a high level of protection (a welded plasteel plate and electrified security grille)
* Code revision
- Accounted for a potentially null string
* Update Content.Server/Construction/Completions/AttemptElectrocute.cs
Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>
* Update ChangeWiresPanelSecurityLevel.cs
Adjusted scope
* Update Content.Shared/Wires/SharedWiresSystem.cs
Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>
* Update Content.Shared/Wires/SharedWiresSystem.cs
Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>
* Update ChangeWiresPanelSecurityLevel.cs
Removed get / setter and added [ValidatePrototypeId] attribute
* Update ChangeWiresPanelSecurityLevel.cs
Set security level to "Level0" as the default
* Update airlock.yml
Removed 'super max' level of security
* Update WiresPanelSecurityLevelPrototype.cs
* Update WiresSystem.cs
Added check for WiresAccessible to OnInteractUsing
* Update AttemptElectrocute.cs
File scoped namespace
* Update ChangeWiresPanelSecurityLevel.cs
File scoped namespace
* Update AirlockSystem.cs
File scoped namespace
* Update SharedWiresSystem.cs
Removed boiler plate 'OnGetState' and 'OnHandleState'
* Update WiresPanelComponent.cs
Implemented AutoGenerateComponentState
* Removed unnecessary usage references
* use TryCloseAll when wires not accessible
* minor changes to AttemmptElectrocute
* lets try all 7 levels
* fix indent in airlock graph
* fix indent 2
---------
Co-authored-by: Slava0135 <40753025+Slava0135@users.noreply.github.com>
Co-authored-by: Slava0135 <super.novalskiy_0135@inbox.ru>