/// <summary> /// The only method that can be called outside the class. It will take in two Character objects and try to battle them. /// This method is responsible for subtracting the actual damage from the Character SDC or HP property. /// </summary> /// <param name="attacker"></param> /// <param name="defender"></param> /// <returns>A boolean that represents that damage was dealt in combat.</returns> public bool startCombat(Character attacker, Character defender) { if ((attacker is Player && defender is Player) || (attacker is Zed && defender is Zed)) { Console.WriteLine("The combatants are allies"); return false; } else { this.attacker = attacker; this.defender = defender; setAttackerBonuses(); if (confirmHit()) { bool damageHP = false; if (attacker is Zed) { damageHP = (((Zed)attacker).ZedClass == ZedClass.Shank) ? true : false; } int damage = damageDone(); Console.WriteLine("Damage done: " + damage); if (defender.SDC >= damage && !damageHP) { defender.SDC -= damage; } else if (defender.SDC < damage && defender.SDC > 0 && !damageHP) { damage -= defender.SDC; defender.SDC = 0; defender.HP -= damage; } else { defender.HP -= damage; } return true; } else { return false; } } }
public void testCombat(Character attacker, Character defender) { this.attacker = attacker; this.defender = defender; this.isCritSuccess = true; setAttackerBonuses(); Console.WriteLine("Damage is: " + damageDone()); }