]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Added more Derelict Cyborgs. (#38159)
authorRedBookcase <crazykid1590@gmail.com>
Sat, 23 Aug 2025 20:32:15 +0000 (13:32 -0700)
committerGitHub <noreply@github.com>
Sat, 23 Aug 2025 20:32:15 +0000 (16:32 -0400)
* Added more Derelict Borgs.

* minor fix & salvage borg instead of mining borg name.

* I LOVE CAPITALIZATION!

* Fixed Derelict Engineer Cyborg name and added unshaded crystal layer.

* Ordering fixes & other cleanup.

* Updated Derelict Salvage Cyborg Sprites.

* New Salvage borg sprites.

* Updated module comments.

* Update events.yml

Extended the Derelict Syndicate Assault Borg's spawn timer to 25 minutes from 15.

* Fix for new borg hands

* Update events.yml

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
25 files changed:
Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl
Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml
Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml
Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml
Resources/Prototypes/Entities/Mobs/Player/silicon.yml
Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml
Resources/Prototypes/GameRules/events.yml
Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-c20r-module.png [new file with mode: 0644]
Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-desword-module.png [new file with mode: 0644]
Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png
Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict_crystal.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_moving_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/medical_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/medical_moving_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json
Resources/Textures/Mobs/Silicon/chassis.rsi/miner_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/miner_moving_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_e.png [new file with mode: 0644]
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_l.png [new file with mode: 0644]

index ce52b886550bc9e9808896c6fcd08faac3d2e303..a578adf82b783804098520eba8998ed2f53dde04 100644 (file)
@@ -244,9 +244,24 @@ ghost-role-information-syndicate-cyborg-assault-name = Syndicate Assault Cyborg
 ghost-role-information-syndicate-cyborg-saboteur-name = Syndicate Saboteur Cyborg
 ghost-role-information-syndicate-cyborg-description = The Syndicate needs reinforcements. You, a cold silicon killing machine, will help them.
 
-ghost-role-information-derelict-cyborg-name = Derelict Cyborg
+ghost-role-information-derelict-engineering-cyborg-name = Derelict Engineer Cyborg
+ghost-role-information-derelict-engineering-cyborg-description = You are an engineer cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
+
+ghost-role-information-derelict-cyborg-name = Derelict Generic Cyborg
 ghost-role-information-derelict-cyborg-description = You are a regular cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
 
+ghost-role-information-derelict-janitor-cyborg-name = Derelict Janitor Cyborg
+ghost-role-information-derelict-janitor-cyborg-description = You are a janitor cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
+
+ghost-role-information-derelict-medical-cyborg-name = Derelict Medical Cyborg
+ghost-role-information-derelict-medical-cyborg-description = You are a medical cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
+
+ghost-role-information-derelict-mining-cyborg-name = Derelict Salvage Cyborg
+ghost-role-information-derelict-mining-cyborg-description = You are a salvage cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
+
+ghost-role-information-derelict-syndicate-assault-cyborg-name = Derelict Syndicate Assault Cyborg
+ghost-role-information-derelict-syndicate-assault-cyborg-description = You are an early model syndicate assault cyborg that got lost in space. After years of exposure to ion storms you find yourself near a space station.
+
 ghost-role-information-security-name = Security
 ghost-role-information-security-description = You are part of a security task force, but seem to have found yourself in a strange situation...
 
index e662a8b2119f4de258b7cae6d7d83c2c92e2b175..5815dbba4795cd39074eed49e84708b7e0ad840c 100644 (file)
     - sprite: Mobs/Aliens/paradox_clone.rsi
       state: preview
 
+- type: entity
+  categories: [ HideSpawnMenu, Spawner ]
+  parent: SpawnPointGhostDerelictCyborg
+  id: SpawnPointGhostDerelictEngineeringCyborg
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-engineering-cyborg-name
+    description: ghost-role-information-derelict-engineering-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+
 - type: entity
   categories: [ HideSpawnMenu, Spawner ]
   parent: BaseAntagSpawner
     - sprite: Mobs/Silicon/chassis.rsi
       state: derelict_icon
 
+- type: entity
+  categories: [ HideSpawnMenu, Spawner ]
+  parent: SpawnPointGhostDerelictCyborg
+  id: SpawnPointGhostDerelictJanitorCyborg
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-janitor-cyborg-name
+    description: ghost-role-information-derelict-janitor-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+
+- type: entity
+  categories: [ HideSpawnMenu, Spawner ]
+  parent: SpawnPointGhostDerelictCyborg
+  id: SpawnPointGhostDerelictMedicalCyborg
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-medical-cyborg-name
+    description: ghost-role-information-derelict-medical-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+
+- type: entity
+  categories: [ HideSpawnMenu, Spawner ]
+  parent: SpawnPointGhostDerelictCyborg
+  id: SpawnPointGhostDerelictMiningCyborg
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-mining-cyborg-name
+    description: ghost-role-information-derelict-mining-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+
+- type: entity
+  categories: [ HideSpawnMenu, Spawner ]
+  parent: SpawnPointGhostDerelictCyborg
+  id: SpawnPointGhostDerelictSyndicateAssaultCyborg
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-syndicate-assault-cyborg-name
+    description: ghost-role-information-derelict-syndicate-assault-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+
 - type: entity
   categories: [ HideSpawnMenu, Spawner ]
   parent: BaseAntagSpawner
index 34fdbbd74b4d74345d825b9279284089e87d7219..4b170af6beafd47d6cdbfe1512e6e34899436a99 100644 (file)
     - Syndicate
   - type: ActiveRadio
     channels:
+    - Binary
     - Syndicate
   - type: ShowSyndicateIcons
   - type: MovementAlwaysTouching
     chance: 1
   - type: ShowJobIcons
 
+- type: entity
+  id: BaseBorgChassisSyndicateDerelict #For assault borg and maybe others in time
+  parent: BaseBorgChassisSyndicate
+  abstract: true
+  components:
+  - type: SiliconLawProvider
+    laws: SyndicateStatic #Non-subverted version so they can still be changed
+  - type: StartIonStormed
+    ionStormAmount: 3
+  - type: IonStormTarget
+    chance: 1
+  - type: ShowJobIcons
+
 - type: entity
   parent: BaseBorgChassisNotIonStormable
   id: BaseXenoborgChassis
index 87b8d54a97732f0e0f27527b743062b8766c42e5..1b9fbed3ac32f7111ce14e4685f1a7658658a287 100644 (file)
       map: ["light"]
       visible: false
   - type: BorgChassis
-    maxModules: 5 # the sixth one broke lol
+    maxModules: 5 # One less module slot than the regular module to reflect this being a "broken" cyborg.
     moduleWhitelist:
       tags:
       - BorgModuleGeneric
     interactSuccessString: petting-success-derelict-cyborg
     interactFailureString: petting-failure-derelict-cyborg
     interactSuccessSound:
-      path: /Audio/Ambience/Objects/periodic_beep.ogg
\ No newline at end of file
+      path: /Audio/Ambience/Objects/periodic_beep.ogg
+
+- type: entity
+  parent: BaseBorgChassisDerelict
+  id: EngineeringBorgChassisDerelict
+  name: derelict engineer cyborg
+  description: A man-machine hybrid that assists the engineering department. This one seems to have chunks of strange crystals pockmarking its surface.
+  components:
+  - type: Sprite
+    layers:
+    - state: engineer_derelict
+    - state: engineer_e_r
+      map: ["enum.BorgVisualLayers.Light"]
+      shader: unshaded
+      visible: false
+    - state: engineer_derelict_crystal #This layer and the layer below are duplicated in order to create a more mellow unshaded layer. See https://github.com/space-wizards/space-station-14/pull/37869 for more info on the method.
+      shader: unshaded
+    - state: engineer_derelict_crystal
+      shader: shaded
+    - state: engineer_l
+      shader: unshaded
+      map: ["light"]
+      visible: false
+  - type: BorgChassis
+    maxModules: 5 # One less module slot than the regular module to reflect this being a "broken" cyborg.
+    moduleWhitelist:
+      tags:
+      - BorgModuleGeneric
+      - BorgModuleEngineering
+    hasMindState: engineer_e
+    noMindState: engineer_e_r
+
+- type: entity
+  parent: BaseBorgChassisDerelict
+  id: JanitorBorgChassisDerelict
+  name: derelict janitor cyborg
+  description: A man-machine hybrid that assists the service department. It's a bigger mess than anything it can clean up.
+  components:
+  - type: Sprite
+    layers:
+    - state: janitor_derelict
+      map: ["movement"]
+    - state: janitor_e_r
+      map: ["enum.BorgVisualLayers.Light"]
+      shader: unshaded
+      visible: false
+    - state: janitor_l
+      shader: unshaded
+      map: ["light"]
+      visible: false
+  - type: SpriteMovement
+    movementLayers:
+      movement:
+        state: janitor_moving_derelict
+    noMovementLayers:
+      movement:
+        state: janitor_derelict
+  - type: BorgChassis
+    maxModules: 5 # One less module slot than the regular module to reflect this being a "broken" cyborg.
+    moduleWhitelist:
+      tags:
+      - BorgModuleGeneric
+      - BorgModuleJanitor
+    hasMindState: janitor_e
+    noMindState: janitor_e_r
+
+- type: entity
+  parent: BaseBorgChassisDerelict
+  id: MedicalBorgChassisDerelict
+  name: derelict medical cyborg
+  description: A man-machine hybrid that assists the medical department. This one's needles don't look very sanitary.
+  components:
+  - type: Sprite
+    layers:
+    - state: medical_derelict
+      map: ["movement"]
+    - state: medical_e_r
+      map: ["enum.BorgVisualLayers.Light"]
+      shader: unshaded
+      visible: false
+    - state: medical_l
+      shader: unshaded
+      map: ["light"]
+      visible: false
+  - type: SpriteMovement
+    movementLayers:
+      movement:
+        state: medical_moving_derelict
+    noMovementLayers:
+      movement:
+        state: medical_derelict
+  - type: BorgChassis
+    maxModules: 6 # One less module slot than the regular module to reflect this being a "broken" cyborg.
+    moduleWhitelist:
+      tags:
+      - BorgModuleGeneric
+      - BorgModuleMedical
+    hasMindState: medical_e
+    noMindState: medical_e_r
+
+- type: entity
+  parent: BaseBorgChassisDerelict
+  id: MiningBorgChassisDerelict
+  name: derelict salvage cyborg
+  description: A man-machine hybrid that assists the cargo department. This one has seen the wrong side of a gibtonite chunk.
+  components:
+  - type: Sprite
+    layers:
+    - state: miner_derelict
+      map: ["movement"]
+    - state: miner_e_r
+      map: ["enum.BorgVisualLayers.Light"]
+      shader: unshaded
+      visible: false
+    - state: miner_l
+      shader: unshaded
+      map: ["light"]
+      visible: false
+  - type: SpriteMovement
+    movementLayers:
+      movement:
+        state: miner_moving_derelict
+    noMovementLayers:
+      movement:
+        state: miner_derelict
+  - type: BorgChassis
+    maxModules: 6 # One less module slot than the regular module to reflect this being a "broken" cyborg.
+    moduleWhitelist:
+      tags:
+      - BorgModuleGeneric
+      - BorgModuleCargo
+    hasMindState: miner_e
+    noMindState: miner_e_r
+
+- type: entity
+  parent: BaseBorgChassisSyndicateDerelict
+  id: SyndicateAssaultBorgChassisDerelict
+  name: derelict syndicate assault cyborg
+  description: A lean, mean killing machine with access to a variety of deadly modules. This one is more rust-orange than blood-red.
+  components:
+  - type: Sprite
+    layers:
+    - state: synd_sec_derelict
+    - state: synd_sec_e
+      map: ["enum.BorgVisualLayers.Light"]
+      shader: unshaded
+      visible: false
+    - state: synd_sec_l
+      shader: unshaded
+      map: ["light"]
+      visible: false
+  - type: BorgChassis
+    maxModules: 3
+    moduleWhitelist: # Note - the Derelict Assault Borg does not have a traversal module. This is intentional as Assault Borgs have space traversal with their c20 and free space movement, and they can navigate to the station using the pinpointer.
+      tags:
+      - BorgModuleGeneric
+      - BorgModuleSyndicate
+      - BorgModuleSyndicateAssault
+    hasMindState: synd_sec_derelict_e
+    noMindState: synd_sec_derelict
+  - type: Construction
+    node: derelictcyborg
index 303f7dc676592730586babcbbd31e84dc84ed0d2..c2025bb663c6bd183c4714b11ef2142cb0b85322 100644 (file)
       borg_module:
         - BorgModuleOperative
         - BorgModuleL6C
-        - BorgModuleEsword
+        - BorgModuleDoubleEsword
   - type: ItemSlots
     slots:
       cell_slot:
     - PlayerBorgSyndicateSaboteurGhostRole
 
 - type: entity
-  id: PlayerBorgDerelict
+  parent: EngineeringBorgChassisDerelict
+  id: PlayerEngineeringBorgDerelict
+  suffix: Battery, Module
+  components:
+  - type: ContainerFill
+    containers:
+      borg_brain:
+      - PositronicBrain
+      borg_module:
+      - BorgModuleTool
+      - BorgModuleFireExtinguisher
+      - BorgModuleConstruction
+      - BorgModuleRCD
+      - BorgModuleCable
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellHigh
+  - type: RandomMetadata
+    nameSegments: [NamesBorg]
+
+- type: entity
+  parent: PlayerEngineeringBorgDerelict
+  id: PlayerEngineeringBorgDerelictGhostRole
+  suffix: Ghost role
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-engineering-cyborg-name
+    description: ghost-role-information-derelict-engineering-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+  - type: GhostTakeoverAvailable
+
+- type: entity
   parent: BorgChassisDerelict
+  id: PlayerBorgDerelict
   suffix: Battery, Module
   components:
   - type: ContainerFill
     nameSegments: [NamesBorg]
 
 - type: entity
-  id: PlayerBorgDerelictGhostRole
   parent: PlayerBorgDerelict
+  id: PlayerBorgDerelictGhostRole
   suffix: Ghost role
   components:
     - type: GhostRole
       raffle:
         settings: default
     - type: GhostTakeoverAvailable
+
+- type: entity
+  parent: JanitorBorgChassisDerelict
+  id: PlayerJanitorBorgDerelict
+  suffix: Battery, Module
+  components:
+  - type: ContainerFill
+    containers:
+      borg_brain:
+      - PositronicBrain
+      borg_module:
+      - BorgModuleTool
+      - BorgModuleFireExtinguisher
+      - BorgModuleCleaning
+      - BorgModuleCustodial
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellHigh
+  - type: RandomMetadata
+    nameSegments: [NamesBorg]
+
+- type: entity
+  parent: PlayerJanitorBorgDerelict
+  id: PlayerJanitorBorgDerelictGhostRole
+  suffix: Ghost role
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-janitor-cyborg-name
+    description: ghost-role-information-derelict-janitor-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+  - type: GhostTakeoverAvailable
+
+- type: entity
+  parent: MedicalBorgChassisDerelict
+  id: PlayerMedicalBorgDerelict
+  suffix: Battery, Module
+  components:
+  - type: ContainerFill
+    containers:
+      borg_brain:
+      - PositronicBrain
+      borg_module:
+      - BorgModuleTool
+      - BorgModuleFireExtinguisher
+      - BorgModuleChemical
+      - BorgModuleTopicals
+      - BorgModuleRescue
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellHigh
+  - type: RandomMetadata
+    nameSegments: [NamesBorg]
+
+- type: entity
+  parent: PlayerMedicalBorgDerelict
+  id: PlayerMedicalBorgDerelictGhostRole
+  suffix: Ghost role
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-medical-cyborg-name
+    description: ghost-role-information-derelict-medical-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+  - type: GhostTakeoverAvailable
+
+- type: entity
+  parent: MiningBorgChassisDerelict
+  id: PlayerMiningBorgDerelict
+  suffix: Battery, Module
+  components:
+  - type: ContainerFill
+    containers:
+      borg_brain:
+      - PositronicBrain
+      borg_module:
+      - BorgModuleTool #No fire extinguisher, traversal is better
+      - BorgModuleMining
+      - BorgModuleTraversal
+      - BorgModuleAppraisal
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellHigh
+  - type: RandomMetadata
+    nameSegments: [NamesBorg]
+
+- type: entity
+  parent: PlayerMiningBorgDerelict
+  id: PlayerMiningBorgDerelictGhostRole
+  suffix: Ghost role
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-mining-cyborg-name
+    description: ghost-role-information-derelict-mining-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+  - type: GhostTakeoverAvailable
+
+- type: entity
+  parent: SyndicateAssaultBorgChassisDerelict
+  id: PlayerSyndicateAssaultBorgDerelict
+  suffix: Battery, Module
+  components:
+  - type: ContainerFill
+    containers:
+      borg_brain:
+      - PositronicBrain
+      borg_module:
+      - BorgModuleOperative
+      - BorgModuleC20r
+      - BorgModuleEsword
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellHyper
+  - type: RandomMetadata
+    nameSegments: [NamesDeathCommando]
+
+- type: entity
+  parent: PlayerSyndicateAssaultBorgDerelict
+  id: PlayerBorgSyndicateDerelictGhostRole
+  suffix: Ghost role
+  components:
+  - type: GhostRole
+    name: ghost-role-information-derelict-syndicate-assault-cyborg-name
+    description: ghost-role-information-derelict-syndicate-assault-cyborg-description
+    rules: ghost-role-information-silicon-rules
+    raffle:
+      settings: default
+  - type: GhostTakeoverAvailable
index 02b1afdbc55e513229794e3f57d681859030b5b5..2a971d71ea904ca4d864d31d26798cebb43170e6 100644 (file)
 
 #syndicate modules
 - type: entity
-  id: BorgModuleSyndicateWeapon
   parent: [ BaseBorgModule, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleSyndicateWeapon
   name: weapon cyborg module
   components:
   - type: Sprite
     price: 2500
 
 - type: entity
-  id: BorgModuleOperative
   parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleOperative
   name: operative cyborg module
   description: A module that comes with a crowbar, an Emag, an Access Breaker and a syndicate pinpointer.
   components:
       icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-operative-module }
 
 - type: entity
-  id: BorgModuleEsword
   parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleEsword
   name: energy sword cyborg module
-  description: A module that comes with a double energy sword.
+  description: A weapons module that comes with an energy sword.
   components:
-    - type: Sprite
-      layers:
-      - state: syndicate
-      - state: icon-syndicate
-    - type: ItemBorgModule
-      hands:
-      - item: CyborgEnergySwordDouble
-      - item: PinpointerSyndicateNuclear
-    - type: BorgModuleIcon
-      icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-esword-module }
+  - type: Sprite
+    layers:
+    - state: syndicate
+    - state: icon-syndicate
+  - type: ItemBorgModule
+    hands:
+    - item: CyborgEnergySword
+    - item: PinpointerSyndicateNuclear
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-esword-module }
+
+- type: entity
+  id: BorgModuleDoubleEsword
+  parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule, BaseSyndicateContraband ]
+  name: double energy sword cyborg module
+  description: A weapons module that comes with a double energy sword.
+  components:
+  - type: Sprite
+    layers:
+    - state: syndicate
+    - state: icon-syndicate
+  - type: ItemBorgModule
+    hands:
+    - item: CyborgEnergySwordDouble
+    - item: PinpointerSyndicateNuclear
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-desword-module }
 
 - type: entity
-  id: BorgModuleL6C
   parent: [ BaseBorgModuleSyndicateAssault, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleL6C
   name: L6C ROW cyborg module
-  description: A module that comes with a L6C.
+  description: A weapons module that comes with a L6C.
   components:
-    - type: Sprite
-      layers:
-      - state: syndicate
-      - state: icon-syndicate
-    - type: ItemBorgModule
-      hands:
-      - item: WeaponLightMachineGunL6C
-      - item: PinpointerSyndicateNuclear
-    - type: BorgModuleIcon
-      icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-l6c-module }
+  - type: Sprite
+    layers:
+    - state: syndicate
+    - state: icon-syndicate
+  - type: ItemBorgModule
+    hands:
+    - item: WeaponLightMachineGunL6C
+    - item: PinpointerSyndicateNuclear
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-l6c-module }
+
+- type: entity
+  parent: [ BaseBorgModuleSyndicateAssault, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleC20r
+  name: C20-r ROW cyborg module
+  description: A weapons module that comes with a burst-fire C-20r.
+  components:
+  - type: Sprite
+    layers:
+    - state: syndicate
+    - state: icon-syndicate
+  - type: ItemBorgModule
+    hands:
+    - item: WeaponSubMachineGunC20rROW
+    - item: PinpointerSyndicateNuclear
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-c20r-module }
 
 - type: entity
