fix: Fixes poison field duration, cleans up skill calculations and poison calculations (#1582)
### Summary - [X] Fixes poison field duration - [X] Adds SA+ poison spell calculations - [X] Cleans up skill calculations - [X] Adjusts poison level thresholds to properly reflect OSI
This commit is contained in:
parent
54431f05b5
commit
1f04a13f67
16 changed files with 68 additions and 81 deletions
|
|
@ -195,7 +195,7 @@ public abstract partial class BasePotion : Item, ICraftable, ICommodity
|
|||
public static int EnhancePotions(Mobile m)
|
||||
{
|
||||
var EP = AosAttributes.GetValue(m, AosAttribute.EnhancePotions);
|
||||
var skillBonus = m.Skills.Alchemy.Fixed / 330 * 10;
|
||||
var skillBonus = (int)(m.Skills.Alchemy.Value * 10 / 33);
|
||||
|
||||
if (Core.ML && EP > 50 && m.AccessLevel <= AccessLevel.Player)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Server.Items
|
|||
--weapon.PoisonCharges;
|
||||
|
||||
// Infectious strike special move now uses poisoning skill to help determine potency
|
||||
var maxLevel = Math.Max(attacker.Skills.Poisoning.Fixed / 200, 0);
|
||||
var maxLevel = Math.Max((int)(attacker.Skills.Poisoning.Value / 20), 0);
|
||||
if (p.Level > maxLevel)
|
||||
{
|
||||
p = Poison.GetPoison(maxLevel);
|
||||
|
|
|
|||
|
|
@ -18,17 +18,15 @@ namespace Server.Items
|
|||
|
||||
ClearCurrentAbility(attacker);
|
||||
|
||||
defender.SendLocalizedMessage(1112369); // You have been poisoned by a lethal arrow!
|
||||
|
||||
int level;
|
||||
|
||||
if (attacker.InRange(defender, 2))
|
||||
{
|
||||
level = attacker.Skills.Poisoning.Fixed / 2 switch
|
||||
level = (attacker.Skills.Archery.Value + attacker.Skills.Poisoning.Value) switch
|
||||
{
|
||||
>= 1000 => 3,
|
||||
> 850 => 2,
|
||||
> 650 => 1,
|
||||
> 199.8 => 3,
|
||||
> 170.2 => 2,
|
||||
> 130.2 => 1,
|
||||
_ => 0
|
||||
};
|
||||
}
|
||||
|
|
@ -37,6 +35,7 @@ namespace Server.Items
|
|||
level = 0;
|
||||
}
|
||||
|
||||
defender.SendLocalizedMessage(1112369); // You have been poisoned by a lethal arrow!
|
||||
defender.ApplyPoison(attacker, Poison.GetPoison(level));
|
||||
|
||||
defender.FixedParticles(0x374A, 10, 15, 5021, EffectLayer.Waist);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue