public void Set(BattleObject attacker, BattleObject defender, int[,] attackRolls, int[] defenseRolls, int attackerDamage, int defenderDamage) { this.attacker = attacker; this.defender = defender; this.attackRolls = attackRolls; this.defenseRolls = defenseRolls; this.attackerDamage = this.attackerDamage; this.defenderDamage = defenderDamage; }
static void Main(string[] args) { BattleMethods battle = new BattleMethods(); BattleObject attacker = new BattleObject(); attacker.action = "shoot"; attacker.BS = 14; attacker.burst = 3; attacker.CC = 12; attacker.PH = 12; BattleObject defender = new BattleObject(); defender.action = "shoot"; defender.BS = 13; defender.burst = 1; defender.CC = 12; defender.PH = 12; battle.ShootAndShoot(attacker, defender); Console.ReadLine(); }
public void ShootAndShoot(BattleObject attacker, BattleObject defender) { Random roll = new Random(); int[,] attackRolls = new int[attacker.burst, 2]; int[] defenseRolls = new int[2]; int attackerDamage = 0; int defenderDamage = 0; // Roll for Attacker for (int x = 0; x < attackRolls.GetLength(0); x++) { int y = roll.Next(1, 21); attackRolls[x, 0] = y; //Console.WriteLine(y); if (y <= attacker.BS) { attackRolls[x, 1] = 1; defenderDamage++; } else { attackRolls[x, 1] = 0; } } // Roll for Defender defenseRolls[0] = roll.Next(1, 21); //Console.WriteLine(defenseRolls); if (defenseRolls[0] <= defender.BS) { defenseRolls[1] = 1; attackerDamage++; } else { defenseRolls[1] = 0; } // Negate Attack rolls for (int x = 0; x < attackRolls.GetLength(0); x++) { if (attackRolls[x, 1] != 0) { if (attackRolls[x, 0] < defenseRolls[0] && defenseRolls[1] != 0) { attackRolls[x, 1] = 2; defenderDamage--; } else if (attackRolls[x, 0] == defenseRolls[0] && defenseRolls[1] != 0) { attackRolls[x, 1] = 2; attackerDamage--; defenderDamage--; } else if (defenseRolls[1] == 1) { defenseRolls[1] = 2; attackerDamage--; } } } // Print Results Console.WriteLine("Attacker Skill: {0} Defender Skill: {1}", attacker.BS, defender.BS); Console.WriteLine("\nAttacker Rolls:"); for (int x = 0; x < attackRolls.GetLength(0); x++) { Console.Write("{0}: ", attackRolls[x, 0]); if (attackRolls[x, 1] == 0) { Console.Write("Miss\n"); } else if (attackRolls[x, 1] == 1) { Console.Write("Hit\n"); } else { Console.Write("Negated\n"); } } Console.WriteLine("\nDefender Roll:"); Console.Write("{0}: ", defenseRolls[0]); if (defenseRolls[1] == 0) { Console.Write("Miss\n"); } else if (defenseRolls[1] == 1) { Console.Write("Hit\n"); } else { Console.Write("Negated\n"); } ResultObject result = new ResultObject(); result.Set(attacker, defender, attackRolls, defenseRolls, attackerDamage, defenderDamage); XmlSerializer serializer = new XmlSerializer(result.GetType()); StringWriter writer = new StringWriter(); serializer.Serialize(writer, result); PrintResult(writer.ToString()); }