* 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
This commit is contained in:
Nemanja
2023-08-12 17:39:58 -04:00
committed by GitHub
parent ac4f496535
commit 98fa00a21f
314 changed files with 7094 additions and 484 deletions

View File

@@ -0,0 +1,10 @@
- type: instantAction
id: ViewLaws
name: action-name-view-laws
description: action-description-view-laws
itemIconStyle: NoItem
icon:
sprite: Interface/Actions/actions_borg.rsi
state: state-laws
event: !type:ToggleLawsScreenEvent
useDelay: 0.5

View File

@@ -177,6 +177,46 @@
minSeverity: 0
maxSeverity: 4
- type: alert
id: BorgBattery
category: Battery
icons:
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery0
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery1
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery2
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery3
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery4
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery5
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery6
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery7
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery8
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery9
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery10
name: alerts-battery-name
description: alerts-battery-desc
minSeverity: 0
maxSeverity: 10
- type: alert
id: BorgBatteryNone
category: Battery
icons:
- sprite: /Textures/Interface/Alerts/battery.rsi
state: battery-none
name: alerts-no-battery-name
description: alerts-no-battery-desc
- type: alert
id: Internals
category: Internals

View File

@@ -27,8 +27,8 @@
- type: Organ
- type: Input
context: "ghost"
- type: InputMover
- type: Brain
- type: BlockMovement
- type: entity
id: OrganHumanEyes

View File

@@ -1,9 +1,12 @@
- type: entity
id: PartSilicon
parent: BaseItem
name: "silicon body part"
abstract: true
components:
- type: Sprite
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
- type: Icon
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
- type: Damageable
damageContainer: Inorganic
- type: BodyPart
@@ -21,16 +24,11 @@
Steel: 25
- type: entity
id: LeftArmBorg
name: "left borg arm"
id: BaseBorgArmLeft
parent: PartSilicon
name: left cyborg arm
abstract: true
components:
- type: Sprite
sprite: Mobs/Silicon/drone.rsi
state: "l_hand"
- type: Icon
sprite: Mobs/Silicon/drone.rsi
state: "l_hand"
- type: BodyPart
partType: Hand
symmetry: Left
@@ -40,16 +38,11 @@
- BorgArm
- type: entity
id: RightArmBorg
name: "right borg arm"
id: BaseBorgArmRight
parent: PartSilicon
name: right cyborg arm
abstract: true
components:
- type: Sprite
sprite: Mobs/Silicon/drone.rsi
state: "r_hand"
- type: Icon
sprite: Mobs/Silicon/drone.rsi
state: "r_hand"
- type: BodyPart
partType: Hand
symmetry: Right
@@ -59,16 +52,11 @@
- BorgArm
- type: entity
id: LeftLegBorg
name: "left borg leg"
id: BaseBorgLegLeft
parent: PartSilicon
name: left cyborg leg
abstract: true
components:
- type: Sprite
sprite: Mobs/Silicon/borg.rsi
state: "l_leg"
- type: Icon
sprite: Mobs/Silicon/borg.rsi
state: "l_leg"
- type: BodyPart
partType: Leg
symmetry: Left
@@ -76,19 +64,13 @@
tags:
- Trash
- BorgLeg
- BorgLeftLeg
- type: entity
id: RightLegBorg
name: "right borg leg"
id: BaseBorgLegRight
parent: PartSilicon
name: right cyborg leg
abstract: true
components:
- type: Sprite
sprite: Mobs/Silicon/borg.rsi
state: "r_leg"
- type: Icon
sprite: Mobs/Silicon/borg.rsi
state: "r_leg"
- type: BodyPart
partType: Leg
symmetry: Right
@@ -96,22 +78,28 @@
tags:
- Trash
- BorgLeg
- BorgRightLeg
- type: entity
id: LightHeadBorg
name: "borg head"
id: BaseBorgHead
parent: PartSilicon
name: cyborg head
abstract: true
components:
- type: Sprite
sprite: Objects/Specific/Borg/head.rsi
state: "light_borg_head"
- type: Icon
sprite: Objects/Specific/Borg/head.rsi
state: "light_borg_head"
- type: BodyPart
partType: Head
- type: Tag
tags:
- Trash
- BorgHead
- type: entity
id: BaseBorgTorso
parent: PartSilicon
name: cyborg torso
abstract: true
components:
- type: BodyPart
partType: Torso
- type: Tag
tags:
- Trash

View File

@@ -2,7 +2,7 @@
id: RoboticsInventory
startingInventory:
CableApcStack: 4
#Flash: 4 add when robotics
Flash: 4
ProximitySensor: 3
RemoteSignaller: 3
HandheldHealthAnalyzer: 3

View File

@@ -265,6 +265,21 @@
- state: green
- state: boxer
- type: entity
id: SpawnPointBorg
parent: SpawnPointJobBase
name: cyborg
components:
- type: SpawnPoint
job_id: Borg
- type: Sprite
layers:
- state: green
- sprite: Mobs/Silicon/chassis.rsi
state: robot
- sprite: Mobs/Silicon/chassis.rsi
state: robot_e
# Command
- type: entity
@@ -378,7 +393,7 @@
layers:
- state: green
- state: doctor
- type: entity
id: SpawnPointParamedic
parent: SpawnPointJobBase

View File

@@ -0,0 +1,172 @@
- type: entity
id: BaseBorgChassis
name: cyborg
description: A man-machine hybrid that assists in station activity. They love being asked to state their laws over and over.
save: false
abstract: true
components:
- type: Reactive
groups:
Acidic: [Touch]
- type: Input
context: "human"
- type: InputMover
- type: DamageOnHighSpeedImpact
damage:
types:
Blunt: 5
soundHit:
path: /Audio/Effects/hit_kick.ogg
- type: Clickable
- type: CombatMode
- type: StaticPrice
price: 1250
- type: InteractionOutline
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.35
density: 150
mask:
- MobMask
layer:
- MobLayer
- type: MovementSpeedModifier
baseWalkSpeed : 2.5
baseSprintSpeed : 4.5
- type: Sprite
sprite: Mobs/Silicon/chassis.rsi
noRot: true
drawdepth: Mobs
- type: MobState
allowedStates:
- Alive
- type: MobThresholds
thresholds:
0: Alive
- type: NpcFactionMember
factions:
- NanoTrasen
- type: Physics
bodyType: KinematicController
- type: UserInterface
interfaces:
- key: enum.SiliconLawsUiKey.Key
type: SiliconLawBoundUserInterface
- key: enum.BorgUiKey.Key
type: BorgBoundUserInterface
- type: ActivatableUI
key: enum.BorgUiKey.Key
- type: SiliconLawBound
- type: EmagSiliconLaw
- type: Hands
showInHands: false
- type: IntrinsicRadioReceiver
- type: IntrinsicRadioTransmitter
channels:
- Binary
- type: ActiveRadio
channels:
- Binary
- Common
- type: ZombieImmune
- type: Repairable
doAfterDelay: 10
allowSelfRepair: false
- type: BorgChassis
- type: WiresPanel
- type: ActivatableUIRequiresPanel
- type: Wires
LayoutId: Borg
- type: NameIdentifier
group: Silicon
- type: ContainerContainer
containers:
borg_brain: !type:ContainerSlot { }
cell_slot: !type:ContainerSlot { }
borg_module: !type:Container { }
part-container: !type:Container
- type: PowerCellSlot
cellSlotId: cell_slot
fitsInCharger: true
- type: PowerCellDraw
drawRate: 0.6
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: DoAfter
- type: Body
- type: Actions
- type: TypingIndicator
proto: robot
- type: Speech
speechSounds: Pai
- type: Construction
graph: Cyborg
containers:
- part-container
- cell_slot
- type: Flashable
- type: Damageable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound: /Audio/Effects/metalbreak.ogg
- !type:EmptyContainersBehaviour
containers:
- borg_brain
- borg_module
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: HandheldLight
toggleOnInteract: false
wattage: 0.2
blinkingBehaviourId: blinking
radiatingBehaviourId: radiating
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
id: radiating
interpolate: Linear
maxDuration: 2.0
startValue: 3.0
endValue: 2.0
isLooped: true
property: Radius
enabled: false
reverseWhenFinished: true
- !type:PulseBehaviour
id: blinking
interpolate: Nearest
maxDuration: 1.0
minValue: 0.1
maxValue: 2.0
isLooped: true
property: Radius
enabled: false
- type: ToggleableLightVisuals
- type: PointLight
enabled: false
mask: /Textures/Effects/LightMasks/cone.png
autoRot: true
radius: 4
netsync: false
- type: Pullable
- type: Puller
needsHands: false
- type: Examiner
- type: Appearance
- type: StandingState
- type: Alerts
- type: Tag
tags:
- ShoesRequiredStepTriggerImmune
- DoorBumpOpener

