Misc Stuff
This commit is contained in:
@@ -724,44 +724,46 @@ namespace Game.Entities
|
|||||||
|
|
||||||
void TriggerOnPowerChangeAuras(PowerType power, int oldVal, int newVal)
|
void TriggerOnPowerChangeAuras(PowerType power, int oldVal, int newVal)
|
||||||
{
|
{
|
||||||
var effects = GetAuraEffectsByType(AuraType.TriggerSpellOnPowerPct);
|
void processAuras(List<AuraEffect> effects)
|
||||||
var effectsAmount = GetAuraEffectsByType(AuraType.TriggerSpellOnPowerAmount);
|
|
||||||
effects.AddRange(effectsAmount);
|
|
||||||
|
|
||||||
foreach (AuraEffect effect in effects)
|
|
||||||
{
|
{
|
||||||
if (effect.GetMiscValue() == (int)power)
|
foreach (AuraEffect effect in effects)
|
||||||
{
|
{
|
||||||
uint effectAmount = (uint)effect.GetAmount();
|
if (effect.GetMiscValue() == (int)power)
|
||||||
uint triggerSpell = effect.GetSpellEffectInfo().TriggerSpell;
|
|
||||||
|
|
||||||
float oldValueCheck = oldVal;
|
|
||||||
float newValueCheck = newVal;
|
|
||||||
|
|
||||||
if (effect.GetAuraType() == AuraType.TriggerSpellOnPowerPct)
|
|
||||||
{
|
{
|
||||||
int maxPower = GetMaxPower(power);
|
uint effectAmount = (uint)effect.GetAmount();
|
||||||
oldValueCheck = MathFunctions.GetPctOf(oldVal, maxPower);
|
uint triggerSpell = effect.GetSpellEffectInfo().TriggerSpell;
|
||||||
newValueCheck = MathFunctions.GetPctOf(newVal, maxPower);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ((AuraTriggerOnPowerChangeDirection)effect.GetMiscValueB())
|
float oldValueCheck = oldVal;
|
||||||
{
|
float newValueCheck = newVal;
|
||||||
case AuraTriggerOnPowerChangeDirection.Gain:
|
|
||||||
if (oldValueCheck >= effect.GetAmount() || newValueCheck < effectAmount)
|
|
||||||
continue;
|
|
||||||
break;
|
|
||||||
case AuraTriggerOnPowerChangeDirection.Loss:
|
|
||||||
if (oldValueCheck <= effect.GetAmount() || newValueCheck > effectAmount)
|
|
||||||
continue;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
CastSpell(this, triggerSpell, new CastSpellExtraArgs(effect));
|
if (effect.GetAuraType() == AuraType.TriggerSpellOnPowerPct)
|
||||||
|
{
|
||||||
|
int maxPower = GetMaxPower(power);
|
||||||
|
oldValueCheck = MathFunctions.GetPctOf(oldVal, maxPower);
|
||||||
|
newValueCheck = MathFunctions.GetPctOf(newVal, maxPower);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ((AuraTriggerOnPowerChangeDirection)effect.GetMiscValueB())
|
||||||
|
{
|
||||||
|
case AuraTriggerOnPowerChangeDirection.Gain:
|
||||||
|
if (oldValueCheck >= effect.GetAmount() || newValueCheck < effectAmount)
|
||||||
|
continue;
|
||||||
|
break;
|
||||||
|
case AuraTriggerOnPowerChangeDirection.Loss:
|
||||||
|
if (oldValueCheck <= effect.GetAmount() || newValueCheck > effectAmount)
|
||||||
|
continue;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CastSpell(this, triggerSpell, new CastSpellExtraArgs(effect));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
processAuras(GetAuraEffectsByType(AuraType.TriggerSpellOnPowerPct));
|
||||||
|
processAuras(GetAuraEffectsByType(AuraType.TriggerSpellOnPowerAmount));
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CanApplyResilience()
|
public bool CanApplyResilience()
|
||||||
|
|||||||
Reference in New Issue
Block a user