private static void simTraining(ref DataPool worldData) { for (int index = 0; index < worldData.Managers.Count; index++) { ManagerProtocol.executeWeek(ref worldData, index); } }
public static void SimWholeTournament(ref DataPool worldData, int townIndex) { Dictionary <int, List <Vector2Int> > schedule = worldData.getTournamentFromTownIndex(townIndex).getSchedule(); List <int> managerIndexes = worldData.getTournamentFromTownIndex(townIndex).getManagerIndexes(); foreach (int round in schedule.Keys) { foreach (Vector2Int match in schedule[round]) { if (match.x != -1 && match.y != -1) { float ovr1 = worldData.Boxers[worldData.Managers[managerIndexes[match.x]].BoxerIndex].getOverall(); float ovr2 = worldData.Boxers[worldData.Managers[managerIndexes[match.y]].BoxerIndex].getOverall(); float ovr1Chance = (ovr1 / (ovr1 + ovr2)) * 100.0f; float chance = generateRandomInt(0, 100); if (chance < ovr1Chance) { worldData.getTournamentFromTownIndex(townIndex).getTournamentResults()[managerIndexes[match.x]].Record.addWin( worldData.Managers[managerIndexes[match.y]].BoxerELO); worldData.getTournamentFromTownIndex(townIndex).getTournamentResults()[managerIndexes[match.y]].Record.addLoss( worldData.Managers[managerIndexes[match.x]].BoxerELO); } else { worldData.getTournamentFromTownIndex(townIndex).getTournamentResults()[managerIndexes[match.x]].Record.addLoss( worldData.Managers[managerIndexes[match.y]].BoxerELO); worldData.getTournamentFromTownIndex(townIndex).getTournamentResults()[managerIndexes[match.y]].Record.addWin( worldData.Managers[managerIndexes[match.x]].BoxerELO); } } } } worldData.getTournamentFromTownIndex(townIndex).rankResults(); managerIndexes = worldData.getTournamentFromTownIndex(townIndex).getManagerIndexes(); foreach (int index in worldData.getTournamentFromTownIndex(townIndex).getTournamentResults().Keys) { ManagerProtocol.completeTournament(ref worldData, index, worldData.getTournamentFromTownIndex(townIndex).getTournamentResults()[index]); } }
void Start() { worldData = new DataPool(); WorldBuilderProtocol.createWorld(ref worldData, 220, 220); Manager manager = new Manager("Capn", "AT", 0, 155.0f, BoxerClass.Type.Bullseye); worldData.Managers.Add(manager); List <Boxer> boxers = WorldBuilderProtocol.generateBoxerRecruits(ref worldData, manager.TownIndex, 0); int bIndex = 0; float max = 0.0f; for (int i = 0; i < boxers.Count; i++) { float boxerEval = EvaluationProtocol.evaluateBoxer(boxers [i], worldData.Managers [0].Preference); Debug.Log(boxerEval); boxers [i].logBoxerStats(); if (boxerEval > max) { max = boxerEval; bIndex = i; } } worldData.Boxers.Add(boxers [bIndex]); manager.recruitBoxer(worldData.Boxers.Count - 1); for (int i = 0; i < 5; i++) { Debug.Log("Year " + (i + 1)); for (int j = 0; j < 48; j++) { ManagerProtocol.executeWeek(ref worldData, 0); worldData.Boxers [manager.BoxerIndex].logBoxerStats(); } } }
private static void createManagerBasedOnTown(ref DataPool worldData, int townIndex, int regionIndex) { for (int j = 0; j < 2; j++) { List <BoxerClass.Type> typeList = BoxerClass.getTypeList(); Manager manager = new Manager( worldData.generateFirstName(), worldData.generateLastName(), townIndex, generateRandomInt(145, 225), typeList[generateRandomInt(0, typeList.Count - 1)]); manager.Record.setELO(getEloFromRegion(worldData.Towns[townIndex].RegionLevel)); manager.setupHomebase(ref worldData, true); worldData.Managers.Add(manager); List <Boxer> boxers = WorldBuilderProtocol.generateBoxerRecruits(ref worldData, manager.TownIndex, manager.Record.ELO); int bIndex = 0; float max = 0.0f; for (int i = 0; i < boxers.Count; i++) { float boxerEval = EvaluationProtocol.evaluateBoxer(boxers[i], worldData.Managers[worldData.Managers.Count - 1].Preference); if (boxerEval > max) { max = boxerEval; bIndex = i; } } TournamentProtocol.Level boxerLevel = (TournamentProtocol.Level)generateRandomInt(0, (int)worldData.Towns[townIndex].RegionLevel); worldData.Boxers.Add(boxers[bIndex]); manager.recruitBoxer(worldData.Boxers.Count - 1); ManagerProtocol.updateELO(ref worldData, worldData.Managers.Count - 1); manager.upgradeFacilities(ref worldData); manager.setRank(boxerLevel); ageAndDevelop(ref worldData, worldData.Boxers.Count - 1, boxerLevel); worldData.Regions[regionIndex].addManager(worldData.Managers.Count - 1); } }
private void weeklyTest() { thisWeeksTournaments = new List <int>(); int index = 0; foreach (Town town in worldData.Towns) { if (town.Tournament.TournamentDate.sameWeek(worldData.Calendar.GetCalendarDate())) { thisWeeksTournaments.Add(index); } index++; } if ((worldData.Calendar.getWeekOfYear() - 1) % 8 == 0) { foreach (Capitol c in worldData.Capitols) { foreach (TournamentProtocol.Level level in c.Quarterlies.Keys) { List <int> recruits = recruit(level, c.Location, true); for (int i = 0; i < recruits.Count; i++) { if (c.Quarterlies[level].spaceLeft()) { c.Quarterlies[level].addContestant(recruits[i]); worldData.Managers[recruits[i]].attendTournament(); } } } } } foreach (int tIndex in thisWeeksTournaments) { List <int> recruits = recruit(worldData.Towns[tIndex].Tournament.Level, worldData.Towns[tIndex].Location, false); for (int i = 0; i < recruits.Count; i++) { if (worldData.Towns[tIndex].Tournament.spaceLeft()) { worldData.Towns[tIndex].Tournament.addContestant(recruits[i]); worldData.Managers[recruits[i]].attendTournament(); } else { worldData.Managers[recruits[i]].bumpTournamentPriority(); } } } for (int i = 0; i < worldData.Managers.Count; i++) { ManagerProtocol.executeWeek(ref worldData, i); } if ((worldData.Calendar.getWeekOfYear() - 1) % 8 == 0) { foreach (Capitol c in worldData.Capitols) { foreach (TournamentProtocol.Level level in c.Quarterlies.Keys) { if (c.Quarterlies[level].Attendees > 2) { //Debug.Log(c.Location.ToString() + " - " + c.Quarterlies[level].getDetails()); c.Quarterlies[level].scheduleTournament(); //c.Quarterlies[level].SimWholeTournament(ref worldData); //c.Quarterlies[level].logResults(ref worldData); } else { //c.Quarterlies[level].cancelTournament(ref worldData); } c.Quarterlies[level].refreshTournament(true); } } //worldData.updateBoxerDistribution(); //distribution(); } foreach (int tIndex in thisWeeksTournaments) { if (worldData.Towns[tIndex].Tournament.Attendees > 2) { //Debug.Log(worldData.Towns[tIndex].Location.ToString() + " - " + worldData.Towns[tIndex].Tournament.getDetails()); worldData.Towns[tIndex].Tournament.scheduleTournament(); //worldData.Towns[tIndex].Tournament.SimWholeTournament(ref worldData); } else { //worldData.Towns[tIndex].Tournament.cancelTournament(ref worldData); } worldData.Towns[tIndex].Tournament.refreshTournament(false); } }
public static void simWholeQualifier(ref DataPool worldData, int capitolIndex, Level rank) { Dictionary <int, List <Vector2Int> > schedule = worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getSchedule(); List <int> managerIndexes = worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getManagerIndexes(); foreach (int round in schedule.Keys) { foreach (Vector2Int match in schedule[round]) { if (match.x != -1 && match.y != -1) { float ovr1 = worldData.Boxers[worldData.Managers[managerIndexes[match.x]].BoxerIndex].getOverall(); float ovr2 = worldData.Boxers[worldData.Managers[managerIndexes[match.y]].BoxerIndex].getOverall(); float ovr1Chance = (ovr1 / (ovr1 + ovr2)) * 100.0f; float chance = generateRandomInt(0, 100); if (chance < ovr1Chance) { worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[match.x]].Record.addWin( worldData.Managers[managerIndexes[match.y]].BoxerELO); worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[match.y]].Record.addLoss( worldData.Managers[managerIndexes[match.x]].BoxerELO); } else { worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[match.x]].Record.addLoss( worldData.Managers[managerIndexes[match.y]].BoxerELO); worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[match.y]].Record.addWin( worldData.Managers[managerIndexes[match.x]].BoxerELO); } } } } worldData.getTournamentFromCapitolIndex(capitolIndex, rank).rankResults(); managerIndexes = worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getManagerIndexes(); worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[0]].wonQuarterly(); Level level = worldData.getTournamentFromCapitolIndex(capitolIndex, rank).Level; float boxerPercentage = (float)worldData.Distribution[rank] / worldData.Managers.Count; if (boxerPercentage > 0.1f) { worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[1]].wonQuarterly(); if (boxerPercentage > 0.2f && managerIndexes.Count > 2) { worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[2]].wonQuarterly(); if (boxerPercentage > 0.3f && managerIndexes.Count > 3) { //worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[3]].wonQuarterly(); if (boxerPercentage > 0.4f && managerIndexes.Count > 4) { //worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[4]].wonQuarterly(); if (boxerPercentage > 0.5f && managerIndexes.Count > 5) { //worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[managerIndexes[5]].wonQuarterly(); } } } } } foreach (int index in worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults().Keys) { ManagerProtocol.completeTournament(ref worldData, index, worldData.getTournamentFromCapitolIndex(capitolIndex, rank).getTournamentResults()[index]); } }