From c91a6c3f59f95b9c70a93bfd2af1a0632d0f5522 Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Fri, 4 Apr 2025 17:30:26 +0300 Subject: [PATCH] Adapted watchers (#1129) * watcher * co * sadly --- .../en-US/_CP14/demiplane/modifiers.ftl | 1 + .../ru-RU/_CP14/demiplane/modifiers.ftl | 1 + .../Prototypes/_CP14/Damage/modifier_sets.yml | 12 ++ .../_CP14/Entities/Mobs/NPC/watcher.yml | 138 ++++++++++++++++++ .../Demiplane/Modifiers/Danger/mobs.yml | 38 +++++ 5 files changed, 190 insertions(+) create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/NPC/watcher.yml diff --git a/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl b/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl index 45417f531e..662b7a89d6 100644 --- a/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl +++ b/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl @@ -16,6 +16,7 @@ cp14-modifier-slime = slimes cp14-modifier-skeleton = sentient skeletons cp14-modifier-dyno = prehistoric fauna cp14-modifier-mole = predatory moles +cp14-modifier-watcher = watchers cp14-modifier-rabbits = rabbits cp14-modifier-boars = wild boars cp14-modifier-invisible-whistler = invisible whistlers diff --git a/Resources/Locale/ru-RU/_CP14/demiplane/modifiers.ftl b/Resources/Locale/ru-RU/_CP14/demiplane/modifiers.ftl index 177a91159e..6fd0800c5e 100644 --- a/Resources/Locale/ru-RU/_CP14/demiplane/modifiers.ftl +++ b/Resources/Locale/ru-RU/_CP14/demiplane/modifiers.ftl @@ -16,6 +16,7 @@ cp14-modifier-slime = слаймов cp14-modifier-skeleton = разумные скелеты cp14-modifier-dyno = доисторической фауны cp14-modifier-mole = хищных кротов +cp14-modifier-watcher = наблюдателей cp14-modifier-rabbits = кроликов cp14-modifier-boars = диких кабанов cp14-modifier-sheeps = овец diff --git a/Resources/Prototypes/_CP14/Damage/modifier_sets.yml b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml index 626e41d6be..625eb36179 100644 --- a/Resources/Prototypes/_CP14/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml @@ -46,6 +46,18 @@ Cold: 0.8 Poison: 0.2 +- type: damageModifierSet + id: CP14WatcherIce + coefficients: + Heat: 1.4 + Cold: 0.2 + +- type: damageModifierSet + id: CP14WatcherFire + coefficients: + Heat: 0.2 + Cold: 1.4 + # Species - type: damageModifierSet diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/watcher.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/watcher.yml new file mode 100644 index 0000000000..937ad9e32c --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/watcher.yml @@ -0,0 +1,138 @@ +- type: entity + name: watcher + id: CP14MobWatcherBase + parent: [ CP14SimpleMobNoLifeBase, FlyingMobBase ] + abstract: true + description: It's like it's staring right through you. + categories: [ ForkFiltered ] + components: + - type: NpcFactionMember + factions: + - CP14Monster + - type: HTN + rootTask: + task: SimpleRangedHostileCompound + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Aliens/Lavaland/watcher.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.30 + density: 80 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: DamageStateVisuals + states: + Alive: + Base: base + BaseUnshaded: unshaded + Dead: + Base: dead + BaseUnshaded: dead-unshaded + - type: MobThresholds + thresholds: + 0: Alive + 50: Dead + - type: MovementSpeedModifier + baseWalkSpeed: 5 + baseSprintSpeed: 7 + - type: ProjectileBatteryAmmoProvider + proto: WatcherBolt + fireCost: 50 + - type: BatterySelfRecharger + autoRecharge: true + autoRechargeRate: 50 + - type: Battery + maxCharge: 1000 + startingCharge: 1000 + - type: Gun + fireRate: 0.5 + useKey: false + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: /Audio/Weapons/Guns/Gunshots/taser2.ogg + - type: CombatMode + - type: InteractionPopup + successChance: 0.3 + interactSuccessString: petting-success-slimes + interactFailureString: petting-failure-generic + interactSuccessSound: + path: /Audio/Animals/lizard_happy.ogg + - type: CP14MagicEnergyContainer + magicAlert: CP14MagicEnergy + maxEnergy: 50 + energy: 50 + - type: CP14MagicEnergyDraw + energy: 2 + delay: 4 + +- type: entity + id: CP14MobWatcherIce + parent: CP14MobWatcherBase + name: ice watcher + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + color: deepskyblue + - type: PointLight + radius: 1.5 + energy: 1 + color: deepskyblue + - type: Damageable + damageContainer: CP14Biological + damageModifierSet: CP14WatcherIce + - type: Butcherable + spawned: + - id: CP14FoodMeatMole + amount: 1 + - id: CP14ModularInlayQuartzWater + amount: 1 + prob: 0.1 + +- type: entity + id: CP14MobWatcherMagma + parent: CP14MobWatcherBase + name: magma watcher + components: + - type: Sprite + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: base + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] + state: unshaded + shader: unshaded + color: orangered + - type: PointLight + radius: 1.5 + energy: 1 + color: orangered + - type: Damageable + damageContainer: CP14Biological + damageModifierSet: CP14WatcherFire + - type: ProjectileBatteryAmmoProvider + proto: WatcherBoltMagmawing + fireCost: 50 + - type: Butcherable + spawned: + - id: CP14FoodMeatMole + amount: 1 + - id: CP14ModularInlayQuartzFire + amount: 1 + prob: 0.1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml index 08dbdf323b..b3b5f55279 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml @@ -205,3 +205,41 @@ count: 3 minGroupSize: 4 maxGroupSize: 5 + +- type: cp14DemiplaneModifier + id: MobWatcherIce + levels: + min: 1 + max: 10 + name: cp14-modifier-watcher + categories: + Danger: 0.3 + requiredTags: + - CP14DemiplaneCold + blacklistTags: + - CP14DemiplaneHot + layers: + - !type:OreDunGen + entity: CP14MobSlimeBase + count: 2 + minGroupSize: 2 + maxGroupSize: 3 + +- type: cp14DemiplaneModifier + id: MobWatcherMagma + levels: + min: 1 + max: 10 + name: cp14-modifier-watcher + categories: + Danger: 0.3 + requiredTags: + - CP14DemiplaneHot + blacklistTags: + - CP14DemiplaneCold + layers: + - !type:OreDunGen + entity: CP14MobSlimeBase + count: 2 + minGroupSize: 2 + maxGroupSize: 3