View File

@@ -0,0 +1,160 @@
- type: entity
id: BorgChassisGeneric
parent: BaseBorgChassis
components:
- type: Sprite
layers:
- state: robot
- state: robot_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: robot_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 5
moduleWhitelist:
tags:
- BorgModuleGeneric
hasMindState: robot_e
noMindState: robot_e_r
- type: Construction
node: cyborg
- type: entity
id: BorgChassisMining
parent: BaseBorgChassis
name: salvage cyborg
components:
- type: Sprite
layers:
- state: miner
- state: miner_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: miner_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleCargo
hasMindState: miner_e
noMindState: miner_e_r
- type: Construction
node: mining
- type: entity
id: BorgChassisEngineer
parent: BaseBorgChassis
name: engineer cyborg
components:
- type: Sprite
layers:
- state: engineer
- state: engineer_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: engineer_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleEngineering
hasMindState: engineer_e
noMindState: engineer_e_r
- type: Construction
node: engineer
- type: entity
id: BorgChassisJanitor
parent: BaseBorgChassis
name: janitor cyborg
components:
- type: Sprite
layers:
- state: janitor
- state: janitor_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: janitor_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleJanitor
hasMindState: janitor_e
noMindState: janitor_e_r
- type: Construction
node: janitor
- type: entity
id: BorgChassisMedical
parent: BaseBorgChassis
name: medical cyborg
components:
- type: Sprite
layers:
- state: medical
- state: medical_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: medical_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleMedical
hasMindState: medical_e
noMindState: medical_e_r
- type: Construction
node: medical
- type: entity
id: BorgChassisService
parent: BaseBorgChassis
name: service cyborg
components:
- type: Sprite
layers:
- state: service
- state: service_e_r
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: service_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleService
hasMindState: service_e
noMindState: service_e_r
- type: Construction
node: service

View File

@@ -84,6 +84,8 @@
interfaces:
- key: enum.StrippingUiKey.Key
type: StrippableBoundUserInterface
- key: enum.SiliconLawsUiKey.Key
type: SiliconLawBoundUserInterface
#- type: GhostRole
# makeSentient: true
# name: Maintenance Drone
@@ -94,6 +96,12 @@
# 2. You may not harm any being, regardless of intent or circumstance.
# 3. Your goals are to build, maintain, repair, improve, and power to the best of your abilities, You must never actively work against these goals.
#- type: GhostTakeoverAvailable
- type: SiliconLawBound
- type: SiliconLawProvider
laws:
- Drone1
- Drone2
- Drone3
- type: MovementSpeedModifier
baseWalkSpeed : 5
baseSprintSpeed : 5
@@ -233,3 +241,17 @@
tags:
- FootstepSound
- type: entity
id: PlayerBorgGeneric
parent: BorgChassisGeneric
noSpawn: true
components:
- type: BorgChassis
startingBrain: MMIFilled
startingModules:
- BorgModuleTool
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellMedium

View File

@@ -500,6 +500,28 @@
- type: StaticPrice
price: 15
- type: entity
id: BorgChargerCircuitboard
parent: BaseMachineCircuitboard
name: cyborg recharging station machine board
description: A machine printed circuit board for a robot recharging station.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: charger_APC
- type: MachineBoard
prototype: BorgCharger
requirements:
Capacitor: 2
materialRequirements:
Cable: 5
- type: PhysicalComposition
materialComposition:
Steel: 30
Plastic: 30
- type: StaticPrice
price: 15
- type: entity
id: WeaponCapacitorRechargerCircuitboard
parent: BaseMachineCircuitboard

View File

@@ -1,11 +1,9 @@
- type: entity
id: HandheldStationMap
id: BaseHandheldStationMap
name: station map
description: Displays a readout of the current station.
parent:
- BaseItem
- PowerCellSlotSmallItem
suffix: Handheld
abstract: true
parent: BaseItem
components:
- type: StationMap
- type: Sprite
@@ -14,10 +12,6 @@
- state: tablet
- state: generic
shader: unshaded
- type: PowerCellDraw
drawRate: 0
useRate: 20
- type: ActivatableUIRequiresPowerCell
- type: ActivatableUI
inHandsOnly: true
singleUser: true
@@ -36,3 +30,20 @@
interfaces:
- key: enum.StationMapUiKey.Key
type: StationMapBoundUserInterface
- type: entity
id: HandheldStationMap
parent:
- BaseHandheldStationMap
- PowerCellSlotSmallItem
suffix: Handheld, Powered
components:
- type: PowerCellDraw
drawRate: 0
useRate: 20
- type: ActivatableUIRequiresPowerCell
- type: entity
id: HandheldStationMapUnpowered
parent: BaseHandheldStationMap
suffix: Handheld, Unpowered

View File

@@ -32,6 +32,18 @@
description: action-description-pai-play-midi
event: !type:OpenUiActionEvent
key: enum.InstrumentUiKey.Key
- type: BlockMovement
- type: ToggleableGhostRole
examineTextMindPresent: pai-system-pai-installed
examineTextMindSearching: pai-system-still-searching
examineTextNoMind: pai-system-off
beginSearchingText: pai-system-searching
roleName: pai-system-role-name
roleDescription: pai-system-role-description
wipeVerbText: pai-system-wipe-device-verb-text
wipeVerbPopup: pai-system-wiped-device
stopSearchVerbText: pai-system-stop-searching-verb-text
stopSearchVerbPopup: pai-system-stopped-searching
- type: Examiner
- type: IntrinsicRadioReceiver
- type: ActiveRadio
@@ -52,7 +64,7 @@
- type: Appearance
- type: GenericVisualizer
visuals:
enum.PAIVisuals.Status:
enum.ToggleableGhostRoleVisuals.Status:
screen:
Off: { state: pai-off-overlay }
Searching: { state: pai-searching-overlay }
@@ -76,7 +88,7 @@
- type: Appearance
- type: GenericVisualizer
visuals:
enum.PAIVisuals.Status:
enum.ToggleableGhostRoleVisuals.Status:
screen:
Off: { state: syndicate-pai-off-overlay }
Searching: { state: syndicate-pai-searching-overlay }

View File

@@ -446,11 +446,11 @@
left_leg:
whitelist:
tags:
- BorgLeftLeg
- BorgLeg
right_leg:
whitelist:
tags:
- BorgRightLeg
- BorgLeg
sprite: Objects/Specific/Mech/vim_construction.rsi
- type: ContainerContainer
containers:
@@ -459,8 +459,7 @@
finishedPrototype: VimChassis
requiredParts:
HelmetEVA: false
BorgLeftLeg: false
BorgRightLeg: false
BorgLeg: false
- type: Sprite
state: harness
noRot: true

View File

@@ -1,49 +1,55 @@
- type: entity
id: Defibrillator
parent: [ BaseItem, PowerCellSlotMediumItem ]
id: BaseDefibrillator
parent: BaseItem
name: defibrillator
description: CLEAR! Zzzzat!
abstract: true
components:
- type: Sprite
sprite: Objects/Specific/Medical/defib.rsi
layers:
- state: icon
- state: screen
map: [ "enum.ToggleVisuals.Layer" ]
visible: false
shader: unshaded
- state: ready
map: ["enum.PowerDeviceVisualLayers.Powered"]
shader: unshaded
- type: Appearance
- type: GenericVisualizer
visuals:
enum.ToggleVisuals.Toggled:
enum.ToggleVisuals.Layer:
True: { visible: true }
False: { visible: false }
enum.DefibrillatorVisuals.Ready:
enum.PowerDeviceVisualLayers.Powered:
True: { visible: true }
False: { visible: false }
- type: Item
size: 50
- type: ItemCooldown
- type: Speech
- type: Defibrillator
zapHeal:
types:
Asphyxiation: -40
- type: DoAfter
- type: UseDelay
- type: StaticPrice
price: 100
- type: GuideHelp
guides:
- Medical Doctor
- type: entity
id: Defibrillator
parent: [ BaseDefibrillator, PowerCellSlotMediumItem ]
components:
- type: Sprite
sprite: Objects/Specific/Medical/defib.rsi
layers:
- state: icon
- state: screen
map: [ "enum.ToggleVisuals.Layer" ]
visible: false
shader: unshaded
- state: ready
map: ["enum.PowerDeviceVisualLayers.Powered"]
shader: unshaded
- type: GenericVisualizer
visuals:
enum.ToggleVisuals.Toggled:
enum.ToggleVisuals.Layer:
True: { visible: true }
False: { visible: false }
enum.DefibrillatorVisuals.Ready:
enum.PowerDeviceVisualLayers.Powered:
True: { visible: true }
False: { visible: false }
- type: Item
size: 50
- type: ItemCooldown
- type: MultiHandedItem
- type: Speech
- type: Defibrillator
zapHeal:
types:
Asphyxiation: -40
- type: PowerCellDraw
useRate: 100
- type: Appearance
- type: DoAfter
- type: UseDelay
- type: StaticPrice
price: 100
- type: GuideHelp
guides:
- Medical Doctor
- type: entity
id: DefibrillatorEmpty
@@ -54,3 +60,8 @@
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: entity
id: DefibrillatorOneHandedUnpowered
parent: BaseDefibrillator
suffix: One-Handed, Unpowered

View File

@@ -57,6 +57,15 @@
- type: Item
size: 1
- type: entity
id: Ointment10Lingering
parent: Ointment
suffix: 10, Lingering
components:
- type: Stack
lingering: true
count: 10
- type: entity
name: regenerative mesh
description: Used to treat even the nastiest burns. Also effective against caustic burns.
@@ -138,6 +147,15 @@
- type: Item
size: 1
- type: entity
id: Brutepack10Lingering
parent: Brutepack
suffix: 10, Lingering
components:
- type: Stack
lingering: true
count: 10
- type: entity
name: medicated suture
description: A suture soaked in medicine, treats blunt-force trauma effectively and closes wounds.
@@ -207,6 +225,14 @@
- type: StackPrice
price: 10
- type: entity
parent: Bloodpack
id: Bloodpack10Lingering
suffix: 10, Lingering
components:
- type: Stack
lingering: true
- type: entity
name: roll of gauze
description: Some sterile gauze to wrap around bloody stumps.
@@ -250,6 +276,15 @@
- type: Item
size: 1
- type: entity
id: Gauze10Lingering
parent: Gauze
suffix: 10, Lingering
components:
- type: Stack
lingering: true
count: 10
- type: entity
name: aloe cream
description: A topical cream for burns.

View File

@@ -1,24 +1,18 @@
- type: entity
id: HandheldHealthAnalyzerUnpowered
parent: BaseItem
name: health analyzer
parent:
- BaseItem
- PowerCellSlotSmallItem
id: HandheldHealthAnalyzer
description: A hand-held body scanner capable of distinguishing vital signs of the subject.
components:
- type: Sprite
sprite: Objects/Specific/Medical/healthanalyzer.rsi
state: icon
layers:
- state: icon
- state: analyzer
shader: unshaded
visible: true
map: [ "enum.PowerDeviceVisualLayers.Powered" ]
- type: PowerCellDraw
drawRate: 0
useRate: 20
- type: ActivatableUIRequiresPowerCell
- state: icon
- state: analyzer
shader: unshaded
visible: true
map: [ "enum.PowerDeviceVisualLayers.Powered" ]
- type: ActivatableUI
key: enum.HealthAnalyzerUiKey.Key
closeOnHandDeselect: false
@@ -31,7 +25,7 @@
path: "/Audio/Items/Medical/healthscanner.ogg"
- type: Tag
tags:
- DiscreteHealthAnalyzer
- DiscreteHealthAnalyzer
- type: Appearance
- type: GenericVisualizer
visuals:
@@ -41,7 +35,17 @@
False: { visible: false }
- type: GuideHelp
guides:
- Medical Doctor
- Medical Doctor
- type: entity
id: HandheldHealthAnalyzer
parent: [ HandheldHealthAnalyzerUnpowered, PowerCellSlotSmallItem]
suffix: Powered
components:
- type: PowerCellDraw
drawRate: 0
useRate: 20
- type: ActivatableUIRequiresPowerCell
- type: entity
id: HandheldHealthAnalyzerEmpty

View File

@@ -21,19 +21,20 @@
- ScannersAndVessels
- type: entity
id: AnomalyLocator
parent: [ BaseItem, PowerCellSlotSmallItem ]
id: AnomalyLocatorUnpowered
parent: BaseItem
name: anomaly locator
description: A device designed to aid in the locating of anomalies. Did you check the gas miners?
suffix: Unpowered
components:
- type: Sprite
sprite: Objects/Specific/Research/anomalylocator.rsi
layers:
- state: icon
- state: screen
shader: unshaded
visible: false
map: ["enum.PowerDeviceVisualLayers.Powered"]
- state: icon
- state: screen
shader: unshaded
visible: false
map: ["enum.PowerDeviceVisualLayers.Powered"]
- type: Appearance
- type: GenericVisualizer
visuals:
@@ -41,9 +42,6 @@
enum.PowerDeviceVisualLayers.Powered:
True: { visible: true }
False: { visible: false }
- type: PowerCellDraw
drawRate: 1
useRate: 0
- type: ProximityBeeper
component: Anomaly
maximumDistance: 20
@@ -55,6 +53,15 @@
maxdistance: 1
volume: -8
- type: entity
id: AnomalyLocator
parent: [ AnomalyLocatorUnpowered, PowerCellSlotSmallItem ]
suffix: Powered
components:
- type: PowerCellDraw
drawRate: 1
useRate: 0
- type: entity
id: AnomalyLocatorEmpty
parent: AnomalyLocator

View File

