Magic rings (#378)

* flame creation spell backend

* flame creation visuals

* flame creation spell visual

* tweak

* some tweaks

* ice dagger spell

* move spells to rings

* Update ring.yml

* fix server crash
This commit is contained in:
Ed
2024-08-02 00:48:36 +03:00
committed by GitHub
parent 56da23925f
commit 31c9485e3b
32 changed files with 504 additions and 27 deletions

View File

@@ -4,6 +4,8 @@
description: manifestation of magical energy in the physical plane
abstract: true
components:
- type: TimedDespawn
lifetime: 10
- type: Sprite
noRot: true
drawDepth: FloorTiles

View File

@@ -4,29 +4,32 @@
description: You touch the creature, healing its body from physical damage
components:
- type: CP14MagicEffect
manaCost: 10
manaCost: 15
effects:
- !type:CP14SpellSpawnEntity
spawns:
- CP14CureWoundsImpactEffect
- CP14ImpactEffectCureWounds
- !type:CP14SpellApplyEntityEffect
effects:
- !type:HealthChange
damage:
types:
Slash: -8
Blunt: -8
Piercing: -8
Heat: -8
Slash: -10
Blunt: -10
Piercing: -10
Heat: -10
- !type:Jitter
- type: CP14MagicEffectVerbalAspect
startSpeech: "Et curabuntur..."
endSpeech: "vulnera tua"
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14CureWoundsRune
proto: CP14RuneCureWounds
- type: EntityTargetAction
useDelay: 5
whitelist:
components:
- MobState
useDelay: 10
itemIconStyle: BigAction
interactOnMiss: false
sound: !type:SoundPathSpecifier
@@ -38,9 +41,9 @@
delay: 2
- type: entity
id: CP14CureWoundsRune
noSpawn: true
id: CP14RuneCureWounds
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#328643"
@@ -51,9 +54,9 @@
shader: unshaded
- type: entity
id: CP14CureWoundsImpactEffect
id: CP14ImpactEffectCureWounds
parent: CP14BaseMagicImpact
noSpawn: true
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:

View File

@@ -0,0 +1,138 @@
- type: entity
id: CP14ActionSpellFlameCreation
name: Flame creation
description: A artificial flame forms in your hand, illuminating your surroundings. You can throw it to use it as a disposable weapon.
components:
- type: CP14MagicEffect
manaCost: 5
effects:
- !type:CP14SpellSpawnEntity
spawns:
- CP14ImpactEffectFlameCreation
- !type:CP14SpellSpawnInHandEntity
spawns:
- CP14FlameCreationArtificialFlame
- type: CP14MagicEffectVerbalAspect
startSpeech: "Et conteret ignis..."
endSpeech: "in manu mea"
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14RuneFlameCreation
- type: InstantAction
useDelay: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: flame_creation
event: !type:CP14DelayedInstantActionEvent
delay: 1
- type: entity
id: CP14RuneFlameCreation
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#eea911"
- type: Sprite
layers:
- state: sun
color: "#eea911"
shader: unshaded
- type: entity
id: CP14ImpactEffectFlameCreation
parent: CP14BaseMagicImpact
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:
- state: particles_up
color: "#eea911"
shader: unshaded
- type: entity
id: CP14FlameCreationArtificialFlame
parent:
- BaseItem
- ItemHeftyBase
name: artificial flame
description: A magically created artificial flame burning directly into the air. Not a bad light source, or a weapon if you throw it in someone's face.
components:
- type: Item
size: Ginormous
inhandVisuals:
left:
- state: inhand-left
shader: unshaded
right:
- state: inhand-right
shader: unshaded
- type: TimedDespawn
lifetime: 300 # 5 min
- type: Sprite
sprite: _CP14/Objects/Misc/artificial_flame.rsi
layers:
- state: icon
shader: unshaded
- type: PointLight
color: "#eea911"
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.2,-0.2,0.2,0.2"
density: 30
hard: true
mask:
- ItemMask
- type: DamageOnHighSpeedImpact
minimumSpeed: 0.1
damage:
types:
Blunt: 3
- type: Damageable
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -12
- type: ThrowingAngle
angle: 0
- type: LandAtCursor
- type: CP14MeleeSelfDamage
damageToSelf:
types:
Blunt: 0.5 # 2 hits
- type: DamageOtherOnHit
damage:
types:
Heat: 8
- type: MeleeWeapon
attackRate: 1.8
wideAnimationRotation: 225
wideAnimation: CP14WeaponArcSlash
damage:
types:
Heat: 5
soundHit:
path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg
params:
variation: 0.250
volume: -12
cPAnimationLength: 0.15
- type: IgnitionSource
temperature: 400
ignited: true

View File

@@ -0,0 +1,89 @@
- type: entity
id: CP14ActionSpellIceDagger
name: Ice dagger
description: Materialization of a temporary sharp ice throwing dagger
components:
- type: CP14MagicEffect
manaCost: 15
effects:
- !type:CP14SpellSpawnEntity
spawns:
- CP14ImpactEffectIceDagger
- !type:CP14SpellSpawnInHandEntity
spawns:
- CP14DaggerIce
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14RuneIceDagger
- type: InstantAction
useDelay: 15
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: ice_dagger
event: !type:CP14DelayedInstantActionEvent
delay: 0.5
- type: entity
id: CP14RuneIceDagger
parent: CP14BaseMagicRune
categories: [ HideSpawnMenu ]
components:
- type: PointLight
color: "#5eabeb"
- type: Sprite
layers:
- state: medium_line
color: "#5eabeb"
shader: unshaded
- type: entity
id: CP14ImpactEffectIceDagger
parent: CP14BaseMagicImpact
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:
- state: particles_up
color: "#5eabeb"
shader: unshaded
- type: entity
id: CP14DaggerIce
parent:
- CP14BaseDagger
name: ice dagger
description: A piece of sharp magical ice. In a little while, the spell will wear off, and he will disappear.
components:
- type: TimedDespawn
lifetime: 60 # 1 min
- type: Clothing
sprite: _CP14/Objects/Weapons/Melee/Dagger/ice_dagger.rsi
- type: Sprite
sprite: _CP14/Objects/Weapons/Melee/Dagger/ice_dagger.rsi
- type: CP14Currency
currency: 0
- type: MeleeWeapon
damage:
types:
Slash: 2
Piercing: 2
Cold: 2
- type: DamageOtherOnHit
damage:
types:
Piercing: 5
Cold: 5
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:DoActsBehavior
acts: ["Destruction"]

View File

@@ -0,0 +1,63 @@
- type: entity
abstract: true
parent: Clothing
id: CP14ClothingRingBase
components:
- type: Item
size: Tiny
- type: Clothing
slots:
- ring
- type: Sprite
sprite: _CP14/Clothing/Rings/rings.rsi
- type: entity
id: CP14ClothingRingIceDagger
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to summon ice daggers.
components:
- type: Sprite
layers:
- state: brass_ring
- state: saphhire_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellIceDagger
- type: entity
id: CP14ClothingRingFlameCreation
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to summon artificial flames.
components:
- type: Sprite
layers:
- state: brass_ring
- state: ruby_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellFlameCreation
- type: entity
id: CP14ClothingRingCureWounds
parent: CP14ClothingRingBase
name: conductive ring
description: A standard mana-conductive ring that allows the user to heal physical injuries.
components:
- type: Sprite
layers:
- state: brass_ring
- state: emerald_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
- CP14ActionSpellCureWounds

View File

@@ -7,11 +7,4 @@
sprite: Objects/Specific/Hydroponics/seeds.rsi
state: seed
- type: CP14Seed
plantProto: CP14PlantWheat
- type: CP14MagicAttuningItem
focusTime: 1
- type: CP14SpellStorageAccessHolding
- type: CP14SpellStorage
spells:
- CP14ActionSpellCureWounds
- type: CP14SpellStorageRequireAttune
plantProto: CP14PlantWheat

View File

@@ -5,7 +5,6 @@
- CP14BaseWeaponDestructible
- CP14BaseWeaponSharp
- CP14BaseWeaponChemical
- CP14BaseWeaponLight
name: sword
description: the gold standard of edged weapons. Medium length, comfortable grip. No frills.
components: