public int[] Fight(string AtkName, string DefName, string UnitCount) { //name strength toughness wsbs armor attack //handles display of stats XMLTools toolA = new XMLTools(); XMLTools toolD = new XMLTools(); ArmyList ListA = new ArmyList(); string[] armyA = toolA.readXML(AtkName); string[] armyD = toolD.readXML(DefName); int.TryParse(armyA[1], out int atkStr); int.TryParse(armyD[1], out int defStr); int.TryParse(armyA[2], out int atkTough); int.TryParse(armyD[2], out int defTough); int.TryParse(armyA[3], out int atkBSWS); int.TryParse(armyD[3], out int defBSWS); int.TryParse(armyD[4], out int atkAS); int.TryParse(armyD[4], out int defAS); int.TryParse(armyD[5], out int atkAtks); int.TryParse(armyD[5], out int defAtks); int.TryParse(UnitCount, out int UnitCT); int[] results = new int [7]; Combat Combat = new Combat(); DiceTools Dice = new DiceTools(); for (int i = -3; i <= 3; i++) { int hits = 0; int[] wounds = { 0, 0 }; int saves = 0; int remainingD = 0; int remainingA = 0; hits = Combat.Attack(Dice.RollDice(6, (UnitCT + i) * atkAtks), Combat.WSBSTable(atkBSWS)); wounds = Combat.Wound(Dice.RollDice(6, hits), Combat.WoundTable(atkStr, defTough)); saves = Combat.Defend(Dice.RollDice(6, wounds[0] - wounds[1]), defAS, wounds[1]); remainingD = UnitCT - wounds[1] - wounds[0] + saves; hits = Combat.Attack(Dice.RollDice(6, (remainingD) * defAtks), Combat.WSBSTable(defBSWS)); wounds = Combat.Wound(Dice.RollDice(6, hits), Combat.WoundTable(defStr, atkTough)); saves = Combat.Defend(Dice.RollDice(6, wounds[0] - wounds[1]), atkAS, wounds[1]); remainingA = UnitCT - wounds[1] - wounds[0] + saves; results[i + 3] = remainingA - remainingD; } ; return(results); }
private void testCombat_Click(object sender, EventArgs e) { int.TryParse(TextBoxAttackerWSBS.Text, out int atkBSWS); int.TryParse(TextBoxAttackerStr.Text, out int atkStr); int.TryParse(TextBoxAttackerAPM.Text, out int atkAtks); int.TryParse(TextBoxAttackerAS.Text, out int atkAS); int.TryParse(TextBoxAttackerToughness.Text, out int atkToug); int.TryParse(TextBoxDefenderWSBS.Text, out int defBSWS); int.TryParse(TextBoxDefenderStr.Text, out int defStr); int.TryParse(TextBoxDefenderAPM.Text, out int defAtks); int.TryParse(TextBoxDefenderAS.Text, out int defAS); int.TryParse(TextBoxDefenderToughness.Text, out int defTough); int.TryParse(TextBoxAttackerCount.Text, out int atkCount); int.TryParse(TextBoxDefenderCount.Text, out int defCount); int hits = 0; int[] wounds = { 0, 0 }; int saves = 0; int kills = 0; Combat Combat = new Combat(); DiceTools Dice = new DiceTools(); hits = Combat.Attack(Dice.RollDice(6, atkCount * atkAtks), Combat.WSBSTable(atkBSWS)); TextBoxHits.Text = hits.ToString(); wounds = Combat.Wound(Dice.RollDice(6, hits), Combat.WoundTable(atkStr, defTough)); TextBoxWounds.Text = wounds[0].ToString(); saves = Combat.Defend(Dice.RollDice(6, wounds[0] - wounds[1]), defAS, wounds[1]); TextBoxCritWound.Text = wounds[1].ToString(); kills = defCount - saves; TextBoxDefLeft.Text = kills.ToString(); }