diff --git a/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl b/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl index 81ed945738..3c55067b1f 100644 --- a/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl +++ b/Resources/Locale/en-US/_CP14/demiplane/modifiers.ftl @@ -12,6 +12,7 @@ cp14-modifier-explosive = explosive mines cp14-modifier-ruins = ancient ruins cp14-modifier-zombie = zombies cp14-modifier-slime = slimes +cp14-modifier-cackle = cackles cp14-modifier-skeleton = sentient skeletons cp14-modifier-dyno = dynos cp14-modifier-mole = predatory moles @@ -33,4 +34,4 @@ cp14-modifier-storm = storm cp14-modifier-fire-storm = fire storm cp14-modifier-snow-storm = snow storm cp14-modifier-mana-mist = magic mist -cp14-modifier-anti-mana-mist = antimagic mist \ No newline at end of file +cp14-modifier-anti-mana-mist = antimagic mist diff --git a/Resources/Locale/en-US/_CP14/reagents/meta/monster_toxins.ftl b/Resources/Locale/en-US/_CP14/reagents/meta/monster_toxins.ftl index d6c680946b..00b12d2d56 100644 --- a/Resources/Locale/en-US/_CP14/reagents/meta/monster_toxins.ftl +++ b/Resources/Locale/en-US/_CP14/reagents/meta/monster_toxins.ftl @@ -1,2 +1,5 @@ cp14-reagent-name-toxin-spider = Arachnotoxin cp14-reagent-desc-toxin-spider = A venom which slows down its victim while destroying the body. Commonly found in spiders. + +cp14-reagent-name-toxin-bleed = Hemoroxide +cp14-reagent-desc-toxin-bleed = A venom which causes intense bleeding. Commonly used by Cackles. diff --git a/Resources/Locale/ru-RU/_CP14/reagents/meta/monster_toxins.ftl b/Resources/Locale/ru-RU/_CP14/reagents/meta/monster_toxins.ftl index f020b242cb..4eb8e01354 100644 --- a/Resources/Locale/ru-RU/_CP14/reagents/meta/monster_toxins.ftl +++ b/Resources/Locale/ru-RU/_CP14/reagents/meta/monster_toxins.ftl @@ -1,2 +1,5 @@ cp14-reagent-name-toxin-spider = Арахнотоксин cp14-reagent-desc-toxin-spider = Яд, который замедляет жертву, одновременно разрушая её тело. Часто встречается у пауков. + +cp14-reagent-name-toxin-bleed = Гемороксид +cp14-reagent-desc-toxin-bleed = Яд, вызывающий сильное кровотечение. Обычно используется Кэклзом. diff --git a/Resources/Prototypes/_CP14/Damage/modifier_sets.yml b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml index c4564329a2..38eebd4d25 100644 --- a/Resources/Prototypes/_CP14/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_CP14/Damage/modifier_sets.yml @@ -117,6 +117,13 @@ Heat: 1.4 Cold: 0.2 +- type: damageModifierSet + id: CP14Cackle + coefficients: + Heat: 1.4 + Slash: 1.2 + Piercing: 0.6 + - type: damageModifierSet id: CP14WatcherFire coefficients: diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/demiplane_rifts.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/demiplane_rifts.yml index 8571450808..211a5488f7 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/demiplane_rifts.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/demiplane_rifts.yml @@ -213,7 +213,7 @@ - type: entity parent: CP14BaseMobGroupSpawner id: CP14MobGroupSpawnerFlem - suffix: 2-3 Flems + suffix: 1-3 Flems components: - type: EntityTableSpawner deleteSpawnerAfterSpawn: false @@ -223,3 +223,17 @@ range: 1, 3 children: - id: CP14MobMonsterFlem + +- type: entity + parent: CP14BaseMobGroupSpawner + id: CP14MobGroupSpawnerCackle + suffix: 2-3 Cackles + components: + - type: EntityTableSpawner + deleteSpawnerAfterSpawn: false + offset: 1 + table: !type:GroupSelector + rolls: !type:RangeNumberSelector + range: 2, 3 + children: + - id: CP14MobMonsterCackle diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml index d901498a5b..b49d3c2320 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/mobs.yml @@ -205,6 +205,22 @@ prototypes: - CP14MobMonsterFlem +- type: entity + name: cackle spawner + id: CP14SpawnMobMonsterCackle + parent: MarkerBase + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - sprite: Markers/cross.rsi + state: green + - sprite: _CP14/Mobs/Monster/cackle.rsi + state: live + - type: ConditionalSpawner + prototypes: + - CP14MobMonsterCackle + - type: entity name: fairy spawner id: CP14SpawnMobFairy diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cackle.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cackle.yml new file mode 100644 index 0000000000..f6ad1ba5b1 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/cackle.yml @@ -0,0 +1,134 @@ +- type: entity + parent: CP14SimpleMobBase + id: CP14MobMonsterCackle + name: cackle + description: A monster that hunts for blood as a source of sustenance. + categories: [ ForkFiltered ] + components: + - type: HTN + rootTask: + task: SimpleRangedHostileCompound + blackboard: + NavSmash: !type:Bool + true + VisionRadius: !type:Single + 16 + AggroVisionRadius: !type:Single + 6 + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Mobs/Monster/cackle.rsi + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: live + - map: [ "enum.DamageStateVisualLayers.BaseUnshaded" ] #used cause i dont know if there are any more applicable ones no it is not meant to be unshaded + state: live_spikes + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 200 #rotund + mask: + - MobMask + layer: + - MobLayer + - type: Butcherable + spawned: + - id: CP14FoodCabbageSlice + amount: 4 + - id: CP14BloodFlower + amount: 2 + - id: CP14FoodCabbage + amount: 1 + prob: 0.6 + - type: CombatMode + - type: MeleeWeapon + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 1 + Structural: 3 + - type: Body + prototype: Animal + - type: Damageable + damageContainer: CP14Biological + damageModifierSet: CP14Cackle + - type: MobThresholds + thresholds: + 0: Alive + 45: Dead + - type: SlowOnDamage + speedModifierThresholds: + 30: 0.5 + - type: DamageStateVisuals + states: + Alive: + Base: live + BaseUnshaded: live_spikes + Dead: + Base: dead + BaseUnshaded: dead_spikes + - type: Stamina + critThreshold: 75 + - type: SolutionContainerManager + solutions: + melee: + maxVol: 30 + - type: SolutionRegeneration + solution: melee + generated: + reagents: + - ReagentId: CP14MonsterToxinBleed + Quantity: 1 + - type: MeleeChemicalInjector + transferAmount: 1 + solution: melee + - type: ReplacementAccent + accent: xeno + - type: InteractionPopup + successChance: 0.6 + interactSuccessString: petting-success-generic + interactFailureString: petting-failure-generic + interactSuccessSpawn: EffectHearts + interactSuccessSound: + path: /Audio/Voice/Diona/diona_rustle2.ogg + - type: Bloodstream + bloodMaxVolume: 200 + bloodReagent: CP14BloodFlowerSap + - type: Tag + tags: + - FootstepSound + - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute from base.yml. + allowedStates: + - Alive + damageCap: 45 + damage: + types: + Poison: -0.07 + groups: + Brute: -0.07 + Burn: -0.07 + - type: BasicEntityAmmoProvider + proto: CP14SpikeCackleSpread + capacity: 2 + count: 2 + - type: RechargeBasicEntityAmmo + showExamineText: false + rechargeSound: null + rechargeCooldown: 4 + - type: Gun + fireRate: 1 + useKey: false + showExamineText: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/water_spray.ogg + - type: NpcFactionMember + factions: + - CP14Monster diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Ammunition/spike.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Ammunition/spike.yml index 50eef70f01..6e0c29ac01 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Ammunition/spike.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Ranged/Ammunition/spike.yml @@ -52,3 +52,67 @@ collection: GlassBreak - !type:DoActsBehavior acts: [ "Destruction" ] + +- type: entity + parent: BaseBullet + id: CP14SpikeCackle + name: Cackle spike + description: Organically spiked with a destructive liquid inside. + categories: [ ForkFiltered ] + components: + - type: Sprite + sprite: _CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi + layers: + - state: spike + - type: EmbeddableProjectile + minimumSpeed: 3 + removalTime: 0.5 + offset: 0.0,0.0 + - type: Projectile + damage: + types: + Piercing: 1 + - type: SolutionContainerManager + solutions: + melee: + maxVol: 1 + reagents: + - ReagentId: CP14MonsterToxinBleed + Quantity: 1 + - type: SolutionInjectOnEmbed + transferAmount: 1 + blockSlots: NONE + solution: melee + - type: SolutionTransfer + maxTransferAmount: 1 + - type: TimedDespawn + lifetime: 10 + - type: Ammo + muzzleFlash: null + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + id: CP14SpikeCackleSpread + categories: [ HideSpawnMenu ] + parent: CP14SpikeCackle + components: + - type: ProjectileSpread + proto: CP14SpikeCackle + count: 5 + spread: 45 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml index a3ca89fe00..045ef54b9f 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml @@ -321,4 +321,24 @@ entity: CP14MobMonsterMyconideLumish count: 5 minGroupSize: 7 - maxGroupSize: 12 \ No newline at end of file + maxGroupSize: 12 + +- type: cp14LocationModifier + id: EnemyCackle + levels: + min: 2 + max: 5 + name: cp14-modifier-cackle + generationWeight: 0.33 + categories: + Danger: 0.3 + requiredTags: + - CP14DemiplaneOpenSky + blacklistTags: + - CP14DemiplaneCold + layers: + - !type:CP14OreDunGen + entity: CP14MobMonsterCackle + count: 4 + minGroupSize: 1 + maxGroupSize: 3 diff --git a/Resources/Prototypes/_CP14/Reagents/monster_toxins.yml b/Resources/Prototypes/_CP14/Reagents/monster_toxins.yml index eea6beeb16..4c69891812 100644 --- a/Resources/Prototypes/_CP14/Reagents/monster_toxins.yml +++ b/Resources/Prototypes/_CP14/Reagents/monster_toxins.yml @@ -30,3 +30,23 @@ walkSpeedModifier: 0.6 sprintSpeedModifier: 0.6 pricePerUnit: 4.0 #arbitrary for now + +- type: reagent + id: CP14MonsterToxinBleed + name: cp14-reagent-name-toxin-bleed + desc: cp14-reagent-desc-toxin-bleed + group: CP14MonsterToxins + flavor: CP14Metallic + color: "#872e2e" + physicalDesc: cp14-reagent-physical-desc-scarlet + metabolisms: + Poison: + metabolismRate: 0.5 + effects: + - !type:ModifyBleedAmount + amount: 2 + - !type:HealthChange + damage: + types: + Piercing: 1.5 + pricePerUnit: 4.0 #arbitrary for now diff --git a/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead.png b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead.png new file mode 100644 index 0000000000..594a6eb4ef Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead_spikes.png b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead_spikes.png new file mode 100644 index 0000000000..100de0b63b Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/dead_spikes.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live.png b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live.png new file mode 100644 index 0000000000..d943e59928 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live_spikes.png b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live_spikes.png new file mode 100644 index 0000000000..c98cd0c71a Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/live_spikes.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/meta.json new file mode 100644 index 0000000000..24ce6af3e5 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Monster/cackle.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "size": { + "x": 48, + "y": 48 + }, + "license": "All right reserved", + "copyright": "Created by Frogoo (discord)", + "states": [ + { + "name": "live", + "directions": 4 + }, + { + "name": "live_spikes", + "directions": 4 + }, + { + "name": "dead" + }, + { + "name": "dead_spikes" + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/meta.json b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/meta.json new file mode 100644 index 0000000000..64c96e3a19 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Frogoo(discord)", + "states": [ + { + "name": "spike" + }, + { + "name": "small_spike" + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/small_spike.png b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/small_spike.png new file mode 100644 index 0000000000..5cf9ab318a Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/small_spike.png differ diff --git a/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/spike.png b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/spike.png new file mode 100644 index 0000000000..581e316b27 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Weapons/Ranged/Projectiles/spike_cackle.rsi/spike.png differ