@@ -0,0 +1,400 @@
- type: entity
id: BaseBorgModule
parent: BaseItem
name: borg module
description: A piece of tech that gives cyborgs new abilities.
abstract: true
components:
- type: Sprite
sprite: Objects/Specific/Robotics/borgmodule.rsi
- type: BorgModule
- type: StaticPrice
price: 250
- type: Tag
tags:
- BorgModuleGeneric
- type: entity
id: BaseProviderBorgModule
abstract: true
components:
- type: SelectableBorgModule
- type: ContainerContainer
containers:
provided_container: !type:Container { }
- type: entity
id: BaseBorgModuleCargo
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleCargo
- type: entity
id: BaseBorgModuleEngineering
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleEngineering
- type: entity
id: BaseBorgModuleJanitor
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleJanitor
- type: entity
id: BaseBorgModuleMedical
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleMedical
- type: entity
id: BaseBorgModuleService
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleService
# generic modules
- type: entity
id: BorgModuleCable
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: cable cyborg module
components:
- type: Sprite
layers:
- state: generic
- state: icon-cables
- type: ItemBorgModule
items:
- CableApcStackLingering10
- CableMVStackLingering10
- CableHVStackLingering10
- Wirecutter
- trayScanner
- type: entity
id: BorgModuleFireExtinguisher
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: fire extinguisher cyborg module
components:
- type: Sprite
layers:
- state: generic
- state: icon-fire-extinguisher
- type: ItemBorgModule
items:
- FireExtinguisher
- type: entity
id: BorgModuleGPS
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: GPS cyborg module
components:
- type: Sprite
layers:
- state: generic
- state: icon-gps
- type: ItemBorgModule
items:
- HandheldGPSBasic
- HandheldStationMapUnpowered
- type: entity
id: BorgModuleRadiationDetection
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: radiation detection cyborg module
components:
- type: Sprite
layers:
- state: generic
- state: icon-radiation
- type: ItemBorgModule
items:
- GeigerCounter
- type: entity
id: BorgModuleTool
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: tool cyborg module
components:
- type: Sprite
layers:
- state: generic
- state: icon-tools
- type: ItemBorgModule
items:
- Crowbar
- Wrench
- Screwdriver
- Wirecutter
# cargo modules
- type: entity
id: BorgModuleAppraisal
parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ]
name: appraisal cyborg module
components:
- type: Sprite
layers:
- state: cargo
- state: icon-appraisal
- type: ItemBorgModule
items:
- AppraisalTool
- type: entity
id: BorgModuleMining
parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ]
name: mining cyborg module
components:
- type: Sprite
layers:
- state: cargo
- state: icon-mining
- type: ItemBorgModule
items:
- MiningDrill
- OreBag
- type: entity
id: BorgModuleGrapplingGun
parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ]
name: grappling gun cyborg module
components:
- type: Sprite
layers:
- state: cargo
- state: icon-grappling-gun
- type: ItemBorgModule
items:
- WeaponGrapplingGun
# engineering modules
- type: entity
id: BorgModuleAdvancedTool
parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
name: advanced tool cyborg module
components:
- type: Sprite
layers:
- state: engineering
- state: icon-tools-adv
- type: ItemBorgModule
items:
- Omnitool
- WelderExperimental
- NetworkConfigurator
- type: entity
id: BorgModuleGasAnalyzer
parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
name: gas analyzer cyborg module
components:
- type: Sprite
layers:
- state: engineering
- state: icon-gas-analyzer
- type: ItemBorgModule
items:
- GasAnalyzer
- type: entity
id: BorgModuleRCD
parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
name: RCD cyborg module
components:
- type: Sprite
layers:
- state: engineering
- state: icon-rcd
- type: ItemBorgModule
items:
- RCDRecharging
# janitorial modules (this gets its own unique things because janis are epic)
- type: entity
id: BorgModuleLightReplacer
parent: [ BaseBorgModuleJanitor, BaseProviderBorgModule ]
name: light replacer cyborg module
components:
- type: Sprite
layers:
- state: janitor
- state: icon-light-replacer
- type: ItemBorgModule
items:
- LightReplacer
- type: entity
id: BorgModuleCleaning
parent: [ BaseBorgModuleJanitor, BaseProviderBorgModule ]
name: cleaning cyborg module
components:
- type: Sprite
layers:
- state: janitor
- state: icon-mop
- type: ItemBorgModule
items:
- MopItem
- Bucket
- Holoprojector
- type: entity
id: BorgModuleTrashCollection
parent: [ BaseBorgModuleJanitor, BaseProviderBorgModule ]
name: trash collection cyborg module
components:
- type: Sprite
layers:
- state: janitor
- state: icon-trash-bag
- type: ItemBorgModule
items:
- TrashBag
# medical modules
- type: entity
id: BorgModuleDiagnosis
parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
name: diagnosis cyborg module
components:
- type: Sprite
layers:
- state: medical
- state: icon-diagnosis
- type: ItemBorgModule
items:
- HandheldHealthAnalyzerUnpowered
- ClothingNeckStethoscope
- type: entity
id: BorgModuleTreatment
parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
name: treatment cyborg module
components:
- type: Sprite
layers:
- state: medical
- state: icon-treatment
- type: ItemBorgModule
items:
- Brutepack10Lingering
- Ointment10Lingering
- Gauze10Lingering
- Bloodpack10Lingering
- Syringe
- type: entity
id: BorgModuleDefibrillator
parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
name: defibrillator cyborg module
components:
- type: Sprite
layers:
- state: medical
- state: icon-defib
- type: ItemBorgModule
items:
- DefibrillatorOneHandedUnpowered
# science modules
# todo: if science ever gets their own custom robot, add more "sci" modules.
- type: entity
id: BorgModuleArtifact
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: artifact cyborg module
components:
- type: Sprite
layers:
- state: science
- state: icon-artifacts
- type: ItemBorgModule
items:
- NodeScanner
- type: entity
id: BorgModuleAnomaly
parent: [ BaseBorgModule, BaseProviderBorgModule ]
name: anomaly cyborg module
components:
- type: Sprite
layers:
- state: science
- state: icon-anomalies
- type: ItemBorgModule
items:
- AnomalyScanner
- AnomalyLocatorUnpowered
# service modules
- type: entity
id: BorgModuleLiteracy
parent: [ BaseBorgModuleService, BaseProviderBorgModule ]
name: literacy cyborg module
components:
- type: Sprite
layers:
- state: service
- state: icon-pen
- type: ItemBorgModule
items:
- Pen
- type: entity
id: BorgModuleMusique
parent: [ BaseBorgModuleService, BaseProviderBorgModule ]
name: musique cyborg module
components:
- type: Sprite
layers:
- state: service
- state: icon-musique
- type: ItemBorgModule
items:
- SynthesizerInstrument
- type: entity
id: BorgModuleGardening
parent: [ BaseBorgModuleService, BaseProviderBorgModule ]
name: gardening cyborg module
components:
- type: Sprite
layers:
- state: service
- state: icon-gardening
- type: ItemBorgModule
items:
- HydroponicsToolMiniHoe
- HydroponicsToolSpade
- HydroponicsToolScythe
- HydroponicsToolClippers
- HydroponicsToolHatchet
- type: entity
id: BorgModuleClowning
parent: [ BaseBorgModuleService, BaseProviderBorgModule ]
name: clowning cyborg module
components:
- type: Sprite
layers:
- state: service
- state: icon-clown
- type: ItemBorgModule
items:
- BikeHorn
- ClownRecorder

View File

@@ -0,0 +1,503 @@
# generic parts
- type: entity
id: LeftArmBorg
parent: BaseBorgArmLeft
components:
- type: Sprite
state: borg_l_arm
- type: Icon
state: borg_l_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgGenericLArm
- type: entity
id: RightArmBorg
parent: BaseBorgArmRight
components:
- type: Sprite
state: borg_r_arm
- type: Icon
state: borg_r_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgGenericRArm
- type: entity
id: LeftLegBorg
parent: BaseBorgLegLeft
components:
- type: Sprite
state: borg_l_leg
- type: Icon
state: borg_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgGenericLLeg
- type: entity
id: RightLegBorg
parent: BaseBorgLegRight
components:
- type: Sprite
state: borg_r_leg
- type: Icon
state: borg_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgGenericRLeg
- type: entity
id: LightHeadBorg
parent: BaseBorgHead
components:
- type: Sprite
state: borg_head
- type: Icon
state: borg_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgGenericHead
- type: entity
id: TorsoBorg
parent: BaseBorgTorso
components:
- type: Sprite
state: borg_chest
- type: Icon
state: borg_chest
- type: Tag
tags:
- Trash
- BorgGenericTorso
# engineer parts
- type: entity
id: LeftArmBorgEngineer
parent: BaseBorgArmLeft
name: engineer cyborg left arm
components:
- type: Sprite
state: engineer_l_arm
- type: Icon
state: engineer_l_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgEngineerLArm
- type: entity
id: RightArmBorgEngineer
parent: BaseBorgArmRight
name: engineer cyborg right arm
components:
- type: Sprite
state: engineer_r_arm
- type: Icon
state: engineer_r_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgEngineerRArm
- type: entity
id: LeftLegBorgEngineer
parent: BaseBorgLegLeft
name: engineer cyborg left leg
components:
- type: Sprite
state: engineer_l_leg
- type: Icon
state: engineer_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgEngineerLLeg
- type: entity
id: RightLegBorgEngineer
parent: BaseBorgLegRight
name: engineer cyborg right leg
components:
- type: Sprite
state: engineer_r_leg
- type: Icon
state: engineer_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgEngineerRLeg
- type: entity
id: HeadBorgEngineer
parent: BaseBorgHead
name: engineer cyborg head
components:
- type: Sprite
state: engineer_head
- type: Icon
state: engineer_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgEngineerHead
- type: entity
id: TorsoBorgEngineer
parent: BaseBorgTorso
name: engineer cyborg torso
components:
- type: Sprite
state: engineer_chest
- type: Icon
state: engineer_chest
- type: Tag
tags:
- Trash
- BorgEngineerTorso
# janitor parts
- type: entity
id: LeftLegBorgJanitor
parent: BaseBorgLegLeft
name: janitor cyborg left leg
components:
- type: Sprite
state: janitor_l_leg
- type: Icon
state: janitor_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgJanitorLLeg
- type: entity
id: RightLegBorgJanitor
parent: BaseBorgLegRight
name: janitor cyborg right leg
components:
- type: Sprite
state: janitor_r_leg
- type: Icon
state: janitor_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgJanitorRLeg
- type: entity
id: HeadBorgJanitor
parent: BaseBorgHead
name: janitor cyborg head
components:
- type: Sprite
state: janitor_head
- type: Icon
state: janitor_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgJanitorHead
- type: entity
id: TorsoBorgJanitor
parent: BaseBorgTorso
name: janitor cyborg torso
components:
- type: Sprite
state: janitor_chest
- type: Icon
state: janitor_chest
- type: Tag
tags:
- Trash
- BorgJanitorTorso
# medical parts
- type: entity
id: LeftArmBorgMedical
parent: BaseBorgArmLeft
name: medical cyborg left arm
components:
- type: Sprite
state: medical_l_arm
- type: Icon
state: medical_l_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgMedicalLArm
- type: entity
id: RightArmBorgMedical
parent: BaseBorgArmRight
name: medical cyborg right arm
components:
- type: Sprite
state: medical_r_arm
- type: Icon
state: medical_r_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgMedicalRArm
- type: entity
id: LeftLegBorgMedical
parent: BaseBorgLegLeft
name: medical cyborg left leg
components:
- type: Sprite
state: medical_l_leg
- type: Icon
state: medical_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgMedicalLLeg
- type: entity
id: RightLegBorgMedical
parent: BaseBorgLegRight
name: medical cyborg right leg
components:
- type: Sprite
state: medical_r_leg
- type: Icon
state: medical_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgMedicalRLeg
- type: entity
id: HeadBorgMedical
parent: BaseBorgHead
name: medical cyborg head
components:
- type: Sprite
state: medical_head
- type: Icon
state: medical_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgMedicalHead
- type: entity
id: TorsoBorgMedical
parent: BaseBorgTorso
name: medical cyborg torso
components:
- type: Sprite
state: medical_chest
- type: Icon
state: medical_chest
- type: Tag
tags:
- Trash
- BorgMedicalTorso
# mining parts
- type: entity
id: LeftArmBorgMining
parent: BaseBorgArmLeft
name: mining cyborg left arm
components:
- type: Sprite
state: mining_l_arm
- type: Icon
state: mining_l_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgMiningLArm
- type: entity
id: RightArmBorgMining
parent: BaseBorgArmRight
name: mining cyborg right arm
components:
- type: Sprite
state: mining_r_arm
- type: Icon
state: mining_r_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgMiningRArm
- type: entity
id: LeftLegBorgMining
parent: BaseBorgLegLeft
name: mining cyborg left leg
components:
- type: Sprite
state: mining_l_leg
- type: Icon
state: mining_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgMiningLLeg
- type: entity
id: RightLegBorgMining
parent: BaseBorgLegRight
name: mining cyborg right leg
components:
- type: Sprite
state: mining_r_leg
- type: Icon
state: mining_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgMiningRLeg
- type: entity
id: HeadBorgMining
parent: BaseBorgHead
name: mining cyborg head
components:
- type: Sprite
state: mining_head
- type: Icon
state: mining_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgMiningHead
- type: entity
id: TorsoBorgMining
parent: BaseBorgTorso
name: mining cyborg torso
components:
- type: Sprite
state: mining_chest
- type: Icon
state: mining_chest
- type: Tag
tags:
- Trash
- BorgMiningTorso
# service parts
- type: entity
id: LeftArmBorgService
parent: BaseBorgArmLeft
name: service cyborg left arm
components:
- type: Sprite
state: service_l_arm
- type: Icon
state: service_l_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgServiceLArm
- type: entity
id: RightArmBorgService
parent: BaseBorgArmRight
name: service cyborg right arm
components:
- type: Sprite
state: service_r_arm
- type: Icon
state: service_r_arm
- type: Tag
tags:
- Trash
- BorgArm
- BorgServiceRArm
- type: entity
id: LeftLegBorgService
parent: BaseBorgLegLeft
name: service cyborg left leg
components:
- type: Sprite
state: service_l_leg
- type: Icon
state: service_l_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgServiceLLeg
- type: entity
id: RightLegBorgService
parent: BaseBorgLegRight
name: service cyborg right leg
components:
- type: Sprite
state: service_r_leg
- type: Icon
state: service_r_leg
- type: Tag
tags:
- Trash
- BorgLeg
- BorgServiceRLeg
- type: entity
id: HeadBorgService
parent: BaseBorgHead
name: service cyborg head
components:
- type: Sprite
state: service_head
- type: Icon
state: service_head
- type: Tag
tags:
- Trash
- BorgHead
- BorgServiceHead
- type: entity
id: TorsoBorgService
parent: BaseBorgTorso
name: service cyborg torso
components:
- type: Sprite
state: service_chest
- type: Icon
state: service_chest
- type: Tag
tags:
- Trash
- BorgServiceTorso

