* 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>
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* Fix firelock prediction issues with periodic pulses of closing lights
For some reason this function was setting a time for the next state
which was triggering the door system to try to close the firelock.
This does not happen serverside because the function only fires from an
event called clientside apparently.
It appears to be an attempt to stop firelocks from closing instantly
that did not function properly, and I cannot discern any other purpose.
As such I have removed it.
* Remove redundant serverside check
This became redundant with commit 439a87f2
* Change prying system and pryunpoweredcomp to allow for custom time modifiers
This will be useful if I go the route of making firelocks pryable when
unpowered instead of just being able to open and close instantly when
unpowered.
* Make firelocks properly predicted
Shared system made. Since atmos checks can only be done on the server we
just have it set relevant bools on the component and then dirty it.
Ditched atmos checks on trying to open, they now only happen whenever
firelocks are updated.
* Make firelocks pryable without a crowbar
While this usually would only allow you to do this when a door is
unpowered, firelocks do not have the airlock component which actually
does that check. As such firelocks will always allow you to pry them
open/closed by hand.
* Clean up System. Change update interval to be based on ticks. Move as much as possible to shared
* Make firelocks unable to emergency close for 2 seconds after being pried open
* Clean up
* More cleanup
* Reorganize SharedFirelockSystem methods to match Initialize order
---------
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Add door electronics configuration menu
* Use file-scoped namespaces
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Open door electronics configuration menu only with network configurator
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Make the access list in the id card computer a separate control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix merge conflict
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove DoorElectronics tag
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Integrate doors with #17927
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move door electornics ui stuff to the right place
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Some review fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* More fixes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* review fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move all accesses from airlock prototypes to door electronics
Signed-off-by: c4llv07e <kseandi@gmail.com>
* rework door electronics config access list
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove Linq from the door electronics user interface
* [WIP] Add EntityWhitelist to the activatable ui component
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Better interaction system
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Refactor
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix some door electronics not working without AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Move AccessReaderComponent update code to the AccessReaderSystem
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecesary newlines in the door access prototypes
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused variables in access level control
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unnecessary method from the door electronics configuration menu
Signed-off-by: c4llv07e <kseandi@gmail.com>
* [WIP] change access type from string to ProtoId<AccessLevelPrototype>
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Remove unused methods
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Newline fix
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Restored to a functional state
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Fix access configurator not working with door electronics AccessReaderComponent
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Replace all string access fields with ProtoId
Signed-off-by: c4llv07e <kseandi@gmail.com>
* move access level control initialization into Populate method
Signed-off-by: c4llv07e <kseandi@gmail.com>
* Review
---------
Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
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.
* 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>
* brigtimer
* ok
* TextScreen w timer implementation
* second commit
* working brig timer
* signal timers near completion
* soon done
* removed licenses, fixes noRotation on screens, minor edits
* no message
* no message
* removed my last todos
* removed csproj.rej??
* missed a thing with .yml and tests
* fix tests
* Update base_structureairlocks.yml
* timespan type serialize
* activation turned into comp
* sloth review
* Update timer.yml
* small changes
---------
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
Co-authored-by: rolfero <45628623+rolfero@users.noreply.github.com>
* start of space ninja midround antag
* suit has powercell, can be upgraded only (not replaced with equal or worse battery)
* add doorjacking to ninja gloves, power cell, doorjack objective (broken), tweaks
* 💀
* add basic suit power display that uses stamina rsi
* add draining apc/sub/smes - no wires yet
* add research downloading
* ninja starts implanted, move some stuff to yaml
* add Automated field to OnUseTimerTrigger
* implement spider charge and objective
* fix client crash when taking suit off, some refactor
* add survive condition and tweak locale
* add comms console icon for objective
* add calling in a threat - currently revenant and dragon
* combine all glove abilities
* locale
* spark sounds when draining, refactoring
* toggle is actually toggle now
* prevent crash if disabling stealth with outline
* add antag ctrl for ninja, hopefully show greentext
* fix greentext and some other things
* disabling gloves if taken off or suit taken off
* basic energy katana, change ninja loadout
* recallable katana, refactoring
* start of dash - not done yet
* katana dashing ability
* merge upstream + compiling, make AutomatedTimer its own component
* docs and stuff
* partial refactor of glove abilities, still need to move handling
* make dooremaggedevent by ref
* move bunch of stuff to shared - broken
* clean ninja antag verb
* doc
* mark rule config fields as required
* fix client crash
* wip systems refactor
* big refactor of systems
* fuck
* make TryDoElectrocution callable from shared
* finish refactoring?
* no guns
* start with internals on
* clean up glove abilities, add range check
* create soap, in place of ninja throwing stars
* add emp suit ability
* able to eat chefs stolen food in space
* stuff, tell client when un/cloaked but there is bug with gloves
* fix prediction breaking gloves on client
* ninja soap despawns after a minute
* ninja spawns outside the station now, with gps + station coords to navigate
* add cooldown to stun ability
* cant use glove abilities in combat mode
* require empty hand to use glove abilities
* use ghost role spawner
* Update Content.Server/Ninja/Systems/NinjaSuitSystem.cs
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
* some review changes
* show powercell charge on examine
* new is needed
* address some reviews
* ninja starts with jetpack, i hope
* partial feedback
* uhh
* pro
* remove pirate from threats list
* use doafter refactor
* pro i gave skeleton jetpack
* some stuff
* use auto gen state
* mr handy
* use EntityQueryEnumerator
* cleanup
* spider charge target anti-troll
* mmmmmm
---------
Co-authored-by: deltanedas <deltanedas@laptop>
Co-authored-by: deltanedas <user@zenith>
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>