from System.Threading.Tasks import Task,Parallel from System.Threading import Thread from System.IO import Path, File def __getData(graphicOnAirItem, viewBag, momentExecution,graphicOnAirItems): try: if Game.SelectedTeam.IsHomeTeam: tacticName = Tactics.HomeTeamConfig.Name tactiplayers = list(Tactics.HomeTeamConfig.TacticPlayers) else: tacticName = Tactics.AwayTeamConfig.Name tactiplayers = list(Tactics.AwayTeamConfig.TacticPlayers) tactiplayers = sorted(tactiplayers, key=lambda player: (player.GraphicPosition.Y, player.GraphicPosition.X)) if tactiplayers == []: momentExecution.Message = "Please fill the tactic Players and the tactic for the selected team and save" momentExecution.MessageType = momentExecution.MessageType.Warning momentExecution.Cancel = True return testPassed, playerNumber = duplicatesTest(tactiplayers) if not testPassed: momentExecution.Message = "DUPLICATED PLAYER ERROR PLEASE CHECK PLAYER NUMBER : %s" % playerNumber momentExecution.MessageType = momentExecution.MessageType.Warning momentExecution.Cancel = True return if tacticName.Contains("TEST TAPE"): tacticName = tacticName.Replace("TEST TAPE", "").Replace(" ", "") tacticnameSplitted = tacticName.split("-") if tacticnameSplitted == ['']: momentExecution.Message = "Please fill the tactic Name and the tactic for the selected team and save" momentExecution.MessageType = momentExecution.MessageType.Warning momentExecution.Cancel = True return if hasattr(Game.SelectedTeam.Equipment, "GkShirtAlias") and Game.SelectedTeam.Equipment.GkShirtAlias != "": viewBag.SetImage("lgGoalkeeperShirt", "Images\Shirts\%s\%s.png" % (Game.SelectedTeam.RefName, Game.SelectedTeam.Equipment.GkShirtAlias)) if hasattr(Game.SelectedTeam.Equipment, "FieldShirtAlias") and Game.SelectedTeam.Equipment.FieldShirtAlias != "": viewBag.SetImage("lgPlayersShirt", "Images\Shirts\%s\%s.png" % (Game.SelectedTeam.RefName, Game.SelectedTeam.Equipment.FieldShirtAlias)) if hasattr(Game.SelectedTeam.Equipment, "GkNumberColor") and Game.SelectedTeam.Equipment.GkNumberColor != None: GkNumberColor = "%s, %s, %s" % (Game.SelectedTeam.Equipment.GkNumberColor.R, Game.SelectedTeam.Equipment.GkNumberColor.G, Game.SelectedTeam.Equipment.GkNumberColor.B) if hasattr(Game.SelectedTeam.Equipment, "FieldNumberColor") and Game.SelectedTeam.Equipment.FieldNumberColor != None: FieldNumberColor = "%s, %s, %s" % (Game.SelectedTeam.Equipment.FieldNumberColor.R, Game.SelectedTeam.Equipment.FieldNumberColor.G, Game.SelectedTeam.Equipment.FieldNumberColor.B) viewBag.SetString("vColorGoalkeeperNumber", GkNumberColor) viewBag.SetString("vColorPlayerNumber", FieldNumberColor) line_prefixes = [1, 2, 3, 4] for i in range(len(tacticnameSplitted)): start = 1 if i == 0 else end end = start + int(tacticnameSplitted[i]) playersLine = tactiplayers[start:end] playersLine = sorted(playersLine, key=lambda player: player.GraphicPosition.X, reverse=True) for enum, player in enumerate(playersLine): viewBag.SetFloat("vPlayerAnim%02d" % (enum + start), line_prefixes[i]) for g in graphicOnAirItems: g.ContextObjects["tactiplayers"] = tactiplayers except Exception as e : print str(e) def __afterPreview(graphicOnAirItem, momentExecution,graphicOnAirItems): for g in graphicOnAirItems: for i in range(1,11): g.Scene.GoToFrame("Player%02d" % i,1000) def duplicatesTest(tactiplayers): listPlayers = [] for player in tactiplayers: if player.Player.Number in listPlayers: return False,player.Player.Number else: listPlayers.append(player.Player.Number) return True, None