Exemplo n.º 1
0
        void HandleScriptEffect(uint effIndex)
        {
            Unit caster = GetCaster();
            Unit target = GetHitUnit();

            if (target)
            {
                // Refresh corruption on target
                AuraEffect aurEff = target.GetAuraEffect(AuraType.PeriodicDamage, SpellFamilyNames.Warlock, new FlagArray128(0x2, 0, 0), caster.GetGUID());
                if (aurEff != null)
                {
                    uint damage = (uint)Math.Max(aurEff.GetAmount(), 0);
                    Global.ScriptMgr.ModifyPeriodicDamageAurasTick(target, caster, ref damage);
                    aurEff.SetDamage((int)(caster.SpellDamageBonusDone(target, aurEff.GetSpellInfo(), damage, DamageEffectType.DOT, GetEffectInfo(effIndex)) * aurEff.GetDonePct()));
                    aurEff.CalculatePeriodic(caster, false, false);
                    aurEff.GetBase().RefreshDuration(true);
                }
            }
        }