diff --git a/Resources/Audio/Effects/Footsteps/attributions.yml b/Resources/Audio/Effects/Footsteps/attributions.yml index f21ca99c974..1a4bcd3bc40 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 00000000000..1d4549a9cb8 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 00000000000..3ed0581d27f 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 00000000000..7a08f127d3a --- /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 00000000000..c40c08d8301 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 00000000000..a9309f7d8a1 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 00000000000..7879ec485c3 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 00000000000..d62e674f30a 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 00000000000..91aed63ca95 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 00000000000..7c23477b017 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 00000000000..ab585237b0e 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 00000000000..b03c8df226b 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 00000000000..4d094c77ec8 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 00000000000..db66c8a92e7 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 00000000000..6bd5cc35912 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 00000000000..4b54caaa384 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 00000000000..dfe0d0d55c7 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 24f66948a7e..722de7f74e4 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 00000000000..5bd6929bfe3 --- /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 6e5d260af04..e73c44ff43a 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 c93a46572b1..0762c68cff8 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 5f526c1c1cd..26ecee52695 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 82b4b405747..442dde4ba81 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 c1ad6b9e409..1c31dcc2801 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 99c06496acf..0c8cee3c4b4 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 82e676cfb0d..11e58206872 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 00000000000..c5600d89cd1 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 00000000000..6c241e90631 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 00000000000..f4b388567bf 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 00000000000..3e543ccbe82 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 7337a8e936e..4e56b98d3e8 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 00000000000..ac544fb5bd8 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 00000000000..069aa392804 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 00000000000..57b4d9620d2 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 00000000000..5b23144ef1e 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 00000000000..8c293a00b21 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 00000000000..9f5dec16ccf 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 00000000000..7f30339ee08 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 00000000000..eeabfef7494 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 00000000000..8825d5bf6f4 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 00000000000..65279858022 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 00000000000..313b8fc82ea 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 00000000000..fa07f69a063 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 00000000000..e06ec2e93d9 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 00000000000..a05ec9580a4 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 00000000000..e98212cf2a2 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 00000000000..5a407dd0551 Binary files /dev/null and b/Resources/Textures/Mobs/Silicon/chassis.rsi/xenoborg_stealth_l.png differ