fix: Adds missing ML Abilities (#799)
This commit is contained in:
parent
4893094bb4
commit
5725fba373
27 changed files with 931 additions and 243 deletions
|
|
@ -1024,6 +1024,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
ImmolatingWeaponSpell.StopImmolating(this);
|
||||
ForceOfNature.Remove(m);
|
||||
|
||||
m.CheckStatTimers();
|
||||
|
||||
|
|
@ -1157,6 +1158,13 @@ namespace Server.Items
|
|||
|
||||
bonus = AosAttributes.GetValue(defender, AosAttribute.DefendChance);
|
||||
|
||||
var info = ForceArrow.GetInfo(attacker, defender);
|
||||
|
||||
if (info != null && info.Defender == defender)
|
||||
{
|
||||
bonus -= info.DefenseChanceMalus;
|
||||
}
|
||||
|
||||
if (DivineFurySpell.UnderEffect(defender))
|
||||
{
|
||||
bonus -= 20; // defender loses 20% bonus when they're under divine fury
|
||||
|
|
@ -1662,6 +1670,8 @@ namespace Server.Items
|
|||
percentageBonus += (int)(move.GetDamageScalar(attacker, defender) * 100) - 100;
|
||||
}
|
||||
|
||||
percentageBonus += (int)(ForceOfNature.GetDamageScalar(attacker, defender) * 100) - 100;
|
||||
|
||||
percentageBonus += (int)(damageBonus * 100) - 100;
|
||||
|
||||
var cs = CheckSlayers(attacker, defender);
|
||||
|
|
@ -1864,7 +1874,10 @@ namespace Server.Items
|
|||
move = null;
|
||||
}
|
||||
|
||||
var ignoreArmor = a is ArmorIgnore || move?.IgnoreArmor(attacker) == true;
|
||||
var ignoreArmor = a is ArmorIgnore ||
|
||||
move?.IgnoreArmor(attacker) == true ||
|
||||
Bladeweave.BladeWeaving(attacker, out var bladeweavingAbi) &&
|
||||
bladeweavingAbi is ArmorIgnore;
|
||||
|
||||
var damageGiven = AOS.Damage(
|
||||
defender,
|
||||
|
|
@ -1981,8 +1994,8 @@ namespace Server.Items
|
|||
mobile.LocalOverheadMessage(
|
||||
MessageType.Regular,
|
||||
0x3B2,
|
||||
1061121
|
||||
); // Your equipment is severely damaged.
|
||||
1061121 // Your equipment is severely damaged.
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -2101,6 +2114,8 @@ namespace Server.Items
|
|||
a?.OnHit(attacker, defender, damage);
|
||||
move?.OnHit(attacker, defender, damage);
|
||||
|
||||
ForceOfNature.OnHit(attacker, defender);
|
||||
|
||||
if (defender is IHonorTarget it)
|
||||
{
|
||||
it.ReceivedHonorContext?.OnTargetHit(attacker);
|
||||
|
|
@ -2142,6 +2157,11 @@ namespace Server.Items
|
|||
// SDI bonus
|
||||
damageBonus += AosAttributes.GetValue(attacker, AosAttribute.SpellDamage);
|
||||
|
||||
if(PsychicAttack.Registry.TryGetValue(attacker,out var timer))
|
||||
{
|
||||
damageBonus -= timer.SpellDamageMalus;
|
||||
}
|
||||
|
||||
var context = TransformationSpellHelper.GetContext(attacker);
|
||||
|
||||
if (context?.Spell is ReaperFormSpell spell)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue