Spellcasting upgrade (#543)

* move to gurps magic types

* spell traits, categorize spells

* Update TraitSystem.cs

* magic spells item provider

* Update twoHandedStaffs.yml

* Update CP14MagicManacostModifySystem.cs

* Update CP14SpellStorageSystem.cs

* some funny shit

* fix problems 1

* FIX

* more funny broken shit

* predict slowdown, fixes funny

* EntityTarget action

* fixes

* Update T1_sphere_of_light.yml

* fix demiplan loot centering

* predict movement!
This commit is contained in:
Ed
2024-11-07 16:04:49 +03:00
committed by GitHub
parent 7e4fb90e02
commit ebac4a2eec
30 changed files with 681 additions and 451 deletions

View File

@@ -4,7 +4,7 @@
description: Raises a solid wall of earth from the bowels.
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: -0.9
speedMultiplier: 0.3
- type: CP14MagicEffect
magicType: Earth
manaCost: 15
@@ -22,7 +22,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneEarthWall
- type: EntityWorldTargetAction
useDelay: 10
range: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
@@ -31,7 +30,7 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: earth_wall
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 1
cooldown: 10
- type: entity
id: CP14RuneEarthWall

View File

@@ -20,7 +20,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneFlameCreation
- type: InstantAction
useDelay: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
@@ -28,7 +27,7 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: flame_creation
event: !type:CP14DelayedInstantActionEvent
delay: 1
cooldown: 10
breakOnMove: false
- type: entity

View File

@@ -4,7 +4,7 @@
description: An effective method of destruction - an explosive fireball
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: -0.7
speedMultiplier: 0.3
- type: CP14MagicEffect
magicType: Fire
manaCost: 20
@@ -21,7 +21,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneFireball
- type: EntityWorldTargetAction
useDelay: 20
checkCanAccess: false
raiseOnUser: true
range: 60
@@ -32,7 +31,8 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: fireball
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 3
cooldown: 15
castDelay: 5
breakOnMove: false
entityDistance: 1000

View File

@@ -4,7 +4,7 @@
description: A step through the gash of reality that allows you to cover a small of distance quickly
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: -0.4
speedMultiplier: 0.8
- type: CP14MagicEffect
magicType: Gate
manaCost: 20
@@ -18,7 +18,6 @@
proto: CP14ImpactEffectShadowStep
- type: CP14MagicEffectSomaticAspect
- type: EntityWorldTargetAction
useDelay: 10
range: 7
checkCanAccess: false
itemIconStyle: BigAction
@@ -28,7 +27,7 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: shadow_step
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 1
cooldown: 10
hidden: true
breakOnMove: false

View File

@@ -4,7 +4,7 @@
description: You touch the creature, healing its body from physical damage
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: -0.5
speedMultiplier: 0.5
- type: CP14MagicEffect
magicType: Healing
manaCost: 20
@@ -39,11 +39,10 @@
endSpeech: "vulnera tua"
- type: CP14MagicEffectCastingVisual
proto: CP14RuneCureWounds
- type: EntityWorldTargetAction
- type: EntityTargetAction
whitelist:
components:
- MobState
useDelay: 10
range: 7
itemIconStyle: BigAction
interactOnMiss: false
@@ -52,8 +51,9 @@
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: cure_wounds
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 3
event: !type:CP14DelayedEntityTargetActionEvent
cooldown: 10
castDelay: 3
breakOnMove: false
- type: entity

View File

@@ -20,7 +20,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneFlashLight
- type: EntityWorldTargetAction
useDelay: 5
range: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
@@ -29,7 +28,8 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: flash_light
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 0.5
cooldown: 5
castDelay: 0.5
- type: entity
id: CP14RuneFlashLight

View File

@@ -20,7 +20,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneSphereOfLight
- type: InstantAction
useDelay: 15
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
@@ -28,7 +27,8 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: sphere_of_light
event: !type:CP14DelayedInstantActionEvent
delay: 0.5
cooldown: 15
castDelay: 0.5
breakOnMove: false
- type: entity

View File

@@ -26,12 +26,11 @@
- type: CP14MagicEffectSomaticAspect
- type: CP14MagicEffectCastingVisual
proto: CP14RuneManaGift
- type: EntityWorldTargetAction
- type: EntityTargetAction
whitelist:
components:
- CP14MagicEnergyContainer
- CP14MagicEnergyCrystalSlot
useDelay: 5
itemIconStyle: BigAction
interactOnMiss: false
sound: !type:SoundPathSpecifier
@@ -39,8 +38,9 @@
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: mana_gift
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 2
event: !type:CP14DelayedEntityTargetActionEvent
cooldown: 5
castDelay: 2
- type: entity
id: CP14RuneManaGift

View File

@@ -20,21 +20,24 @@
spawns:
- CP14ImpactEffectShadowStep
- type: CP14MagicEffectSomaticAspect
- type: EntityWorldTargetAction
- type: EntityTargetAction
whitelist:
components:
- Item
canTargetSelf: false
checkCanAccess: false
range: 10
useDelay: 10
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
icon:
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: shadow_grab
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 2
hidden: true
event: !type:CP14DelayedEntityTargetActionEvent
cooldown: 5
castDelay: 0.5
entityDistance: 1000
breakOnMove: false
- type: entity
id: CP14ImpactEffectShadowGrab

View File

@@ -17,7 +17,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneIceDagger
- type: InstantAction
useDelay: 15
itemIconStyle: BigAction
sound: !type:SoundPathSpecifier
path: /Audio/Magic/rumble.ogg
@@ -25,7 +24,8 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: ice_dagger
event: !type:CP14DelayedInstantActionEvent
delay: 0.5
cooldown: 10
castDelay: 0.5
breakOnMove: false
- type: entity

View File

@@ -4,7 +4,7 @@
description: Fast ice needles, for rapid shooting of targets.
components:
- type: CP14MagicEffectCastSlowdown
speedMultiplier: -0.25
speedMultiplier: 0.75
- type: CP14MagicEffect
magicType: Water
manaCost: 5
@@ -17,7 +17,6 @@
- type: CP14MagicEffectCastingVisual
proto: CP14RuneIceShards
- type: EntityWorldTargetAction
useDelay: 0.5
repeat: true
checkCanAccess: false
raiseOnUser: true
@@ -29,7 +28,8 @@
sprite: _CP14/Effects/Magic/spells_icons.rsi
state: ice_shards
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 0.5
cooldown: 0.5
castDelay: 0.5
breakOnMove: false
entityDistance: 1000

View File

@@ -23,8 +23,6 @@
layers:
- state: brass_ring
- state: saphhire_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -41,8 +39,6 @@
layers:
- state: brass_ring
- state: saphhire_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -59,8 +55,6 @@
layers:
- state: brass_ring
- state: saphhire_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -77,8 +71,6 @@
layers:
- state: brass_ring
- state: ruby_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -95,8 +87,6 @@
layers:
- state: brass_ring
- state: ruby_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -113,8 +103,6 @@
layers:
- state: brass_ring
- state: amethyst_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -131,8 +119,6 @@
layers:
- state: brass_ring
- state: amethyst_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -149,8 +135,6 @@
layers:
- state: brass_ring
- state: berill_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -167,8 +151,6 @@
layers:
- state: brass_ring
- state: citrine_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:
@@ -185,8 +167,6 @@
layers:
- state: brass_ring
- state: citrine_stone_small
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessWearing
- type: CP14SpellStorage
spells:

View File

@@ -127,7 +127,6 @@
sprite: _CP14/Effects/Magic/spells_icons_monster.rsi
state: subterranean_leap
event: !type:CP14DelayedEntityWorldTargetActionEvent
delay: 1
hidden: true
breakOnMove: false
raiseOnUser: true

View File

@@ -38,8 +38,8 @@
collection: MetalThud
cPAnimationLength: 0.3
cPAnimationOffset: -1.3
- type: CP14SpellStorageRequireAttune
- type: CP14MagicAttuningItem
#- type: CP14SpellStorageRequireAttune
#- type: CP14MagicAttuningItem
- type: CP14SpellStorageAccessHolding
- type: CP14SpellStorage
spells:

View File

@@ -12,6 +12,23 @@
- type: MapLight
ambientLightColor: "#020a1c"
- type: dungeonConfig
id: CP14EdTestLayers
layers:
- !type:PrototypeDunGen
proto: CP14DemiplaneGrassGeode
#- !type:EntityTableDunGen
# minCount: 20
# maxCount: 20
# table: !type:GroupSelector
# children:
# - id: CP14DemiplanePassway
- !type:OreDunGen
entity: CP14DemiplanePassway
count: 20
minGroupSize: 1
maxGroupSize: 1
- type: dungeonConfig
id: CP14DemiplaneGrassGeode
layers:

View File

@@ -246,23 +246,22 @@
difficulty: 0.4
generationWeight: 0.25
layers:
- !type:MobsDunGen
minCount: 25
maxCount: 50
groups:
- id: LandMineExplosive
amount: 1
- !type:OreDunGen
entity: LandMineExplosive
count: 20
minGroupSize: 1
maxGroupSize: 2
- type: cp14DemiplaneModifier
id: CommonLoot
reward: 0.25
generationWeight: 2
layers:
- !type:EntityTableDunGen
minCount: 15
maxCount: 30
table: !type:NestedSelector
tableId: CP14TableExpeditionLootCommon
- !type:OreDunGen
entity: CP14SpawnerExpeditionLootCommon
count: 10
minGroupSize: 1
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: EnemyXeno
@@ -270,25 +269,26 @@
requiredTags:
- CP14DemiplaneUnderground
layers:
- !type:MobsDunGen
minCount: 2
maxCount: 3
groups:
- id: CP14MobXenoDrone
amount: 1
- id: CP14MobXeno
amount: 1
- !type:OreDunGen
entity: CP14MobXenoDrone
count: 3
minGroupSize: 1
maxGroupSize: 2
- !type:OreDunGen
entity: CP14MobXeno
count: 3
minGroupSize: 1
maxGroupSize: 2
- type: cp14DemiplaneModifier
id: EnemyZombie
difficulty: 0.4
layers:
- !type:MobsDunGen
minCount: 3
maxCount: 6
groups:
- id: CP14SpawnMobUndeadZombie
amount: 1
- !type:OreDunGen
entity: CP14SpawnMobUndeadZombie
count: 3
minGroupSize: 1
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: EnemyDyno
@@ -297,12 +297,11 @@
- CP14DemiplaneOpenSky
- CP14DemiplaneGrass
layers:
- !type:MobsDunGen
minCount: 3
maxCount: 6
groups:
- id: CP14SpawnMobDinoYumkaraptor
amount: 1
- !type:OreDunGen
entity: CP14SpawnMobDinoYumkaraptor
count: 6
minGroupSize: 1
maxGroupSize: 1
- type: cp14DemiplaneModifier
id: SmallHydra
@@ -310,37 +309,37 @@
requiredTags:
- CP14DemiplaneGrass
layers:
- !type:MobsDunGen
minCount: 3
maxCount: 6
groups:
- id: CP14MobDinoSmallHydra
amount: 2
- !type:OreDunGen
entity: CP14MobDinoSmallHydra
count: 4
minGroupSize: 2
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: EnemyMole
difficulty: 0.5
requiredTags:
- CP14DemiplaneUnderground
- CP14DemiplaneCave
layers:
- !type:MobsDunGen
minCount: 3
maxCount: 6
groups:
- id: CP14MobMonsterMole
amount: 1
- !type:OreDunGen
tileMask:
- CP14FloorBase
entity: CP14MobMonsterMole
count: 5
minGroupSize: 1
maxGroupSize: 2
- type: cp14DemiplaneModifier
id: EnemyMagmawind
difficulty: 0.3
generationWeight: 0.4
layers:
- !type:MobsDunGen
minCount: 3
maxCount: 5
groups:
- id: CP14MobWatcherMagmawing
amount: 1
- !type:OreDunGen
entity: CP14MobWatcherMagmawing
count: 5
minGroupSize: 2
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: Rabbits
@@ -349,12 +348,15 @@
requiredTags:
- CP14DemiplaneGrass
layers:
- !type:MobsDunGen
minCount: 1
maxCount: 2
groups:
- id: CP14MobRabbit
amount: 3
- !type:OreDunGen
tileMask:
- CP14FloorGrass
- CP14FloorGrassLight
- CP14FloorGrassTall
entity: CP14MobRabbit
count: 3
minGroupSize: 2
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: Boar
@@ -364,12 +366,15 @@
requiredTags:
- CP14DemiplaneGrass
layers:
- !type:MobsDunGen
minCount: 1
maxCount: 3
groups:
- id: CP14MobBoar
amount: 2
- !type:OreDunGen
tileMask:
- CP14FloorGrass
- CP14FloorGrassLight
- CP14FloorGrassTall
entity: CP14MobBoar
count: 3
minGroupSize: 2
maxGroupSize: 3
- type: cp14DemiplaneModifier
id: Chasm

View File

@@ -1,15 +1,13 @@
- type: dungeonConfig
id: DemiplaneConnections
layers:
- !type:EntityTableDunGen
minCount: 1
maxCount: 1
table: !type:GroupSelector
children:
- id: CP14DemiplanEnterRoomMarker
- !type:EntityTableDunGen
minCount: 2
maxCount: 2
table: !type:GroupSelector
children:
- id: CP14DemiplanePassway
- !type:OreDunGen
entity: CP14DemiplanEnterRoomMarker
count: 1
minGroupSize: 1
maxGroupSize: 1
- !type:OreDunGen
entity: CP14DemiplanePassway
count: 2
minGroupSize: 1
maxGroupSize: 1