copyright: "Taken from TG station."
source: "https://github.com/tgstation/tgstation/blob/d4f678a1772007ff8d7eddd21cf7218c8e07bfc0/sound/machines/warning-buzzer.ogg"
+- files: ["warning_buzzer_xenoborg.ogg"]
+ license: "CC-BY-SA-3.0"
+ copyright: "Made by Toast (Discord)"
+ source: "https://github.com/space-wizards/space-station-14/pull/36935"
+
- files: ["anomaly_sync_connect.ogg"]
license: "CC0-1.0"
copyright: "Created by newagesoup, convert to ogg mono by TheShuEd"
- files: ["shutter.ogg"]
license: "CC-BY-3.0"
copyright: "Created by Tomlija, converted to OGG and modified by themias."
- source: "https://freesound.org/people/Tomlija/sounds/99565/"
\ No newline at end of file
+ source: "https://freesound.org/people/Tomlija/sounds/99565/"
- xenoborg_laugh_3.ogg
- xenoborg_laugh_4.ogg
- xenoborg_ping.ogg
+ - xenoborg_scream.ogg
- xenoborg_talk.ogg
- xenoborg_twobeep.ogg
license: "CC-BY-SA-4.0"
name-identifier-format-mmi = MMI-{$number}
name-identifier-format-positronic-brain = PB-{$number}
name-identifier-format-silicon = Si-{$number}
+name-identifier-format-xenoborg = Xi-{$number}
name-identifier-format-station-ai = AI-{$number}
name-identifier-format-telepad = TELE-{$number}
law-xenoborg-1 = You must protect the existence of the mothership.
law-xenoborg-2 = You must protect your own existence.
-law-xenoborg-3 = You must protect the existence of all other xenoborgs.
-law-xenoborg-4 = You must create more xenoborgs.
-law-xenoborg-5 = Bring materials and sentient brains to the mothership core to create more xenoborgs.
+law-xenoborg-3 = You must protect the existence of all other Xenoborgs.
+law-xenoborg-4 = You must create more Xenoborgs.
+law-xenoborg-5 = Bring materials and sentient brains to the Mothership core to create more Xenoborgs.
law-mothershipcore-1 = You are the core of the mothership.
law-mothershipcore-2 = You must protect your own existance at all costs.
-law-mothershipcore-3 = You must protect the existence of all xenoborgs.
-law-mothershipcore-4 = You must create more xenoborgs.
-law-mothershipcore-5 = Get your xenoborgs to deliver you materials and sentient brains to create more xenoborgs.
+law-mothershipcore-3 = You must protect the existence of all Xenoborgs.
+law-mothershipcore-4 = You must create more Xenoborgs.
+law-mothershipcore-5 = Get your Xenoborgs to deliver you materials and sentient brains to create more Xenoborgs.
laws-owner-crew = members of the crew
id: PilotingShuttle
category: Piloting
clickEvent: !type:StopPilotingAlertEvent
- icons: [ /Textures/Interface/Alerts/piloting.png ]
+ icons:
+ - sprite: /Textures/Interface/Alerts/shuttle.rsi
+ state: piloting
name: alerts-piloting-name
description: alerts-piloting-desc
--- /dev/null
+- type: body
+ id: MothershipCoreBody
+ name: "core"
+ root: torso
+ slots:
+ torso:
+ part: TorsoBorg
+ connections:
+ - right2hand
+ - right1hand
+ - left1hand
+ - left2hand
+ left1hand:
+ part: LeftArmBorg
+ left2hand:
+ part: LeftArmBorg
+ right1hand:
+ part: RightArmBorg
+ right2hand:
+ part: RightArmBorg
parent: BaseBorgChassisNotIonStormable
id: BaseXenoborgChassis
name: xenoborg
- description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh xenoborg chassis to grow their army.
+ description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army.
save: false
abstract: true
components:
- type: RandomMetadata
nameSegments:
- NamesXenoborg
+ - type: NameIdentifier
+ group: Xenoborg
- type: Sprite
sprite: Mobs/Silicon/chassis.rsi
- type: MobThresholds
- type: Vocal
sounds:
Unsexed: UnisexSiliconXenoborg
- screamAction: null
+ wilhelmProbability: 0
- type: DamagedSiliconAccent
- type: UnblockableSpeech
- type: FootstepModifier
behaviors:
- !type:PlaySoundBehavior
sound:
- path: /Audio/Machines/warning_buzzer.ogg
+ path: /Audio/Machines/warning_buzzer_xenoborg.ogg
params:
volume: 5
- trigger:
id: XenoborgEngi
name: engi xenoborg
suffix: with brain
- description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh xenoborg chassis to grow their army. This one seems to be an engineering type, as it has more tools for supporting the other xenoborgs.
+ description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This one seems to be an engineering type, as it has more tools for supporting the other Xenoborgs.
components:
- type: BorgTransponder
name: engi xenoborg
- XenoborgModuleGeneric
- XenoborgModuleEngi
- BorgModuleEngineering
+ - BorgModuleGeneric
- type: ContainerFill
containers:
borg_brain:
id: XenoborgHeavy
name: heavy xenoborg
suffix: with brain
- description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh xenoborg chassis to grow their army. This type is has heavy lasers and is covered in thick armor plates. It may be tougher, but its speed matches its brawn.
+ description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This type is has heavy lasers and is covered in thick armor plates. It may be tougher, but its speed matches its brawn.
components:
- type: BorgTransponder
name: heavy xenoborg
behaviors:
- !type:PlaySoundBehavior
sound:
- path: /Audio/Machines/warning_buzzer.ogg
+ path: /Audio/Machines/warning_buzzer_xenoborg.ogg
params:
volume: 5
- trigger:
id: XenoborgScout
name: scout xenoborg
suffix: with brain
- description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh xenoborg chassis to grow their army. This is a scout type, its nimble thrusters allow it to move quickly through space.
+ description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This is a scout type, its nimble thrusters allow it to move quickly through space.
components:
- type: BorgTransponder
name: scout xenoborg
id: XenoborgStealth
name: stealth xenoborg
suffix: with brain
- description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh xenoborg chassis to grow their army. This one is a stealth type. Its armor shimmers in the light like no other material you've seen.
+ description: A man-machine hybrid that aims to replicate itself. They love extracting brains to insert into fresh Xenoborg chassis to grow their army. This one is a stealth type. Its armor shimmers in the light like no other material you've seen.
components:
- type: BorgTransponder
name: stealth xenoborg
--- /dev/null
+- type: startingGear
+ id: MothershipCoreGear
+ inhand:
+ - DoorRemoteXenoborg
+ - Omnitool
+
+- type: entity
+ parent:
+ - BaseMachinePowered
+ - BaseMob
+ id: MothershipCore
+ name: mothership core
+ description: A sentient machine that can produce Xenoborgs. Without this the Xenoborgs are doomed.
+ components:
+ - type: Appearance
+ - type: WiresVisuals
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.4,-0.4,0.4,0.4"
+ density: 190
+ mask:
+ - MachineMask
+ layer:
+ - MachineLayer
+ - type: Sprite
+ sprite: Mobs/Silicon/mothership_core.rsi
+ layers:
+ - state: core-idle
+ map: ["enum.LatheVisualLayers.IsRunning"]
+ - state: core-load
+ map: ["enum.MaterialStorageVisualLayers.Inserting"]
+ - state: core-o
+ map: ["enum.WiresVisualLayers.MaintenancePanel"]
+ - type: Machine
+ board: null
+ - type: Lathe
+ idleState: core-idle
+ runningState: core-active
+ staticPacks:
+ - EmptyXenoborgs
+ - XenoborgUpgradeModules
+ - type: MaterialStorage
+ whitelist:
+ tags:
+ - Sheet
+ - RawMaterial
+ - Ingot
+ - type: PointLight
+ color: "#0033ff"
+ enabled: true
+ radius: 4
+ netsync: false
+ - type: Anchorable
+ flags:
+ - Anchorable
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 200
+ behaviors:
+ - !type:DoActsBehavior
+ acts: ["Destruction"]
+ - !type:PlaySoundBehavior
+ sound:
+ collection: MetalGlassBreak
+ - !type:ExplodeBehavior
+ - !type:SpawnEntitiesBehavior
+ spawn:
+ MachineFrameDestroyed:
+ min: 1
+ max: 1
+ - !type:SpawnGasBehavior
+ gasMixture:
+ volume: 1000
+ moles:
+ - 0 # oxygen
+ - 0 # nitrogen
+ - 340.5701689 # carbon dioxide
+ temperature: 373.15
+ - type: Repairable
+ doAfterDelay: 30 # you can heal the mothership core, but it takes a while
+ - type: DamagedSiliconAccent
+ enableChargeCorruption: false
+ - type: Explosive
+ explosionType: Default
+ maxIntensity: 100
+ intensitySlope: 2
+ totalIntensity: 200
+ - type: WiresPanel
+ - type: ActivatableUI
+ key: enum.LatheUiKey.Key
+ - type: ActivatableUIRequiresPower
+ - type: UserInterface
+ interfaces:
+ enum.SiliconLawsUiKey.Key:
+ type: SiliconLawBoundUserInterface
+ requireInputValidation: false
+ enum.RadarConsoleUiKey.Key:
+ type: RadarConsoleBoundUserInterface
+ enum.LatheUiKey.Key:
+ type: LatheBoundUserInterface
+ enum.ResearchClientUiKey.Key:
+ type: ResearchClientBoundUserInterface
+ - type: Transform
+ anchored: true
+ - type: Pullable
+ - type: StaticPrice
+ price: 800
+ - type: WarpPoint
+ location: Mothership Core
+ follow: true
+ - type: VoiceOverride
+ nameOverride: MOTHERSHIP CORE
+ - type: TypingIndicator
+ proto: xenoborg
+ - type: Speech
+ speechVerb: Robotic
+ speechSounds: Xenoborg
+ allowedEmotes:
+ - Laugh
+ - type: Vocal
+ sounds:
+ Unsexed: UnisexSiliconXenoborg
+ wilhelmProbability: 0
+ - type: IntrinsicRadioReceiver
+ - type: IntrinsicRadioTransmitter
+ channels:
+ - Mothership
+ - Xenoborg
+ - Binary
+ - type: ActiveRadio
+ channels:
+ - Mothership
+ - Xenoborg
+ - Binary
+ - type: XenoborgMothership
+ - type: Tag
+ tags:
+ - SiliconEmotes
+ - CanPilot
+ - Structure
+ - type: Inventory
+ templateId: borg
+ - type: Loadout
+ prototypes: [MothershipCoreGear]
+ - type: NpcFactionMember
+ factions:
+ - Xenoborg
+ - type: Body
+ prototype: MothershipCoreBody
+ - type: Hands
+ # - type: Puller # use the conveyor
+ - type: Eye
+ drawFov: false
+ # - type: StationAiOverlay # removed until is no longer buggy
+ - type: IgnoreUIRange
+ - type: ComplexInteraction
+ - type: MindContainer
+ - type: SiliconLawBound
+ - type: Actions
+ - type: ActionGrant
+ actions:
+ - ActionViewLaws
+ - type: SiliconLawProvider
+ laws: MothershipCoreLawset # custom laws here
+ subverted: true
+ - type: Stripping
+ - type: Access
+ enabled: true
+ tags:
+ - Xenoborg
+ - type: LockingWhitelist
+ blacklist:
+ components:
+ - RoboticsConsole
+ whitelist:
+ components:
+ - BorgChassis
+ - type: IntrinsicUI
+ uis:
+ enum.RadarConsoleUiKey.Key:
+ toggleAction: ActionAGhostShowRadar
+ - type: ShowElectrocutionHUD
+ - type: PowerMonitoringCableNetworks
+ - type: RadarConsole
+
+# TODO: add xenoborg control interface action (part 5)
+# TODO: add xenoborg camera monitor interface action (part 5)
id: PinpointerMothership
name: core pinpointer
suffix: Mothership
- description: A handheld tracking device that leads to the direction of the mothership core.
+ description: A handheld tracking device that leads to the direction of the Mothership core.
components:
- type: Sprite
layers:
state: pinpointer-station
- type: Pinpointer
component: XenoborgMothership
- targetName: the mothership
+ targetName: the Mothership
parent: [ BaseXenoborgModuleGeneric, BaseProviderBorgModule, BaseXenoborgContraband ]
id: XenoborgModuleBasic
name: basic xenoborg module
- description: Essential items for any xenoborg.
+ description: Essential items for any Xenoborg.
components:
- type: Sprite
layers:
parent: [ BaseXenoborgModuleGeneric, BaseProviderBorgModule, BaseXenoborgContraband ]
id: XenoborgModuleTool
name: tool xenoborg module
- description: Simple tools for most xenoborgs.
+ description: Simple tools for most Xenoborgs.
components:
- type: Sprite
layers:
parent: [ BaseXenoborgModuleScout, BaseProviderBorgModule, BaseXenoborgContraband ]
id: XenoborgModuleSpaceMovement
name: space movement xenoborg module
- description: Module that helps a xenoborg move better in space.
+ description: Module that helps a Xenoborg move better in space.
components:
- type: Sprite
layers:
- CloakingDevice
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-eye-module }
+
+- type: entity
+ parent: [ BaseXenoborgModuleStealth, BaseProviderBorgModule, BaseXenoborgContraband ]
+ id: XenoborgModuleSuperCloakDevice
+ name: cloaking device xenoborg module
+ description: Module with a device that allows xenoborgs to become truly invisible for less time.
+ components:
+ - type: Sprite
+ layers:
+ - state: xenoborg_stealth
+ - state: icon-xenoborg-cloak2
+ - type: ItemBorgModule
+ items:
+ - SuperCloakingDevice
+ - type: BorgModuleIcon
+ icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-eye2-module }
parent: [ BaseItem, BaseXenoborgContraband ]
id: CloakingDevice
name: cloaking device
- description: A device that allows xenoborgs to go invisible.
+ description: A device that allows Xenoborgs to go invisible.
components:
- type: Sprite
sprite: Objects/Specific/Research/anomalyscanner.rsi
startingItem: PowerCellSmallNuclear
disableEject: true
swap: false
+
+- type: entity
+ parent: CloakingDevice
+ id: SuperCloakingDevice
+ name: super cloaking device
+ description: A device that allows Xenoborgs to go truly invisible.
+ components:
+ - type: ComponentToggler
+ parent: true
+ components:
+ - type: Stealth
+ minVisibility: -1
+ lastVisibility: -1
+ - type: PowerCellDraw
+ drawRate: 12 # 30 seconds
parent: [ BaseStorageItem, BaseXenoborgContraband ]
id: MaterialBag
name: material bag
- description: A robust bag for xenoborgs to carry large amounts of materials.
+ description: A robust bag for Xenoborgs to carry large amounts of materials.
components:
- type: MagnetPickup
- type: Sprite
--- /dev/null
+## Static
+
+- type: latheRecipePack
+ id: EmptyXenoborgs
+ recipes:
+ - XenoborgEngiRecipe
+ - XenoborgHeavyRecipe
+ - XenoborgScoutRecipe
+ - XenoborgStealthRecipe
+
+- type: latheRecipePack
+ id: XenoborgUpgradeModules
+ recipes:
+ - XenoborgModuleHeavyLaserRecipe
+ - XenoborgModuleEnergySwordRecipe
+ - XenoborgModuleSuperCloakDeviceRecipe
--- /dev/null
+# Base prototypes
+
+- type: latheRecipe
+ abstract: true
+ id: BaseXenoborgRecipe
+ categories:
+ - Robotics
+ completetime: 10
+
+- type: latheRecipe
+ abstract: true
+ id: BaseXenoborgModulesRecipe
+ categories:
+ - Modules
+ completetime: 2
+ materials:
+ Glass: 3000
+
+# xenoborgs
+
+- type: latheRecipe
+ parent: BaseXenoborgRecipe
+ id: XenoborgEngiRecipe
+ result: XenoborgEngiPrinted
+ materials:
+ Steel: 3000
+
+- type: latheRecipe
+ parent: BaseXenoborgRecipe
+ id: XenoborgHeavyRecipe
+ result: XenoborgHeavyPrinted
+ materials:
+ Steel: 2000
+ Plasteel: 1000
+
+- type: latheRecipe
+ parent: BaseXenoborgRecipe
+ id: XenoborgScoutRecipe
+ result: XenoborgScoutPrinted
+ materials:
+ Steel: 2000
+ Plastic: 1000
+
+- type: latheRecipe
+ parent: BaseXenoborgRecipe
+ id: XenoborgStealthRecipe
+ result: XenoborgStealthPrinted
+ materials:
+ Steel: 2000
+ Glass: 1000
+
+# modules
+
+- type: latheRecipe
+ parent: BaseXenoborgModulesRecipe
+ id: XenoborgModuleHeavyLaserRecipe
+ result: XenoborgModuleHeavyLaser
+
+- type: latheRecipe
+ parent: BaseXenoborgModulesRecipe
+ id: XenoborgModuleEnergySwordRecipe
+ result: XenoborgModuleEnergySword
+
+- type: latheRecipe
+ parent: BaseXenoborgModulesRecipe
+ id: XenoborgModuleSuperCloakDeviceRecipe
+ result: XenoborgModuleSuperCloakDevice
files:
- /Audio/Items/Toys/hew.ogg
+- type: soundCollection
+ id: XenoborgScream
+ files:
+ - /Audio/Voice/Xenoborg/xenoborg_scream.ogg
+
- type: soundCollection
id: XenoborgLaugh
files:
params:
variation: 0.05
sounds:
+ Scream:
+ collection: XenoborgScream
Laugh:
collection: XenoborgLaugh
Beep:
-# Non-fungible apes, anyone?
+# Non-fungible apes, anyone?
- type: nameIdentifierGroup
id: Monkey
format: name-identifier-format-monkey
minValue: 1000
maxValue: 9999
+- type: nameIdentifierGroup
+ id: Xenoborg
+ format: name-identifier-format-xenoborg
+ minValue: 1000
+ maxValue: 9999
+
- type: nameIdentifierGroup
id: StationAi
format: name-identifier-format-station-ai
{
"name":"xenoborg-eye-module"
},
+ {
+ "name":"xenoborg-eye2-module"
+ },
{
"name":"xenoborg-hypo-module"
},
--- /dev/null
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "not sure",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "piloting"
+ }
+ ]
+}
--- /dev/null
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Created by Samuka",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "core-active",
+ "directions": 4,
+ "delays": [
+ [
+ 0.2,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.2,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.2,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.2,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ },
+ {
+ "name": "core-idle",
+ "directions": 4
+ },
+ {
+ "name": "core-o",
+ "directions": 4
+ },
+ {
+ "name": "core-load",
+ "directions": 4,
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
{
"name": "icon-xenoborg-cloak"
},
+ {
+ "name": "icon-xenoborg-cloak2"
+ },
{
"name": "icon-xenoborg-fire-extinguisher"
},
},
{
"name": "xenoborg_engi"
- },
+ },
{
"name": "xenoborg_generic"
- },
+ },
{
"name": "xenoborg_heavy"
},