Spineguard (#1659)

* sprites

* toxin

* spineguard

* spawning

* passive regen

* merge conflict fixes

* again

* again 2

* readd stuff

* agh

* requested changes
This commit is contained in:
Kit
2025-08-30 03:27:03 -04:00
committed by GitHub
parent 704527bd2c
commit f21cca0a1a
17 changed files with 358 additions and 5 deletions

View File

@@ -16,6 +16,7 @@ cp14-modifier-cackle = cackles
cp14-modifier-skeleton = sentient skeletons
cp14-modifier-dyno = dynos
cp14-modifier-mole = predatory moles
cp14-modifier-spineguard = spineguards
cp14-modifier-watcher = watchers
cp14-modifier-rabbits = rabbits
cp14-modifier-boars = wild boars

View File

@@ -3,3 +3,6 @@ cp14-reagent-desc-toxin-spider = A venom which slows down its victim while destr
cp14-reagent-name-toxin-bleed = Hemoroxide
cp14-reagent-desc-toxin-bleed = A venom which causes intense bleeding. Commonly used by Cackles.
cp14-reagent-name-toxin-vuln = Depletonide
cp14-reagent-desc-toxin-vuln = A venom which causes the body to be more susceptible to damage and become fatigued. Commonly used by Spineguard's spines.

View File

@@ -16,6 +16,7 @@ cp14-modifier-cackle = кэклзы
cp14-modifier-skeleton = разумные скелеты
cp14-modifier-dyno = динозавры
cp14-modifier-mole = хищные кроты
cp14-modifier-spineguard = шипостражи
cp14-modifier-watcher = наблюдатели
cp14-modifier-rabbits = кролики
cp14-modifier-boars = дикие кабаны

View File

@@ -3,3 +3,6 @@ cp14-reagent-desc-toxin-spider = Яд, который замедляет жер
cp14-reagent-name-toxin-bleed = Гемороксид
cp14-reagent-desc-toxin-bleed = Яд, вызывающий сильное кровотечение. Обычно используется Кэклзом.
cp14-reagent-name-toxin-vuln = Деплетонид
cp14-reagent-desc-toxin-vuln = Яд, который делает тело более восприимчивым к повреждениям и утомляет его. Обычно используется шипами Шипостража.

View File

@@ -22,4 +22,10 @@
description: cp14-alerts-confused-aura-desc
icons:
- sprite: _CP14/Actions/Spells/meta.rsi
state: magic_vision_shuffled
state: magic_vision_shuffled
- type: alert
id: CP14Vuln
icons:
- sprite: _CP14/Actions/Spells/misc.rsi
state: vulnerability

View File

@@ -0,0 +1,108 @@
- type: entity
id: CP14ActionVulnSpikes
parent: CP14ActionSpellBase
name: Weakness Spikes
description: You throw out several small spikes that cause weakness.
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: 0.8
- type: CP14MagicEffect
effects:
- !type:CP14SpellProjectile
prototype: CP14SpikeVuln
spread: 1.5
projectileSpeed: 10
projectileCount: 10
- type: CP14MagicEffectCastingVisual
proto: CP14RuneVulnSpikes
- type: CP14ActionDangerous
- type: Action
useDelay: 7.5
icon:
sprite: _CP14/Actions/Spells/misc.rsi
state: vulnerability
color: "#a81e33"
- type: TargetAction
repeat: false
checkCanAccess: false
range: 60
- type: EntityTargetAction
event: !type:CP14DelayedEntityTargetActionEvent
cooldown: 7.5
castDelay: 1.0
breakOnDamage: false
breakOnMove: false
hidden: true
- type: entity
id: CP14RuneVulnSpikes
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
save: false
components:
- type: PointLight
color: "#7c1fff"
- type: Sprite
layers:
- state: double_outer
color: "#7c1fff"
shader: unshaded
- type: entity
parent: BaseBullet
id: CP14SpikeVuln
name: weakness quill
description: Organically spiked with a weakening liquid inside.
categories: [ ForkFiltered ]
components:
- type: Sprite
sprite: _CP14/Objects/Weapons/Ranged/Projectiles/spike.rsi
layers:
- state: spike
shader: unshaded
- type: PointLight
color: "#62316b"
radius: 3.0
energy: 15.0
- type: EmbeddableProjectile
minimumSpeed: 3
removalTime: 0.5
offset: 0.0,0.0
- type: Projectile
damage:
types:
Piercing: 0.5
- type: SolutionContainerManager
solutions:
melee:
maxVol: 1
reagents:
- ReagentId: CP14MonsterToxinVuln
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" ]

View File

@@ -98,6 +98,20 @@
children:
- id: CP14MobMonsterMosquito
- type: entity
parent: CP14BaseMobGroupSpawner
id: CP14MobGroupSpawnerSpineguard
suffix: 1-2 spineguards
components:
- type: EntityTableSpawner
deleteSpawnerAfterSpawn: false
offset: 1
table: !type:GroupSelector
rolls: !type:RangeNumberSelector
range: 1, 2
children:
- id: CP14MobMonsterSpineguard
- type: entity
parent: CP14BaseMobGroupSpawner
id: CP14MobGroupSpawnerRabbits

View File

@@ -157,6 +157,22 @@
prototypes:
- CP14MobMonsterMole
- type: entity
name: spineguard spawner
id: CP14SpawnMobMonsterSpineguard
parent: MarkerBase
categories: [ ForkFiltered ]
components:
- type: Sprite
layers:
- sprite: Markers/cross.rsi
state: green
- sprite: _CP14/Mobs/Monster/spineguard.rsi
state: live
- type: ConditionalSpawner
prototypes:
- CP14MobMonsterSpineguard
- type: entity
name: bloodworm mosquitoes spawner
id: CP14SpawnMobMonsterMosquito

View File

@@ -0,0 +1,117 @@
- type: entity
id: CP14MobMonsterSpineguard
parent: CP14SimpleMobBase
name: spineguard
description: Makes its prey weaker letting other monsters do the kill.
categories: [ ForkFiltered ]
components:
- type: HTN
rootTask:
task: CP14MonsterCompound
blackboard:
NavSmash: !type:Bool
true
VisionRadius: !type:Single
16
AggroVisionRadius: !type:Single
12
- type: NpcFactionMember
factions:
- CP14Monster
- type: NPCUseActionOnTarget
actionId: CP14ActionVulnSpikes
- type: Sprite
drawdepth: Mobs
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
sprite: _CP14/Mobs/Monster/spineguard.rsi
state: live
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.35
density: 350
mask:
- MobMask
layer:
- MobLayer
- type: ReplacementAccent
accent: xeno
- type: Appearance
- type: Body
prototype: Animal
- type: MobThresholds
thresholds:
0: Alive
100: Dead
- type: SlowOnDamage
speedModifierThresholds:
50: 0.8
75: 0.5
- type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 6 damage a minute from base.yml.
allowedStates:
- Alive
damageCap: 100
damage:
types:
Poison: -0.1
groups:
Brute: -0.1
Burn: -0.1
- type: Stamina
critThreshold: 200
- type: CombatMode
- type: MeleeWeapon
angle: 0
animation: WeaponArcBite
damage:
types:
Slash: 1
Piercing: 3
Structural: 3
- type: MovementSpeedModifier
baseWalkSpeed: 2.5
baseSprintSpeed: 2.5
- type: DamageStateVisuals
states:
Alive:
Base: live
Dead:
Base: dead
- type: Butcherable
spawned:
- id: CP14FoodMeatMonster
amount: 3
- id: CP14FoodMeatPig
amount: 1
prob: 0.3
- id: CP14FoodMeatMonsterLeg
amount: 1
prob: 0.6
- id: CP14RuggedLeather1
amount: 1
prob: 0.75
- id: CP14Leather1
amount: 1
maxAmount: 3
- id: CP14ScrapLeather
amount: 1
maxAmount: 2
prob: 0.5
- id: CP14CheapFur
amount: 1
prob: 0.25
- type: Bloodstream
bloodMaxVolume: 200
bloodReagent: CP14BloodMonster
- type: Grammar
attributes:
gender: epicene
- type: CP14MagicCasterSlowdown
- type: CP14MagicEnergyContainer
- type: Tag
tags:
- FootstepSound
- CP14Mosquito

View File

@@ -12,11 +12,11 @@
layers:
- state: sphere
shader: unshaded
color: "#5096d488"
color: "#5096d4"
- state: circle_increase
sprite: _CP14/Effects/Magic/cast_impact.rsi
shader: unshaded
color: "#74eaf222"
color: "#74eaf2"
- type: PointLight
radius: 2.5
energy: 0.9
@@ -66,4 +66,26 @@
- type: StatusEffect
- type: StatusEffectAlert
alert: CP14ConfusedAura
- type: CP14HideMagicAuraStatusEffect
- type: CP14HideMagicAuraStatusEffect
- type: entity
id: CP14StatusEffectVuln
name: vulnerability
components:
- type: StatusEffect
- type: StatusEffectAlert
alert: CP14Vuln
- type: Sprite
drawdepth: Mobs
sprite: _CP14/Effects/Magic/cast_impact.rsi
noRot: true
layers:
- state: particles_down
shader: unshaded
color: "#a81e33"
- type: PointLight
radius: 2.5
energy: 0.9
color: "#a81e33"
- type: CP14DamageModifierStatusEffect
globalDefence: 1.4

View File

@@ -127,6 +127,23 @@
minGroupSize: 1
maxGroupSize: 3
- type: cp14LocationModifier
id: EnemySpineguard
levels:
min: 3
max: 7
name: cp14-modifier-spineguard
categories:
Danger: 0.5
requiredTags:
- CP14DemiplaneUnderground
layers:
- !type:CP14OreDunGen
entity: CP14MobMonsterSpineguard
count: 5
minGroupSize: 1
maxGroupSize: 2
- type: cp14LocationModifier
id: EnemyIceSpectre
levels:

View File

@@ -50,3 +50,27 @@
types:
Piercing: 1.5
pricePerUnit: 4.0 #arbitrary for now
- type: reagent
id: CP14MonsterToxinVuln
name: cp14-reagent-name-toxin-vuln
desc: cp14-reagent-desc-toxin-vuln
group: CP14MonsterToxins
flavor: CP14Vomit
color: "#b545ff"
physicalDesc: reagent-physical-desc-nondescript
metabolisms:
Poison:
metabolismRate: 0.5
effects:
- !type:ModifyStatusEffect
conditions:
- !type:ReagentThreshold
reagent: CP14MonsterToxinVuln
min: 2
effectProto: CP14StatusEffectVuln
time: 5
refresh: false
- !type:CP14StaminaChange
staminaDelta: -5
pricePerUnit: 4.0 #arbitrary for now

View File

@@ -5,7 +5,7 @@
"y": 32
},
"license": "All right reserved",
"copyright": "Created by TheShuEd",
"copyright": "Created by TheShuEd, vulnerability by Sable",
"states": [
{
"name": "magical_acceleration"
@@ -18,6 +18,9 @@
},
{
"name": "skull_red"
},
{
"name": "vulnerability"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"size": {
"x": 51,
"y": 51
},
"license": "CC-BY-SA-4.0",
"copyright": "Generated by ChatGPT, polished by TheShuEd and Omsoy",
"states": [
{
"name": "live",
"directions": 4
},
{
"name": "dead"
}
]
}