* add mothership module
* option for mothership to open self UI
* fix mothership module
* remove mothership body
* swapp real hands for modules
* action sprite for mothership module
* removed hands from mothership core sprite
* xenoborgs now drop a pinpointer to the mothership core once destroyed
* add pinpointer to space movment module
* add base for XenoborgRule
* add xenoborg antag option
* something was needed
* something else was needed
* add ghost role spawn points
* change name in antag selection to Xenoborg Core
* add random spawnPoint markers that don't do anything
* add spawn points to mothership
* update spawn points
* add xenoborgs rule
* add xenoborgs rule to rotation
* add xenoborgs preset
* update preset with secret version
also added xenoborg mode description
* modify Antag Selection system to allow for custom entities via the AntagSelectionDefinition
* fix ghostroles spawners
* fix rule with new entityPrototype
* add spawnpoints to the mothership
* whitelist system to spawnpoints
* updated xenoborg components
* added xenoborg component to xenoborgs
* updated spawnpoints of xenoborgs in the mothership
* add new tags for xenoborg and mothership core
* add new tags for xenoborgs and mothership core
* update ghostrole spawners for xenoborgs
* message for when you get the xenoborg role
* explode all xenoborgs when mothership core dies
* for real now. explode all xenoborgs when mothership core is destroyed
* round end summary for xenoborgs
* temporary
* add guidebook entry for xenoborgs
* instructions on how to borg players
* removed lock from xenoborg control computer
* announcement when all xenoborgs die
* announcement when mothership core is destroyed
* typos
* fix error
* improve xenoborg mind role
* move sounds to xenoborg and mothership component
* play sounds when turned into xenoborg
* change sprites of mothership core actions
* minor fix
* add custom xenoborg start sound
* carps now attack xenoborgs
* added guide link to xenoborgs
* add guidebook link to xenoborgs
* added guidebook link to mothership core
* add link to source of the sound
* fixed minor issue
* has to be 1
* typo
* add light layer to mothership core sprite
* fixed antag selection system
* update guideboook
* update the guidebook again
* alphabet
* documentation
* simplify documentation
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* make the briefing yml instead of code
* fix bug with sprites
* fix formating
* remove stuff from AntagSelection
* add stuff to AntagSpawner
* fix game rule
* removed secret xenoborg preset
* support for more than one entity for each antag role
* fix gamerule
* fixes
* no xeonborgs
* add xenoborgs to all at once
* engi xenoborg included
* more comments
* more recognizable
* more xenoborgs when more players
* removed unused stuff
* correct access
* removed unnecessary stuff
* use GetAliveHumans and make comments better
* Make the system more robust
* use a constant
* remove overload from the Destroy method
* has to be public to be used in the xenoborg system
* fix the mindrole methods
* not sure, but I was asked to do it
* use a constant for the color
* forgot to make it static
* removed param comments
* removed useless parameters
* fixed stuff
* added event listeneers to xenoborg mind change
* only 4
* unfuck the antagSpawner
* comment
* unfix stuff
* commentary
* removed xenoborg stuff from siliconLawSystem
* move some stuff to the component
* removed space
* removed uncessary stuff
* no need to crate a var
* move stuff from mothership comp to xenoborg comp
* removed XenoborgCoreRoleComponent
* comment on the AntagSelectLocationEvent
* added back empty line
* comment
* make the summary better
* make AntagRoleToPrototypes summary better
* adding useless stuff back cause it was there before
* hascomp instead of trycomp
* again
* LocId instead of string
* make a new logic for the whitelist of the spawnpoint
* added ghostrole tags back
* use hascomp instead of trycomp
* removed whitelist from SpawnPointComponent
* not needed anymore
* no longer subverted
* fixed names
* make it better
* add not
* i'm dumb
* briefing is now handled by the xenoborg system
* call evac if there is too many xenoborgs
* update submodule
* fix division
* Add AutoGenerateComponentPause and AutoPausedField to XenoborgsRuleComponent
* add lines between stuff
* Make the Blocking system more robust
* Make mothership inherit from BaseMob
* remove this stuff cause is bad
* Revert "Make the Blocking system more robust"
This reverts commit 099babfe1daef00e6073e04108920327416e4ca4.
* Mothership core snaps to grid
* stop mothership core from moving
* mothership core is static again
* make guidebook entry on how to xenoborg crew better
* Make mothership core damageable
* If xenoborgs need it, so do zombies i guess
* Start the NextRoundEndCheck
* follow private static readonly naming rule
* Samething
* Fix announcments
* Make it a datafield, no?
* Revert "Make it a datafield, no?"
This reverts commit 62f6255ccccdd583d7f833ae4dbcd09a670f721a.
* remove stuff
* doesn't need to move
* is kinda of a structure
* so it doesn't pry floors as soon as it spawns
* powercell hand to mothership core module
* label for new hand
* core_e -> core-e
* mothership core can pilot the shuttle again
* fix duplicated tag + description to xenoborg tags
* scout xenoborg can now move in space without the jetpack so it can better use the sword module
* improve basic xenoborg module
* remove changes from zombie rule comp
* swap AllEntityQuery for EntityQueryEnumerator
* new line at the end
* change to 15 seconds
* make MothershipCoreDeathAnnouncmentSent into a datafield
---------
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: beck-thompson <beck314159@hotmail.com>
* Borg module action QOL: put module name into tooltips
* Fix tests
* Tidy up component lookups
* formatting
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* 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>
* - hugbot
- bdy with two arms because it needs two arms to hug
- is constructable from:
- box of hugs
- proximity sensor
- two borg arms
- lots of voice lines
- kinda like a medibot, it chases you down and then hugs you
- except if it's emagged, then it punches you :)
- it has a 2m cooldown per person by default
- MeleeAttackOperator
- Read the doc, but it's an operator which makes the NPC hit a target exactly once assuming it's in range.
- Used to make the hugbot attack
- RaiseEventForOwnerOperator
- Read the doc, but it's an operator which raises an event on the owning NPC.
- Used to make the hugbot hug extra code, specifically for the cooldown
- Changes to existing code:
- `ComponentFilter : UtilityQueryFilter` gets `RetainWithComp` added which, as the name implies, retains entities with the specified comps rather than removing them. Basically, it lets you negate the filter.
- `SpeakOperator : HTNOperator`'s `speech` field can use a `LocalizedDataSet` instead of just a locstring now
- (I updated all of the existing usages for this)
-
* two arms
* wait what if we just used mimebot arms so it doesn't look awful
* smort
* Initial commit
* Fixing merge conflict
* Merge conflict fixed
* Anchorable entities can now be marked as 'unanchorable'
* Revert "Anchorable entities can now be marked as 'unanchorable'"
This reverts commit 6a502e62a703cf06bd36ed3bdefe655fc074cfc5
This functionality will be made into a separate PR
* Error sprite
* Update AI core appearance with sustained damage, spawn scrap on destroyed
* Added intellicard sprite
* AI damage overlays
* Added fixtures
* AI core accent changes when damaged or low on power
* Bug fix and pop up messages for inserting AIs into inoperable cores
* Updated 'dead' sprite
* Destroying the AI core reduces the number of AI job slots available
* AI battery duration set to 10 minutes
* Initial commit
* Allow MMIs used in the construction of AI cores to take them over
* Initial resources commit
* Initial code commit
* Sprite update
* Bug fixes and updates
* Basic console UI
* Code refactor
* Added lock screen
* Added all outstanding UI features
* Added purge sprites
* Better appearance handling
* Fixed issue with purge sprite
* Finalized UI design
* Major components finalized
* Bit of clean up
* Removed some code that was used for testing
* Tweaked some text
* Removed extra space
* Added the circuitboard to the RD's locker
* Addressed reviewer comments plus tweaks
* Addressed reviewer comments plus tweaks
* Removed instances of granular damage
* Various improvements
* Removed testing code
* Fixed issue with disabled buttons
* Finalized code
* Addressed review comments
* Added a spare Station AI core electronics to the research director's locker
* Fixing build failure
* Addressed review comments
* Addressed review comments
* Added reverse path for construction graph
* Removed unneeded reference
* Parts can be purchased through cargo
* Fixing merge conflict
* Merge conflict resolved
* Fixing merge conflict
* Code update
* Code updates
* Increased AI core health and gave it a sell price to fix test fail
* Added screen static sprite
* Added better support for ghosted AI players plus code tweaks
* Various improvements and clean up
* Increased purge duration to 60 seconds
* Fixed needless complication
* Addressed reviewer comments part 1
* Addressed reviewer comments part 2
* Further fixes
* Trying lower battery values to see if it fixes the test fail
* Adjusted power values again
* Addressed review comments
* Addressed review comments
* Fixed test fail
* Fixed bug with endless rebooting. Using rejuvenation on an AI core revives the AI inside.
* Added pop up text
* Bug fix
* Tweaks and fixes
* Fixed restoration console not updating when the AI finishes rebooting
* Update SharedStationAiSystem.Held.cs
---------
Co-authored-by: ScarKy0 <scarky0@onet.eu>
* move all the radio components and system to Shared.
* duh split impl
* address reviews
* cleanup
---------
Co-authored-by: walksanatora <walkerffo22@gmail.com>
* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)
This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes#39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* alert cleanup and API
* I expect update loops to be at the top.
* Address review
* Address review x 2
* Merg my PR
* Fix
* Update Content.Shared/Alert/AlertsSystem.cs
webedit
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* FIX THAT TEST FAIL!!!!
* Me when I forget to actually give you alerts
* Hammedborgar
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* Borg hands & hand whitelisting
* yaml linted
* yaml linted (x2)
* yaml linted (x3)
* my storage tests so pass
* no need for SetCount
* ok new stuff you can get fixed too
* oops
* staque
* what if we addressed feedback
* my place so holder
* what if we addresesd feedback
* what if i did it correctly
* terminating or deleted
* Replace usages of customTypeSerializer PrototypeIdListSerializer with something that doesn't take 20 separate words to type out
* Missed one
* Missed another
* Fix data field ids
* checkpoint
* pt 2
* pt... i forgot
* pt 4
* patch
* More test fixes
* optimization!!!
* the REAL hand system
* fix RetractableItemActionSystem.cs oversight
* the review
* test
* remove test usage of body prototype
* Update Content.IntegrationTests/Tests/Interaction/InteractionTest.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* hellcode
* hellcode 2
* Minor cleanup
* test
* Chasing the last of the bugs
* changes
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Predict dumping
- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.
* Fix a bunch of stuff
* nasty merge
* Some reviews
* Some more reviews while I stash
* Fix merge
* Fix merge
* Half of review
* Review
* re(h)f
* lizards
* feexes
* feex
* Fix borg light being stuck on if no cell is inserted
* Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled
* Fix for entities which don't have a handheld light component
* Initial resources commit
* Initial code commit
* Added additional resources
* Continuing to build holopad and telephone systems
* Added hologram shader
* Added hologram system and entity
* Holo calls now have a hologram of the user appear on them
* Initial implementation of holopads transmitting nearby chatter
* Added support for linking across multiple telephones/holopads/entities
* Fixed a bunch of bugs
* Tried simplifying holopad entity dependence, added support for mid-call user switching
* Replaced PVS expansion with manually networked sprite states
* Adjusted volume of ring tone
* Added machine board
* Minor features and tweaks
* Resolving merge conflict
* Recommit audio attributions
* Telephone chat adjustments
* Added support for AI interactions with holopads
* Building the holopad UI
* Holopad UI finished
* Further UI tweaks
* Station AI can hear local chatter when being projected from a holopad
* Minor bug fixes
* Added wire panels to holopads
* Basic broadcasting
* Start of emergency broadcasting code
* Fixing issues with broadcasting
* More work on emergency broadcasting
* Updated holopad visuals
* Added cooldown text to emergency broadcast and control lock out screen
* Code clean up
* Fixed issue with timing
* Broadcasting now requires command access
* Fixed some bugs
* Added multiple holopad prototypes with different ranges
* The AI no longer requires power to interact with holopads
* Fixed some additional issues
* Addressing more issues
* Added emote support for holograms
* Changed the broadcast lockout durations to their proper values
* Added AI vision wire to holopads
* Bug fixes
* AI vision and interaction wires can be added to the same wire panel
* Fixed error
* More bug fixes
* Fixed test fail
* Embellished the emergency call lock out window
* Holopads play borg sounds when speaking
* Borg and AI names are listed as the caller ID on the holopad
* Borg chassis can now be seen on holopad holograms
* Holopad returns to a machine frame when badly damaged
* Clarified some text
* Fix merge conflict
* Fixed merge conflict
* Fixing merge conflict
* Fixing merge conflict
* Fixing merge conflict
* Offset menu on open
* AI can alt click on holopads to activate the projector
* Bug fixes for intellicard interactions
* Fixed speech issue with intellicards
* The UI automatically opens for the AI when it alt-clicks on the holopad
* Simplified shader math
* Telephones will auto hang up 60 seconds after the last person on a call stops speaking
* Added better support for AI requests when multiple AI cores are on the station
* The call controls pop up for the AI when they accept a summons from a holopad
* Compatibility mode fix for the hologram shader
* Further shader fixes for compatibility mode
* File clean up
* More cleaning up
* Removed access requirements from quantum holopads so they can used by nukies
* The title of the holopad window now reflects the name of the device
* Linked telephones will lose their connection if both move out of range of each other