private int GetSL_Ranged(int difficulty) { DiceList dicesA; int result; dicesA = new DiceList(AttackDice, "ranged"); result = dicesA.Result() - difficulty; // reroll 1 // reroll 2 // reroll 3 result = Math.Max(-1, result); result = Math.Min(10, result); return(result); }
private int GetSL_Melee(Profile Defender) { DiceList dicesA, dicesD; int result; dicesA = new DiceList(AttackDice, "melee"); dicesD = new DiceList(Defender.DefenceDice, "melee"); // Careful, if you use reroll, the all process must be remade if (this.Treats.UnbreakableStrike.Has) { dicesD.RemoveHighestDice(); } if (Defender.Treats.ImpenetrableDefence.Has) { dicesA.RemoveHighestDice(); } result = dicesA.Result() - dicesD.Result(); // brutal / parry if (this.Treats.Brutal.Has) { result += this.Treats.Brutal.Value; } if (Defender.Treats.Parry.Has) { result -= this.Treats.Parry.Value; } // reroll 1 // reroll 2 // reroll 3 if (result == 0 && dicesA.DicesList.Count < dicesD.DicesList.Count) { result = -1; } result = Math.Max(-1, result); result = Math.Min(10, result); return(result); }
private int GetSL_Opposed(Profile Defender) { DiceList dicesA, dicesB; int result; dicesA = new DiceList(AttackDice, "opposed"); dicesB = new DiceList(Defender.DefenceDice, "opposed"); result = dicesA.Result() - dicesB.Result() + AttackBonus - Defender.DefenceBonus; if (result == 0 && dicesA.DicesList.Count < dicesB.DicesList.Count) { result = -1; } result = Math.Max(-1, result); result = Math.Min(10, result); return(result); }
static public bool TestMeleeDice() { bool functionnal = true; DiceList dices = new DiceList(3, "melee"); // 2 ; 1 ; 2-3 ; 2-1 ; 6 - 2 ; 6-6 ; 5-3-2 ; 5-3-1 ; 6-6-2 ; 6-6-6-6 // 2 / 2 if (Test.verbose) { Output.Print("Test dices with 2: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(2); dices.TreatList(); functionnal &= Test.TestValue(2, dices.Result()); // 3-2 / 4 if (Test.verbose) { Output.Print("Test dices with 3-2: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(3); dices.DicesList.Add(2); dices.TreatList(); functionnal &= Test.TestValue(4, dices.Result()); // 2-1 / 2 if (Test.verbose) { Output.Print("Test dices with 2-1: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(2); dices.DicesList.Add(1); dices.TreatList(); functionnal &= Test.TestValue(2, dices.Result()); // 6-2 / 7 if (Test.verbose) { Output.Print("Test dices with 6-2: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(6); dices.DicesList.Add(2); dices.TreatList(); functionnal &= Test.TestValue(7, dices.Result()); // 6-6 / 8 if (Test.verbose) { Output.Print("Test dices with 6-6: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(6); dices.DicesList.Add(6); dices.TreatList(); functionnal &= Test.TestValue(8, dices.Result()); // 5-3-2 / 7 if (Test.verbose) { Output.Print("Test dices with 5-3-2: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(5); dices.DicesList.Add(3); dices.DicesList.Add(2); dices.TreatList(); functionnal &= Test.TestValue(7, dices.Result()); // 5-3-1 / 6 if (Test.verbose) { Output.Print("Test dices with 5-3-1: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(5); dices.DicesList.Add(3); dices.DicesList.Add(1); dices.TreatList(); functionnal &= Test.TestValue(6, dices.Result()); // 6-6-2 / 8 if (Test.verbose) { Output.Print("Test dices with 6-6-2: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(6); dices.DicesList.Add(6); dices.DicesList.Add(2); dices.TreatList(); functionnal &= Test.TestValue(9, dices.Result()); // 6-6-6-6 / 11 if (Test.verbose) { Output.Print("Test dices with 6-6-6-6: "); } dices.DicesList = new List <int>(); dices.DicesList.Add(6); dices.DicesList.Add(6); dices.DicesList.Add(6); dices.DicesList.Add(6); dices.TreatList(); functionnal &= Test.TestValue(11, dices.Result()); return(functionnal); }