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); } } } }
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); } } } }
public override void OnDefend(Combat.CombatResults results) { Inventory.OnDefend(results); base.OnDefend(results); }
public override void OnAttack(Combat.CombatResults results) { Inventory.OnAttack(results); base.OnAttack(results); }