Пример #1
0
        public override void OnAttack(Combat.CombatResults results)
        {
            if (results.UsedAbility.AbilityName == GameManager.Player.StatsPackage.AbilityList[0].AbilityName)
            {
                int damage = BaseDamage;
                if (EquippedSlot == EquipmentSlots.MainHand) //Main Hand weapons just apply regular weapon damage
                {
                    if (Inventory.OffHand != null && Inventory.OffHand.Name == Name)
                    {
                        damage += (int)(damage * 0.5);
                    }

                    results.AppliedDamage += damage - results.UsedAbility.CalculateAbsorption(damage, results.Target);
                }
                else if (EquippedSlot == EquipmentSlots.OffHand) //Off Hand weapons have a chance to damage, based off user's Haste stat
                {
                    if (Inventory.MainHand != null && Inventory.MainHand.Name == Name)
                    {
                        damage += (int)(damage * 0.5);
                    }

                    int chanceToHit = (int)(GameManager.Player.StatsPackage.PhysicalHaste.EffectiveValue);
                    if (Engine.RNG.Next(0, 100) < chanceToHit)
                    {
                        results.AppliedDamage += damage - results.UsedAbility.CalculateAbsorption(damage, results.Target);
                    }
                }
            }
        }
Пример #2
0
 public override void OnAttack(Combat.CombatResults results)
 {
     if (results.UsedAbility.AbilityName == GameManager.Player.StatsPackage.AbilityList[0].AbilityName)
     {
         int initialDamage = getWeaponDamage();
         if (EquippedSlot == EquipmentSlots.MainHand) //Main Hand weapons just apply regular weapon damage
         {
             results.AppliedDamage += initialDamage - results.UsedAbility.CalculateAbsorption(initialDamage, results.Target);
         }
         else if (EquippedSlot == EquipmentSlots.OffHand) //Off Hand weapons have a chance to damage, based off user's Haste stat
         {
             int chanceToHit = (int)(GameManager.Player.StatsPackage.PhysicalHaste.EffectiveValue);
             if (Engine.RNG.Next(0, 100) < chanceToHit)
             {
                 results.AppliedDamage += initialDamage - results.UsedAbility.CalculateAbsorption(initialDamage, results.Target);
             }
         }
         else if (EquippedSlot == EquipmentSlots.TwoHand) //Two Handed weapons have a chance to crit, based off user's crit chance and power
         {
             int chanceToCrit = (int)(GameManager.Player.StatsPackage.PhysicalCritChance);
             if (Engine.RNG.Next(0, 100) <= chanceToCrit)
             {
                 int damage = (int)(initialDamage * GameManager.Player.StatsPackage.PhysicalCritPower);
                 results.AppliedDamage += damage - results.UsedAbility.CalculateAbsorption(damage, results.Target);
             }
             else
             {
                 results.AppliedDamage += initialDamage - results.UsedAbility.CalculateAbsorption(initialDamage, results.Target);
             }
         }
     }
 }
Пример #3
0
        public override void OnDefend(Combat.CombatResults results)
        {
            Inventory.OnDefend(results);

            base.OnDefend(results);
        }
Пример #4
0
        public override void OnAttack(Combat.CombatResults results)
        {
            Inventory.OnAttack(results);

            base.OnAttack(results);
        }