// Victory Points awarded from the number of specific structure colour each neighbours constructed private static void AddVictoryNeighboursColour(Player p, Player east, Player west, CardColour c, int amount) { p.addScore(Score.VICTORY, GetVictoryNeighboursColour(east, west, c, amount)); }
// Victory Points awarded from the number of wonderstages the player has built private static void AddVictoryWonder(Player p) { p.addScore(Score.VICTORY, p.getBoard().getStagesBuilt()); }
// Victory Points awarded from the number of conflict points each neighbour has private static void AddVictoryNeighboursConflict(Player p, Player east, Player west) { p.addScore(Score.VICTORY, GetVictoryNeighboursConflict(east, west)); }
// Victory Points awarded // Through the number of specific structure colour the player has constructed private static void AddVictoryColour(Player p, CardColour c, int amount) { p.addScore(Score.VICTORY, GetVictoryColour(p, c, amount)); }
// Victory Points awarded from the number of wonderstages built from each neighbour including the player private static void AddVictoryAllWonders(Player p, Player east, Player west) { p.addScore(Score.VICTORY, GetVictoryAllWonders(p, east, west)); }
// Victory Points, Army, Science or any other generic score // This could probably be used to replace alot of generic score functions private static void AddScore(Player p, Score s, int points) { p.addScore(s, points); }
// Science Choice - player chooses which science to gain from the card at the end of the game // NOTE: Should we have this as a max function? eg. Find max of gear, tablet, compass and just add 1? private static void AddScienceChoice(Player p, int x) { int gear = p.getScoreNum(Score.GEAR); int compass = p.getScoreNum(Score.COMPASS); int tablet = p.getScoreNum(Score.TABLET); if (x == 1) { int max1 = CalculateScience((gear + 1), compass, tablet); int max2 = CalculateScience(gear, (compass + 1), tablet); int max3 = CalculateScience(gear, compass, (tablet + 1)); int maxScore = Math.Max(Math.Max(max1, max2), max3); if (maxScore == max1) p.addScore(Score.GEAR, 1); else if (maxScore == max2) p.addScore(Score.COMPASS, 1); else if (maxScore == max3) p.addScore(Score.TABLET, 1); } else if (x == 2) { int max1 = CalculateScience(gear + 2, compass, tablet); int max2 = CalculateScience(gear, compass + 2, tablet); int max3 = CalculateScience(gear, compass, tablet + 2); int max4 = CalculateScience(gear + 1, compass + 1, tablet); int max5 = CalculateScience(gear + 1, compass, tablet + 1); int max6 = CalculateScience(gear, compass + 1, tablet + 1); int maxScore = Math.Max(Math.Max(Math.Max(Math.Max(Math.Max(max1, max2), max3), max4), max5), max6); if (maxScore == max1) p.addScore(Score.GEAR, 2); else if (maxScore == max2) p.addScore(Score.COMPASS, 2); else if (maxScore == max3) p.addScore(Score.TABLET, 2); else if (maxScore == max4) { p.addScore(Score.GEAR, 1); p.addScore(Score.COMPASS, 1); } else if (maxScore == max5) { p.addScore(Score.GEAR, 1); p.addScore(Score.TABLET, 1); } else if (maxScore == max6) { p.addScore(Score.COMPASS, 1); p.addScore(Score.TABLET, 1); } } }