Exemplo n.º 1
0
        /// <summary>
        /// Deal Damages but check abilities buff reductions (absorb, invinsibility, etc)
        /// </summary>
        public virtual void DealDamages(Unit Target, Ability Ab, uint Damages)
        {
            AbtInterface.OnDealDamages(Target, Ab, ref Damages);
            Target.AbtInterface.OnReceiveDamages(this, Ab, ref Damages);

            if (Ab != null) // Ability Damage
            {
                Ab.SendSpellDamage(Target, Damages, false);
                Ab.SendSpellEffect(this, Target, (ushort)Damages, (ushort)Damages, Ab.Info);
            }
            else // Weapon
            {
                SendCastEffect(Target, 0, GameData.CombatEvent.COMBATEVENT_HIT, Damages);
            }

            DealDamages(Target, (uint)Damages);
        }