-  id: BorgModuleMartyr
   parent: [ BaseBorgModule, BaseProviderBorgModule, BaseSyndicateContraband ]
+  id: BorgModuleMartyr
   name: martyr cyborg module
   description: "A module that comes with an explosive you probably don't want to handle yourself."
   components:
index f069b4a918b407cd0292e5a155ed1465c18dd428..2ecaaec89ebd9042ff2d22af2cc8decc352117ea 100644 (file)
   - type: StaticPrice
     price: 5000
 
+- type: entity
+  name: C-20r ROW #I think ROW stands for Recharging Onboard Weapon so i'm following the L6C's example
+  id: WeaponSubMachineGunC20rROW
+  parent: BaseItem
+  description: A burst-fire C-20r submachine gun for use by cyborgs. Creates .35 caliber ammo on the fly from an internal ammo fabricator, which slowly self-charges.
+  components:
+  - type: Gun
+    minAngle: 2
+    maxAngle: 16
+    angleIncrease: 4
+    angleDecay: 16
+    fireRate: 8
+    burstFireRate: 8
+    selectedMode: Burst
+    availableModes:
+    - Burst
+    soundGunshot:
+      path: /Audio/Weapons/Guns/Gunshots/c-20r.ogg
+  - type: Sprite
+    sprite: Objects/Weapons/Guns/SMGs/c20r.rsi
+    layers:
+    - state: base
+      map: ["enum.GunVisualLayers.Base"]
+    - state: mag-5
+      map: ["enum.GunVisualLayers.Mag"]
+  - type: Item
+    size: Huge
+  - type: ContainerContainer
+    containers:
+      ballistic-ammo: !type:Container
+  - type: ProjectileBatteryAmmoProvider
+    proto: CartridgePistol
+    fireCost: 100
+  - type: Battery
+    maxCharge: 3000
+    startingCharge: 3000
+  - type: BatterySelfRecharger
+    autoRecharge: true
+    autoRechargeRate: 25
+  - type: AmmoCounter
+
 - type: entity
   name: Drozd
   parent: [BaseWeaponSubMachineGun, BaseSecurityContraband]