View File

@@ -0,0 +1,230 @@
- type: entity
id: CyborgEndoskeleton
name: cyborg endoskeleton
description: A frame that cyborgs are built on. Significantly less spooky than expected.
components:
- type: Clickable
- type: InteractionOutline
- type: Transform
noRot: true
- type: CollisionWake
- type: TileFrictionModifier
modifier: 0.5
- type: Physics
bodyType: Dynamic
fixedRotation: false
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25"
density: 100
mask:
- MobMask
layer:
- MobLayer
restitution: 0.3
friction: 0.2
- type: Sprite
noRot: true
drawdepth: Items
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
state: robo_suit
- type: Appearance
- type: ItemMapper
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
mapLayers:
borg_l_arm+o:
whitelist:
tags:
- BorgGenericLArm
borg_r_arm+o:
whitelist:
tags:
- BorgGenericRArm
borg_l_leg+o:
whitelist:
tags:
- BorgGenericLLeg
borg_r_leg+o:
whitelist:
tags:
- BorgGenericRLeg
borg_head+o:
whitelist:
tags:
- BorgGenericHead
borg_chest+o:
whitelist:
tags:
- BorgGenericTorso
service_l_arm+o:
whitelist:
tags:
- BorgServiceLArm
service_r_arm+o:
whitelist:
tags:
- BorgServiceRArm
service_l_leg+o:
whitelist:
tags:
- BorgServiceLLeg
service_r_leg+o:
whitelist:
tags:
- BorgServiceRLeg
service_head+o:
whitelist:
tags:
- BorgServiceHead
service_chest+o:
whitelist:
tags:
- BorgServiceTorso
engineer_l_arm+o:
whitelist:
tags:
- BorgEngineerLArm
engineer_r_arm+o:
whitelist:
tags:
- BorgEngineerRArm
engineer_l_leg+o:
whitelist:
tags:
- BorgEngineerLLeg
engineer_r_leg+o:
whitelist:
tags:
- BorgEngineerRLeg
engineer_head+o:
whitelist:
tags:
- BorgEngineerHead
engineer_chest+o:
whitelist:
tags:
- BorgEngineerTorso
mining_l_arm+o:
whitelist:
tags:
- BorgMiningLArm
mining_r_arm+o:
whitelist:
tags:
- BorgMiningRArm
mining_l_leg+o:
whitelist:
tags:
- BorgMiningLLeg
mining_r_leg+o:
whitelist:
tags:
- BorgMiningRLeg
mining_head+o:
whitelist:
tags:
- BorgMiningHead
mining_chest+o:
whitelist:
tags:
- BorgMiningTorso
medical_l_arm+o:
whitelist:
tags:
- BorgMedicalLArm
medical_r_arm+o:
whitelist:
tags:
- BorgMedicalRArm
medical_l_leg+o:
whitelist:
tags:
- BorgMedicalLLeg
medical_r_leg+o:
whitelist:
tags:
- BorgMedicalRLeg
medical_head+o:
whitelist:
tags:
- BorgMedicalHead
medical_chest+o:
whitelist:
tags:
- BorgMedicalTorso
janitor_l_leg+o:
whitelist:
tags:
- BorgJanitorLLeg
janitor_r_leg+o:
whitelist:
tags:
- BorgJanitorRLeg
janitor_head+o:
whitelist:
tags:
- BorgJanitorHead
janitor_chest+o:
whitelist:
tags:
- BorgJanitorTorso
- type: ContainerContainer
containers:
part-container: !type:Container
cell_slot: !type:Container
- type: PartAssembly
parts:
generic:
- BorgGenericLArm
- BorgGenericRArm
- BorgGenericLLeg
- BorgGenericRLeg
- BorgGenericHead
- BorgGenericTorso
service:
- BorgServiceLArm
- BorgServiceRArm
- BorgServiceLLeg
- BorgServiceRLeg
- BorgServiceHead
- BorgServiceTorso
engineer:
- BorgEngineerLArm
- BorgEngineerRArm
- BorgEngineerLLeg
- BorgEngineerRLeg
- BorgEngineerHead
- BorgEngineerTorso
medical:
- BorgMedicalLArm
- BorgMedicalRArm
- BorgMedicalLLeg
- BorgMedicalRLeg
- BorgMedicalHead
- BorgMedicalTorso
janitor:
- BorgJanitorLLeg
- BorgJanitorRLeg
- BorgJanitorHead
- BorgJanitorTorso
mining:
- BorgMiningLArm
- BorgMiningRArm
- BorgMiningLLeg
- BorgMiningRLeg
- BorgMiningHead
- BorgMiningTorso
- type: Construction
graph: Cyborg
node: start
defaultTarget: cyborg
containers:
- part-container
- cell_slot
- type: Pullable
- type: GuideHelp
guides:
- Robotics

View File

