void DealDamage() { Random rng = new Random(); if (Roll(FEMath.Accuracy(this))) { FEMath.DealDamage(this); } }
public void UseStaff(Staff staff) { Random rng = new Random(); if (Roll(FEMath.StaffAccuracy(this))) { Target.Status = staff.Effect; } }
bool[] Rounds() { // determines who is attacking and how long combat runs List <bool> result = new List <bool>(); // initiator's attack result.Add(true); if (Initiator.EquippedWeapon.SpecialEffect == WSpecialEffect.Brave) { result.Add(true); } // determine counterattack if (Target.EquippedWeapon.MaxRange >= Distance && Target.EquippedWeapon.MinRange <= Distance) { result.Add(false); if (Target.EquippedWeapon.SpecialEffect == WSpecialEffect.Brave) { result.Add(false); } } // determine follow-up attack if (FEMath.DoubleAttack(Initiator.CombatSpeed, Target.CombatSpeed)) { result.Add(true); if (Initiator.EquippedWeapon.SpecialEffect == WSpecialEffect.Brave) { result.Add(true); } } else if (FEMath.DoubleAttack(Target.CombatSpeed, Initiator.CombatSpeed)) { if (Target.EquippedWeapon.MaxRange >= Distance && Target.EquippedWeapon.MinRange <= Distance) { result.Add(false); if (Target.EquippedWeapon.SpecialEffect == WSpecialEffect.Brave) { result.Add(false); } } } return(result.ToArray()); }