index f634425006a303c75876bbcecc5a5e4aae74f931..5f431416e72e664e46e238ce53a5170c3c587312 100644 (file)
     spread: 75
 
 # Borgs
+
+- type: entity
+  parent: EnergySword
+  id: CyborgEnergySword
+  suffix: For Borgs
+  description: A very loud & dangerous sword with a beam made of pure, concentrated plasma. Specially designed for syndicate cyborgs.
+
 - type: entity
-  suffix: One-Handed, For Borgs
   parent: EnergySwordDouble
   id: CyborgEnergySwordDouble # why is this invalid if ID is BorgEnergySwordDouble
+  suffix: One-Handed, For Borgs
   description: Syndicate Command Interns thought that having one blade on the energy sword was not enough. Specially designed for syndicate cyborgs.
   components: # could add energy-draining like the L6C
   - type: Wieldable
index acd3d4a2b8d464dff62ea24e76e4322b71e644fb..c9e612c7f5318fde8798035ee576c1ff325b0915 100644 (file)
@@ -32,7 +32,8 @@
     - id: ClosetSkeleton
     - id: KingRatMigration
     - id: RevenantSpawn
-    - id: DerelictCyborgSpawn
+    - !type:NestedSelector
+      tableId: DerelictBorgEventTable
 
 - type: entityTable
   id: ModerateAntagEventsTable
     - id: ZombieOutbreak
     - id: LoneOpsSpawn
     - id: WizardSpawn
