]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Xenoborgs part 4 (#36935)
authorSamuka-C <47865393+Samuka-C@users.noreply.github.com>
Mon, 4 Aug 2025 13:18:55 +0000 (10:18 -0300)
committerGitHub <noreply@github.com>
Mon, 4 Aug 2025 13:18:55 +0000 (15:18 +0200)
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Quantum-cross <7065792+Quantum-cross@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: WarPigeon <DaedalusTheGamer@gmail.com>
Co-authored-by: Kowlin <git@wyvern.blue>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
31 files changed:
Resources/Audio/Machines/attributions.yml
Resources/Audio/Machines/warning_buzzer_xenoborg.ogg [new file with mode: 0644]
Resources/Audio/Voice/Xenoborg/attributions.yml
Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg [new file with mode: 0644]
Resources/Locale/en-US/name-identifier.ftl
Resources/Locale/en-US/station-laws/laws.ftl
Resources/Prototypes/Alerts/alerts.yml
Resources/Prototypes/Body/Prototypes/Specific/mothershipcore.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
Resources/Prototypes/Entities/Mobs/Cyborgs/xenoborgs.yml
Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Objects/Devices/pinpointer.yml
Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
Resources/Prototypes/Entities/Objects/Specific/Xenoborg/cloaking_device.yml
Resources/Prototypes/Entities/Objects/Specific/Xenoborg/material_bag.yml
Resources/Prototypes/Recipes/Lathes/Packs/xenoborgs.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Lathes/xenoborgs.yml [new file with mode: 0644]
Resources/Prototypes/SoundCollections/emotes.yml
Resources/Prototypes/Voice/speech_emote_sounds.yml
Resources/Prototypes/name_identifier_groups.yml
Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
Resources/Textures/Interface/Actions/actions_borg.rsi/xenoborg-eye2-module.png [new file with mode: 0644]
Resources/Textures/Interface/Alerts/shuttle.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Interface/Alerts/shuttle.rsi/piloting.png [moved from Resources/Textures/Interface/Alerts/piloting.png with 100% similarity]
Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-active.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-idle.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-load.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-o.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json

index 215944dc291881a6f8563ebeea67e60e147cac24..1fe20a59d99d36478f56475669145b0353b22e50 100644 (file)
   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/"
diff --git a/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg b/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg
new file mode 100644 (file)
index 0000000..fad2ca2
Binary files /dev/null and b/Resources/Audio/Machines/warning_buzzer_xenoborg.ogg differ
index 7a08f127d3ae0dff71e84faffc89e090fff2565d..775cc731be46546055f615ec745a94f6d205a5f9 100644 (file)
@@ -10,6 +10,7 @@
   - 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"
diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg
new file mode 100644 (file)
index 0000000..bc83ec4
Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_scream.ogg differ
index 9fa72bc9e162ec1d66612222dacf1b53512f6fe8..31a3986d2b2a429877f2c5bf8a94547cda659b1c 100644 (file)
@@ -4,5 +4,6 @@ name-identifier-format-holoparasite = HOLO-{$number}
 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}
index daab6ab4fafd49f14b6139feceab9a7084c490d0..1200d25deeb3552fd1e34c78f9c558c3836bf743 100644 (file)
@@ -82,15 +82,15 @@ law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies wi
 
 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
index ba86774f9b92df7707cd8ca4abc9e5b63208c035..719fa9379a6577ad769d348b2097feb32fb17bfd 100644 (file)
   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
 
diff --git a/Resources/Prototypes/Body/Prototypes/Specific/mothershipcore.yml b/Resources/Prototypes/Body/Prototypes/Specific/mothershipcore.yml
new file mode 100644 (file)
index 0000000..234f950
--- /dev/null
@@ -0,0 +1,20 @@
+- 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
index f8a12920cdf0a58b69f8c358331bc0dd481888bb..cb95c231e9af2cffd36bf9b5c3c6e1290f493eff 100644 (file)
   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:
index 5bd6929bfe3c2b5aec37319afee7bb58becc3e9c..556b6ac4c4f73f19689b47f236f18a1ac4b155fb 100644 (file)
@@ -3,7 +3,7 @@
   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
@@ -30,6 +30,7 @@
       - XenoborgModuleGeneric
       - XenoborgModuleEngi
       - BorgModuleEngineering
+      - BorgModuleGeneric
   - type: ContainerFill
     containers:
       borg_brain:
@@ -57,7 +58,7 @@
   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
diff --git a/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml b/Resources/Prototypes/Entities/Mobs/Player/mothershipcore.yml
new file mode 100644 (file)
index 0000000..4d72988
--- /dev/null
@@ -0,0 +1,192 @@
+- 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)
index 58f0a31a05341eecae65435c732f46553fd5311e..c85358663e1e9f679b42a0f57ff2033acac7ce59 100644 (file)
   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
index 215b0d8e526afa699836080c7aea35ce445f9b8e..dee6033a5bd84dbf1e1ef9e657fcaa0c454e34d5 100644 (file)
   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 }
index 6550e2192353e32550156ad1c3b7ecdd6c4f4429..02036b64633bb718ad489ed862399b0b92a8699a 100644 (file)
@@ -2,7 +2,7 @@
   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
index 79042fb561027c321bb7ae9b5028103db1bf5e48..d075e37a5d68c0bceb7f975160897ce62c03c865 100644 (file)
@@ -2,7 +2,7 @@
   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
diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/xenoborgs.yml b/Resources/Prototypes/Recipes/Lathes/Packs/xenoborgs.yml
new file mode 100644 (file)
index 0000000..31efc63
--- /dev/null
@@ -0,0 +1,16 @@
+## Static
+
+- type: latheRecipePack
+  id: EmptyXenoborgs
+  recipes:
+  - XenoborgEngiRecipe
+  - XenoborgHeavyRecipe
+  - XenoborgScoutRecipe
+  - XenoborgStealthRecipe
+
+- type: latheRecipePack
+  id: XenoborgUpgradeModules
+  recipes:
+  - XenoborgModuleHeavyLaserRecipe
+  - XenoborgModuleEnergySwordRecipe
+  - XenoborgModuleSuperCloakDeviceRecipe
diff --git a/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml b/Resources/Prototypes/Recipes/Lathes/xenoborgs.yml
new file mode 100644 (file)
index 0000000..9b150a5
--- /dev/null
@@ -0,0 +1,67 @@
+# 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
index 0762c68cff8d1338db5ef89b6aab4e77208db525..6d501201105d5bdd520ebdcefd7bcda35a469352 100644 (file)
   files:
   - /Audio/Items/Toys/hew.ogg
 
+- type: soundCollection
+  id: XenoborgScream
+  files:
+  - /Audio/Voice/Xenoborg/xenoborg_scream.ogg
+
 - type: soundCollection
   id: XenoborgLaugh
   files:
index 0edd18d3ff1913fe88ed05eac0318e9187faea38..ee2b1e0d5f6bd04e20ad5afad41afb4a3a10e193 100644 (file)
   params:
     variation: 0.05
   sounds:
+    Scream:
+      collection: XenoborgScream
     Laugh:
       collection: XenoborgLaugh
     Beep:
index 9777e84243f299a93883e929414510a2bfe99773..1928e11281d647db575979d57eebea8b0f6ee311 100644 (file)
@@ -1,4 +1,4 @@
-# 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
index 3cc071054f2692df51adc069c3da41eeeeb431a6..ac631e029421dbc0f5034633078da5cab8807b71 100644 (file)
         {
             "name":"xenoborg-eye-module"
         },
+        {
+            "name":"xenoborg-eye2-module"
+        },
         {
             "name":"xenoborg-hypo-module"
         },
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/xenoborg-eye2-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/xenoborg-eye2-module.png
new file mode 100644 (file)
index 0000000..8011403
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/xenoborg-eye2-module.png differ
diff --git a/Resources/Textures/Interface/Alerts/shuttle.rsi/meta.json b/Resources/Textures/Interface/Alerts/shuttle.rsi/meta.json
new file mode 100644 (file)
index 0000000..e806b9a
--- /dev/null
@@ -0,0 +1,14 @@
+{
+    "version": 1,
+    "license": "CC-BY-SA-3.0",
+    "copyright": "not sure",
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "states": [
+        {
+          "name": "piloting"
+        }
+      ]
+}
diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-active.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-active.png
new file mode 100644 (file)
index 0000000..1b64de1
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-active.png differ
diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-idle.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-idle.png
new file mode 100644 (file)
index 0000000..5cafcef
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-idle.png differ
diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-load.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-load.png
new file mode 100644 (file)
index 0000000..138e9ee
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-load.png differ
diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-o.png b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-o.png
new file mode 100644 (file)
index 0000000..439b252
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/core-o.png differ
diff --git a/Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json b/Resources/Textures/Mobs/Silicon/mothership_core.rsi/meta.json
new file mode 100644 (file)
index 0000000..0f8bb69
--- /dev/null
@@ -0,0 +1,199 @@
+{
+  "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
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png
new file mode 100644 (file)
index 0000000..77819e9
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-xenoborg-cloak2.png differ
index 3bf41f81ff90e27037ec3d1ff20e716d9247b4fc..ae64caaa1538c6a3de7e4e14ec69f8fc8bda9011 100644 (file)
         {
             "name": "icon-xenoborg-cloak"
         },
+        {
+            "name": "icon-xenoborg-cloak2"
+        },
         {
             "name": "icon-xenoborg-fire-extinguisher"
         },
         },
         {
             "name": "xenoborg_engi"
-        }, 
+        },
         {
             "name": "xenoborg_generic"
-        }, 
+        },
         {
             "name": "xenoborg_heavy"
         },