]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add hivebots (#37275)
authorFlareguy <78941145+Flareguy@users.noreply.github.com>
Thu, 15 May 2025 01:09:23 +0000 (01:09 +0000)
committerGitHub <noreply@github.com>
Thu, 15 May 2025 01:09:23 +0000 (18:09 -0700)
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
12 files changed:
Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml
Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml
Resources/Textures/Mobs/Aliens/hivebot.rsi/EngBot.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/basic.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/basic_attack.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/ranged_attack.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/strong.png [new file with mode: 0644]
Resources/Textures/Mobs/Aliens/hivebot.rsi/strong_attack.png [new file with mode: 0644]

diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml b/Resources/Prototypes/Entities/Mobs/NPCs/hivebot.yml
new file mode 100644 (file)
index 0000000..784b5dc
--- /dev/null
@@ -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
index 3d72e13a4f3aecfc2247ee095dd9de80693fdb1a..e0518be3b2b5b4e6020c49955f1a7ff3a5c0b001 100644 (file)
@@ -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:
       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
       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
index f400680eb0194ae2ca9096d16ae3ef35420683c4..1143f8be6cc0743012a0ab0f6a32792cc7395aba 100644 (file)
@@ -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
index 60b19626b0321f77fdbf331c21cf3a84667dceb8..1bef0ab740014e02a89b08b1911d0b91ec1bc494 100644 (file)
   - 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 (file)
index 0000000..250bec0
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 (file)
index 0000000..69e00a2
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 (file)
index 0000000..cfd14e4
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 (file)
index 0000000..0b1c99f
--- /dev/null
@@ -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 (file)
index 0000000..98649fe
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 (file)
index 0000000..00844dd
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 (file)
index 0000000..38aee88
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 (file)
index 0000000..9b33cb3
Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/hivebot.rsi/strong_attack.png differ