case ActivateEffects.StatBoostAura:
{
var amountSBA = eff.Amount;
var durationSBA = eff.DurationMS;
var rangeSBA = eff.Range;
int idx = -1;
if (eff.Stats == StatsType.MaximumHP) idx = 0;
if (eff.Stats == StatsType.MaximumMP) idx = 1;
if (eff.Stats == StatsType.Attack) idx = 2;
if (eff.Stats == StatsType.Defense) idx = 3;
if (eff.Stats == StatsType.Speed) idx = 4;
if (eff.Stats == StatsType.Vitality) idx = 5;
if (eff.Stats == StatsType.Wisdom) idx = 6;
if (eff.Stats == StatsType.Dexterity) idx = 7;
int bit = idx + 39;
if (eff.UseWisMod)
{
amountSBA = (int)UseWisMod(eff.Amount, 0);
durationSBA = (int)(UseWisMod(eff.DurationSec) * 1000);
rangeSBA = UseWisMod(eff.Range);
}
if (HasConditionEffect(ConditionEffectIndex.HPBoost))
{
if (amountSBA == 0) ;
else if (amountSBA >= 1) ;
amountSBA = 0;
durationSBA = 0;
return false;
}
this.Aoe(rangeSBA, true, player =>
{
ApplyConditionEffect(new ConditionEffect
{
DurationMS = durationSBA,
Effect = (ConditionEffectIndex)bit
});
(player as Player).Boost[idx] += amountSBA;
player.UpdateCount++;
Owner.Timers.Add(new WorldTimer(durationSBA, (world, t) =>
{
(player as Player).Boost[idx] -= amountSBA;
player.UpdateCount++;
}));
});
BroadcastSync(new ShowEffectPacket()
{
EffectType = EffectType.AreaBlast,
TargetId = Id,
Color = new ARGB(0xffffffff),
PosA = new Position() { X = rangeSBA }
}, p => this.Dist(p) < 25);
} break;