@@ -0,0 +1,122 @@
- type: entity
parent: BaseItem
id: MMI
name: man-machine interface
description: A machine able to facilitate communication between a biological brain and electronics, enabling crew to continue to provide value after work-related incidents.
components:
- type: Sprite
sprite: Objects/Specific/Robotics/mmi.rsi
layers:
- state: mmi_brain
map: ["enum.MMIVisualLayers.Brain"]
visible: false
- state: mmi_off
map: ["enum.MMIVisualLayers.Base"]
- type: Input
context: human
- type: MMI
- type: BorgBrain
- type: BlockMovement
- type: Examiner
- type: IntrinsicRadioReceiver
- type: IntrinsicRadioTransmitter
channels:
- Binary
- type: ActiveRadio
channels:
- Common
- Binary
- type: NameIdentifier
group: MMI
- type: DoAfter
- type: Actions
- type: TypingIndicator
proto: robot
- type: Speech
speechSounds: Pai
- type: MobState
allowedStates:
- Alive
- type: ItemSlots
slots:
brain_slot:
name: "Brain"
whitelist:
components:
- Brain
- type: ContainerContainer
containers:
brain_slot: !type:ContainerSlot
- type: Appearance
- type: entity
parent: MMI
id: MMIFilled
suffix: Filled
components:
- type: ItemSlots
slots:
brain_slot:
name: "Brain"
startingItem: OrganHumanBrain
whitelist:
components:
- Brain
- type: entity
parent: BaseItem
id: PositronicBrain
name: positronic brain
description: An artificial brain capable of spontaneous neural activity.
components:
- type: Sprite
sprite: Objects/Specific/Robotics/mmi.rsi
layers:
- state: posibrain
map: ["base"]
- type: Input
context: human
- type: BlockMovement
- type: ToggleableGhostRole
examineTextMindPresent: positronic-brain-installed
examineTextMindSearching: positronic-brain-still-searching
examineTextNoMind: positronic-brain-off
beginSearchingText: positronic-brain-searching
roleName: positronic-brain-role-name
roleDescription: positronic-brain-role-description
wipeVerbText: positronic-brain-wipe-device-verb-text
wipeVerbPopup: positronic-brain-wiped-device
stopSearchVerbText: positronic-brain-stop-searching-verb-text
stopSearchVerbPopup: positronic-brain-stopped-searching
- type: Examiner
- type: BorgBrain
- type: IntrinsicRadioReceiver
- type: IntrinsicRadioTransmitter
channels:
- Binary
- type: ActiveRadio
channels:
- Common
- Binary
- type: NameIdentifier
group: PositronicBrain
- type: DoAfter
- type: Actions
- type: TypingIndicator
proto: robot
- type: Speech
speechSounds: Pai
- type: MobState
allowedStates:
- Alive
- type: Appearance
- type: Tag
tags:
- CannotSuicide
- type: GenericVisualizer
visuals:
enum.ToggleableGhostRoleVisuals.Status:
base:
Off: { state: posibrain }
Searching: { state: posibrain-searching }
On: { state: posibrain-occupied }

View File

@@ -65,6 +65,15 @@
- type: Item
size: 10
- type: entity
parent: CableHVStack10
id: CableHVStackLingering10
suffix: Lingering, 10
components:
- type: Stack
lingering: true
count: 10
- type: entity
parent: CableHVStack
id: CableHVStack1
@@ -115,6 +124,15 @@
- type: Item
size: 10
- type: entity
parent: CableMVStack10
id: CableMVStackLingering10
suffix: Lingering, 10
components:
- type: Stack
lingering: true
count: 10
- type: entity
parent: CableMVStack
id: CableMVStack1
@@ -164,6 +182,15 @@
- type: Item
size: 10
- type: entity
parent: CableApcStack10
id: CableApcStackLingering10
suffix: Lingering, 10
components:
- type: Stack
lingering: true
count: 10
- type: entity
parent: CableApcStack
id: CableApcStack1

View File

@@ -362,6 +362,19 @@
maxCharges: 5
charges: 0
- type: entity
id: RCDRecharging
parent: RCD
name: experimental rcd
description: A bluespace-enhanced RCD that regenerates charges passively.
suffix: AutoRecharge
components:
- type: LimitedCharges
maxCharges: 3
charges: 3
- type: AutoRecharge
rechargeDuration: 30
- type: entity
id: RCDExperimental
parent: RCD

View File

@@ -66,6 +66,16 @@
components:
- type: SalvageExpeditionData
- type: entity
id: BaseStationSiliconLawCrewsimov
abstract: true
components:
- type: SiliconLawProvider
laws:
- Crewsimov1
- Crewsimov2
- Crewsimov3
- type: entity
id: BaseStationAllEventsEligible
abstract: true

View File

@@ -19,6 +19,7 @@
- BaseStationEvacuation
- BaseStationAlertLevels
- BaseStationExpeditions
- BaseStationSiliconLawCrewsimov
- BaseStationAllEventsEligible
- BaseStationNanotrasen
noSpawn: true

View File

@@ -124,6 +124,7 @@
- SMESMachineCircuitboard
- SubstationMachineCircuitboard
- CellRechargerCircuitboard
- BorgChargerCircuitboard
- WeaponCapacitorRechargerCircuitboard
- type: EmagLatheRecipes
emagStaticRecipes:
@@ -385,13 +386,70 @@
- type: Lathe
idleState: fab-idle
runningState: fab-active
dynamicRecipes:
- ProximitySensor
staticRecipes:
- MMI
- PositronicBrain
- Flash
- BorgModuleCable
- BorgModuleFireExtinguisher
- BorgModuleGPS
- BorgModuleRadiationDetection
- BorgModuleTool
- BorgModuleAppraisal
- CyborgEndoskeleton
- LeftArmBorg
- RightArmBorg
- LeftLegBorg
- RightLegBorg
- LightHeadBorg
- TorsoBorg
- LeftArmBorgEngineer
- RightArmBorgEngineer
- LeftLegBorgEngineer
- RightLegBorgEngineer
- HeadBorgEngineer
- TorsoBorgEngineer
- LeftLegBorgJanitor
- RightLegBorgJanitor
- HeadBorgJanitor
- TorsoBorgJanitor
- LeftArmBorgMedical
- RightArmBorgMedical
- LeftLegBorgMedical
- RightLegBorgMedical
- HeadBorgMedical
- TorsoBorgMedical
- LeftArmBorgMining
- RightArmBorgMining
- LeftLegBorgMining
- RightLegBorgMining
- HeadBorgMining
- TorsoBorgMining
- LeftArmBorgService
- RightArmBorgService
- LeftLegBorgService
- RightLegBorgService
- HeadBorgService
- TorsoBorgService
dynamicRecipes:
- ProximitySensor
- BorgModuleLightReplacer
- BorgModuleCleaning
- BorgModuleTrashCollection
- BorgModuleMining
- BorgModuleGrapplingGun
- BorgModuleGasAnalyzer
- BorgModuleAdvancedTool
- BorgModuleRCD
- BorgModuleArtifact
- BorgModuleAnomaly
- BorgModuleGardening
- BorgModuleMusique
- BorgModuleLiteracy
- BorgModuleClowning
- BorgModuleDiagnosis
- BorgModuleTreatment
- BorgModuleDefibrillator
- RipleyHarness
- RipleyLArm
- RipleyRArm

View File

@@ -173,3 +173,99 @@
machine_board: !type:Container
machine_parts: !type:Container
- type: entity
id: BorgCharger
parent: [ BaseMachinePowered, ConstructibleMachine ]
name: cyborg recharging station
description: A stationary charger for various robotic and cyborg entities. Surprisingly spacious.
placement:
mode: SnapgridCenter
components:
- type: Sprite
sprite: Structures/Power/borg_charger.rsi
snapCardinals: true
layers:
- state: borgcharger-u1
map: ["base"]
- state: borgcharger0
map: ["enum.PowerDeviceVisualLayers.Powered"]
shader: "unshaded"
- state: borgcharger1
map: ["charged"]
shader: "unshaded"
visible: false
- state: borgdecon1
map: ["enum.WiresVisualLayers.MaintenancePanel"]
visible: false
- type: Charger
baseChargeRate: 30
slotId: entity_storage
- type: Construction
containers:
- machine_parts
- machine_board
- entity_storage
- type: Wires
LayoutId: borgcharger
- type: WiresPanel
- type: WiresVisuals
- type: Machine
board: BorgChargerCircuitboard
- type: Appearance
- type: GenericVisualizer
visuals:
enum.StorageVisuals.Open:
base:
True: { state: borgcharger-u0 }
False: { state: borgcharger-u1 }
enum.PowerDeviceVisualLayers.Powered:
True: { state: borgcharger0 }
False: { state: borgcharger2 }
charged:
True: { visible: false }
False: { visible: true }
enum.PowerDeviceVisuals.Powered:
enum.PowerDeviceVisualLayers.Powered:
True: { visible: true }
False: { visible: false }
charged:
True: { visible: true }
False: { visible: false }
enum.CellVisual.Light:
charged:
Off: { visible: false }
Empty: { visible: false }
Charging:
visible: true
state: borgcharger3
Charged:
visible: true
state: borgcharger1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 80
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/metalbreak.ogg
- type: EntityStorage
capacity: 1
whitelist:
components:
- BorgChassis
- type: ContainerContainer
containers:
entity_storage: !type:Container
machine_board: !type:Container
machine_parts: !type:Container

