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