From: Samuka-C <47865393+Samuka-C@users.noreply.github.com> Date: Sat, 17 May 2025 03:59:48 +0000 (-0300) Subject: Xenoborgs part 3 (#36867) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=722620c1cfaf6f9ba251ed25a4e643ffcc425b97;p=space-station-14.git Xenoborgs part 3 (#36867) 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 --- diff --git a/Resources/Audio/Effects/Footsteps/attributions.yml b/Resources/Audio/Effects/Footsteps/attributions.yml index f21ca99c97..1a4bcd3bc4 100644 --- a/Resources/Audio/Effects/Footsteps/attributions.yml +++ b/Resources/Audio/Effects/Footsteps/attributions.yml @@ -102,6 +102,13 @@ copyright: "Taken from IENBA freesound.org and modified by https://github.com/MilenVolf. borgwalk2 clipped my metalgearsloth." source: "https://freesound.org/people/IENBA/sounds/697379/" +- files: + - borgwalk3.ogg + - borgwalk4.ogg + license: "CC-BY-SA-4.0" + copyright: "Modified version from borgwalk1 and borgwalk2 by https://github.com/Samuka-C." + source: "https://github.com/space-wizards/space-station-14/pull/36867" + - files: - heelsclack1.ogg - heelsclack2.ogg diff --git a/Resources/Audio/Effects/Footsteps/borgwalk3.ogg b/Resources/Audio/Effects/Footsteps/borgwalk3.ogg new file mode 100644 index 0000000000..1d4549a9cb Binary files /dev/null and b/Resources/Audio/Effects/Footsteps/borgwalk3.ogg differ diff --git a/Resources/Audio/Effects/Footsteps/borgwalk4.ogg b/Resources/Audio/Effects/Footsteps/borgwalk4.ogg new file mode 100644 index 0000000000..3ed0581d27 Binary files /dev/null and b/Resources/Audio/Effects/Footsteps/borgwalk4.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/attributions.yml b/Resources/Audio/Voice/Xenoborg/attributions.yml new file mode 100644 index 0000000000..7a08f127d3 --- /dev/null +++ b/Resources/Audio/Voice/Xenoborg/attributions.yml @@ -0,0 +1,17 @@ +- files: + - xenoborg_ask.ogg + - xenoborg_bike_horn.ogg + - xenoborg_buzz-sigh.ogg + - xenoborg_buzz-two.ogg + - xenoborg_chime.ogg + - xenoborg_exclaim.ogg + - xenoborg_laugh_1.ogg + - xenoborg_laugh_2.ogg + - xenoborg_laugh_3.ogg + - xenoborg_laugh_4.ogg + - xenoborg_ping.ogg + - xenoborg_talk.ogg + - xenoborg_twobeep.ogg + license: "CC-BY-SA-4.0" + copyright: "Recorded and mixed by DarkIcedCoffe (Discord)" + source: "https://github.com/space-wizards/space-station-14/pull/36867" diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg new file mode 100644 index 0000000000..c40c08d830 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_ask.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg new file mode 100644 index 0000000000..a9309f7d8a Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg new file mode 100644 index 0000000000..7879ec485c Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg new file mode 100644 index 0000000000..d62e674f30 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg new file mode 100644 index 0000000000..91aed63ca9 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_chime.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg new file mode 100644 index 0000000000..7c23477b01 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_exclaim.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg new file mode 100644 index 0000000000..ab585237b0 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg new file mode 100644 index 0000000000..b03c8df226 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg new file mode 100644 index 0000000000..4d094c77ec Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg new file mode 100644 index 0000000000..db66c8a92e Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg new file mode 100644 index 0000000000..6bd5cc3591 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_ping.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg new file mode 100644 index 0000000000..4b54caaa38 Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_talk.ogg differ diff --git a/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg b/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg new file mode 100644 index 0000000000..dfe0d0d55c Binary files /dev/null and b/Resources/Audio/Voice/Xenoborg/xenoborg_twobeep.ogg differ diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 24f66948a7..722de7f74e 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -1,6 +1,6 @@ - type: entity parent: [BaseMob, StripableInventoryBase] - id: BaseBorgChassis + id: BaseBorgChassisNotIonStormable name: cyborg description: A man-machine hybrid that assists in station activity. They love being asked to state their laws over and over. save: false @@ -83,7 +83,6 @@ stunTime: 5 - type: SiliconLawProvider laws: Crewsimov - - type: IonStormTarget - type: Inventory templateId: borg - type: Hands @@ -250,6 +249,13 @@ flatReductions: Heat: 10 # capable of touching light bulbs and stoves without feeling pain! +- type: entity + abstract: true + parent: BaseBorgChassisNotIonStormable + id: BaseBorgChassis + components: + - type: IonStormTarget + - type: entity abstract: true id: BaseBorgTransponder @@ -279,6 +285,26 @@ maxIntensity: 20 canCreateVacuum: false # its for killing the borg not the station +- type: entity + abstract: true + parent: BaseBorgTransponder + id: BaseXenoborgTransponder + components: + - type: DeviceNetwork + receiveFrequencyId: Xenoborg + transmitFrequencyId: Mothership + - type: SurveillanceCamera # they act like cameras for the mothership + networkSet: true + nameSet: True + id: Xenoborg + - type: Explosive + explosionType: Minibomb + deleteAfterExplosion: false # let damage threshold gib the borg + totalIntensity: 200 # bigger kaboom + intensitySlope: 20 + maxIntensity: 100 + canCreateVacuum: false + - type: entity id: BaseBorgChassisNT parent: [BaseBorgChassis, BaseBorgTransponder] @@ -358,3 +384,115 @@ - type: IonStormTarget chance: 1 - type: ShowJobIcons + +- type: entity + 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. + save: false + abstract: true + components: + - type: RandomMetadata + nameSegments: + - NamesXenoborg + - type: Sprite + sprite: Mobs/Silicon/chassis.rsi + - type: MobThresholds + thresholds: # slightly tankier than a normal borg + 0: Alive + 125: Critical + 250: Dead + - type: EmagSiliconLaw # should xenoborgs be emagable? + stunTime: 5 + - type: SiliconLawProvider + laws: XenoborgLawset # custom laws here + subverted: true + - type: IntrinsicRadioTransmitter # can only use binary and xenoborg channel + channels: + - Xenoborg + - Binary + - type: ActiveRadio # but can hear the mothership channel + channels: + - Mothership + - Xenoborg + - Binary + - type: Repairable + doAfterDelay: 13 # 25% more HP, so 30% more time to heal + - type: BorgChassis + maxModules: 0 + hasMindState: robot_e + noMindState: robot_e_r + moduleWhitelist: + tags: + - XenoborgModuleGeneric + - type: TypingIndicator + proto: xenoborg + - type: Speech + speechVerb: Robotic + speechSounds: Xenoborg + allowedEmotes: + - Laugh + - type: Vocal + sounds: + Unsexed: UnisexSiliconXenoborg + screamAction: null + - type: DamagedSiliconAccent + - type: UnblockableSpeech + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepXenoborg + # - type: SpamEmitSound # makes a creppy noise randomly + # minInterval: 30 + # maxInterval: 45 + # sound: + # path: /Audio/Machines/genetics.ogg + # params: + # volume: -8 + # maxDistance: 5 + # variation: 0.05 + - type: NpcFactionMember + factions: + - Xenoborg + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 90 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 375 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + color: "#0033ff" + - type: GuideHelp + guides: + - Cyborgs + - Robotics + # TODO: add Xenoborg guide (part 7 spoilers) + - type: Access + enabled: false + tags: + - Xenoborg + - type: AccessReader + access: [["Xenoborg"]] + - type: ShowJobIcons # not sure if it is needed + - type: InteractionPopup + interactSuccessSound: + path: /Audio/Ambience/Objects/periodic_beep.ogg diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/xenoborgs.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/xenoborgs.yml new file mode 100644 index 0000000000..5bd6929bfe --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/xenoborgs.yml @@ -0,0 +1,333 @@ +- type: entity + parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ] + 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. + components: + - type: BorgTransponder + name: engi xenoborg + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: xenoborg_engi + - type: Sprite + layers: + - state: xenoborg_engi + - state: xenoborg_engi_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: xenoborg_engi_l + shader: unshaded + map: ["light"] + visible: false + - type: BorgChassis + maxModules: 7 + hasMindState: xenoborg_engi_e + noMindState: xenoborg_engi_e_r + moduleWhitelist: + tags: + - XenoborgModuleGeneric + - XenoborgModuleEngi + - BorgModuleEngineering + - type: ContainerFill + containers: + borg_brain: + - MMIFilled + borg_module: + - XenoborgModuleBasic + - BorgModuleAdvancedTool + - BorgModuleConstruction + - BorgModuleRCD + - BorgModuleCable + - XenoborgModuleAccessBreaker + - XenoborgModuleFireExtinguisher + - type: ShowHealthBars + damageContainers: + - Inorganic + - Silicon + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHigh + +- type: entity + parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ] + 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. + components: + - type: BorgTransponder + name: heavy xenoborg + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: xenoborg_heavy + - type: Sprite + layers: + - state: xenoborg_heavy + - state: xenoborg_heavy_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: xenoborg_heavy_l + shader: unshaded + map: ["light"] + visible: false + - type: BorgChassis + maxModules: 4 + hasMindState: xenoborg_heavy_e + noMindState: xenoborg_heavy_e_r + moduleWhitelist: + tags: + - XenoborgModuleGeneric + - XenoborgModuleHeavy + - type: MovementSpeedModifier # slower + baseWalkSpeed : 1.2 + baseSprintSpeed : 2.2 + - type: FlashImmunity + - type: MobThresholds # tankier + thresholds: + 0: Alive + 250: Critical + 500: Dead + stateAlertDict: + Alive: BorgHealth + Critical: BorgCrit + Dead: BorgDead + showOverlays: false + allowRevives: true + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 190 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Machines/warning_buzzer.ogg + params: + volume: 5 + - trigger: + !type:DamageTrigger + damage: 750 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - cell_slot + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Repairable + doAfterDelay: 25 # more HP, more time to heal + - type: ContainerFill + containers: + borg_brain: + - MMIFilled + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleLaser + - XenoborgModuleJammer + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHigh + +- type: entity + parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ] + 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. + components: + - type: BorgTransponder + name: scout xenoborg + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: xenoborg_scout + - type: Sprite + layers: + - state: xenoborg_scout + - state: xenoborg_scout_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: xenoborg_scout_l + shader: unshaded + map: ["light"] + visible: false + - type: FootstepModifier # it flies instead of walking + footstepSoundCollection: + collection: FootstepHoverXenoborg + - type: FlashImmunity + - type: BorgChassis + maxModules: 4 + hasMindState: xenoborg_scout_e + noMindState: xenoborg_scout_e_r + moduleWhitelist: + tags: + - XenoborgModuleGeneric + - XenoborgModuleScout + - type: MovementSpeedModifier # faster + baseWalkSpeed : 3 + baseSprintSpeed : 6 + - type: ContainerFill + containers: + borg_brain: + - MMIFilled + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleSword + - XenoborgModuleSpaceMovement + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHigh + +- type: entity + parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ] + 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. + components: + - type: BorgTransponder + name: stealth xenoborg + sprite: + sprite: Mobs/Silicon/chassis.rsi + state: xenoborg_stealth + - type: Sprite + layers: + - state: xenoborg_stealth + - state: xenoborg_stealth_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: xenoborg_stealth_l + shader: unshaded + map: ["light"] + visible: false + - type: FootstepModifier # it flies instead of walking + footstepSoundCollection: + collection: FootstepHoverXenoborg + - type: BorgChassis + maxModules: 5 + hasMindState: xenoborg_stealth_e + noMindState: xenoborg_stealth_e_r + moduleWhitelist: + tags: + - XenoborgModuleGeneric + - XenoborgModuleStealth + - type: MovementAlwaysTouching # it flies in space with tiny thrusters + # - type: SpamEmitSound # longer interval to make the creppy sound + # minInterval: 50 + # maxInterval: 150 + - type: ContainerFill + containers: + borg_brain: + - MMIFilled + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleHypo + - XenoborgModuleChameleonProjector + - XenoborgModuleCloakDevice + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHigh + + +# xenoborgs empty +- type: entity + parent: XenoborgEngi + id: XenoborgEngiPrinted + suffix: no brain + components: + - type: ContainerFill + containers: + borg_brain: + - MMI + borg_module: + - XenoborgModuleBasic + - BorgModuleAdvancedTool + - BorgModuleConstruction + - BorgModuleRCD + - BorgModuleCable + - XenoborgModuleAccessBreaker + - XenoborgModuleFireExtinguisher + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHighPrinted + +- type: entity + parent: XenoborgHeavy + id: XenoborgHeavyPrinted + suffix: no brain + components: + - type: ContainerFill + containers: + borg_brain: + - MMI + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleLaser + - XenoborgModuleJammer + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHighPrinted + +- type: entity + parent: XenoborgScout + id: XenoborgScoutPrinted + suffix: no brain + components: + - type: ContainerFill + containers: + borg_brain: + - MMI + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleSword + - XenoborgModuleSpaceMovement + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHighPrinted + +- type: entity + parent: XenoborgStealth + id: XenoborgStealthPrinted + suffix: no brain + components: + - type: ContainerFill + containers: + borg_brain: + - MMI + borg_module: + - XenoborgModuleBasic + - XenoborgModuleTool + - XenoborgModuleHypo + - XenoborgModuleChameleonProjector + - XenoborgModuleCloakDevice + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHighPrinted diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 6e5d260af0..e73c44ff43 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -1162,7 +1162,7 @@ parent: [ BaseXenoborgModuleScout, BaseProviderBorgModule, BaseXenoborgContraband ] id: XenoborgModuleSword name: sword xenoborg module - description: Module with an energy dagger. + description: Module with a kukri knife. components: - type: Sprite layers: @@ -1170,16 +1170,16 @@ - state: icon-xenoborg-sword - type: ItemBorgModule items: - - EnergyDaggerLoudBlue + - KukriKnife - JetpackXenoborg - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-sword-module } - type: entity parent: [ BaseXenoborgModuleScout, BaseProviderBorgModule, BaseXenoborgContraband ] - id: XenoborgModuleFastSword - name: fast sword xenoborg module - description: Module with a crusher dagger. + id: XenoborgModuleEnergySword + name: energy sword xenoborg module + description: Module with an energy dagger. components: - type: Sprite layers: @@ -1187,7 +1187,7 @@ - state: icon-xenoborg-sword2 - type: ItemBorgModule items: - - WeaponCrusherDagger + - EnergyDaggerLoudBlue - JetpackXenoborg - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: xenoborg-sword2-module } diff --git a/Resources/Prototypes/SoundCollections/emotes.yml b/Resources/Prototypes/SoundCollections/emotes.yml index c93a46572b..0762c68cff 100644 --- a/Resources/Prototypes/SoundCollections/emotes.yml +++ b/Resources/Prototypes/SoundCollections/emotes.yml @@ -102,3 +102,41 @@ id: Hew files: - /Audio/Items/Toys/hew.ogg + +- type: soundCollection + id: XenoborgLaugh + files: + - /Audio/Voice/Xenoborg/xenoborg_laugh_1.ogg + - /Audio/Voice/Xenoborg/xenoborg_laugh_2.ogg + - /Audio/Voice/Xenoborg/xenoborg_laugh_3.ogg + - /Audio/Voice/Xenoborg/xenoborg_laugh_4.ogg + +- type: soundCollection + id: XenoborgBeep + files: + - /Audio/Voice/Xenoborg/xenoborg_twobeep.ogg + +- type: soundCollection + id: XenoborgChime + files: + - /Audio/Voice/Xenoborg/xenoborg_chime.ogg + +- type: soundCollection + id: XenoborgBuzz + files: + - /Audio/Voice/Xenoborg/xenoborg_buzz-sigh.ogg + +- type: soundCollection + id: XenoborgBuzzTwo + files: + - /Audio/Voice/Xenoborg/xenoborg_buzz-two.ogg + +- type: soundCollection + id: XenoborgBikeHorn + files: + - /Audio/Voice/Xenoborg/xenoborg_bikehorn.ogg + +- type: soundCollection + id: XenoborgPing + files: + - /Audio/Voice/Xenoborg/xenoborg_ping.ogg diff --git a/Resources/Prototypes/SoundCollections/footsteps.yml b/Resources/Prototypes/SoundCollections/footsteps.yml index 5f526c1c1c..26ecee5269 100644 --- a/Resources/Prototypes/SoundCollections/footsteps.yml +++ b/Resources/Prototypes/SoundCollections/footsteps.yml @@ -232,11 +232,21 @@ files: - /Audio/Effects/Footsteps/borgwalk1.ogg +- type: soundCollection + id: FootstepXenoborg + files: + - /Audio/Effects/Footsteps/borgwalk3.ogg + - type: soundCollection id: FootstepHoverBorg files: - /Audio/Effects/Footsteps/borgwalk2.ogg +- type: soundCollection + id: FootstepHoverXenoborg + files: + - /Audio/Effects/Footsteps/borgwalk4.ogg + - type: soundCollection id: FootstepHighHeels files: diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index 82b4b40574..442dde4ba8 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -432,6 +432,26 @@ Ping: path: /Audio/Effects/Cargo/ping.ogg +- type: emoteSounds + id: UnisexSiliconXenoborg + params: + variation: 0.05 + sounds: + Laugh: + collection: XenoborgLaugh + Beep: + collection: XenoborgBeep + Chime: + collection: XenoborgChime + Buzz: + collection: XenoborgBuzz + Buzz-Two: + collection: XenoborgBuzzTwo + Honk: + collection: XenoborgBikeHorn + Ping: + collection: XenoborgPing + # body emotes - type: emoteSounds id: GeneralBodyEmotes diff --git a/Resources/Prototypes/Voice/speech_sounds.yml b/Resources/Prototypes/Voice/speech_sounds.yml index c1ad6b9e40..1c31dcc280 100644 --- a/Resources/Prototypes/Voice/speech_sounds.yml +++ b/Resources/Prototypes/Voice/speech_sounds.yml @@ -70,6 +70,15 @@ exclaimSound: path: /Audio/Voice/Talk/Silicon/syndieborg_exclaim.ogg +- type: speechSounds + id: Xenoborg + saySound: + path: /Audio/Voice/Xenoborg/xenoborg_talk.ogg + askSound: + path: /Audio/Voice/Xenoborg/xenoborg_ask.ogg + exclaimSound: + path: /Audio/Voice/Xenoborg/xenoborg_exclaim.ogg + - type: speechSounds id: Pai saySound: diff --git a/Resources/Prototypes/typing_indicator.yml b/Resources/Prototypes/typing_indicator.yml index 99c06496ac..0c8cee3c4b 100644 --- a/Resources/Prototypes/typing_indicator.yml +++ b/Resources/Prototypes/typing_indicator.yml @@ -8,6 +8,11 @@ typingState: robot0 idleState: robot3 +- type: typingIndicator + id: xenoborg + typingState: xenoborg0 + idleState: xenoborg3 + - type: typingIndicator id: alien typingState: alien0 diff --git a/Resources/Textures/Effects/speech.rsi/meta.json b/Resources/Textures/Effects/speech.rsi/meta.json index 82e676cfb0..11e5820687 100644 --- a/Resources/Textures/Effects/speech.rsi/meta.json +++ b/Resources/Textures/Effects/speech.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Diona and Gingerbread sprites made by YoungThugSS14 (Github)", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c6e3401f2e7e1e55c57060cdf956a98ef1fefc24 | Moth sprites made by PuroSlavKing (Github) | Spider sprites made by PixelTheKermit (Github) | Lizard sprites made by AmalgoMyte (Github) | Diona and Gingerbread sprites made by YoungThugSS14 (Github) | Xenoborg sprites by Samuka-c (Github)", "size": { "x": 32, "y": 32 @@ -616,6 +616,37 @@ 0.4 ] ] + }, + { + "name": "xenoborg0", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "xenoborg1" + }, + { + "name": "xenoborg2" + }, + { + "name": "xenoborg3", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] } ] } diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg0.png b/Resources/Textures/Effects/speech.rsi/xenoborg0.png new file mode 100644 index 0000000000..c5600d89cd Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg0.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg1.png b/Resources/Textures/Effects/speech.rsi/xenoborg1.png new file mode 100644 index 0000000000..6c241e9063 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg1.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg2.png b/Resources/Textures/Effects/speech.rsi/xenoborg2.png new file mode 100644 index 0000000000..f4b388567b Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg2.png differ diff --git a/Resources/Textures/Effects/speech.rsi/xenoborg3.png b/Resources/Textures/Effects/speech.rsi/xenoborg3.png new file mode 100644 index 0000000000..3e543ccbe8 Binary files /dev/null and b/Resources/Textures/Effects/speech.rsi/xenoborg3.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json index 7337a8e936..4e56b98d3e 100644 --- a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json +++ b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json @@ -5,7 +5,7 @@ "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).", + "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", @@ -324,8 +324,8 @@ ] }, { - "name": "synd_engi", - "directions": 4 + "name": "synd_engi", + "directions": 4 }, { "name": "synd_engi_e", @@ -334,7 +334,326 @@ { "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/xenoborg_engi.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi.png new file mode 100644 index 0000000000..ac544fb5bd Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png new file mode 100644 index 0000000000..069aa39280 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png new file mode 100644 index 0000000000..57b4d9620d Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png new file mode 100644 index 0000000000..5b23144ef1 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_engi_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png new file mode 100644 index 0000000000..8c293a00b2 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png new file mode 100644 index 0000000000..9f5dec16cc Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png new file mode 100644 index 0000000000..7f30339ee0 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png new file mode 100644 index 0000000000..eeabfef749 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_heavy_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png new file mode 100644 index 0000000000..8825d5bf6f Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png new file mode 100644 index 0000000000..6527985802 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png new file mode 100644 index 0000000000..313b8fc82e Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png new file mode 100644 index 0000000000..fa07f69a06 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_scout_l.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png new file mode 100644 index 0000000000..e06ec2e93d Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png new file mode 100644 index 0000000000..a05ec9580a Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png new file mode 100644 index 0000000000..e98212cf2a Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_e_r.png differ diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png new file mode 100644 index 0000000000..5a407dd055 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png differ