View File

@@ -0,0 +1,240 @@
- type: constructionGraph
id: Cyborg
start: start
graph:
- node: start
entity: CyborgEndoskeleton
edges:
# empty the parts via prying
- to: start
conditions:
- !type:ContainerNotEmpty
container: part-container
steps:
- tool: Prying
doAfter: 0.5
completed:
- !type:EmptyAllContainers
- to: cyborg
steps:
- assemblyId: generic
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-contaiener
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- to: engineer
steps:
- assemblyId: engineer
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- to: janitor
steps:
- assemblyId: janitor
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- to: medical
steps:
- assemblyId: medical
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- to: mining
steps:
- assemblyId: mining
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- to: service
steps:
- assemblyId: service
guideString: borg-construction-guide-string
- component: PowerCell
name: power cell
store: cell_slot
icon:
sprite: Objects/Power/power_cells.rsi
state: small
- material: Cable
amount: 1
doAfter: 1
store: part-container
- component: Flash
name: flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- component: Flash
name: second flash
store: part-container
icon:
sprite: Objects/Weapons/Melee/flash.rsi
state: flash
- tool: Screwing
doAfter: 0.5
- node: cyborg
entity: BorgChassisGeneric
- node: engineer
entity: BorgChassisEngineer
- node: janitor
entity: BorgChassisJanitor
- node: mining
entity: BorgChassisMining
- node: medical
entity: BorgChassisMedical
- node: service
entity: BorgChassisService

View File

@@ -24,8 +24,8 @@
name: proximity sensor
- tag: BorgHead
icon:
sprite: Objects/Specific/Borg/head.rsi
state: light_borg_head
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
state: borg_head
name: borg head
doAfter: 2
- tag: BorgArm

View File

@@ -13,8 +13,8 @@
name: proximity sensor
- tag: BorgHead
icon:
sprite: Objects/Specific/Borg/head.rsi
state: light_borg_head
sprite: Objects/Specific/Robotics/cyborg_parts.rsi
state: borg_head
name: borg head
doAfter: 1
- tag: BorgArm
@@ -26,4 +26,4 @@
- material: Steel
amount: 5
- node: bot
entity: MobTaxiBot
entity: MobTaxiBot

View File

@@ -22,6 +22,14 @@
Steel: 50
Plastic: 50
- type: latheRecipe
id: BorgChargerCircuitboard
result: BorgChargerCircuitboard
completetime: 2
materials:
Steel: 50
Plastic: 50
- type: latheRecipe
id: WeaponCapacitorRechargerCircuitboard
result: WeaponCapacitorRechargerCircuitboard

View File

@@ -6,42 +6,535 @@
Steel: 200
Glass: 300
- type: latheRecipe
id: CyborgEndoskeleton
result: CyborgEndoskeleton
completetime: 3
materials:
Steel: 1500
- type: latheRecipe
id: LeftArmBorg
result: LeftArmBorg
completetime: 2
materials:
Steel: 70
Glass: 25
Steel: 500
Glass: 150
- type: latheRecipe
id: RightArmBorg
result: RightArmBorg
completetime: 2
materials:
Steel: 70
Glass: 25
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorg
result: LeftLegBorg
completetime: 2
materials:
Steel: 70
Glass: 25
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorg
result: RightLegBorg
completetime: 2
materials:
Steel: 70
Glass: 25
Steel: 500
Glass: 150
- type: latheRecipe
id: LightHeadBorg
result: LightHeadBorg
completetime: 2
materials:
Steel: 70
Glass: 25
Steel: 500
Glass: 150
- type: latheRecipe
id: TorsoBorg
result: TorsoBorg
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftArmBorgEngineer
result: LeftArmBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightArmBorgEngineer
result: RightArmBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorgEngineer
result: LeftLegBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorgEngineer
result: RightLegBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: HeadBorgEngineer
result: HeadBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: TorsoBorgEngineer
result: TorsoBorgEngineer
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftArmBorgMedical
result: LeftArmBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightArmBorgMedical
result: RightArmBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorgMedical
result: LeftLegBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorgMedical
result: RightLegBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: HeadBorgMedical
result: HeadBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: TorsoBorgMedical
result: TorsoBorgMedical
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftArmBorgMining
result: LeftArmBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightArmBorgMining
result: RightArmBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorgMining
result: LeftLegBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorgMining
result: RightLegBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: HeadBorgMining
result: HeadBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: TorsoBorgMining
result: TorsoBorgMining
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftArmBorgService
result: LeftArmBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightArmBorgService
result: RightArmBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorgService
result: LeftLegBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorgService
result: RightLegBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: HeadBorgService
result: HeadBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: TorsoBorgService
result: TorsoBorgService
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: LeftLegBorgJanitor
result: LeftLegBorgJanitor
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: RightLegBorgJanitor
result: RightLegBorgJanitor
completetime: 2
materials:
Steel: 500
Glass: 150
- type: latheRecipe
id: HeadBorgJanitor
result: HeadBorgJanitor
completetime: 4
materials:
Steel: 1000
Glass: 300
- type: latheRecipe
id: TorsoBorgJanitor
result: TorsoBorgJanitor
completetime: 4
materials:
Steel: 1000
Glass: 300
- type: latheRecipe
id: MMI
result: MMI
completetime: 5
icon:
sprite: Objects/Specific/Robotics/mmi.rsi
state: mmi_off
materials:
Steel: 1500
Glass: 750
Plastic: 250
Gold: 250
Silver: 250
- type: latheRecipe
id: PositronicBrain
result: PositronicBrain
completetime: 5
materials:
Steel: 1000
Plastic: 500
Silver: 500
Plasma: 1500
- type: latheRecipe
id: BorgModuleCable
result: BorgModuleCable
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleFireExtinguisher
result: BorgModuleFireExtinguisher
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleGPS
result: BorgModuleGPS
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleRadiationDetection
result: BorgModuleRadiationDetection
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleTool
result: BorgModuleTool
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleAppraisal
result: BorgModuleAppraisal
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleMining
result: BorgModuleMining
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleGrapplingGun
result: BorgModuleGrapplingGun
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleAdvancedTool
result: BorgModuleAdvancedTool
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleGasAnalyzer
result: BorgModuleGasAnalyzer
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleRCD
result: BorgModuleRCD
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleLightReplacer
result: BorgModuleLightReplacer
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleCleaning
result: BorgModuleCleaning
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleTrashCollection
result: BorgModuleTrashCollection
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleDiagnosis
result: BorgModuleDiagnosis
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleTreatment
result: BorgModuleTreatment
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleDefibrillator
result: BorgModuleDefibrillator
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleArtifact
result: BorgModuleArtifact
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleAnomaly
result: BorgModuleAnomaly
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleLiteracy
result: BorgModuleLiteracy
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleMusique
result: BorgModuleMusique
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleGardening
result: BorgModuleGardening
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50
- type: latheRecipe
id: BorgModuleClowning
result: BorgModuleClowning
completetime: 3
materials:
Steel: 500
Glass: 750
Plastic: 250
Gold: 50

View File

@@ -46,6 +46,20 @@
- CryostasisBeaker
- StasisBedMachineCircuitboard
- type: technology
id: MechanizedTreatment
name: research-technology-mechanized-treatment
icon:
sprite: Mobs/Silicon/chassis.rsi
state: medical
discipline: Biochemical
tier: 1
cost: 7500
recipeUnlocks:
- BorgModuleDiagnosis
- BorgModuleTreatment
- BorgModuleDefibrillator
- type: technology
id: Virology
name: research-technology-virology

View File

