/// <summary> /// Run all the matches for the current game date /// </summary> /// <param name="MatchCallback"></param> public void Run(IMatchCallback MatchCallback) { MatchPlayer mp = new MatchPlayer(); WorldAdapter wa = new WorldAdapter(); FixtureAdapter fa = new FixtureAdapter(); TeamAdapter ta = new TeamAdapter(); ManagerAdapter ma = new ManagerAdapter(); foreach (Fixture f in fa.GetFixtures(wa.CurrentDate)) { mp.Fixture = f; mp.Interactive = false; for (int t = 0; t <= 1; t++) { if (ma.GetManager(ta.GetTeam(f.TeamIDs[t]).ManagerID).Human) { mp.Interactive = true; break; } } mp.MatchCallback = MatchCallback; mp.StartMatch(); } MatchCallback.MatchdayComplete(); }
public void SetupGameScreenData(GameScreenSetup dataFromUI) { if (dataFromUI.TeamData == null) { throw new Exception("TeamData is null"); } ManagerAdapter ma = new ManagerAdapter(); WorldAdapter wa = new WorldAdapter(); SetupData = dataFromUI; SetupData.ManagerData = ma.GetManager(SetupData.TeamData.ManagerID); MyTeam = (wa.CurrentManagerID == SetupData.TeamData.ManagerID); SetupData.ShowContinueButton = MyTeam; SetupData.MainButtons.Add(LangResources.CurLang.Tactics); SetupData.MainButtons.Add(LangResources.CurLang.Back); SetupData.Title1 = SetupData.TeamData.Name; SetupData.Title2 = SetupData.ManagerData.Name; UpdatePlayers(); }
public void SetupGameScreenData(GameScreenSetup dataFromUI) { if (dataFromUI.TeamData == null) { throw new Exception("TeamData is null"); } ManagerAdapter ma = new ManagerAdapter(); WorldAdapter wa = new WorldAdapter(); SetupData = dataFromUI; SetupData.ManagerData = ma.GetManager(SetupData.TeamData.ManagerID); MyTeam = (wa.CurrentManagerID == SetupData.TeamData.ManagerID); if (MyTeam) { SetupData.MainButtons.Add(LangResources.CurLang.Save); SetupData.MainButtons.Add(LangResources.CurLang.UndoChanges); } SetupData.MainButtons.Add(LangResources.CurLang.Back); SetupData.ShowContinueButton = MyTeam; SetupData.Title1 = SetupData.TeamData.Name; SetupData.Title2 = SetupData.ManagerData.Name; ctlFormation.team = SetupData.TeamData; }
/// <summary> /// Loop round all AI teams, and select a team appropriate to play the fixture. /// </summary> public void SelectTeamIfPlaying() { FixtureAdapter fa = new FixtureAdapter(); WorldAdapter wa = new WorldAdapter(); TeamAdapter ta = new TeamAdapter(); ManagerAdapter ma = new ManagerAdapter(); List <Fixture> AllFixtures = fa.GetFixtures(wa.CurrentDate); int TESTf = 0; foreach (Fixture f in AllFixtures) { TESTf++; Debug.Print("Fixture " + f.ToString()); for (int t = 0; t <= 1; t++) { Team ThisTeam = ta.GetTeam(f.TeamIDs[t]); Manager M = ma.GetManager(ThisTeam.ManagerID); if (!M.Human) { Team Opposition = ta.GetTeam(f.TeamIDs[1 - t]); PlayerAdapter pa = new PlayerAdapter(); int[,] PlayerGridPositions = new int[5, 8]; // TODO: Maybe not hard code these... for (int x = 0; x <= PlayerGridPositions.GetUpperBound(0); x++) { for (int y = 0; y <= PlayerGridPositions.GetUpperBound(1); y++) { PlayerGridPositions[x, y] = -1; } } Formation TeamFormation = new FormationAdapter().GetFormation(ThisTeam.CurrentFormation); List <AvailablePlayer> avail = GetEligiblePlayers(ThisTeam, f); foreach (Point2 point in TeamFormation.Points) { AvailablePlayer SelPlayer = FindBestPlayerForPosition(point, avail); if (SelPlayer == null) { throw new Exception("Unable to find a player for this position"); } PlayerGridPositions[point.X, point.Y] = SelPlayer.PlayerID; avail.Remove(SelPlayer); } ta.SavePlayerFormation(ThisTeam.UniqueID, TeamFormation.UniqueID, PlayerGridPositions); } } } }