Spell T0 traits, recategorize magic (#540)
* 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
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
|
using Content.Server.Actions;
|
||||||
using Content.Server.GameTicking;
|
using Content.Server.GameTicking;
|
||||||
|
using Content.Shared.Actions;
|
||||||
using Content.Shared.Hands.Components;
|
using Content.Shared.Hands.Components;
|
||||||
using Content.Shared.Hands.EntitySystems;
|
using Content.Shared.Hands.EntitySystems;
|
||||||
using Content.Shared.Roles;
|
using Content.Shared.Roles;
|
||||||
@@ -14,6 +16,7 @@ public sealed class TraitSystem : EntitySystem
|
|||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
|
[Dependency] private readonly SharedHandsSystem _sharedHandsSystem = default!;
|
||||||
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
|
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
|
||||||
|
[Dependency] private readonly ActionsSystem _action = default!; //CP14
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -45,8 +48,16 @@ public sealed class TraitSystem : EntitySystem
|
|||||||
_whitelistSystem.IsBlacklistPass(traitPrototype.Blacklist, args.Mob))
|
_whitelistSystem.IsBlacklistPass(traitPrototype.Blacklist, args.Mob))
|
||||||
continue;
|
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
|
// Add all components required by the prototype
|
||||||
EntityManager.AddComponents(args.Mob, traitPrototype.Components, false);
|
if (traitPrototype.Components.Count > 0) //CP14 added check
|
||||||
|
EntityManager.AddComponents(args.Mob, traitPrototype.Components, false);
|
||||||
|
|
||||||
// Add item required by the trait
|
// Add item required by the trait
|
||||||
if (traitPrototype.TraitGear == null)
|
if (traitPrototype.TraitGear == null)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public sealed partial class TraitPrototype : IPrototype
|
|||||||
/// The components that get added to the player, when they pick this trait.
|
/// The components that get added to the player, when they pick this trait.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField]
|
[DataField]
|
||||||
public ComponentRegistry Components { get; private set; } = default!;
|
public ComponentRegistry Components { get; private set; } = new(); //CP14 new()
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gear that is given to the player, when they pick this trait.
|
/// Gear that is given to the player, when they pick this trait.
|
||||||
@@ -60,4 +60,10 @@ public sealed partial class TraitPrototype : IPrototype
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[DataField]
|
[DataField]
|
||||||
public ProtoId<TraitCategoryPrototype>? Category;
|
public ProtoId<TraitCategoryPrototype>? Category;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CP14 - adding permanent spells into players mind
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public List<EntProtoId> Actions = new();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ using Content.Shared._CP14.MagicRitual.Prototypes;
|
|||||||
using Content.Shared.FixedPoint;
|
using Content.Shared.FixedPoint;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
namespace Content.Shared._CP14.MagicClothing;
|
namespace Content.Shared._CP14.MagicManacostModify;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Changes the manacost of spells for the bearer
|
/// Changes the manacost of spells for the bearer
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RegisterComponent, Access(typeof(CP14MagicClothingSystem))]
|
[RegisterComponent, Access(typeof(CP14MagicManacostModifySystem))]
|
||||||
public sealed partial class CP14MagicClothingManacostModifyComponent : Component
|
public sealed partial class CP14MagicManacostModifyComponent : Component
|
||||||
{
|
{
|
||||||
[DataField]
|
[DataField]
|
||||||
public Dictionary<ProtoId<CP14MagicTypePrototype>, FixedPoint2> Modifiers = new();
|
public Dictionary<ProtoId<CP14MagicTypePrototype>, FixedPoint2> Modifiers = new();
|
||||||
@@ -2,15 +2,14 @@
|
|||||||
using Content.Shared._CP14.MagicRitual.Prototypes;
|
using Content.Shared._CP14.MagicRitual.Prototypes;
|
||||||
using Content.Shared._CP14.MagicSpell.Events;
|
using Content.Shared._CP14.MagicSpell.Events;
|
||||||
using Content.Shared.Examine;
|
using Content.Shared.Examine;
|
||||||
using Content.Shared.FixedPoint;
|
|
||||||
using Content.Shared.Inventory;
|
using Content.Shared.Inventory;
|
||||||
using Content.Shared.Verbs;
|
using Content.Shared.Verbs;
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Shared._CP14.MagicClothing;
|
namespace Content.Shared._CP14.MagicManacostModify;
|
||||||
|
|
||||||
public sealed partial class CP14MagicClothingSystem : EntitySystem
|
public sealed partial class CP14MagicManacostModifySystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly ExamineSystemShared _examine = default!;
|
[Dependency] private readonly ExamineSystemShared _examine = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||||
@@ -18,11 +17,12 @@ public sealed partial class CP14MagicClothingSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
SubscribeLocalEvent<CP14MagicClothingManacostModifyComponent, InventoryRelayedEvent<CP14CalculateManacostEvent>>(OnCalculateManacost);
|
SubscribeLocalEvent<CP14MagicManacostModifyComponent, InventoryRelayedEvent<CP14CalculateManacostEvent>>(OnCalculateManacost);
|
||||||
SubscribeLocalEvent<CP14MagicClothingManacostModifyComponent, GetVerbsEvent<ExamineVerb>>(OnVerbExamine);
|
SubscribeLocalEvent<CP14MagicManacostModifyComponent, CP14CalculateManacostEvent>(OnCalculateManacost);
|
||||||
|
SubscribeLocalEvent<CP14MagicManacostModifyComponent, GetVerbsEvent<ExamineVerb>>(OnVerbExamine);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnVerbExamine(Entity<CP14MagicClothingManacostModifyComponent> ent, ref GetVerbsEvent<ExamineVerb> args)
|
private void OnVerbExamine(Entity<CP14MagicManacostModifyComponent> ent, ref GetVerbsEvent<ExamineVerb> args)
|
||||||
{
|
{
|
||||||
if (!args.CanInteract || !args.CanAccess)
|
if (!args.CanInteract || !args.CanAccess)
|
||||||
return;
|
return;
|
||||||
@@ -37,7 +37,7 @@ public sealed partial class CP14MagicClothingSystem : EntitySystem
|
|||||||
Loc.GetString("armor-examinable-verb-message"));
|
Loc.GetString("armor-examinable-verb-message"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private FormattedMessage GetMagicClothingExamine(CP14MagicClothingManacostModifyComponent comp)
|
private FormattedMessage GetMagicClothingExamine(CP14MagicManacostModifyComponent comp)
|
||||||
{
|
{
|
||||||
var msg = new FormattedMessage();
|
var msg = new FormattedMessage();
|
||||||
msg.AddMarkupOrThrow(Loc.GetString("cp14-clothing-magic-examine"));
|
msg.AddMarkupOrThrow(Loc.GetString("cp14-clothing-magic-examine"));
|
||||||
@@ -65,13 +65,18 @@ public sealed partial class CP14MagicClothingSystem : EntitySystem
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnCalculateManacost(Entity<CP14MagicClothingManacostModifyComponent> ent, ref InventoryRelayedEvent<CP14CalculateManacostEvent> args)
|
private void OnCalculateManacost(Entity<CP14MagicManacostModifyComponent> ent, ref InventoryRelayedEvent<CP14CalculateManacostEvent> args)
|
||||||
{
|
{
|
||||||
args.Args.Multiplier += (float)ent.Comp.GlobalModifier;
|
OnCalculateManacost(ent, ref args.Args);
|
||||||
|
}
|
||||||
|
|
||||||
if (args.Args.MagicType is not null && ent.Comp.Modifiers.TryGetValue(args.Args.MagicType.Value, out var modifier))
|
private void OnCalculateManacost(Entity<CP14MagicManacostModifyComponent> ent, ref CP14CalculateManacostEvent args)
|
||||||
|
{
|
||||||
|
args.Multiplier += (float)ent.Comp.GlobalModifier;
|
||||||
|
|
||||||
|
if (args.MagicType is not null && ent.Comp.Modifiers.TryGetValue(args.MagicType.Value, out var modifier))
|
||||||
{
|
{
|
||||||
args.Args.Multiplier *= (float)modifier;
|
args.Multiplier *= (float)modifier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,9 @@ using Content.Shared._CP14.MagicEnergy.Components;
|
|||||||
using Content.Shared._CP14.MagicSpell.Components;
|
using Content.Shared._CP14.MagicSpell.Components;
|
||||||
using Content.Shared._CP14.MagicSpell.Events;
|
using Content.Shared._CP14.MagicSpell.Events;
|
||||||
using Content.Shared._CP14.MagicSpell.Spells;
|
using Content.Shared._CP14.MagicSpell.Spells;
|
||||||
|
using Content.Shared._CP14.MagicSpellStorage;
|
||||||
using Content.Shared.DoAfter;
|
using Content.Shared.DoAfter;
|
||||||
|
using Content.Shared.FixedPoint;
|
||||||
using Content.Shared.Hands.Components;
|
using Content.Shared.Hands.Components;
|
||||||
using Content.Shared.Popups;
|
using Content.Shared.Popups;
|
||||||
using Content.Shared.Speech.Muting;
|
using Content.Shared.Speech.Muting;
|
||||||
@@ -50,7 +52,6 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnMagicEffectInit(Entity<CP14MagicEffectComponent> ent, ref MapInitEvent args)
|
private void OnMagicEffectInit(Entity<CP14MagicEffectComponent> ent, ref MapInitEvent args)
|
||||||
{
|
{
|
||||||
|
|
||||||
var meta = MetaData(ent);
|
var meta = MetaData(ent);
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
@@ -62,6 +63,16 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
|||||||
sb.Append($"\n {Loc.GetString("cp14-magic-magic-type")}: [color={indexedMagic.Color.ToHex()}]{Loc.GetString(indexedMagic.Name)}[/color]");
|
sb.Append($"\n {Loc.GetString("cp14-magic-magic-type")}: [color={indexedMagic.Color.ToHex()}]{Loc.GetString(indexedMagic.Name)}[/color]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TryComp<CP14MagicEffectVerbalAspectComponent>(ent, out var verbal))
|
||||||
|
{
|
||||||
|
sb.Append("\n" + Loc.GetString("cp14-magic-verbal-aspect"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TryComp<CP14MagicEffectSomaticAspectComponent>(ent, out var somatic))
|
||||||
|
{
|
||||||
|
sb.Append("\n" + Loc.GetString("cp14-magic-somatic-aspect") + " " + somatic.FreeHandRequired);
|
||||||
|
}
|
||||||
|
|
||||||
_meta.SetEntityDescription(ent, sb.ToString());
|
_meta.SetEntityDescription(ent, sb.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,14 +84,7 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var manaCost = ent.Comp.ManaCost;
|
var manaCost = CalculateManacost(ent, args.Caster);
|
||||||
|
|
||||||
if (ent.Comp.CanModifyManacost)
|
|
||||||
{
|
|
||||||
var manaEv = new CP14CalculateManacostEvent(args.Caster, ent.Comp.ManaCost, ent.Comp.MagicType);
|
|
||||||
RaiseLocalEvent(args.Caster, manaEv);
|
|
||||||
manaCost = manaEv.GetManacost();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!_magicEnergy.HasEnergy(args.Caster, manaCost, magicContainer, ent.Comp.Safe))
|
if (!_magicEnergy.HasEnergy(args.Caster, manaCost, magicContainer, ent.Comp.Safe))
|
||||||
{
|
{
|
||||||
@@ -283,15 +287,25 @@ public partial class CP14SharedMagicSystem : EntitySystem
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
var manaCost = CalculateManacost(ent, args.Caster.Value);
|
||||||
|
_magicEnergy.TryConsumeEnergy(args.Caster.Value, manaCost, safe: ent.Comp.Safe);
|
||||||
|
}
|
||||||
|
|
||||||
|
private FixedPoint2 CalculateManacost(Entity<CP14MagicEffectComponent> ent, EntityUid caster)
|
||||||
|
{
|
||||||
var manaCost = ent.Comp.ManaCost;
|
var manaCost = ent.Comp.ManaCost;
|
||||||
|
|
||||||
if (ent.Comp.CanModifyManacost)
|
if (ent.Comp.CanModifyManacost)
|
||||||
{
|
{
|
||||||
var manaEv = new CP14CalculateManacostEvent(args.Caster.Value, ent.Comp.ManaCost, ent.Comp.MagicType);
|
var manaEv = new CP14CalculateManacostEvent(caster, ent.Comp.ManaCost, ent.Comp.MagicType);
|
||||||
RaiseLocalEvent(args.Caster.Value, manaEv);
|
RaiseLocalEvent(caster, manaEv);
|
||||||
|
|
||||||
|
if (TryComp<CP14ProvidedBySpellStorageComponent>(ent, out var provided) && provided.SpellStorage is not null)
|
||||||
|
RaiseLocalEvent(provided.SpellStorage.Value, manaEv);
|
||||||
|
|
||||||
manaCost = manaEv.GetManacost();
|
manaCost = manaEv.GetManacost();
|
||||||
}
|
}
|
||||||
|
|
||||||
_magicEnergy.TryConsumeEnergy(args.Caster.Value, manaCost, safe: ent.Comp.Safe);
|
return manaCost;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
namespace Content.Shared._CP14.MagicSpellStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Located on the action entity, stores a reference to the object from which the action was created.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(CP14SpellStorageSystem))]
|
||||||
|
public sealed partial class CP14ProvidedBySpellStorageComponent : Component
|
||||||
|
{
|
||||||
|
[DataField]
|
||||||
|
public Entity<CP14SpellStorageComponent>? SpellStorage;
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ using Content.Shared.Clothing.Components;
|
|||||||
using Content.Shared.Hands;
|
using Content.Shared.Hands;
|
||||||
using Content.Shared.Hands.EntitySystems;
|
using Content.Shared.Hands.EntitySystems;
|
||||||
using Content.Shared.Mind;
|
using Content.Shared.Mind;
|
||||||
|
using Robust.Shared.Network;
|
||||||
|
|
||||||
namespace Content.Shared._CP14.MagicSpellStorage;
|
namespace Content.Shared._CP14.MagicSpellStorage;
|
||||||
|
|
||||||
@@ -18,10 +19,12 @@ public sealed partial class CP14SpellStorageSystem : EntitySystem
|
|||||||
[Dependency] private readonly SharedMindSystem _mind = default!;
|
[Dependency] private readonly SharedMindSystem _mind = default!;
|
||||||
[Dependency] private readonly CP14SharedMagicAttuningSystem _attuning = default!;
|
[Dependency] private readonly CP14SharedMagicAttuningSystem _attuning = default!;
|
||||||
[Dependency] private readonly SharedHandsSystem _hands = default!;
|
[Dependency] private readonly SharedHandsSystem _hands = default!;
|
||||||
|
[Dependency] private readonly INetManager _net = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
SubscribeLocalEvent<CP14SpellStorageComponent, MapInitEvent>(OnMagicStorageInit);
|
SubscribeLocalEvent<CP14SpellStorageComponent, MapInitEvent>(OnMagicStorageInit);
|
||||||
|
SubscribeLocalEvent<CP14SpellStorageComponent, ComponentShutdown>(OnMagicStorageShutdown);
|
||||||
|
|
||||||
SubscribeLocalEvent<CP14SpellStorageAccessHoldingComponent, GotEquippedHandEvent>(OnEquippedHand);
|
SubscribeLocalEvent<CP14SpellStorageAccessHoldingComponent, GotEquippedHandEvent>(OnEquippedHand);
|
||||||
SubscribeLocalEvent<CP14SpellStorageAccessHoldingComponent, AddedAttuneToMindEvent>(OnHandAddedAttune);
|
SubscribeLocalEvent<CP14SpellStorageAccessHoldingComponent, AddedAttuneToMindEvent>(OnHandAddedAttune);
|
||||||
@@ -38,16 +41,33 @@ public sealed partial class CP14SpellStorageSystem : EntitySystem
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void OnMagicStorageInit(Entity<CP14SpellStorageComponent> mStorage, ref MapInitEvent args)
|
private void OnMagicStorageInit(Entity<CP14SpellStorageComponent> mStorage, ref MapInitEvent args)
|
||||||
{
|
{
|
||||||
|
if (_net.IsClient)
|
||||||
|
return;
|
||||||
|
|
||||||
foreach (var spell in mStorage.Comp.Spells)
|
foreach (var spell in mStorage.Comp.Spells)
|
||||||
{
|
{
|
||||||
var spellEnt = _actionContainer.AddAction(mStorage, spell);
|
var spellEnt = _actionContainer.AddAction(mStorage, spell);
|
||||||
if (spellEnt is null)
|
if (spellEnt is null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
var provided = EntityManager.EnsureComponent<CP14ProvidedBySpellStorageComponent>(spellEnt.Value);
|
||||||
|
provided.SpellStorage = mStorage;
|
||||||
|
|
||||||
mStorage.Comp.SpellEntities.Add(spellEnt.Value);
|
mStorage.Comp.SpellEntities.Add(spellEnt.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnMagicStorageShutdown(Entity<CP14SpellStorageComponent> mStorage, ref ComponentShutdown args)
|
||||||
|
{
|
||||||
|
if (_net.IsClient)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (var spell in mStorage.Comp.SpellEntities)
|
||||||
|
{
|
||||||
|
QueueDel(spell);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnEquippedHand(Entity<CP14SpellStorageAccessHoldingComponent> ent, ref GotEquippedHandEvent args)
|
private void OnEquippedHand(Entity<CP14SpellStorageAccessHoldingComponent> ent, ref GotEquippedHandEvent args)
|
||||||
{
|
{
|
||||||
if (!TryComp<CP14SpellStorageComponent>(ent, out var spellStorage))
|
if (!TryComp<CP14SpellStorageComponent>(ent, out var spellStorage))
|
||||||
|
|||||||
@@ -710,6 +710,7 @@ public $TYPE$ $NAME$;</s:String>
|
|||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=loadout/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=loadout/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=LOOC/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=LOOC/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Magboots/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Magboots/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Manacost/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=metabolizable/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=metabolizable/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=metagaming/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=metagaming/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=mommi/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=mommi/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
cp14-magic-type-abjuration = Abjuration
|
cp14-magic-type-fire = Fire
|
||||||
cp14-magic-type-conjuration = Conjuration
|
cp14-magic-type-water = Water
|
||||||
cp14-magic-type-divination = Divination
|
cp14-magic-type-earth = Earth
|
||||||
cp14-magic-type-enchantment = Enchantment
|
cp14-magic-type-healing = Healing
|
||||||
cp14-magic-type-evocation = Evocation
|
cp14-magic-type-light-darkness = Light and darkness
|
||||||
cp14-magic-type-illusion = Illusion
|
cp14-magic-type-meta = Metamagic
|
||||||
cp14-magic-type-necromancy = Necromancy
|
cp14-magic-type-gate = Gate
|
||||||
cp14-magic-type-transmutation = Transmutation
|
cp14-magic-type-movement = Movement
|
||||||
|
|
||||||
cp14-magic-manacost = Manacost
|
cp14-magic-manacost = Manacost
|
||||||
cp14-magic-magic-type = Magic type
|
cp14-magic-magic-type = Magic type
|
||||||
|
|
||||||
|
cp14-magic-verbal-aspect = Requires the ability to speak
|
||||||
|
cp14-magic-somatic-aspect = Requires a free hand:
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
cp14-trait-category-physical = Physical features
|
cp14-trait-category-physical = Physical features
|
||||||
cp14-trait-category-background = Background
|
cp14-trait-category-background = Background
|
||||||
cp14-trait-category-speech = Speech peculiarities
|
cp14-trait-category-speech = Speech peculiarities
|
||||||
|
cp14-trait-category-magic = Known spells
|
||||||
|
|
||||||
# Physical
|
# Physical
|
||||||
|
|
||||||
@@ -19,6 +20,14 @@ cp14-trait-muted-desc = All you can do is mumble incoherently. The benefits of v
|
|||||||
cp14-trait-snoring-name = Loud snoring
|
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.
|
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
|
# Backgrounds
|
||||||
|
|
||||||
cp14-trait-bg-entertainer-name = Entertainer
|
cp14-trait-bg-entertainer-name = Entertainer
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
cp14-magic-type-abjuration = Ограждение
|
cp14-magic-type-fire = Огонь
|
||||||
cp14-magic-type-conjuration = Призыв
|
cp14-magic-type-water = Вода
|
||||||
cp14-magic-type-divination = Прорицание
|
cp14-magic-type-earth = Земля
|
||||||
cp14-magic-type-enchantment = Очарование
|
cp14-magic-type-healing = Исцеление
|
||||||
cp14-magic-type-evocation = Воплощение
|
cp14-magic-type-light-darkness = Свет и тьма
|
||||||
cp14-magic-type-illusion = Иллюзии
|
cp14-magic-type-meta = Метамагия
|
||||||
cp14-magic-type-necromancy = Некромантия
|
cp14-magic-type-gate = Пространство
|
||||||
cp14-magic-type-transmutation = Трансмутация
|
cp14-magic-type-movement = Движение
|
||||||
|
|
||||||
cp14-magic-manacost = Затраты маны
|
cp14-magic-manacost = Затраты маны
|
||||||
cp14-magic-magic-type = Тип магии
|
cp14-magic-magic-type = Тип магии
|
||||||
|
|
||||||
|
cp14-magic-verbal-aspect = Требуется возможность говорить
|
||||||
|
cp14-magic-somatic-aspect = Требуются свободные руки:
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
cp14-trait-category-physical = Физические особенности
|
cp14-trait-category-physical = Физические особенности
|
||||||
cp14-trait-category-background = Предыстория
|
cp14-trait-category-background = Предыстория
|
||||||
cp14-trait-category-speech = Особенности речи
|
cp14-trait-category-speech = Особенности речи
|
||||||
|
cp14-trait-category-magic = Известные заклинания
|
||||||
|
|
||||||
# Physical
|
# Physical
|
||||||
|
|
||||||
@@ -19,6 +20,14 @@ cp14-trait-muted-desc = Все что вы можете - бессвязно м
|
|||||||
cp14-trait-snoring-name = Громкий храп
|
cp14-trait-snoring-name = Громкий храп
|
||||||
cp14-trait-snoring-desc = Спать рядом с вами просто невозможно, потому что во все вы жутко громко храпите.
|
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
|
# Backgrounds
|
||||||
|
|
||||||
cp14-trait-bg-entertainer-name = Артист
|
cp14-trait-bg-entertainer-name = Артист
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -0.9
|
speedMultiplier: -0.9
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Evocation
|
magicType: Earth
|
||||||
manaCost: 15
|
manaCost: 15
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: A artificial flame forms in your hand, illuminating your surroundings. You can throw it to use it as a disposable weapon.
|
description: A artificial flame forms in your hand, illuminating your surroundings. You can throw it to use it as a disposable weapon.
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Conjuration
|
magicType: Fire
|
||||||
manaCost: 5
|
manaCost: 5
|
||||||
effects:
|
effects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -0.7
|
speedMultiplier: -0.7
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Evocation
|
magicType: Fire
|
||||||
manaCost: 20
|
manaCost: 20
|
||||||
effects:
|
effects:
|
||||||
- !type:CP14SpellSpawnEntityOnUser
|
- !type:CP14SpellSpawnEntityOnUser
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -0.4
|
speedMultiplier: -0.4
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Conjuration
|
magicType: Gate
|
||||||
manaCost: 20
|
manaCost: 20
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -0.5
|
speedMultiplier: -0.5
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Evocation
|
magicType: Healing
|
||||||
manaCost: 20
|
manaCost: 20
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: Creates a flash of bright, blinding light.
|
description: Creates a flash of bright, blinding light.
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Abjuration
|
magicType: LightDarkness
|
||||||
manaCost: 10
|
manaCost: 10
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: Materialization of a bright and safe light source.
|
description: Materialization of a bright and safe light source.
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Conjuration
|
magicType: LightDarkness
|
||||||
manaCost: 10
|
manaCost: 10
|
||||||
effects:
|
effects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: You can transfer a small amount of your magical energy to a target entity or magical object.
|
description: You can transfer a small amount of your magical energy to a target entity or magical object.
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Necromancy
|
magicType: Meta
|
||||||
manaCost: 12
|
manaCost: 12
|
||||||
canModifyManacost: false
|
canModifyManacost: false
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: You attract a ghostly hand that draws an object or entity to you
|
description: You attract a ghostly hand that draws an object or entity to you
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Transmutation
|
magicType: Movement
|
||||||
manaCost: 10
|
manaCost: 10
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
description: Materialization of a temporary sharp ice throwing dagger
|
description: Materialization of a temporary sharp ice throwing dagger
|
||||||
components:
|
components:
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Evocation
|
magicType: Water
|
||||||
manaCost: 15
|
manaCost: 15
|
||||||
effects:
|
effects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -0.25
|
speedMultiplier: -0.25
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Evocation
|
magicType: Water
|
||||||
manaCost: 5
|
manaCost: 5
|
||||||
effects:
|
effects:
|
||||||
- !type:CP14SpellProjectile
|
- !type:CP14SpellProjectile
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
sprite: _CP14/Clothing/Head/Roles/General/triangularhat.rsi
|
sprite: _CP14/Clothing/Head/Roles/General/triangularhat.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: _CP14/Clothing/Head/Roles/General/triangularhat.rsi
|
sprite: _CP14/Clothing/Head/Roles/General/triangularhat.rsi
|
||||||
- type: CP14MagicClothingManacostModify
|
- type: CP14MagicManacostModify
|
||||||
globalModifier: 0.8
|
globalModifier: 0.8
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -138,5 +138,5 @@
|
|||||||
sprite: _CP14/Clothing/Head/Roles/General/triangularhat_golden.rsi
|
sprite: _CP14/Clothing/Head/Roles/General/triangularhat_golden.rsi
|
||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: _CP14/Clothing/Head/Roles/General/triangularhat_golden.rsi
|
sprite: _CP14/Clothing/Head/Roles/General/triangularhat_golden.rsi
|
||||||
- type: CP14MagicClothingManacostModify
|
- type: CP14MagicManacostModify
|
||||||
globalModifier: 0.8
|
globalModifier: 0.8
|
||||||
@@ -103,7 +103,6 @@
|
|||||||
- type: CP14MagicEffectCastSlowdown
|
- type: CP14MagicEffectCastSlowdown
|
||||||
speedMultiplier: -1.0
|
speedMultiplier: -1.0
|
||||||
- type: CP14MagicEffect
|
- type: CP14MagicEffect
|
||||||
magicType: Conjuration
|
|
||||||
manaCost: 5
|
manaCost: 5
|
||||||
telegraphyEffects:
|
telegraphyEffects:
|
||||||
- !type:CP14SpellSpawnEntityOnTarget
|
- !type:CP14SpellSpawnEntityOnTarget
|
||||||
|
|||||||
@@ -43,4 +43,7 @@
|
|||||||
- type: CP14SpellStorageAccessHolding
|
- type: CP14SpellStorageAccessHolding
|
||||||
- type: CP14SpellStorage
|
- type: CP14SpellStorage
|
||||||
spells:
|
spells:
|
||||||
- CP14ActionSpellCureWounds
|
- CP14ActionSpellCureWounds
|
||||||
|
- type: CP14MagicManacostModify
|
||||||
|
modifiers:
|
||||||
|
Healing: 1.1
|
||||||
@@ -1,39 +1,39 @@
|
|||||||
- type: magicType
|
- type: magicType
|
||||||
id: Abjuration
|
id: Fire
|
||||||
name: cp14-magic-type-abjuration #Ограждение
|
name: cp14-magic-type-fire
|
||||||
color: "#c94328"
|
color: "#d9741c"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Conjuration
|
id: Water
|
||||||
name: cp14-magic-type-conjuration #Призыв
|
name: cp14-magic-type-water
|
||||||
color: "#8e28c9"
|
color: "#1c94d9"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Divination
|
id: Earth
|
||||||
name: cp14-magic-type-divination #Прорицание
|
name: cp14-magic-type-earth
|
||||||
color: "#81d3e3"
|
color: "#70533f"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Enchantment
|
id: Healing
|
||||||
name: cp14-magic-type-enchantment #Очарование
|
name: cp14-magic-type-healing
|
||||||
color: "#7147a1"
|
color: "#89e04f"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Evocation
|
id: LightDarkness
|
||||||
name: cp14-magic-type-evocation #Воплощение
|
name: cp14-magic-type-light-darkness
|
||||||
color: "#47a14a"
|
color: "#ba97b8"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Illusion
|
id: Meta
|
||||||
name: cp14-magic-type-illusion #Иллюзия
|
name: cp14-magic-type-meta
|
||||||
color: "#cc1275"
|
color: "#dcffdb"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Necromancy
|
id: Gate
|
||||||
name: cp14-magic-type-necromancy #Некромантия
|
name: cp14-magic-type-gate
|
||||||
color: "#4dc4a4"
|
color: "#32597d"
|
||||||
|
|
||||||
- type: magicType
|
- type: magicType
|
||||||
id: Transmutation
|
id: Movement
|
||||||
name: cp14-magic-type-transmutation #Трансмутация
|
name: cp14-magic-type-movement
|
||||||
color: "#3333d4"
|
color: "#63ceff"
|
||||||
@@ -1,3 +1,8 @@
|
|||||||
|
- type: traitCategory
|
||||||
|
id: CP14Magic
|
||||||
|
name: cp14-trait-category-magic
|
||||||
|
maxTraitPoints: 1
|
||||||
|
|
||||||
- type: traitCategory
|
- type: traitCategory
|
||||||
id: CP14PhysicalTraits
|
id: CP14PhysicalTraits
|
||||||
name: cp14-trait-category-physical
|
name: cp14-trait-category-physical
|
||||||
|
|||||||
17
Resources/Prototypes/_CP14/Traits/spells.yml
Normal file
17
Resources/Prototypes/_CP14/Traits/spells.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
- 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
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"y": 32
|
"y": 32
|
||||||
},
|
},
|
||||||
"license": "CLA",
|
"license": "CLA",
|
||||||
"copyright": "Created by Nimfar11 (github)",
|
"copyright": "Created by TheShuEd (github)",
|
||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "subterranean_leap"
|
"name": "subterranean_leap"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 381 B |
Reference in New Issue
Block a user