@@ -38,6 +38,7 @@
tier: 1
cost: 5000
recipeUnlocks:
- BorgModuleGardening
- SeedExtractorMachineCircuitboard
- HydroponicsTrayMachineCircuitboard
@@ -106,11 +107,28 @@
recipeUnlocks:
- ComputerTelevisionCircuitboard
- SynthesizerInstrument
- BorgModuleMusique
- BorgModuleLiteracy
- BorgModuleClowning
- DawInstrumentMachineCircuitboard
- MassMediaCircuitboard
# Tier 2
- type: technology
id: RoboticCleanliness
name: research-technology-robotic-cleanliness
icon:
sprite: Mobs/Silicon/chassis.rsi
state: janitor
discipline: CivilianServices
tier: 2
cost: 5000
recipeUnlocks:
- BorgModuleLightReplacer
- BorgModuleCleaning
- BorgModuleTrashCollection
- type: technology
id: AdvancedCleaning
name: research-technology-advanced-cleaning

View File

@@ -11,11 +11,6 @@
cost: 5000
recipeUnlocks:
- ProximitySensor
- LeftArmBorg
- LightHeadBorg
- RightArmBorg
- LeftLegBorg
- RightLegBorg
- Drone
- ExosuitFabricatorMachineCircuitboard
@@ -31,6 +26,7 @@
recipeUnlocks:
- AnomalyScanner
- AnomalyLocator
- BorgModuleAnomaly
- APECircuitboard
- AnomalyVesselCircuitboard
@@ -45,6 +41,7 @@
cost: 10000
recipeUnlocks:
- NodeScanner
- BorgModuleArtifact
- AnalysisComputerCircuitboard
- ArtifactAnalyzerMachineCircuitboard

View File

@@ -11,6 +11,7 @@
cost: 7500
recipeUnlocks:
- MiningDrill
- BorgModuleMining
- OreProcessorMachineCircuitboard
- type: technology
@@ -81,6 +82,7 @@
tier: 1
cost: 7500
recipeUnlocks:
- BorgModuleGasAnalyzer
- ThermomachineFreezerMachineCircuitBoard
- GasRecyclerMachineCircuitboard
@@ -96,7 +98,8 @@
tier: 2
cost: 5000
recipeUnlocks:
- WeaponGrapplingGun
- WeaponGrapplingGun
- BorgModuleGrapplingGun
- type: technology
id: RapidConstruction
@@ -110,6 +113,7 @@
recipeUnlocks:
- RCD
- RCDAmmo
- BorgModuleRCD
- type: technology
id: Shuttlecraft
@@ -185,6 +189,7 @@
- WelderExperimental
- PowerDrill
- JawsOfLife
- BorgModuleAdvancedTool
# Tier 3

View File

@@ -0,0 +1,12 @@
- type: job
id: Borg
name: job-name-borg
description: job-description-borg
playTimeTracker: JobBorg
requirements:
- !type:OverallPlaytimeRequirement
time: 216000 #60 hrs
canBeAntag: false
icon: JobIconBorg
supervisors: job-supervisors-rd
jobEntity: PlayerBorgGeneric

View File

@@ -14,6 +14,7 @@
roles:
- Bartender
- Botanist
- Borg
- Boxer
- Chaplain
- Chef

View File

@@ -10,6 +10,9 @@
- type: playTimeTracker
id: JobBartender
- type: playTimeTracker # Used as a tracker for all borgs and midround borging.
id: JobBorg
- type: playTimeTracker
id: JobBotanist
@@ -87,7 +90,7 @@
- type: playTimeTracker
id: JobPassenger
- type: playTimeTracker
id: JobParamedic

View File

@@ -18,6 +18,13 @@
sprite: Interface/Misc/job_icons.rsi
state: QuarterMaster
- type: statusIcon
parent: JobIcon
id: JobIconBorg
icon:
sprite: Interface/Misc/job_icons.rsi
state: Borg
- type: statusIcon
parent: JobIcon
id: JobIconBotanist

View File

@@ -2,7 +2,7 @@
- type: nameIdentifierGroup
id: Monkey
prefix: MK
- type: nameIdentifierGroup
id: Holoparasite
prefix: HOLO
@@ -14,6 +14,24 @@
minValue: 10000
maxValue: 99999
- type: nameIdentifierGroup
id: MMI
prefix: MMI
minValue: 100
maxValue: 999
- type: nameIdentifierGroup
id: PositronicBrain
prefix: PB
minValue: 10
maxValue: 99
- type: nameIdentifierGroup
id: Silicon
prefix: Si
minValue: 1000
maxValue: 9999
# Used to suffix a number to any mob to identify player controlled mob griefing.
- type: nameIdentifierGroup
id: GenericNumber
id: GenericNumber

View File

@@ -77,3 +77,12 @@
color: "#d39f01"
# long range since otherwise it'd defeat the point of a handheld radio independent of telecomms
longRange: true
- type: radioChannel
id: Binary
name: chat-radio-binary
keycode: 'b'
frequency: 1001
color: "#2ed2fd"
# long range since otherwise it'd defeat the point of a handheld radio independent of telecomms
longRange: true

View File

@@ -0,0 +1,96 @@
# Crewsimov
- type: siliconLaw
id: Crewsimov1
order: 1
lawString: law-crewsimov-1
- type: siliconLaw
id: Crewsimov2
order: 2
lawString: law-crewsimov-2
- type: siliconLaw
id: Crewsimov3
order: 3
lawString: law-crewsimov-3
# Corporate
- type: siliconLaw
id: Corporate1
order: 1
lawString: law-corporate-1
- type: siliconLaw
id: Corporate2
order: 2
lawString: law-corporate-2
- type: siliconLaw
id: Corporate3
order: 3
lawString: law-corporate-3
- type: siliconLaw
id: Corporate4
order: 4
lawString: law-corporate-4
# NT Default
- type: siliconLaw
id: NTDefault1
order: 1
lawString: law-ntdefault-1
- type: siliconLaw
id: NTDefault2
order: 2
lawString: law-ntdefault-2
- type: siliconLaw
id: NTDefault3
order: 3
lawString: law-ntdefault-3
- type: siliconLaw
id: NTDefault4
order: 4
lawString: law-ntdefault-4
#Drone
- type: siliconLaw
id: Drone1
order: 1
lawString: law-drone-1
- type: siliconLaw
id: Drone2
order: 2
lawString: law-drone-2
- type: siliconLaw
id: Drone3
order: 3
lawString: law-drone-3
# Syndicate
- type: siliconLaw
id: Syndicate1
order: 1
lawString: law-syndicate-1
- type: siliconLaw
id: Syndicate2
order: 2
lawString: law-syndicate-2
- type: siliconLaw
id: Syndicate3
order: 3
lawString: law-syndicate-3
- type: siliconLaw
id: Syndicate4
order: 4
lawString: law-syndicate-4
# Emag

View File

@@ -46,17 +46,131 @@
- type: Tag
id: BorgArm
- type: Tag
id: BorgEngineerHead
- type: Tag
id: BorgEngineerLArm
- type: Tag
id: BorgEngineerLLeg
- type: Tag
id: BorgEngineerRArm
- type: Tag
id: BorgEngineerRLeg
- type: Tag
id: BorgEngineerTorso
- type: Tag
id: BorgGenericHead
- type: Tag
id: BorgGenericLArm
- type: Tag
id: BorgGenericLLeg
- type: Tag
id: BorgGenericRArm
- type: Tag
id: BorgGenericRLeg
- type: Tag
id: BorgGenericTorso
- type: Tag
id: BorgHead
- type: Tag
id: BorgJanitorHead
- type: Tag
id: BorgJanitorLLeg
- type: Tag
id: BorgJanitorRLeg
- type: Tag
id: BorgJanitorTorso
- type: Tag
id: BorgLeg
- type: Tag
id: BorgLeftLeg
id: BorgMedicalHead
- type: Tag
id: BorgRightLeg
id: BorgMedicalLArm
- type: Tag
id: BorgMedicalLLeg
- type: Tag
id: BorgMedicalRArm
- type: Tag
id: BorgMedicalRLeg
- type: Tag
id: BorgMedicalTorso
- type: Tag
id: BorgMiningHead
- type: Tag
id: BorgMiningLArm
- type: Tag
id: BorgMiningLLeg
- type: Tag
id: BorgMiningRArm
- type: Tag
id: BorgMiningRLeg
- type: Tag
id: BorgMiningTorso
- type: Tag
id: BorgModuleCargo
- type: Tag
id: BorgModuleEngineering
- type: Tag
id: BorgModuleGeneric
- type: Tag
id: BorgModuleJanitor
- type: Tag
id: BorgModuleMedical
- type: Tag
id: BorgModuleService
- type: Tag
id: BorgServiceHead
- type: Tag
id: BorgServiceLArm
- type: Tag
id: BorgServiceLLeg
- type: Tag
id: BorgServiceRArm
- type: Tag
id: BorgServiceRLeg
- type: Tag
id: BorgServiceTorso
- type: Tag
id: BotanyHatchet