Exemplo n.º 1
0
        public void Handle(ref DamageEvent arg)
        {
            var defendType = GetType(arg.DamageType);

            if (defendType == null || Math.Abs(defendType.Amount) < 0.01f)
            {
                return;
            }
            var amtDefended = GameOptions.GetDefenseAmount(arg.Amount, defendType.Amount);

            arg.Amount = MathEx.Max(0, arg.Amount - amtDefended);
            if (defendType.DefendLimit < 0)
            {
                return;
            }
            defendType.DefendLimit -= amtDefended;
            if (defendType.DefendLimit <= 0)
            {
                defendType.Amount = 0;
            }
        }
Exemplo n.º 2
0
        public void Handle(ref DamageEvent arg)
        {
            if (arg.Amount <= 0)
            {
                return;
            }
            var statEntry = FindStat(arg.DamageType);

            if (statEntry == null)
            {
                return;
            }
            if (statEntry.Stat == null)
            {
                statEntry.Stat = this.GetEntity().Stats.Get(statEntry.Id);
            }
            if (statEntry.Stat == null || statEntry.Stat.Value <= 0)
            {
                return;
            }
            var amtDefended = GameOptions.GetDefenseAmount(arg.Amount, statEntry.Stat.Value);

            arg.Amount = MathEx.Max(0, arg.Amount - amtDefended);
        }