//The one where you take the highest value rolled protected int HeroRollMethod() { CombatManager combatManager = CombatManager.instance; List <int> rolls; if (GetMonsterKind() == MonsterKind.NotMonster) { rolls = combatManager.HeroRoll(numRegularDice, numBlackDice); } else { rolls = combatManager.MonsterRoll(numRegularDice, numBlackDice); } combatManager.DoneRolling = true; return(strengthPoints + rolls.Max()); }
//The one where you use the sum of identical rolls protected int HelmRollMethod() { CombatManager combatManager = CombatManager.instance; List <int> rolls; if (GetMonsterKind() == MonsterKind.NotMonster) { rolls = combatManager.HeroRoll(numRegularDice, numBlackDice); } else { rolls = combatManager.MonsterRoll(numRegularDice, numBlackDice); } int sumIdentical = rolls.GroupBy(i => i) .Select(grp => grp.Sum()) .Max(); combatManager.DoneRolling = true; return(strengthPoints + Math.Max(rolls.Max(), sumIdentical)); }
//The one where you keep rolling until you decide to stop protected int ArcherRollMethod() { CombatManager combatManager = CombatManager.instance; combatManager.DisplayDoneRollingButton(true); List <int> rolls; //Prioritize rolling black dice int black; int regular; if (blackDiceRemaining > 0) { black = 1; regular = 0; blackDiceRemaining--; } else { black = 0; regular = 1; diceRemaining--; } if (GetMonsterKind() == MonsterKind.NotMonster) { rolls = combatManager.HeroRoll(regular, black); } else { rolls = combatManager.MonsterRoll(regular, black); } //Finished if you are out of dice if (blackDiceRemaining == 0 && diceRemaining == 0) { combatManager.DoneRolling = true; combatManager.DisplayDoneRollingButton(false); } return(strengthPoints + rolls[0]); }