+    - !type:NestedSelector
+      tableId: DerelictBorgEventTable
+
+- type: entityTable
+  id: DerelictBorgEventTable #For Derelict Borg spawns
+  table: !type:GroupSelector
+    children:
+    - !type:GroupSelector # Standard NT Borgs
+      weight: 85
+      children:
+        - id: DerelictEngineerCyborgSpawn
+        - id: DerelictGenericCyborgSpawn
+        - id: DerelictJanitorCyborgSpawn
+        - id: DerelictMedicalCyborgSpawn
+        - id: DerelictMiningCyborgSpawn
+    - !type:GroupSelector # Other Borgs
+      weight: 15
+      children:
+        - id: DerelictSyndicateAssaultCyborgSpawn
 
 - type: entity
   id: BaseStationEvent
     earliestStart: 35
     weight: 5.5
     minimumPlayers: 20
-    duration: null # LoneOpsSpawn needs an infinite duration so that it inherits the NukeOpsRule things of an actually appropriate end scrreen (not always "Neutral outcome!") and... ending the game if the station is nuked.
+    duration: null # LoneOpsSpawn needs an infinite duration so that it inherits the NukeOpsRule things of an actually appropriate end screen (not always "Neutral outcome!") and... ending the game if the station is nuked.
   - type: RuleGrids
   - type: LoadMapRule
     gridPath: /Maps/Shuttles/ShuttleEvent/striker.yml
 
 - type: entity
   parent: BaseGameRule
-  id: DerelictCyborgSpawn
+  id: DerelictEngineerCyborgSpawn
   components:
   - type: StationEvent
