From e79b046c4a270c9ef6cabff79a4272bdbe52cd6c Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 20 Nov 2024 00:23:44 +0300 Subject: [PATCH] Magic redesign (#594) * water spell textures * water creation spell * mana consume, and mana glove * remove mana transfer ring * Update migration.yml * copy Wizden loadout PR * add sprite component to all spells * spell dummy loadouts * delete spell traits * really give spells from loadouts * update crates fill and demiplane spawners * beer creation spell, fix passivedamage * Update PassiveDamageSystem.cs --- .../UI/Loadouts/LoadoutContainer.xaml.cs | 19 +-- Content.Server/Traits/TraitSystem.cs | 8 - Content.Shared/Clothing/LoadoutSystem.cs | 3 + .../Damage/Systems/PassiveDamageSystem.cs | 31 +++- .../Preferences/Loadouts/LoadoutPrototype.cs | 12 ++ .../Station/SharedStationSpawningSystem.cs | 11 ++ Content.Shared/Traits/TraitPrototype.cs | 6 - .../CP14SharedMagicSystem.Actions.cs | 12 +- .../MagicSpell/Spells/CP14SpellConsumeMana.cs | 61 ++++++++ .../MagicSpell/Spells/CP14SpellEffect.cs | 4 +- .../Locale/en-US/_CP14/loadouts/loadout.ftl | 1 + Resources/Locale/en-US/_CP14/traits/trait.ftl | 8 - .../Locale/ru-RU/_CP14/loadouts/loadout.ftl | 1 + Resources/Locale/ru-RU/_CP14/traits/trait.ftl | 8 - .../Prototypes/_CP14/Catalog/Fills/crates.yml | 5 +- .../Actions/Spells/Earth/T1_earth_wall.yml | 3 + .../Actions/Spells/Fire/T0_flame_creation.yml | 5 +- .../Actions/Spells/Fire/T1_fireball.yml | 3 + .../Actions/Spells/Gate/T2_shadow_step.yml | 3 + .../Actions/Spells/Healing/T1_cure_wounds.yml | 3 + ...re_of_light.yml => T0_sphere_of_light.yml} | 9 +- .../Spells/LightDarkness/T1_flash_light.yml | 3 + .../Actions/Spells/Meta/T0_mana_consume.yml | 67 ++++++++ .../Actions/Spells/Meta/T0_mana_gift.yml | 6 +- ...{T1_shadow_grab.yml => T0_shadow_grab.yml} | 3 + .../Spells/Necromancy/T1_resurrection.yml | 3 + .../{T1_ice_dagger.yml => T0_ice_dagger.yml} | 3 + .../Spells/Water/T0_water_creation.yml | 147 ++++++++++++++++++ .../Actions/Spells/Water/T1_beer_creation.yml | 87 +++++++++++ .../Actions/Spells/Water/T1_ice_shards.yml | 3 + .../_CP14/Entities/Clothing/Rings/ring.yml | 96 ------------ .../Markers/Spawners/Random/Loot/spawners.yml | 10 +- .../Objects/Specific/Thaumaturgy/tools.yml | 47 +++++- .../Objects/Weapons/Magic/twoHandedStaffs.yml | 4 +- .../_CP14/Loadouts/Jobs/general.yml | 96 +++++++++++- .../_CP14/Loadouts/role_loadouts.yml | 8 + .../Prototypes/_CP14/Traits/categories.yml | 5 - Resources/Prototypes/_CP14/Traits/spells.yml | 17 -- .../Effects/Magic/cast_impact.rsi/meta.json | 15 ++ .../Magic/cast_impact.rsi/particles_down.png | Bin 0 -> 3222 bytes .../Magic/spells_icons.rsi/beer_creation.png | Bin 0 -> 461 bytes .../Magic/spells_icons.rsi/mana_consume.png | Bin 0 -> 473 bytes .../Magic/spells_icons.rsi/mana_gift.png | Bin 461 -> 468 bytes .../Effects/Magic/spells_icons.rsi/meta.json | 9 ++ .../Magic/spells_icons.rsi/water_creation.png | Bin 0 -> 406 bytes .../liquid_drop.rsi/inhand-left-fill1.png | Bin 0 -> 453 bytes .../liquid_drop.rsi/inhand-right-fill1.png | Bin 0 -> 457 bytes .../Objects/Misc/liquid_drop.rsi/liq-1.png | Bin 0 -> 601 bytes .../Objects/Misc/liquid_drop.rsi/meta.json | 82 ++++++++++ Resources/migration.yml | 12 +- 50 files changed, 742 insertions(+), 197 deletions(-) create mode 100644 Content.Shared/_CP14/MagicSpell/Spells/CP14SpellConsumeMana.cs rename Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/{T1_sphere_of_light.yml => T0_sphere_of_light.yml} (95%) create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_consume.yml rename Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/{T1_shadow_grab.yml => T0_shadow_grab.yml} (94%) rename Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/{T1_ice_dagger.yml => T0_ice_dagger.yml} (96%) create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_water_creation.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_beer_creation.yml delete mode 100644 Resources/Prototypes/_CP14/Traits/spells.yml create mode 100644 Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/particles_down.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/beer_creation.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_consume.png create mode 100644 Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/water_creation.png create mode 100644 Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-left-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-right-fill1.png create mode 100644 Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/liq-1.png create mode 100644 Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/meta.json diff --git a/Content.Client/Lobby/UI/Loadouts/LoadoutContainer.xaml.cs b/Content.Client/Lobby/UI/Loadouts/LoadoutContainer.xaml.cs index 36f0772d78..2ab40fb37d 100644 --- a/Content.Client/Lobby/UI/Loadouts/LoadoutContainer.xaml.cs +++ b/Content.Client/Lobby/UI/Loadouts/LoadoutContainer.xaml.cs @@ -36,17 +36,18 @@ public sealed partial class LoadoutContainer : BoxContainer if (_protoManager.TryIndex(proto, out var loadProto)) { - var ent = _entManager.System().GetFirstOrNull(loadProto); + var ent = loadProto.DummyEntity ?? _entManager.System().GetFirstOrNull(loadProto); - if (ent != null) - { - _entity = _entManager.SpawnEntity(ent, MapCoordinates.Nullspace); - Sprite.SetEntity(_entity); + if (ent == null) + return; - var spriteTooltip = new Tooltip(); - spriteTooltip.SetMessage(FormattedMessage.FromUnformatted(_entManager.GetComponent(_entity.Value).EntityDescription)); - TooltipSupplier = _ => spriteTooltip; - } + _entity = _entManager.SpawnEntity(ent, MapCoordinates.Nullspace); + Sprite.SetEntity(_entity); + + var spriteTooltip = new Tooltip(); + spriteTooltip.SetMessage(FormattedMessage.FromUnformatted(_entManager.GetComponent(_entity.Value).EntityDescription)); + + TooltipSupplier = _ => spriteTooltip; } } diff --git a/Content.Server/Traits/TraitSystem.cs b/Content.Server/Traits/TraitSystem.cs index 600555b37b..38b6d2df47 100644 --- a/Content.Server/Traits/TraitSystem.cs +++ b/Content.Server/Traits/TraitSystem.cs @@ -16,7 +16,6 @@ public sealed class TraitSystem : EntitySystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; - [Dependency] private readonly ActionsSystem _action = default!; //CP14 public override void Initialize() { @@ -48,13 +47,6 @@ public sealed class TraitSystem : EntitySystem _whitelistSystem.IsBlacklistPass(traitPrototype.Blacklist, args.Mob)) continue; - // CP14 start - add all spells to player mind - foreach (var spell in traitPrototype.Actions) - { - _action.AddAction(args.Mob, spell); - } - //CP14 end - // Add all components required by the prototype if (traitPrototype.Components.Count > 0) //CP14 added check EntityManager.AddComponents(args.Mob, traitPrototype.Components, false); diff --git a/Content.Shared/Clothing/LoadoutSystem.cs b/Content.Shared/Clothing/LoadoutSystem.cs index 2a686efd4f..93b0abfd82 100644 --- a/Content.Shared/Clothing/LoadoutSystem.cs +++ b/Content.Shared/Clothing/LoadoutSystem.cs @@ -90,6 +90,9 @@ public sealed class LoadoutSystem : EntitySystem public string GetName(LoadoutPrototype loadout) { + if (loadout.DummyEntity is not null && _protoMan.TryIndex(loadout.DummyEntity, out var proto)) + return proto.Name; + if (_protoMan.TryIndex(loadout.StartingGear, out var gear)) { return GetName(gear); diff --git a/Content.Shared/Damage/Systems/PassiveDamageSystem.cs b/Content.Shared/Damage/Systems/PassiveDamageSystem.cs index e750863e24..216667189f 100644 --- a/Content.Shared/Damage/Systems/PassiveDamageSystem.cs +++ b/Content.Shared/Damage/Systems/PassiveDamageSystem.cs @@ -11,10 +11,14 @@ public sealed class PassiveDamageSystem : EntitySystem [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly IGameTiming _timing = default!; + private EntityQuery _mobStateQuery; //CP14 + public override void Initialize() { base.Initialize(); + _mobStateQuery = GetEntityQuery(); //CP14 + SubscribeLocalEvent(OnPendingMapInit); } @@ -30,8 +34,8 @@ public sealed class PassiveDamageSystem : EntitySystem var curTime = _timing.CurTime; // Go through every entity with the component - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var comp, out var damage, out var mobState)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp, out var damage /*, out var mobState*/)) { // Make sure they're up for a damage tick if (comp.NextDamage > curTime) @@ -43,12 +47,27 @@ public sealed class PassiveDamageSystem : EntitySystem // Set the next time they can take damage comp.NextDamage = curTime + TimeSpan.FromSeconds(1f); - // Damage them - foreach (var allowedState in comp.AllowedStates) + //CP14 logic replacement + // + //// Damage them + //foreach (var allowedState in comp.AllowedStates) + //{ + // if(allowedState == mobState.CurrentState) + // _damageable.TryChangeDamage(uid, comp.Damage, true, false, damage); + //} + if (comp.AllowedStates.Count > 0 && _mobStateQuery.TryComp(uid, out var mobState)) { - if(allowedState == mobState.CurrentState) - _damageable.TryChangeDamage(uid, comp.Damage, true, false, damage); + foreach (var allowedState in comp.AllowedStates) + { + if(allowedState == mobState.CurrentState) + _damageable.TryChangeDamage(uid, comp.Damage, true, false, damage); + } } + else + { + _damageable.TryChangeDamage(uid, comp.Damage, true, false, damage); + } + //CP14 logic replacement end } } } diff --git a/Content.Shared/Preferences/Loadouts/LoadoutPrototype.cs b/Content.Shared/Preferences/Loadouts/LoadoutPrototype.cs index a570b61d89..5c3a68245a 100644 --- a/Content.Shared/Preferences/Loadouts/LoadoutPrototype.cs +++ b/Content.Shared/Preferences/Loadouts/LoadoutPrototype.cs @@ -17,6 +17,12 @@ public sealed partial class LoadoutPrototype : IPrototype, IEquipmentLoadout * You can either use an existing StartingGearPrototype or specify it inline to avoid bloating yaml. */ + /// + /// An entity whose sprite, name and description is used for display in the interface. If null, tries to get the proto of the item from gear (if it is a single item). + /// + [DataField] + public EntProtoId? DummyEntity; + [DataField] public ProtoId? StartingGear; @@ -38,4 +44,10 @@ public sealed partial class LoadoutPrototype : IPrototype, IEquipmentLoadout /// [DataField] public Dictionary> Storage { get; set; } = new(); + + /// + /// CP14 - it is possible to give action spells or spells to players who have taken this loadout + /// + [DataField] + public List Actions { get; set; } = new(); } diff --git a/Content.Shared/Station/SharedStationSpawningSystem.cs b/Content.Shared/Station/SharedStationSpawningSystem.cs index ad264cd22a..4a3cc1b06b 100644 --- a/Content.Shared/Station/SharedStationSpawningSystem.cs +++ b/Content.Shared/Station/SharedStationSpawningSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared.Actions; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Inventory; @@ -22,6 +23,7 @@ public abstract class SharedStationSpawningSystem : EntitySystem [Dependency] private readonly MetaDataSystem _metadata = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly SharedTransformSystem _xformSystem = default!; + [Dependency] private readonly SharedActionsSystem _action = default!; //CP14 private EntityQuery _handsQuery; private EntityQuery _inventoryQuery; @@ -82,6 +84,15 @@ public abstract class SharedStationSpawningSystem : EntitySystem { EquipStartingGear(entity, loadout.StartingGear, raiseEvent); EquipStartingGear(entity, (IEquipmentLoadout) loadout, raiseEvent); + CP14EquipStartingActions(entity, loadout); + } + + private void CP14EquipStartingActions(EntityUid entity, LoadoutPrototype loadout) + { + foreach (var action in loadout.Actions) + { + _action.AddAction(entity, action); + } } /// diff --git a/Content.Shared/Traits/TraitPrototype.cs b/Content.Shared/Traits/TraitPrototype.cs index f699b80b15..f556918a2a 100644 --- a/Content.Shared/Traits/TraitPrototype.cs +++ b/Content.Shared/Traits/TraitPrototype.cs @@ -60,10 +60,4 @@ public sealed partial class TraitPrototype : IPrototype /// [DataField] public ProtoId? Category; - - /// - /// CP14 - adding permanent spells into players mind - /// - [DataField] - public List Actions = new(); } diff --git a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Actions.cs b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Actions.cs index 0e8d8ac4df..9e2408c54f 100644 --- a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Actions.cs +++ b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Actions.cs @@ -48,7 +48,7 @@ public abstract partial class CP14SharedMagicSystem RaiseLocalEvent(args.Action, ref evStart); var spellArgs = - new CP14SpellEffectBaseArgs(args.Performer, args.Performer, Transform(args.Performer).Coordinates); + new CP14SpellEffectBaseArgs(args.Performer, magicEffect.SpellStorage, args.Performer, Transform(args.Performer).Coordinates); CastTelegraphy((args.Action, magicEffect), spellArgs); @@ -93,7 +93,7 @@ public abstract partial class CP14SharedMagicSystem RaiseLocalEvent(args.Action, ref evStart); var spellArgs = - new CP14SpellEffectBaseArgs(args.Performer, args.Entity, args.Coords); + new CP14SpellEffectBaseArgs(args.Performer, magicEffect.SpellStorage, args.Entity, args.Coords); CastTelegraphy((args.Action, magicEffect), spellArgs); @@ -136,7 +136,7 @@ public abstract partial class CP14SharedMagicSystem RaiseLocalEvent(args.Action, ref evStart); var spellArgs = - new CP14SpellEffectBaseArgs(args.Performer, args.Target, Transform(args.Target).Coordinates); + new CP14SpellEffectBaseArgs(args.Performer, magicEffect.SpellStorage, args.Target, Transform(args.Target).Coordinates); CastTelegraphy((args.Action, magicEffect), spellArgs); @@ -158,7 +158,7 @@ public abstract partial class CP14SharedMagicSystem if (args.Cancelled || args.Handled) return; - CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, args.User, Transform(args.User).Coordinates), args.Cooldown ?? 0); + CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, args.Used, args.User, Transform(args.User).Coordinates), args.Cooldown ?? 0); args.Handled = true; } @@ -178,7 +178,7 @@ public abstract partial class CP14SharedMagicSystem var targetPos = EntityManager.GetCoordinates(args.TargetPosition); EntityManager.TryGetEntity(args.TargetEntity, out var targetEnt); - CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, targetEnt, targetPos), args.Cooldown ?? 0); + CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, args.Used, targetEnt, targetPos), args.Cooldown ?? 0); args.Handled = true; } @@ -198,7 +198,7 @@ public abstract partial class CP14SharedMagicSystem EntityCoordinates? targetPos = null; if (targetEnt is not null) { targetPos = Transform(targetEnt.Value).Coordinates; } - CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, targetEnt, targetPos), args.Cooldown ?? 0); + CastSpell(ent, new CP14SpellEffectBaseArgs(args.User, args.Used, targetEnt, targetPos), args.Cooldown ?? 0); args.Handled = true; } diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellConsumeMana.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellConsumeMana.cs new file mode 100644 index 0000000000..a88062fc93 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellConsumeMana.cs @@ -0,0 +1,61 @@ +using Content.Shared._CP14.MagicEnergy; +using Content.Shared._CP14.MagicEnergy.Components; +using Content.Shared.FixedPoint; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellConsumeManaEffect : CP14SpellEffect +{ + [DataField] + public FixedPoint2 Mana = 0; + + [DataField] + public bool Safe = false; + + [DataField] + public float LossMultiplier = 0.8f; + + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.Target is null) + return; + + var targetEntity = args.Target.Value; + + if (!entManager.TryGetComponent(targetEntity, out var magicContainer)) + return; + + var magicEnergy = entManager.System(); + + var currentMana = magicContainer.Energy; + FixedPoint2 manaBuffer = MathF.Min(Mana.Float(), currentMana.Float()) * LossMultiplier; + + if (!magicEnergy.TryConsumeEnergy(targetEntity, Mana, magicContainer, Safe)) + return; + + //OK, we consume mana (or health?) from target, and now we put it in used object or caster + + + //First - used object + if (manaBuffer > 0 && entManager.TryGetComponent(args.Used, out var usedMagicStorage)) + { + var freeSpace = usedMagicStorage.MaxEnergy - usedMagicStorage.Energy; + if (freeSpace < manaBuffer) + { + magicEnergy.ChangeEnergy(args.Used.Value, usedMagicStorage, freeSpace, true); + manaBuffer -= freeSpace; + } + else + { + magicEnergy.ChangeEnergy(args.Used.Value, usedMagicStorage, manaBuffer, true); + manaBuffer = 0; + } + } + + //Second - action user + if (manaBuffer > 0 && entManager.TryGetComponent(args.User, out var userMagicStorage)) + { + magicEnergy.ChangeEnergy(args.User.Value, userMagicStorage, manaBuffer, Safe); + } + } +} diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellEffect.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellEffect.cs index c7b034045c..768badd03a 100644 --- a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellEffect.cs +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellEffect.cs @@ -13,12 +13,14 @@ public abstract partial class CP14SpellEffect public record class CP14SpellEffectBaseArgs { public EntityUid? User; + public EntityUid? Used; public EntityUid? Target; public EntityCoordinates? Position; - public CP14SpellEffectBaseArgs(EntityUid? user, EntityUid? target, EntityCoordinates? position) + public CP14SpellEffectBaseArgs(EntityUid? user, EntityUid? used, EntityUid? target, EntityCoordinates? position) { User = user; + Used = used; Target = target; Position = position; } diff --git a/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl b/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl index ac3df01699..4ed4c38dc2 100644 --- a/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl +++ b/Resources/Locale/en-US/_CP14/loadouts/loadout.ftl @@ -10,6 +10,7 @@ cp14-loadout-general-shirt = Shirt cp14-loadout-general-shoes = Shoes cp14-loadout-general-back = Back cp14-loadout-general-trinkets = Trinkets +cp14-loadout-general-spells = Spells # Alchemist diff --git a/Resources/Locale/en-US/_CP14/traits/trait.ftl b/Resources/Locale/en-US/_CP14/traits/trait.ftl index fc2d30dcf9..1aa92ff174 100644 --- a/Resources/Locale/en-US/_CP14/traits/trait.ftl +++ b/Resources/Locale/en-US/_CP14/traits/trait.ftl @@ -20,14 +20,6 @@ cp14-trait-muted-desc = All you can do is mumble incoherently. The benefits of v cp14-trait-snoring-name = Loud snoring cp14-trait-snoring-desc = It is simply impossible to sleep next to you because you snore terribly loudly at everything. -# Magic spells - -cp14-trait-spell-flamecreation-name = flame creation -cp14-trait-spell-flamecreation-desc = A artificial flame forms in your hand, illuminating your surroundings. You can throw it to use it as a disposable weapon. - -cp14-trait-spell-managift-name = mana gift -cp14-trait-spell-managift-desc = You can transfer a small amount of your magical energy to a target entity or magical object. - # Backgrounds cp14-trait-bg-entertainer-name = Entertainer diff --git a/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl b/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl index 136a76d4d3..5bb774c419 100644 --- a/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl +++ b/Resources/Locale/ru-RU/_CP14/loadouts/loadout.ftl @@ -10,6 +10,7 @@ cp14-loadout-general-shirt = Рубашка cp14-loadout-general-shoes = Обувь cp14-loadout-general-back = Спина cp14-loadout-general-trinkets = Безделушки +cp14-loadout-general-spells = Заклинания # Alchemist diff --git a/Resources/Locale/ru-RU/_CP14/traits/trait.ftl b/Resources/Locale/ru-RU/_CP14/traits/trait.ftl index 4ef41e864c..0d354ccec3 100644 --- a/Resources/Locale/ru-RU/_CP14/traits/trait.ftl +++ b/Resources/Locale/ru-RU/_CP14/traits/trait.ftl @@ -20,14 +20,6 @@ cp14-trait-muted-desc = Все что вы можете - бессвязно м cp14-trait-snoring-name = Громкий храп cp14-trait-snoring-desc = Спать рядом с вами просто невозможно, потому что во все вы жутко громко храпите. -# Magic spells - -cp14-trait-spell-flamecreation-name = создание пламени -cp14-trait-spell-flamecreation-desc = A artificial flame forms in your hand, illuminating your surroundings. You can throw it to use it as a disposable weapon. - -cp14-trait-spell-managift-name = передача маны -cp14-trait-spell-managift-desc = You can transfer a small amount of your magical energy to a target entity or magical object. - # Backgrounds cp14-trait-bg-entertainer-name = Артист diff --git a/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml b/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml index e4f0d59a78..e7707eaa7f 100644 --- a/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml +++ b/Resources/Prototypes/_CP14/Catalog/Fills/crates.yml @@ -44,9 +44,12 @@ children: - !type:GroupSelector children: - - id: CP14Scissors - id: CP14BaseCrowbar + weight: 2 - id: CP14BaseWrench + weight: 2 + - id: CP14Scissors + - id: CP14ManaOperationGlove - id: CP14BaseShovel - id: CP14BaseMop - id: CP14BaseBroom diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Earth/T1_earth_wall.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Earth/T1_earth_wall.yml index f187df596e..d8be6fbde0 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Earth/T1_earth_wall.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Earth/T1_earth_wall.yml @@ -3,6 +3,9 @@ name: Earth wall description: Raises a solid wall of earth from the bowels. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: earth_wall - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.3 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T0_flame_creation.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T0_flame_creation.yml index e44a814e1e..c3088bb389 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T0_flame_creation.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T0_flame_creation.yml @@ -3,6 +3,9 @@ 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: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: flame_creation - type: CP14MagicEffect magicType: Fire manaCost: 5 @@ -73,7 +76,7 @@ - state: inhand-right shader: unshaded - type: TimedDespawn - lifetime: 300 # 5 min + lifetime: 60 # 1 min - type: Sprite sprite: _CP14/Objects/Misc/artificial_flame.rsi layers: diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T1_fireball.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T1_fireball.yml index 8be4bc8fdf..975d53dd0b 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T1_fireball.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Fire/T1_fireball.yml @@ -3,6 +3,9 @@ name: Fireball description: An effective method of destruction - an explosive fireball components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: fireball - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.3 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml index 649d1b82b1..302a2b5919 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Gate/T2_shadow_step.yml @@ -3,6 +3,9 @@ name: Shadow step description: A step through the gash of reality that allows you to cover a small of distance quickly components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: shadow_step - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.8 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml index 77ddb91e6a..d3405cca15 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Healing/T1_cure_wounds.yml @@ -3,6 +3,9 @@ name: Cure wounds description: You touch the creature, healing its body from physical damage components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: cure_wounds - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.5 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_sphere_of_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml similarity index 95% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_sphere_of_light.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml index 51446503c3..70abee99b9 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_sphere_of_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T0_sphere_of_light.yml @@ -3,6 +3,9 @@ name: Sphere of Light description: Materialization of a bright and safe light source. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: sphere_of_light - type: CP14MagicEffect magicType: LightDarkness manaCost: 10 @@ -63,7 +66,7 @@ categories: [ ForkFiltered ] components: - type: TimedDespawn - lifetime: 300 # 5 min + lifetime: 180 # 3 min - type: Sprite sprite: _CP14/Effects/Magic/sphere_of_light.rsi noRot: true @@ -90,8 +93,8 @@ - type: LandAtCursor - type: MovementIgnoreGravity - type: PointLight - radius: 6.0 - energy: 2 + radius: 5.0 + energy: 1 color: "#efedff" - type: Damageable - type: EmitSoundOnLand diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml index 878f589c87..926d18ba10 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/LightDarkness/T1_flash_light.yml @@ -3,6 +3,9 @@ name: Flash Light description: Creates a flash of bright, blinding light. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: flash_light - type: CP14MagicEffect magicType: LightDarkness manaCost: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_consume.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_consume.yml new file mode 100644 index 0000000000..6f47950e11 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_consume.yml @@ -0,0 +1,67 @@ +- type: entity + id: CP14ActionSpellManaConsume + name: Mana consume + description: You absorb a small amount of mana from the target. + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: mana_consume + - type: CP14MagicEffect + magicType: Meta + manaCost: 0 + canModifyManacost: false + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectManaConsume + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectManaConsume + - !type:CP14SpellConsumeManaEffect + mana: 10 + - type: CP14MagicEffectSomaticAspect + - type: CP14MagicEffectCastingVisual + proto: CP14RuneManaConsume + - type: EntityTargetAction + whitelist: + components: + - CP14MagicEnergyContainer + itemIconStyle: BigAction + interactOnMiss: false + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: mana_consume + event: !type:CP14DelayedEntityTargetActionEvent + cooldown: 1 + castDelay: 2 + breakOnMove: true + +- type: entity + id: CP14RuneManaConsume + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5096d4" + - type: Sprite + layers: + - state: medium_line + color: "#5096d4" + shader: unshaded + - state: double_outer + color: "#5096d4" + shader: unshaded + +- type: entity + id: CP14ImpactEffectManaConsume + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_down + color: "#5096d4" + shader: unshaded \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_gift.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_gift.yml index de1d2033bf..8a5fb20cb3 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_gift.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Meta/T0_mana_gift.yml @@ -3,6 +3,9 @@ name: Mana transfer description: You can transfer a small amount of your magical energy to a target entity or magical object. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: mana_gift - type: CP14MagicEffect magicType: Meta manaCost: 12 @@ -20,9 +23,6 @@ - !type:CP14ManaChange manaDelta: 10 safe: false - - type: CP14MagicEffectVerbalAspect - startSpeech: "Energia..." - endSpeech: "te reficit" - type: CP14MagicEffectSomaticAspect - type: CP14MagicEffectCastingVisual proto: CP14RuneManaGift diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T1_shadow_grab.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml similarity index 94% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T1_shadow_grab.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml index df482b4e20..7cf26e96c0 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T1_shadow_grab.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Movement/T0_shadow_grab.yml @@ -3,6 +3,9 @@ name: Shadow grab description: You attract a ghostly hand that draws an object or entity to you components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: shadow_grab - type: CP14MagicEffect magicType: Movement manaCost: 10 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml index cec0191ddf..846dddf120 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Necromancy/T1_resurrection.yml @@ -3,6 +3,9 @@ name: Resurrection description: You're trying to put the soul back into the body. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: resurrection - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.2 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_dagger.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_ice_dagger.yml similarity index 96% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_dagger.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_ice_dagger.yml index 19d390445b..a422b41705 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_dagger.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_ice_dagger.yml @@ -3,6 +3,9 @@ name: Ice dagger description: Materialization of a temporary sharp ice throwing dagger components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: ice_dagger - type: CP14MagicEffect magicType: Water manaCost: 15 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_water_creation.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_water_creation.yml new file mode 100644 index 0000000000..67e90d2807 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T0_water_creation.yml @@ -0,0 +1,147 @@ +- type: entity + id: CP14ActionSpellWaterCreation + name: Water creation + description: Creating a clot of water that is held in a floating balloon shape for some time + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: water_creation + - type: CP14MagicEffect + magicType: Water + manaCost: 10 + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectWaterCreation + - !type:CP14SpellSpawnInHandEntity + spawns: + - CP14LiquidDropWater + - type: CP14MagicEffectSomaticAspect + - type: CP14MagicEffectCastingVisual + proto: CP14RuneWaterCreation + - type: InstantAction + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: water_creation + event: !type:CP14DelayedInstantActionEvent + cooldown: 10 + castDelay: 0.8 + breakOnMove: false + +- type: entity + id: CP14RuneWaterCreation + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5eabeb" + - type: Sprite + layers: + - state: medium_line + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14LiquidDropWater + parent: BaseItem + name: floating liquid drop + description: A clot of liquid held in the shape of a ball by magic + categories: [ ForkFiltered ] + components: + - type: Item + size: Ginormous + - type: BadFood + - type: SolutionContainerManager + solutions: + drop: + maxVol: 10 + reagents: + - ReagentId: Water + Quantity: 10 + - type: CP14MeleeSelfDamage + damageToSelf: + types: + Blunt: 1 # 1 hits + - type: LandAtCursor + - type: DamageOnHighSpeedImpact + minimumSpeed: 0.1 + damage: + types: + Blunt: 1 + - type: MeleeWeapon + attackRate: 1.8 + wideAnimationRotation: 225 + wideAnimation: CP14WeaponArcSlash + damage: + types: + Blunt: 0 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: desecration + - !type:SpillBehavior + solution: drop + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PassiveDamage # Around 8 damage a minute healed + damage: + groups: + Brute: 0.016 # ~ 1 minute + - type: Damageable + damageContainer: Biological + - type: Food + solution: drop + useSound: /Audio/Items/drink.ogg + eatMessage: drink-component-try-use-drink-success-slurp + delay: 0.5 + forceFeedDelay: 1.5 + - type: ExaminableSolution + solution: drop + - type: RefillableSolution + solution: drop + - type: InjectableSolution + solution: drop + - type: FitsInDispenser + solution: drop + - type: MixableSolution + solution: drop + - type: CP14SolutionTemperature + - type: Appearance + - type: Sprite + sprite: _CP14/Objects/Misc/liquid_drop.rsi + layers: + - state: liq-1 + map: ["enum.SolutionContainerLayers.Fill"] + - type: SolutionContainerVisuals + maxFillLevels: 1 + fillBaseName: liq- + inHandsMaxFillLevels: 1 + inHandsFillBaseName: -fill + +- type: entity + id: CP14ImpactEffectWaterCreation + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#5eabeb" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollWater + id: CP14SpellScrollWaterCreation + name: water creation spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellWaterCreation \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_beer_creation.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_beer_creation.yml new file mode 100644 index 0000000000..50be53a0cc --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_beer_creation.yml @@ -0,0 +1,87 @@ +- type: entity + id: CP14ActionSpellBeerCreation + name: Beer creation + description: A secret spell that materializes beer from pure mana. + components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: beer_creation + - type: CP14MagicEffect + magicType: Water + manaCost: 50 + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectBeerCreation + - !type:CP14SpellSpawnInHandEntity + spawns: + - CP14LiquidDropBeer + - type: CP14MagicEffectVerbalAspect + startSpeech: "beer..." + endSpeech: "Arriva la birra" + - type: CP14MagicEffectSomaticAspect + - type: CP14MagicEffectCastingVisual + proto: CP14RuneBeerCreation + - type: InstantAction + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/rumble.ogg + icon: + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: beer_creation + event: !type:CP14DelayedInstantActionEvent + cooldown: 60 + castDelay: 5 + breakOnMove: true + +- type: entity + id: CP14RuneBeerCreation + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#5eabeb" + - type: Sprite + layers: + - state: medium_line + color: "#9e522c" + shader: unshaded + - state: medium_circle + color: "#5eabeb" + shader: unshaded + +- type: entity + id: CP14LiquidDropBeer + parent: CP14LiquidDropWater + categories: [ ForkFiltered ] + components: + - type: SolutionContainerManager + solutions: + drop: + maxVol: 10 + reagents: + - ReagentId: Beer + Quantity: 10 + +- type: entity + id: CP14ImpactEffectBeerCreation + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: particles_up + color: "#5eabeb" + shader: unshaded + - state: particles_down + color: "#9e522c" + shader: unshaded + +- type: entity + parent: CP14BaseSpellScrollWater + id: CP14SpellScrollBeerCreation + name: beer creation spell scroll + components: + - type: CP14SpellStorage + spells: + - CP14ActionSpellBeerCreation \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_shards.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_shards.yml index 06f9007856..103ca0380e 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_shards.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Water/T1_ice_shards.yml @@ -3,6 +3,9 @@ name: Ice Shards description: Fast ice needles, for rapid shooting of targets. components: + - type: Sprite + sprite: _CP14/Effects/Magic/spells_icons.rsi + state: ice_shards - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.75 - type: CP14MagicEffect diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml index 76869416ac..d945d2fdce 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml @@ -12,38 +12,6 @@ - type: Sprite sprite: _CP14/Clothing/Rings/rings.rsi -- type: entity - id: CP14ClothingRingIceDagger - parent: CP14ClothingRingBase - name: ice dagger conductive ring - suffix: Ice Dagger - 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: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellIceDagger - -- type: entity - id: CP14ClothingRingManaGift - parent: CP14ClothingRingBase - name: mana transfering conductive ring - suffix: Mana gift - description: A standard mana-conductive ring that allows you to transfer some of your magical energy to other objects. - components: - - type: Sprite - layers: - - state: brass_ring - - state: saphhire_stone_small - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellManaGift - - type: entity id: CP14ClothingRingIceShards parent: CP14ClothingRingBase @@ -60,22 +28,6 @@ spells: - CP14ActionSpellIceShards -- type: entity - id: CP14ClothingRingFlameCreation - parent: CP14ClothingRingBase - name: flame creation conductive ring - description: A standard mana-conductive ring that allows the user to summon artificial flames. - suffix: Flame creation - components: - - type: Sprite - layers: - - state: brass_ring - - state: ruby_stone_small - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellFlameCreation - - type: entity id: CP14ClothingRingFireball parent: CP14ClothingRingBase @@ -92,54 +44,6 @@ spells: - CP14ActionSpellFireball -- type: entity - id: CP14ClothingRingShadowGrab - parent: CP14ClothingRingBase - name: shadow grab conductive ring - description: A standard mana-conductive ring that allows the user to summon grabbing shadow hand. - suffix: Shadow grab - components: - - type: Sprite - layers: - - state: brass_ring - - state: amethyst_stone_small - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellShadowGrab - -- type: entity - id: CP14ClothingRingEarthWall - parent: CP14ClothingRingBase - name: earth wall conductive ring - description: A standard mana-conductive ring that allows you to lift a piece of earth rock. - suffix: Earth wall - components: - - type: Sprite - layers: - - state: brass_ring - - state: berill_stone_small - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellEarthWall - -- type: entity - id: CP14ClothingRingSphereOfLight - parent: CP14ClothingRingBase - name: light sphere conductive ring - description: A standard mana-conductive ring that allows the user to create a sphere of light. - suffix: Sphere of Light - components: - - type: Sprite - layers: - - state: brass_ring - - state: citrine_stone_small - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellSphereOfLight - - type: entity id: CP14ClothingRingFlashLight parent: CP14ClothingRingBase diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml index d26bf85eac..35793b1a93 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml @@ -45,6 +45,8 @@ - id: CP14SpellScrollFlameCreation - id: CP14SpellScrollEarthWall - id: CP14SpellScrollFlashLight + - id: CP14SpellScrollWaterCreation + - id: CP14SpellScrollBeerCreation - id: CP14EnergyCrystalSmall - id: CP14BaseSharpeningStone - id: CP14GlassShard @@ -75,16 +77,10 @@ # remove this when players can create their own magic items - !type:GroupSelector children: - - id: CP14ClothingRingIceDagger - id: CP14ClothingRingIceShards - - id: CP14ClothingRingFlameCreation - id: CP14ClothingRingFireball - - id: CP14MagicHealingStaff - - id: CP14ClothingRingShadowGrab - - id: CP14ClothingRingEarthWall - - id: CP14ClothingRingManaGift - - id: CP14ClothingRingSphereOfLight - id: CP14ClothingRingFlashLight + - id: CP14MagicHealingStaff - id: CP14SpellScrollResurrection # Rare standard village crates loot - !type:NestedSelector diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml index f94bf9ea71..ab95a75681 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Specific/Thaumaturgy/tools.yml @@ -30,4 +30,49 @@ sprite: _CP14/Objects/Specific/Thaumaturgy/ritual_chalk.rsi state: icon - type: Item - sprite: _CP14/Objects/Specific/Thaumaturgy/ritual_chalk.rsi \ No newline at end of file + sprite: _CP14/Objects/Specific/Thaumaturgy/ritual_chalk.rsi + +- type: entity + id: CP14ManaOperationGlove + parent: + - BaseItem + - CP14BaseWeaponLight + - CP14BaseWeaponShort + name: mana glove + description: "An unsophisticated but aesthetically pleasing blend of technology and magic crystals that allows you to operate with raw mana: siphoning it from some objects and pumping it into others." + categories: [ ForkFiltered ] + components: + - type: Sprite + sprite: _CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi + state: icon + - type: Item + size: Normal + shape: + - 0,0,0,1 + storedRotation: -45 + sprite: _CP14/Objects/Specific/Thaumaturgy/powerline_gauntlet.rsi + - type: CP14MagicEnergyContainer + magicAlert: CP14MagicEnergy + maxEnergy: 50 + energy: 0 + - type: CP14MagicEnergyExaminable + - type: CP14SpellStorageAccessHolding + - type: CP14SpellStorage + spells: + - CP14ActionSpellManaGift + - CP14ActionSpellManaConsume + - type: ThrowingAngle #Fun + angle: 225 + - type: MeleeWeapon + angle: 0 + attackRate: 1.2 + range: 1.2 + wideAnimationRotation: 225 + wideAnimation: CP14WeaponArcThrust + damage: + types: + Blunt: 5 + soundHit: + collection: MetalThud + cPAnimationLength: 0.25 + cPAnimationOffset: -1.3 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml index 6a342dc656..ac48c57bc8 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Weapons/Magic/twoHandedStaffs.yml @@ -24,7 +24,7 @@ - type: IncreaseDamageOnWield damage: types: - Blunt: 3 + Blunt: 4 - type: MeleeWeapon angle: 100 attackRate: 1.3 @@ -33,7 +33,7 @@ wideAnimation: CP14WeaponArcSlash damage: types: - Blunt: 2 + Blunt: 4 soundHit: collection: MetalThud cPAnimationLength: 0.3 diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml index c0e9b3fa1d..31ed3c1b89 100644 --- a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml @@ -291,7 +291,7 @@ maxLimit: 2 loadouts: - CP14MagicHealingStaff - - CP14ClothingRingManaGift + - CP14ManaOperationGlove - CP14EnergyCrystalSmall - CP14CrystalLampOrangeEmpty - CP14BaseSharpeningStone @@ -307,15 +307,14 @@ - type: loadout id: CP14MagicHealingStaff - storage: - neck: - - CP14MagicHealingStaff + inhand: + - CP14MagicHealingStaff - type: loadout - id: CP14ClothingRingManaGift + id: CP14ManaOperationGlove storage: back: - - CP14ClothingRingManaGift + - CP14ManaOperationGlove - type: loadout id: CP14EnergyCrystalSmall @@ -387,4 +386,87 @@ id: CP14BasePickaxe storage: back: - - CP14BasePickaxe \ No newline at end of file + - CP14BasePickaxe + +# Spells + +- type: loadoutGroup + id: CP14GeneralSpells + name: cp14-loadout-general-spells + minLimit: 0 + maxLimit: 2 + loadouts: + - CP14ActionSpellFlameCreation + - CP14ActionSpellCureWounds + - CP14ActionSpellSphereOfLight + - CP14ActionSpellManaConsume + - CP14ActionSpellManaGift + - CP14ActionSpellShadowGrab + - CP14ActionSpellIceDagger + - CP14ActionSpellWaterCreation + - CP14ActionSpellBeerCreation + +- type: loadout + id: CP14ActionSpellFlameCreation + dummyEntity: CP14ActionSpellFlameCreation + actions: + - CP14ActionSpellFlameCreation + +- type: loadout + id: CP14ActionSpellCureWounds + dummyEntity: CP14ActionSpellCureWounds + actions: + - CP14ActionSpellCureWounds + +- type: loadout + id: CP14ActionSpellSphereOfLight + dummyEntity: CP14ActionSpellSphereOfLight + actions: + - CP14ActionSpellSphereOfLight + +- type: loadout + id: CP14ActionSpellManaConsume + dummyEntity: CP14ActionSpellManaConsume + actions: + - CP14ActionSpellManaConsume + +- type: loadout + id: CP14ActionSpellManaGift + dummyEntity: CP14ActionSpellManaGift + actions: + - CP14ActionSpellManaGift + +- type: loadout + id: CP14ActionSpellShadowGrab + dummyEntity: CP14ActionSpellShadowGrab + actions: + - CP14ActionSpellShadowGrab + +- type: loadout + id: CP14ActionSpellIceDagger + dummyEntity: CP14ActionSpellIceDagger + actions: + - CP14ActionSpellIceDagger + +- type: loadout + id: CP14ActionSpellWaterCreation + dummyEntity: CP14ActionSpellWaterCreation + actions: + - CP14ActionSpellWaterCreation + +- type: loadout + id: CP14ActionSpellBeerCreation + dummyEntity: CP14ActionSpellBeerCreation + actions: + - CP14ActionSpellBeerCreation + effects: + - !type:JobRequirementLoadoutEffect + requirement: + !type:SpeciesRequirement + species: + - CP14Dwarf + - !type:JobRequirementLoadoutEffect + requirement: + !type:RoleTimeRequirement + role: CP14JobInnkeeper + time: 7200 # 2 hour \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml b/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml index 21d67ab62b..5506ffbe05 100644 --- a/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/_CP14/Loadouts/role_loadouts.yml @@ -1,6 +1,7 @@ - type: roleLoadout id: JobCP14Adventurer groups: + - CP14GeneralSpells - CP14GeneralHead - CP14GeneralEyes - CP14GeneralMask @@ -15,6 +16,7 @@ - type: roleLoadout id: JobCP14Alchemist groups: + - CP14GeneralSpells - CP14AlchemistHead # - CP14AlchemistEyes # - CP14GeneralMask @@ -29,6 +31,7 @@ - type: roleLoadout id: JobCP14Innkeeper groups: + - CP14GeneralSpells - CP14GeneralHead - CP14GeneralEyes - CP14GeneralMask @@ -43,6 +46,7 @@ - type: roleLoadout id: JobCP14Blacksmith groups: + - CP14GeneralSpells - CP14GeneralHead - CP14GeneralEyes - CP14GeneralMask @@ -57,6 +61,7 @@ - type: roleLoadout id: JobCP14Captain groups: + - CP14GeneralSpells - CP14CaptainHead # - CP14GeneralEyes - CP14GeneralMask @@ -71,6 +76,7 @@ - type: roleLoadout id: JobCP14GuardCommander groups: + - CP14GeneralSpells - CP14GeneralHead - CP14GeneralEyes - CP14GeneralMask @@ -85,6 +91,7 @@ - type: roleLoadout id: JobCP14Commandant groups: + - CP14GeneralSpells - CP14CommandantHead - CP14GeneralEyes - CP14CommandantCloak @@ -97,6 +104,7 @@ - type: roleLoadout id: JobCP14Banker groups: + - CP14GeneralSpells - CP14BankHead - CP14GeneralEyes - CP14BankShirt diff --git a/Resources/Prototypes/_CP14/Traits/categories.yml b/Resources/Prototypes/_CP14/Traits/categories.yml index cd2ef80ba1..187f0f3722 100644 --- a/Resources/Prototypes/_CP14/Traits/categories.yml +++ b/Resources/Prototypes/_CP14/Traits/categories.yml @@ -1,8 +1,3 @@ -- type: traitCategory - id: CP14Magic - name: cp14-trait-category-magic - maxTraitPoints: 1 - - type: traitCategory id: CP14PhysicalTraits name: cp14-trait-category-physical diff --git a/Resources/Prototypes/_CP14/Traits/spells.yml b/Resources/Prototypes/_CP14/Traits/spells.yml deleted file mode 100644 index f0b8d4e169..0000000000 --- a/Resources/Prototypes/_CP14/Traits/spells.yml +++ /dev/null @@ -1,17 +0,0 @@ -- type: trait - id: CP14MagicFlameCreation - name: cp14-trait-spell-flamecreation-name - description: cp14-trait-spell-flamecreation-desc - cost: 1 - category: CP14Magic - actions: - - CP14ActionSpellFlameCreation - -- type: trait - id: CP14MagicManaGift - name: cp14-trait-spell-managift-name - description: cp14-trait-spell-managift-desc - cost: 1 - category: CP14Magic - actions: - - CP14ActionSpellManaGift \ No newline at end of file diff --git a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json index c51b654c84..e5aa1b1ed9 100644 --- a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/meta.json @@ -7,6 +7,21 @@ "license": "CLA", "copyright": "Created by TheShuEd", "states": [ + { + "name": "particles_down", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, { "name": "particles_up", "delays": [ diff --git a/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/particles_down.png b/Resources/Textures/_CP14/Effects/Magic/cast_impact.rsi/particles_down.png new file mode 100644 index 0000000000000000000000000000000000000000..eb143a87e03024b692b8d995a065504408ddc5a9 GIT binary patch literal 3222 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/beer_creation.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/beer_creation.png new file mode 100644 index 0000000000000000000000000000000000000000..c31c59fdc9fd43b3bac9214bd3b63ce6bdea3e34 GIT binary patch literal 461 zcmV;;0W$uHP)Px$hea}%paP8@)YP2mJTD3m09-p+c^%pKkyF z)|(|gIlj~SeiZ5|F4vnS#fNtV=S|}usK|pT%zS?VzP|tffFKGpRzwhmnJGB{z@hHK z?e=uzsnHyTraq90PZAhLrB%f+MLRtriJ6~bYq@`3vK-~GtssKKyjKG9k zO8~%+y`p#3+ED`TFFau&_E=bWeOGvWR}6JRSqYPtQY2u5dwo~%!q~Z88{nZlf`>E5 zK?0W4Rz3{6N|TmSkPx$lSxEDR9J=WRWXi(Fc2J{t_q@bzQYTUA|zUWz)ygZJb@3mMM^_?)qUq&qNL@j z<(!QTc9QDEbQrTUJ3BVOjvfCITG=LcuXqPRZ{*p1HvsPPqDMgF)NzP7bp%Nc_y&ApLlcPv~SUyD+y z20Ifu7xd}~qC&{YL-x8Mj1{-(fLoNvX{{=J<)z^8##Sz()=MoE!kEA_HIJ zBTEv%$wR^7;3Brh5EQVc-qcd~ERTU!wsB97R{%dQ)V;fIYAH^~gE$=zNn+@ZpjzHj z;Om~&G%Vbt13+I(QT^POuBswiLaCK)Xbf7}hOTj1dl2AmB9hQJrV`y&Hl`AthV{PF z$~Iylb-LP0ukVbj!OlE@dN*La_o2M1D# zIe0A+LvHX}bk%`p?)u)yGYpo{kt?+-c<`#XIVcMiPc@3v#dj#T^tn_~5Yj$e@d P00000NkvXXu0mjfnd{cQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_gift.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_gift.png index 075826fdd3150c9fcf831539a3ae013ba732d9cb..9f045020dc1b94c1faf44e65bf9a404748567a03 100644 GIT binary patch delta 429 zcmV;e0aE_W1JnbMF@KIpL_t(oh3!=_ZiFxp9HLZ*D7o+O0;CfXtv}!=n9}zIK0u3f z4P~l)CoZi^ONwZT*|Py7x-cEf;+-AOF2IQs{|QnU#bfVB9MpFCeam;YgqAR~{AdEA zH=}i)vjL6!E|$bwY;pHF8_;a+K7=H;ICZ?Iu;|UmNk=J=4S#5C32jSg(VH6G{Qe0qrk%YIq(fUh|4 zJ4$YG0H}%-JjSmqiU2R}&ifKLiM4A85?Es2)p_ERd<%AFoB0X|05y&Lc9Jh@#j z$?bZHB4bNv@_!K!m;zt-6q7J;oeltPohQ}T_taHYq?0M7Fp9203ZrO^Q|yI+n?yxI z*I`TOHE+=F_dyDylBuZE)tY;KGcI~Fas!eIM3M;a{u?eWmux`uz*7T%lR#HN4OK;o zk74eY7X@MqbMUi>45`7l=%NC9c75CBcXXIcN2<_yJSIP=Kxp3|jhO;R{M}BRI1!5< X_%!xh_)MAz00000NkvXXu0mjfZCb^j delta 422 zcmV;X0a^ak1I+`FF@J|iL_t(oh3!=_j)O1|98OmSQIhZQ0;C9u)*tW_pd?S=18$Mh zP+oQ4xh+xBa@BIq#uyCgj_GV{&+K^C00$2IcSKt@X+@PiZcTdKD&RA8gX(A;tZ~w# z-bxMxI-oil?Qznh-cx;$04C>(_YyNcLKY`I>LEun7Q)G1sms(9U6af=SvhcY?O6;j8q!S>#uzoGAONqW>b+#BGp6Zk5)pdyR$)j#Lu#eq;_ z33(QaVK?L}>UChtTi=@W3WF(h>Px$P)S5VR9J=WR>2K|KoDGvf4C=o*nwZFpalwmE5H^k!Ixh;pbg{mpn~&ZRyP;8 zU5B9{fTo_L*g{f~ z4I;X!k03OXMM+4XT=IHG5ik`lZZkrtq1S5Y^;{>|B*a$hZmx!2yTa%-X*#k;fZfid zSxre})x)e-T6Wfs*^I(MTnOsrZil3#bX_tl1P>EaB3wb73yY>1i3rYxC{ryb#3v%^ zSUokYZYBWWn;R6qS`bC?QuvNXJeEu0Cgkq%0xzW5yVZRx&j0`b07*qoM6N<$f`Ol| AP5=M^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-left-fill1.png b/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-left-fill1.png new file mode 100644 index 0000000000000000000000000000000000000000..d02366351daec2a83543207b1746cc47faeb9cdd GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D%z>pfi@Ln`LH zy{lMsC_sSif%|gxmD#Z(%}=L>-E?2i4R|Y-aGx+rda>|BZRdw)3DE;gD7|qxt== z4RR4j1m-`KvfWYP*y76bQF7hI=5BEpkf7o&_J>6gO%q^VvUn-IL1nkfyidEYgG};t L^>bP0l+XkKOfJEM literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-right-fill1.png b/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/inhand-right-fill1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4be2be691c713736c9dd8ea32838a89a3b4639 GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D%zn>}3|Ln`LH zy{qfT94Ny2fICsu;+31})Voa6cn`2`;GM=hh4)ICrbiI#D$nM8iB!AyUD*`sgN+OK&}=?56GiX5ReHzdG;hkC2jf^Y_eOA`|ZPBw1w!z2iwqb$7|Rc79{-?HgNv zFI>F;%EPHk7jJB(2bW?=QaKQCP8@7wl2$N##^W}SWa z`fYuQyuxSm_n(h$n(a4B!hG?R+su(S*=zUy-Tt0=%7^~nXZQ__ceiZUZ@SHlVphJ_ zd`0m~3%!>59PobeA%3&{-1hW!2|(uk^cV8y4tvi~oPJ^9HA$=WXD%>;H8$*j&iZ=I UIUSt?dzwH3p00i_>zopr08*~OmjD0& literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/liq-1.png b/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/liq-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5b4cfb6acebff99c6d9964481c81c1cd7737d0 GIT binary patch literal 601 zcmV-f0;c_mP)Px%6G=otRCt{2nlWkuK^TRfA>g7A(}WZujh$j+We$)Nq|F7)1#E+DE?_QT>k0M% zqNRa!X@X)l2-$@RlgbofWL7u9`PW^MyblB&*nR*1X53=`2M|ICA%qa}FDazCxYr*n z&G)<8n^gDO7ows~^L0HCzS)AI{}e2lP-Ppj#CVXr?}HfmLrJukMdv_=>yyiVUT zHDO&pt@%fiBFdhJl2=5@E5_CfPyGep$NWaE>TH6O0rP19rS(eKh?}*%u(fS{$p$zX(CxGfzCVQ0 zI`%P)M-y~A?acoF^J#!tu!ybM%}ew}&wwyeTdnPyZl_%sk0u-Dr_pvcz!YJG!$`sR zhnerbjcM5Ek4F=+zPRA~hsV{!Ca=bmwD+M;2qA|X`RnVeRnsOgk>{K~j1(#- nCLpn{zpokyA%qY@$RYC$LquY;y=6M200000NkvXXu0mjfmG%mC literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/meta.json b/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/meta.json new file mode 100644 index 0000000000..b5bca40acc --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Misc/liquid_drop.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CLA", + "copyright": "Created by TheShuEd", + "states": [ + { + "name": "liq-1", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inhand-left-fill1", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "inhand-right-fill1", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/migration.yml b/Resources/migration.yml index ad8b42096c..74e6a49605 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -122,11 +122,11 @@ CP14FlowersYellow: CP14Dayflin #2024-11-03 CP14OldLantern: CP14CrystalLampBlueEmpty -CP14ClothingRingIceFloor: CP14ClothingRingManaGift +CP14ClothingRingIceFloor: CP14ManaOperationGlove #2024-11-05 CP14ClothingRingCureWounds: CP14MagicHealingStaff -CP14ClothingRingShadowStep: CP14ClothingRingManaGift +CP14ClothingRingShadowStep: null #2024-11-11 CP14BlueVial: CP14BlueBottle @@ -146,6 +146,14 @@ CP14KeyBankSafe4: CP14KeyBankSafe CP14KeyBankSafe5: CP14KeyBankSafe CP14KeyBankSafe6: CP14KeyBankSafe +#2024-19-11 +CP14ClothingRingManaGift: CP14ManaOperationGlove +CP14ClothingRingIceDagger: CP14ManaOperationGlove +CP14ClothingRingFlameCreation: null +CP14ClothingRingShadowGrab: null +CP14ClothingRingEarthWall: null +CP14ClothingRingSphereOfLight: null + # <---> CrystallEdge migration zone end