diff --git a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl index 7606177dab58..33f2627f6c88 100644 --- a/Resources/Locale/en-US/interaction/interaction-popup-component.ftl +++ b/Resources/Locale/en-US/interaction/interaction-popup-component.ftl @@ -68,6 +68,7 @@ petting-success-cleanbot = You pet {THE($target)} on {POSS-ADJ($target)} damp me petting-success-medibot = You pet {THE($target)} on {POSS-ADJ($target)} sterile metal head. petting-success-generic-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} metal head. petting-success-salvage-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} dirty metal head. +petting-success-cargo-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} scratched metal head. petting-success-engineer-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} reflective metal head. petting-success-janitor-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} damp metal head. petting-success-medical-cyborg = You pet {THE($target)} on {POSS-ADJ($target)} sterile metal head. diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index d1d530ae81b7..776cd832f9ac 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -328,6 +328,67 @@ interactSuccessSound: path: /Audio/Ambience/Objects/periodic_beep.ogg +- type: entity + id: BorgChassisCargo + parent: BaseBorgChassisNT + name: cargo cyborg + components: + - type: Sprite + layers: + - state: cargo + map: ["movement"] + - state: cargo_e_r + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: cargo_l + shader: unshaded + map: ["light"] + visible: false + - type: SpriteMovement + movementLayers: + movement: + state: cargo_moving + noMovementLayers: + movement: + state: cargo + - type: BorgChassis + maxModules: 4 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleCargo + hasMindState: cargo_e + noMindState: cargo_e_r + - type: BorgTransponder + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: cargo + name: cargo cyborg + - type: Construction + node: cargo + - type: IntrinsicRadioTransmitter + channels: + - Supply + - Binary + - Common + - Science + - type: ActiveRadio + channels: + - Supply + - Binary + - Common + - Science + - type: AccessReader + access: [["Cargo"], ["Salvage"], ["Command"], ["Research"]] + - type: Inventory + templateId: borgTall + - type: InteractionPopup + interactSuccessString: petting-success-cargo-cyborg + interactFailureString: petting-failure-cargo-cyborg + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg + - type: entity id: BorgChassisSyndicateAssault parent: BaseBorgChassisSyndicate diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml index 6df0488e28fe..5fd4ed72a05e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_parts.yml @@ -412,6 +412,96 @@ - Trash - BorgMiningTorso +# cargo parts +- type: entity + id: LeftArmBorgCargo + parent: BaseBorgArmLeft + name: cargo cyborg left arm + components: + - type: Sprite + state: cargo_l_arm + - type: Icon + state: cargo_l_arm + - type: Tag + tags: + - Trash + - BorgArm + - BorgCargoLArm + +- type: entity + id: RightArmBorgCargo + parent: BaseBorgArmRight + name: cargo cyborg right arm + components: + - type: Sprite + state: cargo_r_arm + - type: Icon + state: cargo_r_arm + - type: Tag + tags: + - Trash + - BorgArm + - BorgCargoRArm + +- type: entity + id: LeftLegBorgCargo + parent: BaseBorgLegLeft + name: cargo cyborg left leg + components: + - type: Sprite + state: cargo_l_leg + - type: Icon + state: cargo_l_leg + - type: Tag + tags: + - Trash + - BorgLeg + - BorgCargoLLeg + +- type: entity + id: RightLegBorgCargo + parent: BaseBorgLegRight + name: cargo cyborg right leg + components: + - type: Sprite + state: cargo_r_leg + - type: Icon + state: cargo_r_leg + - type: Tag + tags: + - Trash + - BorgLeg + - BorgCargoRLeg + +- type: entity + id: HeadBorgCargo + parent: BaseBorgHead + name: cargo cyborg head + components: + - type: Sprite + state: cargo_head + - type: Icon + state: cargo_head + - type: Tag + tags: + - Trash + - BorgHead + - BorgCargoHead + +- type: entity + id: TorsoBorgCargo + parent: BaseBorgTorso + name: cargo cyborg torso + components: + - type: Sprite + state: cargo_chest + - type: Icon + state: cargo_chest + - type: Tag + tags: + - Trash + - BorgCargoTorso + # service parts - type: entity id: LeftArmBorgService diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml index 9261e06ea2a7..22b4dbda4dae 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml @@ -126,6 +126,30 @@ whitelist: tags: - BorgMiningTorso + cargo_l_arm+o: + whitelist: + tags: + - BorgCargoLArm + cargo_r_arm+o: + whitelist: + tags: + - BorgCargoRArm + cargo_l_leg+o: + whitelist: + tags: + - BorgCargoLLeg + cargo_r_leg+o: + whitelist: + tags: + - BorgCargoRLeg + cargo_head+o: + whitelist: + tags: + - BorgCargoHead + cargo_chest+o: + whitelist: + tags: + - BorgCargoTorso medical_l_arm+o: whitelist: tags: @@ -212,6 +236,13 @@ - BorgMiningRLeg - BorgMiningHead - BorgMiningTorso + cargo: + - BorgCargoLArm + - BorgCargoRArm + - BorgCargoLLeg + - BorgCargoRLeg + - BorgCargoHead + - BorgCargoTorso - type: Construction graph: Cyborg node: start diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index e5419025d88e..acb30294e734 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -608,6 +608,12 @@ - RightLegBorgMining - HeadBorgMining - TorsoBorgMining + - LeftArmBorgCargo + - RightArmBorgCargo + - LeftLegBorgCargo + - RightLegBorgCargo + - HeadBorgCargo + - TorsoBorgCargo - LeftArmBorgService - RightArmBorgService - LeftLegBorgService diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml index 0f012cefc98e..48f29e636158 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml @@ -152,6 +152,34 @@ - tool: Screwing doAfter: 0.5 + - to: cargo + steps: + - assemblyId: cargo + guideString: borg-construction-guide-string + + - material: Cable + amount: 1 + doAfter: 1 + store: part-container + + - component: Flash + name: flash + store: part-container + icon: + sprite: Objects/Weapons/Melee/flash.rsi + state: flash + + - component: Flash + name: second flash + store: part-container + icon: + sprite: Objects/Weapons/Melee/flash.rsi + state: flash + + - tool: Screwing + doAfter: 0.5 + + - to: service steps: - assemblyId: service @@ -191,6 +219,9 @@ - node: mining entity: BorgChassisMining + - node: cargo + entity: BorgChassisCargo + - node: medical entity: BorgChassisMedical diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index 3f6ef65f22ef..655e0e7c21f5 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -241,6 +241,60 @@ Steel: 250 Glass: 100 +- type: latheRecipe + id: LeftArmBorgCargo + result: LeftArmBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + +- type: latheRecipe + id: RightArmBorgCargo + result: RightArmBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + +- type: latheRecipe + id: LeftLegBorgCargo + result: LeftLegBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + +- type: latheRecipe + id: RightLegBorgCargo + result: RightLegBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + +- type: latheRecipe + id: HeadBorgCargo + result: HeadBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + +- type: latheRecipe + id: TorsoBorgCargo + result: TorsoBorgCargo + category: Robotics + completetime: 2 + materials: + Steel: 250 + Glass: 100 + - type: latheRecipe id: LeftArmBorgService result: LeftArmBorgService diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index d60d5a8c1f90..8d6bcd2ef5d0 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -72,6 +72,24 @@ - type: Tag id: BorgArm +- type: Tag + id: BorgCargoHead + +- type: Tag + id: BorgCargoLArm + +- type: Tag + id: BorgCargoLLeg + +- type: Tag + id: BorgCargoRArm + +- type: Tag + id: BorgCargoRLeg + +- type: Tag + id: BorgCargoTorso + - type: Tag id: BorgEngineerHead diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo.png new file mode 100644 index 000000000000..a44c9ffc1ff7 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e.png new file mode 100644 index 000000000000..0e44b9b87217 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e_r.png new file mode 100644 index 000000000000..76cae74b366f Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_l.png new file mode 100644 index 000000000000..5e84eb8d5025 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_moving.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_moving.png new file mode 100644 index 000000000000..61cb71fb89f0 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/cargo_moving.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json index 68fbf1985e7f..9d7f5fe6f2ce 100644 --- a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json +++ b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json @@ -187,6 +187,44 @@ "name": "miner_l", "directions": 4 }, + { + "name": "cargo", + "directions": 4 + }, + { + "name": "cargo_moving", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "cargo_e", + "directions": 4 + }, + { + "name": "cargo_e_r", + "directions": 4 + }, + { + "name": "cargo_l", + "directions": 4 + }, { "name": "robot", "directions": 4 diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest+o.png new file mode 100644 index 000000000000..0c5ede3b903d Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest.png new file mode 100644 index 000000000000..41e534171013 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_chest.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head+o.png new file mode 100644 index 000000000000..6a027a0ff5df Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head.png new file mode 100644 index 000000000000..9b495e7afeca Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_head.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm+o.png new file mode 100644 index 000000000000..3397e379e73f Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm.png new file mode 100644 index 000000000000..7decec6a769b Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_arm.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg+o.png new file mode 100644 index 000000000000..ab5e9258ee82 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg.png new file mode 100644 index 000000000000..ffe6e09f9ee7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_l_leg.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm+o.png new file mode 100644 index 000000000000..a8cf578175e1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm.png new file mode 100644 index 000000000000..0b8b508b23e1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_arm.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg+o.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg+o.png new file mode 100644 index 000000000000..3e6c02fc27b7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg+o.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg.png b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg.png new file mode 100644 index 000000000000..6876a608aa38 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/cargo_r_leg.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/meta.json index 8cab41943fe2..05c0095766b3 100644 --- a/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/cyborg_parts.rsi/meta.json @@ -178,6 +178,42 @@ { "name": "mining_r_leg+o" }, + { + "name": "cargo_l_arm" + }, + { + "name": "cargo_r_arm" + }, + { + "name": "cargo_l_leg" + }, + { + "name": "cargo_r_leg" + }, + { + "name": "cargo_chest" + }, + { + "name": "cargo_head" + }, + { + "name": "cargo_head+o" + }, + { + "name": "cargo_chest+o" + }, + { + "name": "cargo_l_arm+o" + }, + { + "name": "cargo_r_arm+o" + }, + { + "name": "cargo_l_leg+o" + }, + { + "name": "cargo_r_leg+o" + }, { "name": "service_l_arm" },