-    weight: 5
+    weight: 2.5
+    earliestStart: 15
+    reoccurrenceDelay: 20
+    minimumPlayers: 4
+    duration: null
+  - type: SpaceSpawnRule
+    spawnDistance: 0
+  - type: AntagSpawner
+    prototype: PlayerEngineeringBorgDerelictGhostRole
+  - type: AntagSelection
+    definitions:
+    - spawnerPrototype: SpawnPointGhostDerelictEngineeringCyborg
+      min: 1
+      max: 1
+      pickPlayer: false
+
+- type: entity
+  parent: BaseGameRule
+  id: DerelictGenericCyborgSpawn
+  components:
+  - type: StationEvent
+    weight: 2.5
     earliestStart: 15
     reoccurrenceDelay: 20
     minimumPlayers: 4
   - type: SpaceSpawnRule
     spawnDistance: 0
   - type: AntagSpawner
-    prototype: PlayerBorgDerelict
+    prototype: PlayerBorgDerelictGhostRole
   - type: AntagSelection
     definitions:
     - spawnerPrototype: SpawnPointGhostDerelictCyborg
       min: 1
       max: 1
       pickPlayer: false
+
+- type: entity
+  parent: BaseGameRule
+  id: DerelictJanitorCyborgSpawn
+  components:
+  - type: StationEvent
+    weight: 2.5
+    earliestStart: 15
+    reoccurrenceDelay: 20
+    minimumPlayers: 4
+    duration: null
+  - type: SpaceSpawnRule
+    spawnDistance: 0
+  - type: AntagSpawner
+    prototype: PlayerJanitorBorgDerelictGhostRole
+  - type: AntagSelection
+    definitions:
+    - spawnerPrototype: SpawnPointGhostDerelictJanitorCyborg
+      min: 1
+      max: 1
+      pickPlayer: false
+
+- type: entity
+  parent: BaseGameRule
+  id: DerelictMedicalCyborgSpawn
+  components:
+  - type: StationEvent
+    weight: 2.5
+    earliestStart: 15
+    reoccurrenceDelay: 20
+    minimumPlayers: 4
+    duration: null
+  - type: SpaceSpawnRule
+    spawnDistance: 0
+  - type: AntagSpawner
+    prototype: PlayerMedicalBorgDerelictGhostRole
+  - type: AntagSelection
+    definitions:
+    - spawnerPrototype: SpawnPointGhostDerelictMedicalCyborg
+      min: 1
+      max: 1
+      pickPlayer: false
+
+- type: entity
+  parent: BaseGameRule
+  id: DerelictMiningCyborgSpawn
+  components:
+  - type: StationEvent
+    weight: 2.5
+    earliestStart: 15
+    reoccurrenceDelay: 20
+    minimumPlayers: 4
+    duration: null
+  - type: SpaceSpawnRule
+    spawnDistance: 0
+  - type: AntagSpawner
+    prototype: PlayerMiningBorgDerelictGhostRole
+  - type: AntagSelection
+    definitions:
+    - spawnerPrototype: SpawnPointGhostDerelictMiningCyborg
+      min: 1
+      max: 1
+      pickPlayer: false
+
+- type: entity
+  parent: BaseGameRule
+  id: DerelictSyndicateAssaultCyborgSpawn
+  components:
+  - type: StationEvent
+    weight: 2.5
+    earliestStart: 25
+    reoccurrenceDelay: 20
+    minimumPlayers: 15
+    duration: null
+  - type: SpaceSpawnRule
+    spawnDistance: 0
+  - type: AntagSpawner
+    prototype: PlayerBorgSyndicateDerelictGhostRole
+  - type: AntagSelection
+    definitions:
+    - spawnerPrototype: SpawnPointGhostDerelictSyndicateAssaultCyborg
+      min: 1
+      max: 1
+      pickPlayer: false
index ac631e029421dbc0f5034633078da5cab8807b71..ae485c26c5bf35dc76a4562cf4062d6528c66299 100644 (file)
@@ -1,7 +1,7 @@
 {
     "version": 1,
     "license": "CC-BY-SA-3.0",
-    "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9, Module actions by Scarky0. chem, adv-chem, and adv-mining by mubururu_, xenoborg actions by Samuka-C (github), advclown by ThatGuyUSA",
+    "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9, Module actions by Scarky0. chem, adv-chem, and adv-mining by mubururu_, xenoborg actions by Samuka-C (github), advclown by ThatGuyUSA. c20r and esword by RedBookcase on Github.",
     "size": {
         "x": 32,
         "y": 32
         {
             "name":"syndicate-operative-module"
         },
+        {
+            "name":"syndicate-desword-module"
+        },
         {
             "name":"syndicate-esword-module"
         },
         {
             "name":"syndicate-l6c-module"
         },
+        {
+            "name":"syndicate-c20r-module"
+        },
         {
             "name":"syndicate-martyr-module"
         },
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-c20r-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-c20r-module.png
new file mode 100644 (file)
index 0000000..52c14b2
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-c20r-module.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-desword-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-desword-module.png
new file mode 100644 (file)
index 0000000..201149c
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-desword-module.png differ
index 201149cf18e82ab28d6a834cdd2a45ea52294a84..944c4ee918646393b583c35fbdf96be5921c7568 100644 (file)
Binary files a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict.png
new file mode 100644 (file)
index 0000000..7eb8b01
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict_crystal.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict_crystal.png
new file mode 100644 (file)
index 0000000..38bae65
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/engineer_derelict_crystal.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_derelict.png
new file mode 100644 (file)
index 0000000..34ae031
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_moving_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_moving_derelict.png
new file mode 100644 (file)
index 0000000..ce6b1bc
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/janitor_moving_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_derelict.png
new file mode 100644 (file)
index 0000000..8fd1dba
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_moving_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_moving_derelict.png
new file mode 100644 (file)
index 0000000..4054df6
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/medical_moving_derelict.png differ
index 4e56b98d3e8e240e0fb7ad885921f78aa13cdf11..45aa679ee2ccfbb145865398c258e320cd78c1eb 100644 (file)
 {
-  "version": 1,
-  "size": {
-    "x": 32,
-    "y": 32
-  },
-  "license": "CC-BY-SA-3.0",
-  "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/faf6db214927874c19b8fa8585d26b5d40de1acc, derelict sprites modified by GoldenCan(GitHub), xenoborg sprites, created and modified by Samuka-C (github).",
-  "states": [
-    {
-      "name": "clown",
-      "directions": 4
-    },
-    {
-      "name": "clown_e",
-      "directions": 4
-    },
-    {
-      "name": "clown_e_r",
-      "directions": 4
-    },
-    {
-      "name": "clown_l",
-      "directions": 4
-    },
-    {
-      "name": "derelict",
-      "directions": 4
-    },
-    {
-      "name": "derelict_e",
-      "directions": 4
-    },
-    {
-      "name": "derelict_e_r",
-      "directions": 4
-    },
-    {
-      "name": "derelict_icon",
-      "directions": 1
-    },
-    {
-      "name": "derelict_l",
-      "directions": 4
-    },
-    {
-      "name": "engineer",
-      "directions": 4
-    },
-    {
-      "name": "engineer_e",
-      "directions": 4
-    },
-    {
-      "name": "engineer_e_r",
-      "directions": 4
-    },
-    {
-      "name": "engineer_l",
-      "directions": 4
-    },
-    {
-      "name": "janitor",
-      "directions": 4
-    },
-    {
-      "name": "janitor_moving",
-      "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
-        ]
-      ]
-    },
-    {
-      "name": "janitor_e",
-      "directions": 4
-    },
-    {
-      "name": "janitor_e_r",
-      "directions": 4
-    },
-    {
-      "name": "janitor_l",
-      "directions": 4
-    },
-    {
-      "name": "medical",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "medical_moving",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "medical_e",
-      "directions": 4
-    },
-    {
-      "name": "medical_e_r",
-      "directions": 4
-    },
-    {
-      "name": "medical_l",
-      "directions": 4
-    },
-    {
-      "name": "miner",
-      "directions": 4
-    },
-    {
-      "name": "miner_moving",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.1
-        ],
-        [
-          0.1,
-          0.1
-        ],
-        [
-          0.1,
-          0.1
-        ],
-        [
-          0.1,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "miner_e",
-      "directions": 4
-    },
-    {
-      "name": "miner_e_r",
-      "directions": 4
-    },
-    {
-      "name": "miner_l",
-      "directions": 4
-    },
-    {
-      "name": "robot",
-      "directions": 4
-    },
-    {
-      "name": "robot_e",
-      "directions": 4
-    },
-    {
-      "name": "robot_e_r",
-      "directions": 4
-    },
-    {
-      "name": "robot_l",
-      "directions": 4
-    },
-    {
-      "name": "peace",
-      "directions": 4
-    },
-    {
-      "name": "peace_e",
-      "directions": 4
-    },
-    {
-      "name": "peace_e_r",
-      "directions": 4
-    },
-    {
-      "name": "peace_l",
-      "directions": 4
-    },
-    {
-      "name": "service",
-      "directions": 4
-    },
-    {
-      "name": "service_e",
-      "directions": 4
-    },
-    {
-      "name": "service_e_r",
-      "directions": 4
-    },
-    {
-      "name": "service_l",
-      "directions": 4
-    },
-       {
-      "name": "synd_sec",
-      "directions": 4
-    },
-    {
-      "name": "synd_sec_e",
-      "directions": 4
-    },
-    {
-      "name": "synd_sec_l",
-      "directions": 4
-    },
-       {
-      "name": "synd_medical",
-      "directions": 4
-    },
-    {
-      "name": "synd_medical_l",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "synd_medical_e",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "synd_engi",
-      "directions": 4
-    },
-       {
-      "name": "synd_engi_e",
-      "directions": 4
-    },
-    {
-      "name": "synd_engi_l",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_heavy",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_heavy_e",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_heavy_e_r",
-      "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
-        ],
-        [
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_heavy_l",
-      "directions": 4
-    },
-         {
-      "name": "xenoborg_scout",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_scout_l",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_scout_e",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_scout_e_r",
-      "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
-        ],
-        [
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_engi",
-      "directions": 4
-    },
-         {
-      "name": "xenoborg_engi_e",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_engi_e_r",
-      "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
-        ],
-        [
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_engi_l",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_stealth",
-      "directions": 4
-    },
-    {
-      "name": "xenoborg_stealth_e",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_stealth_e_r",
-      "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
-        ],
-        [
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1,
-          0.1
-        ]
-      ]
-    },
-    {
-      "name": "xenoborg_stealth_l",
-      "directions": 4,
-      "delays": [
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ],
-        [
-          0.1,
-          0.2,
-          0.1
-        ]
-      ]
-    }
-  ]
+    "version": 1,
+    "size": {
+        "x": 32,
+        "y": 32
+    },
+    "license": "CC-BY-SA-3.0",
+    "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/faf6db214927874c19b8fa8585d26b5d40de1acc, derelict generic sprites modified by GoldenCan(GitHub), xenoborg sprites, created and modified by Samuka-C (github). Derelict Engineer, Janitor, Miner, Medical, and Assault Borg sprites by _miket on Discord.",
+    "states": [
+        {
+            "name": "clown",
+            "directions": 4
+        },
+        {
+            "name": "clown_e",
+            "directions": 4
+        },
+        {
+            "name": "clown_e_r",
+            "directions": 4
+        },
+        {
+            "name": "clown_l",
+            "directions": 4
+        },
+        {
+            "name": "derelict",
+            "directions": 4
+        },
+        {
+            "name": "derelict_e",
+            "directions": 4
+        },
+        {
+            "name": "derelict_e_r",
+            "directions": 4
+        },
+        {
+            "name": "derelict_icon",
+            "directions": 1
+        },
+        {
+            "name": "derelict_l",
+            "directions": 4
+        },
+        {
+            "name": "engineer",
+            "directions": 4
+        },
+        {
+            "name": "engineer_e",
+            "directions": 4
+        },
+        {
+            "name": "engineer_e_r",
+            "directions": 4
+        },
+        {
+            "name": "engineer_l",
+            "directions": 4
+        },
+        {
+            "name": "engineer_derelict",
+            "directions": 4
+        },
+        {
+            "name": "engineer_derelict_crystal",
+            "directions": 4
+        },
+        {
+            "name": "janitor",
+            "directions": 4
+        },
+        {
+            "name": "janitor_moving",
+            "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
+                ]
+            ]
+        },
+        {
+            "name": "janitor_e",
+            "directions": 4
+        },
+        {
+            "name": "janitor_e_r",
+            "directions": 4
+        },
+        {
+            "name": "janitor_l",
+            "directions": 4
+        },
+        {
+            "name": "janitor_derelict",
+            "directions": 4
+        },
+        {
+            "name": "janitor_moving_derelict",
+            "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
+                ]
+            ]
+        },
+        {
+            "name": "medical",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "medical_moving",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "medical_e",
+            "directions": 4
+        },
+        {
+            "name": "medical_e_r",
+            "directions": 4
+        },
+        {
+            "name": "medical_l",
+            "directions": 4
+        },
+        {
+            "name": "medical_derelict",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "medical_moving_derelict",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "miner",
+            "directions": 4
+        },
+        {
+            "name": "miner_moving",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "miner_e",
+            "directions": 4
+        },
+        {
+            "name": "miner_e_r",
+            "directions": 4
+        },
+        {
+            "name": "miner_l",
+            "directions": 4
+        },
+        {
+            "name": "miner_derelict",
+            "directions": 4
+        },
+        {
+            "name": "miner_moving_derelict",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "robot",
+            "directions": 4
+        },
+        {
+            "name": "robot_e",
+            "directions": 4
+        },
+        {
+            "name": "robot_e_r",
+            "directions": 4
+        },
+        {
+            "name": "robot_l",
+            "directions": 4
+        },
+        {
+            "name": "peace",
+            "directions": 4
+        },
+        {
+            "name": "peace_e",
+            "directions": 4
+        },
+        {
+            "name": "peace_e_r",
+            "directions": 4
+        },
+        {
+            "name": "peace_l",
+            "directions": 4
+        },
+        {
+            "name": "service",
+            "directions": 4
+        },
+        {
+            "name": "service_e",
+            "directions": 4
+        },
+        {
+            "name": "service_e_r",
+            "directions": 4
+        },
+        {
+            "name": "service_l",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec_e",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec_l",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec_derelict",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec_derelict_e",
+            "directions": 4
+        },
+        {
+            "name": "synd_sec_derelict_l",
+            "directions": 4
+        },
+        {
+            "name": "synd_medical",
+            "directions": 4
+        },
+        {
+            "name": "synd_medical_l",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "synd_medical_e",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "synd_engi",
+            "directions": 4
+        },
+        {
+            "name": "synd_engi_e",
+            "directions": 4
+        },
+        {
+            "name": "synd_engi_l",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_heavy",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_heavy_e",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_heavy_e_r",
+            "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
+                ],
+                [
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_heavy_l",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_scout",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_scout_l",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_scout_e",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_scout_e_r",
+            "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
+                ],
+                [
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_engi",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_engi_e",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_engi_e_r",
+            "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
+                ],
+                [
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_engi_l",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_stealth",
+            "directions": 4
+        },
+        {
+            "name": "xenoborg_stealth_e",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_stealth_e_r",
+            "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
+                ],
+                [
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1,
+                    0.1
+                ]
+            ]
+        },
+        {
+            "name": "xenoborg_stealth_l",
+            "directions": 4,
+            "delays": [
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ],
+                [
+                    0.1,
+                    0.2,
+                    0.1
+                ]
+            ]
+        }
+    ]
 }
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_derelict.png
new file mode 100644 (file)
index 0000000..d9d812c
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_moving_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_moving_derelict.png
new file mode 100644 (file)
index 0000000..05cd744
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/miner_moving_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict.png
new file mode 100644 (file)
index 0000000..9b42b90
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_e.png
new file mode 100644 (file)
index 0000000..a846feb
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_e.png differ
diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_l.png
new file mode 100644 (file)
index 0000000..b479c41
Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_derelict_l.png differ