From: Flareguy <78941145+Flareguy@users.noreply.github.com> Date: Thu, 15 May 2025 01:09:23 +0000 (+0000) Subject: Add hivebots (#37275) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=338665a3caa28facc7a2beac34262d133dc9ccbf;p=space-station-14.git Add hivebots (#37275) Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> --- diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml b/Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml new file mode 100644 index 0000000000..784b5dcc43 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml @@ -0,0 +1,123 @@ +# Base hivebot +- type: entity + parent: [ BaseSimpleMob, MobCombat, MobRobotic ] + id: MobHivebot + name: hivebot + description: Agitating, mechanized pests. + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/hivebot.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: basic_attack + - type: HTN + rootTask: + task: SimpleHostileCompound + blackboard: + NavSmash: !type:Bool + true + - type: NpcFactionMember + factions: + - SimpleHostile + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.50 + density: 80 + mask: + - MobMask + layer: + - MobLayer + - type: MobThresholds + thresholds: + 0: Alive + 20: Dead + stateAlertDict: + Alive: BorgHealth + Dead: BorgDead + showOverlays: false + - type: SlowOnDamage + speedModifierThresholds: + 10: 0.7 + - type: MeleeWeapon + altDisarm: false + angle: 0 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + animation: WeaponArcClaw + damage: + types: + Slash: 6 # Pretty whatever on their own, but their strength is in numbers + - type: Tag + tags: + - DoorBumpOpener + - Unimplantable + - type: MovementSpeedModifier + baseWalkSpeed: 1.5 + baseSprintSpeed: 2.5 +# Doesn't seem to work for some reason? +# - type: PointLight +# radius: 1.0 +# energy: 1 +# castShadows: false +# color: "#bc5858" + - type: RotationVisuals + horizontalRotation: 90 + - type: Speech + speechVerb: Robotic + speechSounds: Borg + +- type: entity + parent: MobHivebot + id: MobHivebotRanged + name: hivebot + suffix: Ranged + description: Agitating, mechanized pests. This one has a gun. + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: ranged_attack + - type: HTN + rootTask: + task: SimpleRangedHostileCompound + - type: RechargeBasicEntityAmmo + rechargeCooldown: 0.50 + - type: BasicEntityAmmoProvider + proto: BulletHivebot + capacity: 1 + count: 1 + - type: Gun + fireRate: 0.50 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Guns/Gunshots/smg.ogg + - type: MovementSpeedModifier #Slower then normal to make them easier to hit + baseWalkSpeed: 1 + baseSprintSpeed: 2 + +- type: entity + parent: MobHivebotRanged + id: MobHivebotStrong + name: strong hivebot + description: Agitating, mechanized pests. This one looks much stronger then normal. + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: strong_attack + - type: MobThresholds + thresholds: + 0: Alive + 60: Dead + - type: MovementSpeedModifier #Even slower then the ranged variant, to make them even easier to hit + baseWalkSpeed: 0.75 + baseSprintSpeed: 1.75 + - type: SlowOnDamage + speedModifierThresholds: + 25: 0.7 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index 3d72e13a4f..e0518be3b2 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -1,35 +1,15 @@ +# Used for generic robotic entities (like Hivelords) - type: entity save: false abstract: true parent: BaseMob - id: MobSiliconBase + id: MobRobotic components: - type: Reactive groups: Acidic: [Touch] - type: Damageable damageContainer: Inorganic - - type: MovementSpeedModifier - baseWalkSpeed : 3 - baseSprintSpeed : 4 - - type: NpcFactionMember - factions: - - SimpleNeutral - - type: Access - tags: - - BasicSilicon - - type: IntrinsicRadioReceiver - - type: ActiveRadio - channels: - - Common - - type: HealthExaminable - examinableTypes: - - Blunt - - Slash - - Piercing - - Heat - - Shock - locPrefix: silicon - type: MovedByPressure - type: Physics bodyType: KinematicController # Same for all inheritors @@ -40,8 +20,6 @@ - SlowedDown - Stutter - Electrocution - - type: NameIdentifier - group: Silicon - type: Repairable doAfterDelay: 8 fuelCost: 15 @@ -50,7 +28,6 @@ tags: - DoorBumpOpener - SiliconEmotes - - Bot - Unimplantable - type: MobState allowedStates: @@ -64,6 +41,50 @@ Alive: BorgHealth Dead: BorgDead showOverlays: false + - type: Speech + speechVerb: Robotic + speechSounds: Borg + - type: TypingIndicator + proto: robot + - type: Vocal + sounds: + Unsexed: UnisexSilicon + - type: Emoting + - type: ZombieImmune + - type: ProtectedFromStepTriggers + - type: NoSlip + - type: Insulated + +# Used for bots +- type: entity + save: false + abstract: true + parent: MobRobotic + id: MobSiliconBase + components: + - type: NpcFactionMember + factions: + - SimpleNeutral + - type: Access + tags: + - BasicSilicon + - type: IntrinsicRadioReceiver + - type: ActiveRadio + channels: + - Common + - type: HealthExaminable + examinableTypes: + - Blunt + - Slash + - Piercing + - Heat + - Shock + locPrefix: silicon + - type: NameIdentifier + group: Silicon + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 4 - type: Stamina critThreshold: 120 - type: Destructible @@ -79,24 +100,20 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - - type: Body - prototype: Bot - type: GuideHelp guides: - Robotics + - type: Tag + tags: + - DoorBumpOpener + - SiliconEmotes + - Bot + - Unimplantable + - type: Body + prototype: Bot - type: Speech speechVerb: Robotic speechSounds: Pai #couldn't decide if this should be borg or pai sounds so I flipped a coin. - - type: TypingIndicator - proto: robot - - type: Vocal - sounds: - Unsexed: UnisexSilicon - - type: Emoting - - type: ZombieImmune - - type: ProtectedFromStepTriggers - - type: NoSlip - - type: Insulated - type: entity parent: MobSiliconBase diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index f400680eb0..1143f8be6c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -4,7 +4,6 @@ - BaseMob - MobDamageable - MobPolymorphable - - MobAtmosExposed id: BaseSimpleMob suffix: AI abstract: true @@ -40,6 +39,7 @@ abstract: true parent: - BaseSimpleMob + - MobAtmosExposed - MobCombat - MobBloodstream - MobFlammable diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 60b19626b0..1bef0ab740 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -979,6 +979,17 @@ - type: Appearance - type: VaporVisuals +- type: entity + id: BulletHivebot + name: hivebot bullet + parent: BaseBullet + categories: [ HideSpawnMenu ] + components: + - type: Projectile + damage: + types: + Piercing: 10 + - type: entity id: BulletCannonBall name: cannonball diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/EngBot.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/EngBot.png new file mode 100644 index 0000000000..250bec06cf Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/EngBot.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic.png new file mode 100644 index 0000000000..69e00a2de4 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic_attack.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic_attack.png new file mode 100644 index 0000000000..cfd14e4da3 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/basic_attack.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/meta.json b/Resources/Textures/Mobs/Aliens/hivebot.rsi/meta.json new file mode 100644 index 0000000000..0b1c99fb26 --- /dev/null +++ b/Resources/Textures/Mobs/Aliens/hivebot.rsi/meta.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/6665eec76c98a4f3f89bebcd10b34b47dcc0b8ae", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "basic", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.6 + ] + ] + }, + { + "name": "basic_attack", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.2 + ] + ] + }, + { + "name": "ranged", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.6 + ] + ] + }, + { + "name": "ranged_attack", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.2 + ] + ] + }, + { + "name": "strong", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.6 + ] + ] + }, + { + "name": "strong_attack", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.2 + ] + ] + }, + { + "name": "EngBot", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged.png new file mode 100644 index 0000000000..98649fe87c Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged_attack.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged_attack.png new file mode 100644 index 0000000000..00844ddbcf Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged_attack.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong.png new file mode 100644 index 0000000000..38aee880f0 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong.png differ diff --git a/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong_attack.png b/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong_attack.png new file mode 100644 index 0000000000..9b33cb31c0 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong_attack.png differ