The station AI can be destroyed (#39588)

* 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>
This commit is contained in:
chromiumboy
2025-09-15 09:18:32 -05:00
committed by GitHub
parent e0fd44da66
commit 7444c8ea4a
72 changed files with 2553 additions and 133 deletions

View File

@@ -0,0 +1,144 @@
- type: constructionGraph
id: StationAiCore
start: start
graph:
- node: start
edges:
- to: frame
steps:
- material: Plasteel
amount: 4
doAfter: 4
- node: frame
entity: PlayerStationAiAssembly
actions:
- !type:AppearanceChange
edges:
- to: frameWithElectronics
steps:
- tag: StationAiCoreElectronics
name: construction-graph-tag-station-ai-core-electronics
store: board
icon:
sprite: "Objects/Misc/module.rsi"
state: "mainboard"
- to: start
completed:
- !type:SpawnPrototype
prototype: SheetPlasteel1
amount: 4
- !type:DeleteEntity {}
steps:
- tool: Welding
doAfter: 8
- node: frameWithElectronics
actions:
- !type:AppearanceChange
edges:
- to: frameWithSecuredElectronics
steps:
- tool: Screwing
doAfter: 2
- to: frame
completed:
- !type:EmptyContainer
container: board
steps:
- tool: Prying
doAfter: 2
- node: frameWithSecuredElectronics
actions:
- !type:AppearanceChange
edges:
- to: frameWithWires
steps:
- material: Cable
amount: 1
doAfter: 1
- to: frameWithElectronics
steps:
- tool: Screwing
doAfter: 2
- node: frameWithWires
actions:
- !type:AppearanceChange
edges:
- to: frameWithBrain
steps:
- component: BorgBrain
name: construction-graph-component-borg-brain
store: station_ai_brain_slot
icon:
sprite: "Objects/Specific/Robotics/mmi.rsi"
state: "mmi_icon"
- to: frameWithoutBrainFinished
steps:
- material: ReinforcedGlass
amount: 2
doAfter: 2
- to: frameWithSecuredElectronics
completed:
- !type:SpawnPrototype
prototype: CableApcStack1
amount: 1
steps:
- tool: Cutting
doAfter: 2
- node: frameWithBrain
actions:
- !type:AppearanceChange
edges:
- to: frameWithBrainFinished
steps:
- material: ReinforcedGlass
amount: 2
doAfter: 2
- to: frameWithWires
completed:
- !type:EmptyContainer
container: station_ai_brain_slot
steps:
- tool: Prying
doAfter: 4
- node: frameWithBrainFinished
actions:
- !type:AppearanceChange
edges:
- to: stationAiCore
steps:
- tool: Screwing
doAfter: 2
- to: frameWithBrain
completed:
- !type:SpawnPrototype
prototype: SheetRGlass1
amount: 2
steps:
- tool: Prying
doAfter: 4
- node: frameWithoutBrainFinished
actions:
- !type:AppearanceChange
edges:
- to: stationAiCore
steps:
- tool: Screwing
doAfter: 2
- to: frameWithWires
completed:
- !type:SpawnPrototype
prototype: SheetRGlass1
amount: 2
steps:
- tool: Prying
doAfter: 4
- node: stationAiCore
entity: PlayerStationAiEmpty

View File

@@ -1315,3 +1315,16 @@
canBuildInImpassable: false
conditions:
- !type:TileNotBlocked
- type: construction
id: StationAiCore
graph: StationAiCore
startNode: start
targetNode: stationAiCore
category: construction-category-structures
objectType: Structure
placementMode: SnapgridCenter
canRotate: false
canBuildInImpassable: false
conditions:
- !type:TileNotBlocked