From b01938ddcf95094b23b620d1cc7ee26149ab095a Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Tue, 2 Sep 2025 11:52:37 +0300 Subject: [PATCH] Magic traps (#1662) * magic trap * demiplan * energy * Permanent * meta * ice trap * fix * ForkFiltered * sound trap * icon and loot * blacklistTags * staffs * fix window * manacost --- .../Actions/Spells/Electric/electric_trap.yml | 187 +++++++++++++++++ .../Actions/Spells/Fire/fire_trap.yml | 152 ++++++++++++++ .../Actions/Spells/Water/ice_trap.yml | 193 ++++++++++++++++++ .../_CP14/Entities/Actions/Spells/base.yml | 17 ++ .../_CP14/Entities/Actions/Spells/scrolls.yml | 11 + .../Spawners/Random/Loot/demiplane.yml | 3 + .../Objects/Weapons/Magic/twoHandedStaffs.yml | 1 + .../Entities/Structures/Windows/misc.yml | 75 +++++++ .../Demiplane/Modifiers/Danger/trap.yml | 87 ++++++++ .../Spells/electromancy.rsi/electric_trap.png | Bin 0 -> 2162 bytes .../Actions/Spells/electromancy.rsi/meta.json | 5 +- .../Actions/Spells/fire.rsi/fire_trap.png | Bin 0 -> 1617 bytes .../_CP14/Actions/Spells/fire.rsi/meta.json | 5 +- .../Actions/Spells/water.rsi/ice_trap.png | Bin 0 -> 2160 bytes .../_CP14/Actions/Spells/water.rsi/meta.json | 5 +- .../Effects/Magic/magic_trap.rsi/meta.json | 55 +++++ .../Magic/magic_trap.rsi/rune_energia.png | Bin 0 -> 802 bytes .../Magic/magic_trap.rsi/rune_fire.png | Bin 0 -> 716 bytes .../Effects/Magic/magic_trap.rsi/rune_ice.png | Bin 0 -> 770 bytes .../Magic/magic_trap.rsi/small_circle.png | Bin 0 -> 2527 bytes 20 files changed, 793 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Electric/electric_trap.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/fire_trap.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/ice_trap.yml create mode 100644 Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/trap.yml create mode 100644 Resources/Textures/_CP14/Actions/Spells/electromancy.rsi/electric_trap.png create mode 100644 Resources/Textures/_CP14/Actions/Spells/fire.rsi/fire_trap.png create mode 100644 Resources/Textures/_CP14/Actions/Spells/water.rsi/ice_trap.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/rune_energia.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/rune_fire.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/rune_ice.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/small_circle.png diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Electric/electric_trap.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Electric/electric_trap.yml new file mode 100644 index 0000000000..3c248b479f --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Electric/electric_trap.yml @@ -0,0 +1,187 @@ +- type: entity + id: CP14ActionSpellElectricTrap + parent: CP14ActionSpellBase + name: Electric trap + description: Creates a electric trap at the selected location. Don't forget to recharge it with mana. + components: + - type: Sprite + sprite: _CP14/Actions/Spells/electromancy.rsi + state: electric_trap + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.9 + - type: CP14ActionManaCost + manaCost: 40 + - type: CP14MagicEffect + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectElectricTrap + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SpawnMagicElectricTrap + - type: CP14ActionSpeaking + startSpeech: "Signum electricum..." + endSpeech: "hunc locum custodi" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneElectricTrap + - type: Action + icon: + sprite: _CP14/Actions/Spells/electromancy.rsi + state: electric_trap + - type: TargetAction + range: 3 + - type: WorldTargetAction + event: !type:CP14DelayedWorldTargetActionEvent + cooldown: 4 + +- type: entity + id: CP14RuneElectricTrap + parent: CP14BaseMagicTrap + categories: [ HideSpawnMenu ] + save: false + components: + - type: PointLight + color: "#e8ff4c" + - type: Sprite + layers: + - state: small_circle + color: "#e8ff4c" + shader: unshaded + - state: rune_fire + color: "#e8ff4c" + shader: unshaded + +- type: entity + id: CP14ImpactEffectElectricTrap + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + layers: + - state: particles_up + color: "#e8ff4c" + shader: unshaded + +- type: entity + id: CP14SpawnMagicElectricTrap + parent: CP14BaseMagicTrap + name: electric trap + description: A rune of electric drawn on the ground using magic — it's best not to step on it. + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - state: small_circle + color: "#e8ff4c" + shader: unshaded + - state: rune_energia + color: "#e8ff4c" + shader: unshaded + - type: Fixtures + fixtures: + trap: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + hard: false + mask: + - MobMask + layer: + - SlipLayer + - type: CP14MagicEnergyExaminable + - type: CP14MagicEnergyContainer + maxEnergy: 42 + energy: 42 + unsafeSupport: true + - type: CP14MagicEnergyDraw + energy: -0.5 + delay: 5 + - type: CP14MagicUnsafeDamage + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: TriggerOnCollide + fixtureID: trap + - type: SpawnOnTrigger + proto: CP14ActionSpellElectricTrapEffect + - type: DeleteOnTrigger + +- type: entity + id: CP14ActionSpellElectricTrapEffect + name: electric star + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + sprite: _CP14/Effects/Magic/cast_impact.rsi + drawdepth: Mobs + noRot: true + layers: + - state: stars + color: "#e8ff4c" + shader: unshaded + - type: TimedDespawn + lifetime: 1 + - type: Tag + tags: + - HideContextMenu + - type: CP14AreaEntityEffect + range: 2 + effects: + - !type:CP14SpellApplyEntityEffect + effects: + - !type:HealthChange + ignoreResistances: false + damage: + types: + Shock: 10 + - !type:MovespeedModifier + walkSpeedModifier: 1.3 + sprintSpeedModifier: 1.3 + statusLifetime: 4 + - !type:Jitter + - !type:CP14StaminaChange + staminaDelta: -100 + - type: EmitSoundOnTrigger + sound: + path: /Audio/Effects/PowerSink/electric.ogg + params: + variation: 0.1 + volume: -2 + - type: TriggerOnSpawn + +- type: entity + parent: CP14BaseSpellScrollElectric + id: CP14SpellScrollElectricTrap + name: electric trap spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellElectricTrap + +- type: entity + parent: CP14SpawnMagicElectricTrap + id: CP14SpawnMagicElectricTrapInvisible + suffix: Invisible. Permanent + components: + - type: Visibility + layer: 16 + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 + +- type: entity + parent: CP14SpawnMagicElectricTrap + id: CP14SpawnMagicElectricTrapPermanent + suffix: Permanent + components: + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/fire_trap.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/fire_trap.yml new file mode 100644 index 0000000000..141989ff27 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/fire_trap.yml @@ -0,0 +1,152 @@ +- type: entity + id: CP14ActionSpellFireTrap + parent: CP14ActionSpellBase + name: Fire trap + description: Creates a fire trap at the selected location. Don't forget to recharge it with mana. + components: + - type: Sprite + sprite: _CP14/Actions/Spells/fire.rsi + state: fire_trap + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.9 + - type: CP14ActionManaCost + manaCost: 40 + - type: CP14MagicEffect + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectFireTrap + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SpawnMagicFireTrap + - type: CP14ActionSpeaking + startSpeech: "Signum ignis..." + endSpeech: "hunc locum custodi" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneFireTrap + - type: Action + icon: + sprite: _CP14/Actions/Spells/fire.rsi + state: fire_trap + - type: TargetAction + range: 3 + - type: WorldTargetAction + event: !type:CP14DelayedWorldTargetActionEvent + cooldown: 4 + +- type: entity + id: CP14RuneFireTrap + parent: CP14BaseMagicTrap + categories: [ HideSpawnMenu ] + save: false + components: + - type: PointLight + color: "#eea911" + - type: Sprite + layers: + - state: small_circle + color: "#fdda5d" + shader: unshaded + - state: rune_fire + color: "#eea911" + shader: unshaded + +- type: entity + id: CP14ImpactEffectFireTrap + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + layers: + - state: particles_up + color: "#eea911" + shader: unshaded + +- type: entity + id: CP14SpawnMagicFireTrap + parent: CP14BaseMagicTrap + name: fire trap + description: A rune of fire drawn on the ground using magic — it's best not to step on it. + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - state: small_circle + color: "#fdda5d" + shader: unshaded + - state: rune_fire + color: "#eea911" + shader: unshaded + - type: Fixtures + fixtures: + trap: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + hard: false + mask: + - MobMask + layer: + - SlipLayer + - type: CP14MagicEnergyExaminable + - type: CP14MagicEnergyContainer + maxEnergy: 42 + energy: 42 + unsafeSupport: true + - type: CP14MagicEnergyDraw + energy: -0.5 + delay: 5 + - type: CP14MagicUnsafeDamage + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: TriggerOnCollide + fixtureID: trap + - type: IgnitionSource + temperature: 400 + ignited: true + - type: IgniteOnCollide + fireStacks: 3 + - type: ExplodeOnTrigger + - type: Explosive + explosionType: FireBomb + totalIntensity: 10.0 + intensitySlope: 4 + maxIntensity: 3 + - type: DeleteOnTrigger + +- type: entity + parent: CP14BaseSpellScrollFire + id: CP14SpellScrollFireTrap + name: fire trap spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellFireTrap + +- type: entity + parent: CP14SpawnMagicFireTrap + id: CP14SpawnMagicFireTrapInvisible + suffix: Invisible. Permanent + components: + - type: Visibility + layer: 16 + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 + +- type: entity + parent: CP14SpawnMagicFireTrap + id: CP14SpawnMagicFireTrapPermanent + suffix: Permanent + components: + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/ice_trap.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/ice_trap.yml new file mode 100644 index 0000000000..1057f97ee1 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/ice_trap.yml @@ -0,0 +1,193 @@ +- type: entity + id: CP14ActionSpellIceTrap + parent: CP14ActionSpellBase + name: Ice trap + description: Creates a ice trap at the selected location. Don't forget to recharge it with mana. + components: + - type: Sprite + sprite: _CP14/Actions/Spells/water.rsi + state: ice_trap + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.9 + - type: CP14ActionManaCost + manaCost: 40 + - type: CP14MagicEffect + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectIceTrap + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14SpawnMagicIceTrap + - type: CP14ActionSpeaking + startSpeech: "Signum glaciei..." + endSpeech: "hunc locum custodi" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneIceTrap + - type: Action + icon: + sprite: _CP14/Actions/Spells/water.rsi + state: ice_trap + - type: TargetAction + range: 3 + - type: WorldTargetAction + event: !type:CP14DelayedWorldTargetActionEvent + cooldown: 4 + +- type: entity + id: CP14RuneIceTrap + parent: CP14BaseMagicTrap + categories: [ HideSpawnMenu ] + save: false + components: + - type: PointLight + color: "#eea911" + - type: Sprite + layers: + - state: small_circle + color: "#5eabeb" + shader: unshaded + - state: rune_ice + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14ImpactEffectIceTrap + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + layers: + - state: particles_up + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14SpawnMagicIceTrap + parent: CP14BaseMagicTrap + name: ice trap + description: A rune of ice drawn on the ground using magic — it's best not to step on it. + categories: [ ForkFiltered ] + components: + - type: Sprite + layers: + - state: small_circle + color: "#5eabeb" + shader: unshaded + - state: rune_ice + color: "#5eabeb" + shader: unshaded + - type: Fixtures + fixtures: + trap: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.2" + hard: false + mask: + - MobMask + layer: + - SlipLayer + - type: CP14MagicEnergyExaminable + - type: CP14MagicEnergyContainer + maxEnergy: 42 + energy: 42 + unsafeSupport: true + - type: CP14MagicEnergyDraw + energy: -0.5 + delay: 5 + - type: CP14MagicUnsafeDamage + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: TriggerOnCollide + fixtureID: trap + - type: DeleteOnTrigger + - type: EmitSoundOnTrigger + sound: + collection: ToySqueak + - type: SpawnOnTrigger + proto: CP14ActionSpellIceTrapEffect + +- type: entity + id: CP14ActionSpellIceTrapEffect + name: ice circle + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + sprite: _CP14/Effects/Magic/cast_impact.rsi + drawdepth: Mobs + noRot: true + layers: + - state: circle_decrease + color: "#5eabeb" + shader: unshaded + - type: TimedDespawn + lifetime: 1 + - type: Tag + tags: + - HideContextMenu + - type: CP14AreaEntityEffect + range: 1 + effects: + - !type:CP14SpellApplyEntityEffect + effects: + - !type:HealthChange + ignoreResistances: false + damage: + types: + Cold: 10 + - !type:MovespeedModifier + walkSpeedModifier: 0.0 + sprintSpeedModifier: 0.0 + statusLifetime: 3 + - !type:AdjustTemperature + amount: -50000 + - !type:ExtinguishReaction + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14WindowMagicIceBlock + - type: EmitSoundOnTrigger + sound: + path: /Audio/Effects/balloon-pop.ogg + params: + variation: 0.1 + volume: -2 + - type: TriggerOnSpawn + +- type: entity + parent: CP14BaseSpellScrollWater + id: CP14SpellScrollIceTrap + name: ice trap spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellIceTrap + +- type: entity + parent: CP14SpawnMagicIceTrap + id: CP14SpawnMagicIceTrapInvisible + suffix: Invisible. Permanent + components: + - type: Visibility + layer: 16 + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 + +- type: entity + parent: CP14SpawnMagicIceTrap + id: CP14SpawnMagicIceTrapPermanent + suffix: Permanent + components: + - type: CP14MagicEnergyDraw + energy: 0 + delay: 0 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml index 871eff01e8..d114e68d27 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/base.yml @@ -44,3 +44,20 @@ sprite: _CP14/Effects/Magic/cast_impact.rsi noRot: true +- type: entity + id: CP14BaseMagicTrap + name: magic trap + description: Manifestation of magical energy in the physical plane + abstract: true + components: + - type: Transform + anchored: false + - type: InteractionOutline + - type: Damageable + damageContainer: CP14Spectral + - type: Physics + bodyType: Static + - type: Sprite + noRot: true + drawDepth: FloorTiles + sprite: _CP14/Effects/Magic/magic_trap.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml index ee61ac2110..686fb602f8 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml @@ -150,3 +150,14 @@ shader: unshaded color: "#1c94d9" +- type: entity + abstract: true + id: CP14BaseSpellScrollElectric + parent: CP14BaseSpellScroll + components: + - type: Sprite + layers: + - state: paper_filled + - state: magic + shader: unshaded + color: "#e8ff4c" diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml index 880fc9104c..a78671bb54 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/demiplane.yml @@ -48,6 +48,8 @@ - id: CP14BaseLockpick - id: CP14EnergyCrystalMediumEmpty - id: CP14ClothingCloakAmuletGold + - id: CP14SpellScrollElectricTrap + - id: CP14SpellScrollIceTrap # Rare standard village crates loot - !type:NestedSelector tableId: CP14StationCrateLoot @@ -84,6 +86,7 @@ weight: 2 #Temp (small amount T2 loot) - !type:GroupSelector children: + - id: CP14SpellScrollFireTrap - id: CP14SpellScrollShadowStep - id: CP14SpellScrollFireball - id: CP14SpellScrollBeerCreation diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml index d1dd0c4b0a..dbe8bca84a 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml @@ -116,6 +116,7 @@ components: - type: CP14SpellStorage spells: + - CP14ActionSpellElectricTrap - CP14ActionSpellLightningStrike - CP14ActionSpellLightningStrikeSmall - CP14ActionSpellLightningStrikeSmall diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Windows/misc.yml b/Resources/Prototypes/_CP14/Entities/Structures/Windows/misc.yml index 02652d0dfe..3fa691c0a7 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Windows/misc.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Windows/misc.yml @@ -32,3 +32,78 @@ params: variation: 0.03 +- type: entity + id: CP14WindowMagicIceBlock + name: magic ice block + description: Ice created by magic with a distinct purple hue. + categories: [ ForkFiltered ] + placement: + mode: SnapgridCenter + snap: + - Window + components: + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Structures/Windows/ice_block.rsi + color: "#5eabeb" + - type: Icon + sprite: _CP14/Structures/Windows/ice_block.rsi + state: full + - type: IconSmooth + key: CP14window + base: window + - type: PlacementReplacement + key: walls + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Glass + - type: TriggerOnCollide + fixtureID: fix1 + - type: Appearance + - type: Transform + anchored: true + - type: Clickable + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + hard: false + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + density: 1000 + mask: + - TableMask + layer: + - TableLayer + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 15 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: MeleeSound + soundGroups: + Brute: + collection: GlassSmash + - type: SpeedModifierContacts + walkSpeedModifier: 0.1 + sprintSpeedModifier: 0.1 + - type: DamageOnAttacked + damage: + types: + Cold: 2 + - type: DamageOnInteract + damage: + types: + Cold: 2 + - type: DamageContacts + damage: + types: + Cold: 1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/trap.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/trap.yml new file mode 100644 index 0000000000..0920493c14 --- /dev/null +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/trap.yml @@ -0,0 +1,87 @@ +- type: cp14LocationModifier + id: IceTrapInvisible + levels: + min: 3 + max: 10 + categories: + Danger: 0.1 + blacklistTags: + - CP14DemiplaneHot + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicIceTrapInvisible + count: 5 + minGroupSize: 1 + maxGroupSize: 1 + +- type: cp14LocationModifier + id: IceTrapPermanent + levels: + min: 3 + max: 10 + categories: + Danger: 0.1 + blacklistTags: + - CP14DemiplaneHot + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicIceTrapPermanent + count: 10 + minGroupSize: 1 + maxGroupSize: 1 + +- type: cp14LocationModifier + id: FireTrapInvisible + levels: + min: 3 + max: 10 + categories: + Danger: 0.1 + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicFireTrapInvisible + count: 5 + minGroupSize: 1 + maxGroupSize: 1 + +- type: cp14LocationModifier + id: FireTrapPermanent + levels: + min: 3 + max: 10 + categories: + Danger: 0.1 + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicFireTrapPermanent + count: 10 + minGroupSize: 1 + maxGroupSize: 1 + +- type: cp14LocationModifier + id: ElectricTrapInvisible + levels: + min: 2 + max: 10 + categories: + Danger: 0.1 + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicElectricTrapInvisible + count: 5 + minGroupSize: 1 + maxGroupSize: 1 + +- type: cp14LocationModifier + id: ElectricTrapPermanent + levels: + min: 2 + max: 10 + categories: + Danger: 0.1 + layers: + - !type:CP14OreDunGen + entity: CP14SpawnMagicElectricTrapPermanent + count: 10 + minGroupSize: 1 + maxGroupSize: 1 diff --git a/Resources/Textures/_CP14/Actions/Spells/electromancy.rsi/electric_trap.png b/Resources/Textures/_CP14/Actions/Spells/electromancy.rsi/electric_trap.png new file mode 100644 index 0000000000000000000000000000000000000000..4c55f9b3980f3463eb33e3c7e18c3366bb979016 GIT binary patch literal 2162 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 P00000NkvXXu0mjfXDuBk literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Actions/Spells/fire.rsi/meta.json b/Resources/Textures/_CP14/Actions/Spells/fire.rsi/meta.json index 8dee19ade6..0943f47ae6 100644 --- a/Resources/Textures/_CP14/Actions/Spells/fire.rsi/meta.json +++ b/Resources/Textures/_CP14/Actions/Spells/fire.rsi/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "All right reserved", - "copyright": "Created by .kreks., tiefling_revenge, fire_music, firewave by TheShuEd", + "copyright": "Created by .kreks., tiefling_revenge, fire_music, firewave by TheShuEd, fire_trap by nimfar11", "states": [ { "name": "fire_music" @@ -24,6 +24,9 @@ }, { "name": "firewave" + }, + { + "name": "fire_trap" } ] } diff --git a/Resources/Textures/_CP14/Actions/Spells/water.rsi/ice_trap.png b/Resources/Textures/_CP14/Actions/Spells/water.rsi/ice_trap.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a85a2c7c654cc7d457ab2c66fdf17a9b8ccaa4 GIT binary patch literal 2160 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/rune_fire.png b/Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/rune_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc287b2a36b81246599395920eefe5ce3457ef4 GIT binary patch literal 716 zcmV;-0yF)IP)Px%hDk(0RCt{2+CPueFc=2#=Z$@>>!ix5Jq8$9VC72zVnZMy5Mltt1`|3qbbKO4 zL~qY<%T!0KiXvX-r2fWgwIV4chzMHi#hqSO7Hz7bpk2sy4FNAi!t8F zvTUb(nfM$TV-Ba&>9TEGE2Vtvy$67(l=7*Q>60Hq_%t4mtIcL(q?GSc^OIHp5h2g> z*Qckaw?YUFtIXgSk&bjwxSw7G6+z^o;XbW7-f05_8 zB_gMkvVF!$S^)r16oqS=#%Zk|kH_Qt0M3Vc`9I{}1z-WVzT@n?Y>hE0%Q7OOp$@=* zDxWdN7-Nhv#u#IaF~%5US3p%&RM$1F*XzOV1TVUb{G{vgZ9ibrb)6PMSns_9;FMB> z6(vqiPUct*Nt y>YP(VL>R6h^&4Z1&awPx%yh%hsRCt{2+RsbeKoke??@MMkZ?lQ5f_m%!u>MCaJ@jB{i`EuIT9DEo*n;A% zg8$L3#ls#}4}!OVD<&qhlVqm{x25#dWOYl+`#^4)H^XCQF7pM15JCtcgb+dqA;iC> z-|y4e*%{RxUwa?`bh}*!z(fQ9qfV!jO;fL`Ua!YN5cotyVHjr1%gbri8cyBGkB*Lr zh{$!_4aad_wcBm~`1p9LhE~z-b_oEbX}ZqLdr6YC&d<*)&#$Tu==FLGfULEcbpMc< zcjGwbq9_=^o$i9kt|I`j*0Srm2gBiTV{UHFZ#J76z;%^+m3Kf81is@qTg6qVSpdZu0?A6cGTwEX#w@X!J85&}y~57-Lqe)SAMNe8Bz5(R-(qdcn*) zb&6F!0@hksYjJgTwVvlWr)j#y%paT0=6;<8)a5wNOQn==jM*BG$M3b)>$U1s`FU}1 z(E>=Xudi2?QlGTe4~;SD#l^)p*LAg0YL@wc&y7ao?RY#+qbTYbW70T|XPXZI0BfyB zL?ZyU)9K7KA3#JD$FY|rNoK8`+5AEXA;f>;JLsl3@Hi_H)c^nh07*qoM6N<$g6wE+ AO#lD@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/small_circle.png b/Resources/Textures/_CP14/Effects/Magic/magic_trap.rsi/small_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6ae9682d2dc9421c43ed15c1e8072f9f0a5947 GIT binary patch literal 2527 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