- # -*- encoding: utf-8 -*-
- clr.AddReference("Wtvision.Sports.Models.Football")
- from Wtvision.Sports.Models.Football import FootballEvents
- clr.AddReference("Wtvision.Link.R3SpaceEngine")
- from Wtvision.Link import R3SpaceEngine
- from System.IO import Path, Directory
- from System.Threading.Tasks import Task
- from Wtvision.Link import R3SpaceEngine
- from Wtvision.Tools.Graphics import Tools
- from itertools import islice
- global team
- global playersNumbersIn
- global playersNumbersOut
- def externalTake(gameTeam, substitutionsList):
- global team
- global playersNumbersIn
- global playersNumbersOut
- playersIn = []
- playersOut = []
- for sub in substitutionsList:
- playersIn.append(sub["PlayerIn"])
- playersOut.append(sub["PlayerOut"])
- team = Game.HomeTeam if gameTeam == "Home" else Game.AwayTeam
- playersNumbersIn = playersIn
- playersNumbersOut = playersOut
- graph = GraphicTemplatesManager.GetGraphicByName(Script.Name)
- graphicsOnAir = IntelliflowController.GetGraphicOnAirItems(graph.Name, OutputManager.ActiveChannelOutput)
- IntelliflowController.TakeIn(graph, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Preview)
- def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
- global team
- global playersNumbersIn
- global playersNumbersOut
- if GameOnline.Clock.ActivePart.Name.ToString() == "First Half" or GameOnline.Clock.ActivePart.Name.ToString() == "First Extra Time":
- momentExecution.Message = "CANNOT TAKE THIS GRAPHIC IN FIRST HALF OR FIRST EXTRA TIME"
- momentExecution.Cancel = True
- return
- if workFlowtype.ToString() != "PreviewToProgram":
- delCount = len(playersNumbersOut)
- for sub in islice(playersNumbersOut, delCount):
- if __validationPlayers(team.InGame, sub.ToString(), "Out") == False:
- momentExecution.Message = "The following OUT number is invalid: %s" %sub.ToString()
- momentExecution.Cancel = True
- return
- delCount = len(playersNumbersIn)
- for sub in islice(playersNumbersIn, delCount):
- if __validationPlayers(team.InGame, sub.ToString(), "In") == False:
- momentExecution.Message = "The following IN number is invalid: %s" %sub.ToString()
- momentExecution.Cancel = True
- return
- playersNumbersIn = playersNumbersIn[-delCount:]
- playersNumbersOut = playersNumbersOut[-delCount:]
- def __validationPlayers(team, playerNumber, typePlayer = None):
- global playersNumbersIn
- global playersNumbersOut
- outMatchNumber = 0
- inMatchNumber = 0
- for enum, player in enumerate(team):
- if player.Number.ToString() == playerNumber.ToString():
- if typePlayer == "Out":
- playersNumbersOut.append(player)
- outMatchNumber += 1
- elif typePlayer == "In":
- playersNumbersIn.append(player)
- inMatchNumber += 1
- return True
- if outMatchNumber == 0:
- return False
- if inMatchNumber == 0:
- return False
- return False
- def __getData(graphicOnAirItem, viewBag, momentExecution):
- viewBag.Clear()
- size = len(playersNumbersOut)
- viewBag.SetString("vLines", size)
- viewBag.SetFloat("vArrowType", 2)
- viewBag.SetVisibility("vTitleVisibility", True)
- viewBag.SetTranslatedText("tTitle", "{{Half-Time Substitution}}.{{Substitution Plural}}|filter:ToUpper ")
- if GameOnline.Clock.ActivePart.Name.ToString() == "After 90 Minutes":
- viewBag.SetTranslatedText("tTitle", "{{Substitution}}.{{Substitution Plural}}|filter:ToUpper ")
- if GameOnline.Clock.ActivePart.Name.ToString() == "Extra-Time Break" or GameOnline.Clock.ActivePart.Name.ToString() == "Second Extra Time":
- viewBag.SetTranslatedText("tTitle", "{{Extra-Time Break Substitution}}.{{Substitution Plural}}|filter:ToUpper ")
- viewBag.SetTranslatedText("tInformation", "{{PLAYERS OUT}}.{{Substitution}}")
- viewBag.SetImage("lgTeamBadge", "Images/Badges/%s.png" % team.RefName)
- for enum, playerOut in enumerate(playersNumbersOut, 1):
- viewBag.SetString("tPlayerNumber%02d" % enum, playerOut.Number)
- viewBag.SetString("tPlayerFirstName%02d" % enum, "")
- viewBag.SetString("tPlayerLastName%02d" % enum, playerOut.LastName)
- if playerOut.LastName == "":
- viewBag.SetString("tPlayerLastName%02d" % enum, playerOut.NickName)
- graphicOnAirItem.ExtraData["Team"] = team
- graphicOnAirItem.ExtraData["PlayersIn"] = playersNumbersIn
- graphicOnAirItem.ExtraData["PlayersOut"] = playersNumbersOut
- def __afterProgram(graphicOnAirItem, momentExecution):
- global playersNumbersIn
- global playersNumbersOut
- graphic = GraphicTemplatesManager.GetGraphicByName("SUBSTITUTION MULTI OUT + IN HALFTIME CONTINUE")
- graphicsOnAirItem = IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput)
- IntelliflowController.TakeIn(graphic, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Preview, extraData = graphicOnAirItem.ExtraData)
Untitled
From Crimson Madrill, 3 Weeks ago, written in Plain Text, viewed 2 times.
This paste will cross the great divide in 6 Days.
URL https://paste.afonso.co/view/0424f5ca
Embed
Download Paste or View Raw
— Expand Paste to full width of browser