malf killer 9000 (robotics console) (#24855)

* create devicenet frequencies

* create borg transponder and give it to all nt borgs

* add robotics console

* actually implement battery charge display + some fix

* tab

* real explosion

* little safer

* disable destroy button clientside too when on cooldown

* m

* how do i do this when i review things...

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* webedit ops

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* ui updates

* oracle java

* do a thing

* update ui when a borg times out

* maybe fix test

* add IsLocked to LockSystem

* make destroying gib the chassis again, so emagging isnt sus

* use locking

* require using alt click to unlock so normal click is open ui

* the

* use LogType.Action

* take this L

* pocket lint?

* sharer

* pro ops

* robor pushmarkup

* m

* update and make it not use prototype anymore

* frame0

* update yaml

* untroll

* bad

* h

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
This commit is contained in:
deltanedas
2024-05-09 06:36:07 +00:00
committed by GitHub
parent 24ab5c0982
commit b33730db22
21 changed files with 891 additions and 4 deletions

View File

@@ -75,6 +75,17 @@
name: device-frequency-prototype-name-crew-monitor
frequency: 1261
# Cyborgs broadcast to consoles on this frequency
- type: deviceFrequency
id: RoboticsConsole
name: device-frequency-prototype-name-robotics-console
frequency: 1291
# Console sends commands to cyborgs on this frequency
- type: deviceFrequency
id: CyborgControl
name: device-frequency-prototype-name-cyborg-control
frequency: 1292
# This frequency will likely have a LARGE number of listening entities. Please don't broadcast on this frequency.
- type: deviceFrequency

View File

@@ -217,9 +217,26 @@
- Cyborgs
- type: StepTriggerImmune
- type: entity
abstract: true
id: BaseBorgTransponder
components:
- type: BorgTransponder
- type: DeviceNetwork
deviceNetId: Wireless
receiveFrequencyId: CyborgControl
transmitFrequencyId: RoboticsConsole
# explosion does most of its damage in the center and less at the edges
- type: Explosive
explosionType: Minibomb
totalIntensity: 30
intensitySlope: 20
maxIntensity: 20
canCreateVacuum: false # its for killing the borg not the station
- type: entity
id: BaseBorgChassisNT
parent: BaseBorgChassis
parent: [BaseBorgChassis, BaseBorgTransponder]
abstract: true
components:
- type: NpcFactionMember

View File

@@ -20,6 +20,11 @@
- BorgModuleGeneric
hasMindState: robot_e
noMindState: robot_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: robot
name: cyborg
- type: Construction
node: cyborg
- type: Speech
@@ -57,6 +62,11 @@
- BorgModuleCargo
hasMindState: miner_e
noMindState: miner_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: miner
name: salvage cyborg
- type: Construction
node: mining
- type: IntrinsicRadioTransmitter
@@ -100,6 +110,11 @@
- BorgModuleEngineering
hasMindState: engineer_e
noMindState: engineer_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: engineer
name: engineer cyborg
- type: Construction
node: engineer
- type: IntrinsicRadioTransmitter
@@ -151,6 +166,11 @@
- BorgModuleJanitor
hasMindState: janitor_e
noMindState: janitor_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: janitor
name: janitor cyborg
- type: Construction
node: janitor
- type: IntrinsicRadioTransmitter
@@ -202,6 +222,11 @@
- BorgModuleMedical
hasMindState: medical_e
noMindState: medical_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: medical
name: medical cyborg
- type: Construction
node: medical
- type: IntrinsicRadioTransmitter
@@ -250,6 +275,11 @@
- BorgModuleService
hasMindState: service_e
noMindState: service_e_r
- type: BorgTransponder
sprite:
sprite: Mobs/Silicon/chassis.rsi
state: service
name: service cyborg
- type: Construction
node: service
- type: IntrinsicRadioTransmitter

View File

@@ -384,3 +384,14 @@
state: cpu_engineering
- type: ComputerBoard
prototype: ComputerSensorMonitoring
- type: entity
parent: BaseComputerCircuitboard
id: RoboticsConsoleCircuitboard
name: robotics control console board
description: A computer printed circuit board for a robotics control console.
components:
- type: Sprite
state: cpu_science
- type: ComputerBoard
prototype: ComputerRoboticsControl

View File

@@ -1076,3 +1076,42 @@
- type: WiredNetworkConnection
- type: DeviceList
- type: AtmosDevice
- type: entity
parent: BaseComputer
id: ComputerRoboticsControl
name: robotics control console
description: Used to remotely monitor, disable and destroy the station's cyborgs.
components:
- type: Sprite
layers:
- map: ["computerLayerBody"]
state: computer
- map: ["computerLayerKeyboard"]
state: generic_keyboard
- map: ["computerLayerScreen"]
state: robot
- map: ["computerLayerKeys"]
state: rd_key
- type: RoboticsConsole
- type: ActiveRadio
channels:
- Science
- type: ActivatableUI
key: enum.RoboticsConsoleUiKey.Key
- type: UserInterface
interfaces:
enum.RoboticsConsoleUiKey.Key:
type: RoboticsConsoleBoundUserInterface
- type: ApcPowerReceiver
powerLoad: 1000
- type: DeviceNetwork
deviceNetId: Wireless
receiveFrequencyId: RoboticsConsole
transmitFrequencyId: CyborgControl
- type: Computer
board: RoboticsConsoleCircuitboard
- type: AccessReader # only used for dangerous things
access: [["ResearchDirector"]]
- type: Lock
unlockOnClick: false