fix: Adds name support for all mods (#1128)
This commit is contained in:
parent
b1cf95f810
commit
ffdc08259f
33 changed files with 404 additions and 343 deletions
|
|
@ -1242,31 +1242,29 @@ namespace Server.Spells
|
|||
|
||||
if (!ourTransform)
|
||||
{
|
||||
var mods = new List<ResistanceMod>();
|
||||
|
||||
if (transformSpell.PhysResistOffset != 0)
|
||||
{
|
||||
mods.Add(new ResistanceMod(ResistanceType.Physical, transformSpell.PhysResistOffset));
|
||||
caster.AddResistanceMod(new ResistanceMod(ResistanceType.Physical, "TransformSpell", transformSpell.PhysResistOffset));
|
||||
}
|
||||
|
||||
if (transformSpell.FireResistOffset != 0)
|
||||
{
|
||||
mods.Add(new ResistanceMod(ResistanceType.Fire, transformSpell.FireResistOffset));
|
||||
caster.AddResistanceMod(new ResistanceMod(ResistanceType.Fire, "TransformSpell", transformSpell.FireResistOffset));
|
||||
}
|
||||
|
||||
if (transformSpell.ColdResistOffset != 0)
|
||||
{
|
||||
mods.Add(new ResistanceMod(ResistanceType.Cold, transformSpell.ColdResistOffset));
|
||||
caster.AddResistanceMod(new ResistanceMod(ResistanceType.Cold, "TransformSpell", transformSpell.ColdResistOffset));
|
||||
}
|
||||
|
||||
if (transformSpell.PoisResistOffset != 0)
|
||||
{
|
||||
mods.Add(new ResistanceMod(ResistanceType.Poison, transformSpell.PoisResistOffset));
|
||||
caster.AddResistanceMod(new ResistanceMod(ResistanceType.Poison, "TransformSpell", transformSpell.PoisResistOffset));
|
||||
}
|
||||
|
||||
if (transformSpell.NrgyResistOffset != 0)
|
||||
{
|
||||
mods.Add(new ResistanceMod(ResistanceType.Energy, transformSpell.NrgyResistOffset));
|
||||
caster.AddResistanceMod(new ResistanceMod(ResistanceType.Energy, "TransformSpell", transformSpell.NrgyResistOffset));
|
||||
}
|
||||
|
||||
if (!((Body)transformSpell.Body).IsHuman)
|
||||
|
|
@ -1282,17 +1280,12 @@ namespace Server.Spells
|
|||
caster.BodyMod = transformSpell.Body;
|
||||
caster.HueMod = transformSpell.Hue;
|
||||
|
||||
for (var i = 0; i < mods.Count; ++i)
|
||||
{
|
||||
caster.AddResistanceMod(mods[i]);
|
||||
}
|
||||
|
||||
transformSpell.DoEffect(caster);
|
||||
|
||||
Timer timer = new TransformTimer(caster, transformSpell);
|
||||
timer.Start();
|
||||
|
||||
AddContext(caster, new TransformContext(timer, mods, ourType, transformSpell));
|
||||
AddContext(caster, new TransformContext(timer, ourType, transformSpell));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1322,12 +1315,7 @@ namespace Server.Spells
|
|||
return;
|
||||
}
|
||||
|
||||
var mods = context.Mods;
|
||||
|
||||
for (var i = 0; i < mods.Count; ++i)
|
||||
{
|
||||
m.RemoveResistanceMod(mods[i]);
|
||||
}
|
||||
m.RemoveResistanceMod("TransformSpell");
|
||||
|
||||
if (resetGraphics)
|
||||
{
|
||||
|
|
@ -1371,18 +1359,15 @@ namespace Server.Spells
|
|||
|
||||
public class TransformContext
|
||||
{
|
||||
public TransformContext(Timer timer, List<ResistanceMod> mods, Type type, ITransformationSpell spell)
|
||||
public TransformContext(Timer timer, Type type, ITransformationSpell spell)
|
||||
{
|
||||
Timer = timer;
|
||||
Mods = mods;
|
||||
Type = type;
|
||||
Spell = spell;
|
||||
}
|
||||
|
||||
public Timer Timer { get; }
|
||||
|
||||
public List<ResistanceMod> Mods { get; }
|
||||
|
||||
public Type Type { get; }
|
||||
|
||||
public ITransformationSpell Spell { get; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue