private void DetermineFlags() { m_auraFlags = m_spell.DefaultAuraFlags; if (m_auras.Owner.EntityId == m_CasterReference.EntityId) { m_auraFlags |= AuraFlags.TargetIsCaster; } if (m_beneficial) { m_auraFlags |= AuraFlags.Positive; } else { m_auraFlags |= AuraFlags.Negative; } if (m_spell.Durations.Min > 0) { m_auraFlags |= AuraFlags.HasDuration; } for (int index = Math.Min(m_handlers.Count - 1, 2); index >= 0; --index) { int effectIndex = (int)m_handlers[index].SpellEffect.EffectIndex; if (effectIndex >= 0) { m_auraFlags |= (AuraFlags)(1 << effectIndex); } } if (m_auraFlags != AuraFlags.None) { return; } m_auraFlags = AuraFlags.Effect1AppliesAura; }
public AuraApplicationStateUpdate(AuraFlags flags, byte casterLevel, byte counterAmount, int maximumAuraDuration, int currentAuraDuration) : this(casterLevel, counterAmount, PackedGuid.Empty, maximumAuraDuration, currentAuraDuration) { Flags = flags; if (!HasDuration) { throw new InvalidOperationException($"Cannot create: {nameof(AuraApplicationStateUpdate)} with Duration without Flags: {AuraFlags.DURATION}."); } }
public AuraApplicationStateUpdate(AuraFlags flags, byte casterLevel, byte counterAmount, PackedGuid casterGuid) : this(casterLevel, counterAmount, casterGuid, 0, 0) { Flags = flags; if (!HasCasterGuid) { throw new InvalidOperationException($"Cannot create: {nameof(AuraApplicationStateUpdate)} with Caster Guid without Flags: {AuraFlags.CASTER}."); } }
private void DetermineFlags() { m_auraFlags = m_spell.DefaultAuraFlags; if (m_auras.Owner.EntityId == m_CasterReference.EntityId) { m_auraFlags |= AuraFlags.TargetIsCaster; } if (m_beneficial) { m_auraFlags |= AuraFlags.Positive; } else { m_auraFlags |= AuraFlags.Negative; } if (m_spell.Durations.Min > 0) { m_auraFlags |= AuraFlags.HasDuration; } for (var i = Math.Min(m_handlers.Count - 1, 2); i >= 0; i--) { var handler = m_handlers[i]; var index = (int)handler.SpellEffect.EffectIndex; if (index >= 0) { m_auraFlags |= (AuraFlags)(1 << index); } } if (m_auraFlags == 0) { m_auraFlags = AuraFlags.Effect1AppliesAura; } }