* Borg type switching.
This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.
New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.
These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.
The modules that each borg type starts with:
* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning
Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.
Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.
The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.
Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.
The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.
There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.
* Fix sandbox failure due to collection expression.
* Module tweak
Fix salvage borg modules still having research/lathe recipes
Engie borg has regular tool module, not advanced.
* Fix inventory system breakage
* Fix migrations
Some things were missing
* Guidebook rewordings & review
* MinWidth on confirm selection button
* 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>
* Station AI overlay
* implement
* Bunch of ports
* Fix a heap of bugs and basic scouting
* helldivers
* Shuffle interactions a bit
* navmap stuff
* Revert "navmap stuff"
This reverts commit d1f89dd4be83233e22cf5dd062b2581f3c6da062.
* AI wires implemented
* Fix examines
* Optimise the overlay significantly
* Back to old static
* BUI radial working
* lots of work
* Saving work
* thanks fork
* alright
* pc
* AI upload console
* AI upload
* stuff
* Fix copy-paste shitcode
* AI actions
* navmap work
* Fixes
* first impressions
* a
* reh
* Revert "navmap work"
This reverts commit 6f63fea6e9245e189f368f97be3e32e9b210580e.
# Conflicts:
# Content.Client/Silicons/StationAi/StationAiOverlay.cs
* OD
* radar
* weh
* Fix examines
* scoop mine eyes
* fixes
* reh
* Optimise
* Final round of optimisations
* Fixes
* fixes
* 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
* Laws
* positronic brain and PAI rewrite
* MMI
* MMI pt. 2
* borg brain transfer
* Roleban support, Borg job (WIP), the end of mind shenaniganry
* battery drain, item slot cleanup, alerts
* visuals
* fix this pt1
* fix this pt2
* Modules, Lingering Stacks, Better borg flashlight
* Start on UI, fix battery alerts, expand activation/deactivation, low movement speed on no power.
* sprotes
* no zombie borgs
* oh fuck yeah i love a good relay
* charger
* fix the tiniest of sprite issues
* adjustable names
* a functional UI????
* foobar
* more modules
* this shit for some reason
* upstream
* genericize selectable borg modules
* upstream again
* holy fucking shit
* i love christ
* proper construction
* da job
* AA borgs
* and boom more shit
* admin logs
* laws redux
* ok just do this rq
* oh boy that looks like modules
* oh shit research
* testos passo
* so much shit holy fuck
* fuckit we SHIP
* last minute snags
* should've gotten me on a better day
* 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
* 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
* All good except the combat doll
* Makes the HUD inventory less terrible
* Cleanup, nuke the Combat Mode button
* Harm icon
* Switch the icon
* Basic goon hud
* Toggleable
* Nuke the popup, properly centers it
* Fix clicking the button
* Nuke some old code
* missed a comment
* Remove defaults
* Localization
* Nuke some old yaml
* New sprites
Co-authored-by: ike709 <sparebytes@protonmail.com>