Add hivebots (#37275)

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
This commit is contained in:
Flareguy
2025-05-15 01:09:23 +00:00
committed by GitHub
parent cba88dc2dc
commit 338665a3ca
12 changed files with 281 additions and 49 deletions

View File

@@ -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

View File

@@ -1,17 +1,67 @@
# 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: MovedByPressure
- type: Physics
bodyType: KinematicController # Same for all inheritors
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- Electrocution
- type: Repairable
doAfterDelay: 8
fuelCost: 15
- type: Pullable
- type: Tag
tags:
- DoorBumpOpener
- SiliconEmotes
- Unimplantable
- type: MobState
allowedStates:
- Alive
- Dead
- type: MobThresholds
thresholds:
0: Alive
120: Dead
stateAlertDict:
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
@@ -30,40 +80,11 @@
- Heat
- Shock
locPrefix: silicon
- type: MovedByPressure
- type: Physics
bodyType: KinematicController # Same for all inheritors
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- Electrocution
- type: NameIdentifier
group: Silicon
- type: Repairable
doAfterDelay: 8
fuelCost: 15
- type: Pullable
- type: Tag
tags:
- DoorBumpOpener
- SiliconEmotes
- Bot
- Unimplantable
- type: MobState
allowedStates:
- Alive
- Dead
- type: MobThresholds
thresholds:
0: Alive
120: Dead
stateAlertDict:
Alive: BorgHealth
Dead: BorgDead
showOverlays: false
- 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

View 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

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -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
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB