# -*- encoding: utf-8 -*-
import clr
clr.AddReference("System")
import System
from slidescgv5mvvm import *
import StaticLib
from Wtvision.Sports.Models.Football import FootballEvents, FootballEventAttributes, EPenaltyKickResult
from System import TimeSpan, Tuple, ValueTuple
class FormViewModel(ObservableObject):
def __init__(self, appCore, project, script):
self.appCore = appCore
self.project = project
self.script = script
auxGame = self.project.ScriptingObjects["Game"] if self.project.ScriptingObjects.ContainsKey("Game") else None
self.Game = None if not auxGame else auxGame
self.homeTeamName = ""
self.awayTeamName = ""
self.round1 = 1
self.round2 = 2
self.round3 = 3
self.round4 = 4
self.round5 = 5
self.isHomeStarting = True
self.homeGoal1IsChecked = False
self.homeGoal2IsChecked = False
self.homeGoal3IsChecked = False
self.homeGoal4IsChecked = False
self.homeGoal5IsChecked = False
self.homeMissed1IsChecked = False
self.homeMissed2IsChecked = False
self.homeMissed3IsChecked = False
self.homeMissed4IsChecked = False
self.homeMissed5IsChecked = False
self.awayGoal1IsChecked = False
self.awayGoal2IsChecked = False
self.awayGoal3IsChecked = False
self.awayGoal4IsChecked = False
self.awayGoal5IsChecked = False
self.awayMissed1IsChecked = False
self.awayMissed2IsChecked = False
self.awayMissed3IsChecked = False
self.awayMissed4IsChecked = False
self.awayMissed5IsChecked = False
self.homeGoal1ClickCommand = ScriptRelayCommand(self.script, self.HomeGoal1Action, lambda arg: True)
self.homeGoal2ClickCommand = ScriptRelayCommand(self.script, self.HomeGoal2Action, lambda arg: True)
self.homeGoal3ClickCommand = ScriptRelayCommand(self.script, self.HomeGoal3Action, lambda arg: True)
self.homeGoal4ClickCommand = ScriptRelayCommand(self.script, self.HomeGoal4Action, lambda arg: True)
self.homeGoal5ClickCommand = ScriptRelayCommand(self.script, self.HomeGoal5Action, lambda arg: True)
self.homeMissed1ClickCommand = ScriptRelayCommand(self.script, self.HomeMissed1Action, lambda arg: True)
self.homeMissed2ClickCommand = ScriptRelayCommand(self.script, self.HomeMissed2Action, lambda arg: True)
self.homeMissed3ClickCommand = ScriptRelayCommand(self.script, self.HomeMissed3Action, lambda arg: True)
self.homeMissed4ClickCommand = ScriptRelayCommand(self.script, self.HomeMissed4Action, lambda arg: True)
self.homeMissed5ClickCommand = ScriptRelayCommand(self.script, self.HomeMissed5Action, lambda arg: True)
self.awayGoal1ClickCommand = ScriptRelayCommand(self.script, self.AwayGoal1Action, lambda arg: True)
self.awayGoal2ClickCommand = ScriptRelayCommand(self.script, self.AwayGoal2Action, lambda arg: True)
self.awayGoal3ClickCommand = ScriptRelayCommand(self.script, self.AwayGoal3Action, lambda arg: True)
self.awayGoal4ClickCommand = ScriptRelayCommand(self.script, self.AwayGoal4Action, lambda arg: True)
self.awayGoal5ClickCommand = ScriptRelayCommand(self.script, self.AwayGoal5Action, lambda arg: True)
self.awayMissed1ClickCommand = ScriptRelayCommand(self.script, self.AwayMissed1Action, lambda arg: True)
self.awayMissed2ClickCommand = ScriptRelayCommand(self.script, self.AwayMissed2Action, lambda arg: True)
self.awayMissed3ClickCommand = ScriptRelayCommand(self.script, self.AwayMissed3Action, lambda arg: True)
self.awayMissed4ClickCommand = ScriptRelayCommand(self.script, self.AwayMissed4Action, lambda arg: True)
self.awayMissed5ClickCommand = ScriptRelayCommand(self.script, self.AwayMissed5Action, lambda arg: True)
self.newRoundClickCommand = ScriptRelayCommand(self.script, self.NewRoundAction, lambda arg: True)
self.resetClickCommand = ScriptRelayCommand(self.script, self.ResetAction, lambda arg: True)
self.showClickCommand = ScriptRelayCommand(self.script, self.ShowAction, lambda arg: True)
self.outClickCommand = ScriptRelayCommand(self.script, self.OutAction, lambda arg: True)
self.updateClickCommand = ScriptRelayCommand(self.script, self.UpdateAction, lambda arg: True)
self.Penalties = []
if self.Game:
self.loadPenaltyEvents()
def SetGame(self, game):
try:
self.Game = game
except Exception as e:
print "SetGame: %s" %str(e)
##############################################################################################
@property
def HomeTeamName(self):
return self.homeTeamName
@HomeTeamName.setter
def HomeTeamName(self, value):
self.homeTeamName = value
self.OnPropertyChanged("HomeTeamName")
@property
def AwayTeamName(self):
return self.awayTeamName
@AwayTeamName.setter
def AwayTeamName(self, value):
self.awayTeamName = value
self.OnPropertyChanged("AwayTeamName")
@property
def Round1(self):
return self.round1
@Round1.setter
def Round1(self, value):
self.round1= value
self.OnPropertyChanged("Round1")
@property
def Round2(self):
return self.round2
@Round2.setter
def Round2(self, value):
self.round2= value
self.OnPropertyChanged("Round2")
@property
def Round3(self):
return self.round3
@Round3.setter
def Round3(self, value):
self.round3= value
self.OnPropertyChanged("Round3")
@property
def Round4(self):
return self.round4
@Round4.setter
def Round4(self, value):
self.round4= value
self.OnPropertyChanged("Round4")
@property
def Round5(self):
return self.round5
@Round5.setter
def Round5(self, value):
self.round5= value
self.OnPropertyChanged("Round5")
@property
def IsHomeStarting(self):
return self.isHomeStarting
@IsHomeStarting.setter
def IsHomeStarting(self, value):
self.isHomeStarting = value
self.OnPropertyChanged("IsHomeStarting")
##############################################################################################
@property
def HomeGoal1IsChecked(self):
return self.homeGoal1IsChecked
@HomeGoal1IsChecked.setter
def HomeGoal1IsChecked(self, value):
self.homeGoal1IsChecked = value
self.OnPropertyChanged("HomeGoal1IsChecked")
@property
def HomeGoal2IsChecked(self):
return self.homeGoal2IsChecked
@HomeGoal2IsChecked.setter
def HomeGoal2IsChecked(self, value):
self.homeGoal2IsChecked = value
self.OnPropertyChanged("HomeGoal2IsChecked")
@property
def HomeGoal3IsChecked(self):
return self.homeGoal3IsChecked
@HomeGoal3IsChecked.setter
def HomeGoal3IsChecked(self, value):
self.homeGoal3IsChecked = value
self.OnPropertyChanged("HomeGoal3IsChecked")
@property
def HomeGoal4IsChecked(self):
return self.homeGoal4IsChecked
@HomeGoal4IsChecked.setter
def HomeGoal4IsChecked(self, value):
self.homeGoal4IsChecked = value
self.OnPropertyChanged("HomeGoal4IsChecked")
@property
def HomeGoal5IsChecked(self):
return self.homeGoal5IsChecked
@HomeGoal5IsChecked.setter
def HomeGoal5IsChecked(self, value):
self.homeGoal5IsChecked = value
self.OnPropertyChanged("HomeGoal5IsChecked")
##############################################################################################
@property
def AwayGoal1IsChecked(self):
return self.awayGoal1IsChecked
@AwayGoal1IsChecked.setter
def AwayGoal1IsChecked(self, value):
self.awayGoal1IsChecked = value
self.OnPropertyChanged("AwayGoal1IsChecked")
@property
def AwayGoal2IsChecked(self):
return self.awayGoal2IsChecked
@AwayGoal2IsChecked.setter
def AwayGoal2IsChecked(self, value):
self.awayGoal2IsChecked = value
self.OnPropertyChanged("AwayGoal2IsChecked")
@property
def AwayGoal3IsChecked(self):
return self.awayGoal3IsChecked
@AwayGoal3IsChecked.setter
def AwayGoal3IsChecked(self, value):
self.awayGoal3IsChecked = value
self.OnPropertyChanged("AwayGoal3IsChecked")
@property
def AwayGoal4IsChecked(self):
return self.awayGoal4IsChecked
@AwayGoal4IsChecked.setter
def AwayGoal4IsChecked(self, value):
self.awayGoal4IsChecked = value
self.OnPropertyChanged("AwayGoal4IsChecked")
@property
def AwayGoal5IsChecked(self):
return self.awayGoal5IsChecked
@AwayGoal5IsChecked.setter
def AwayGoal5IsChecked(self, value):
self.awayGoal5IsChecked = value
self.OnPropertyChanged("AwayGoal5IsChecked")
##############################################################################################
@property
def HomeMissed1IsChecked(self):
return self.homeMissed1IsChecked
@HomeMissed1IsChecked.setter
def HomeMissed1IsChecked(self, value):
self.homeMissed1IsChecked = value
self.OnPropertyChanged("HomeMissed1IsChecked")
@property
def HomeMissed2IsChecked(self):
return self.homeMissed2IsChecked
@HomeMissed2IsChecked.setter
def HomeMissed2IsChecked(self, value):
self.homeMissed2IsChecked = value
self.OnPropertyChanged("HomeMissed2IsChecked")
@property
def HomeMissed3IsChecked(self):
return self.homeMissed3IsChecked
@HomeMissed3IsChecked.setter
def HomeMissed3IsChecked(self, value):
self.homeMissed3IsChecked = value
self.OnPropertyChanged("HomeMissed3IsChecked")
@property
def HomeMissed4IsChecked(self):
return self.homeMissed4IsChecked
@HomeMissed4IsChecked.setter
def HomeMissed4IsChecked(self, value):
self.homeMissed4IsChecked = value
self.OnPropertyChanged("HomeMissed4IsChecked")
@property
def HomeMissed5IsChecked(self):
return self.homeMissed5IsChecked
@HomeMissed5IsChecked.setter
def HomeMissed5IsChecked(self, value):
self.homeMissed5IsChecked = value
self.OnPropertyChanged("HomeMissed5IsChecked")
##############################################################################################
@property
def AwayMissed1IsChecked(self):
return self.awayMissed1IsChecked
@AwayMissed1IsChecked.setter
def AwayMissed1IsChecked(self, value):
self.awayMissed1IsChecked = value
self.OnPropertyChanged("AwayMissed1IsChecked")
@property
def AwayMissed2IsChecked(self):
return self.awayMissed2IsChecked
@AwayMissed2IsChecked.setter
def AwayMissed2IsChecked(self, value):
self.awayMissed2IsChecked = value
self.OnPropertyChanged("AwayMissed2IsChecked")
@property
def AwayMissed3IsChecked(self):
return self.awayMissed3IsChecked
@AwayMissed3IsChecked.setter
def AwayMissed3IsChecked(self, value):
self.awayMissed3IsChecked = value
self.OnPropertyChanged("AwayMissed3IsChecked")
@property
def AwayMissed4IsChecked(self):
return self.awayMissed4IsChecked
@AwayMissed4IsChecked.setter
def AwayMissed4IsChecked(self, value):
self.awayMissed4IsChecked = value
self.OnPropertyChanged("AwayMissed4IsChecked")
@property
def AwayMissed5IsChecked(self):
return self.awayMissed5IsChecked
@AwayMissed5IsChecked.setter
def AwayMissed5IsChecked(self, value):
self.awayMissed5IsChecked = value
self.OnPropertyChanged("AwayMissed5IsChecked")
##############################################################################################
@property
def HomeGoal1ClickCommand(self):
return self.homeGoal1ClickCommand
def HomeGoal1Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.HomeTeam, "Home", "1", args2[0])
except Exception as e:
print "HomeGoal1Action: %s" %str(e)
@property
def HomeGoal2ClickCommand(self):
return self.homeGoal2ClickCommand
def HomeGoal2Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.HomeTeam, "Home", "2", args2[0])
except Exception as e:
print "HomeGoal2Action: %s" %str(e)
@property
def HomeGoal3ClickCommand(self):
return self.homeGoal3ClickCommand
def HomeGoal3Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.HomeTeam, "Home", "3", args2[0])
except Exception as e:
print "HomeGoal3Action: %s" %str(e)
@property
def HomeGoal4ClickCommand(self):
return self.homeGoal4ClickCommand
def HomeGoal4Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.HomeTeam, "Home", "4", args2[0])
except Exception as e:
print "HomeGoal4Action: %s" %str(e)
@property
def HomeGoal5ClickCommand(self):
return self.homeGoal5ClickCommand
def HomeGoal5Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.HomeTeam, "Home", "5", args2[0])
except Exception as e:
print "HomeGoal5Action: %s" %str(e)
##############################################################################################
@property
def AwayGoal1ClickCommand(self):
return self.awayGoal1ClickCommand
def AwayGoal1Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.AwayTeam, "Away", "1", args2[0])
except Exception as e:
print "AwayGoal1Action: %s" %str(e)
@property
def AwayGoal2ClickCommand(self):
return self.awayGoal2ClickCommand
def AwayGoal2Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.AwayTeam, "Away", "2", args2[0])
except Exception as e:
print "AwayGoa21Action: %s" %str(e)
@property
def AwayGoal3ClickCommand(self):
return self.awayGoal3ClickCommand
def AwayGoal3Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.AwayTeam, "Away", "3", args2[0])
except Exception as e:
print "AwayGoal3Action: %s" %str(e)
@property
def AwayGoal4ClickCommand(self):
return self.awayGoal4ClickCommand
def AwayGoal4Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.AwayTeam, "Away", "4", args2[0])
except Exception as e:
print "AwayGoal4Action: %s" %str(e)
@property
def AwayGoal5ClickCommand(self):
return self.awayGoal5ClickCommand
def AwayGoal5Action(self, param=None, args1 = None, args2 = None):
try:
self.__GoalAction(self.Game.AwayTeam, "Away", "5", args2[0])
except Exception as e:
print "AwayGoal5Action: %s" %str(e)
##############################################################################################
@property
def HomeMissed1ClickCommand(self):
return self.homeMissed1ClickCommand
def HomeMissed1Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.HomeTeam, "Home", "1", args2[0])
except Exception as e:
print "HomeMissed1Action: %s" %str(e)
@property
def HomeMissed2ClickCommand(self):
return self.homeMissed2ClickCommand
def HomeMissed2Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.HomeTeam, "Home", "2", args2[0])
except Exception as e:
print "HomeMissed2Action: %s" %str(e)
@property
def HomeMissed3ClickCommand(self):
return self.homeMissed3ClickCommand
def HomeMissed3Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.HomeTeam, "Home", "3", args2[0])
except Exception as e:
print "HomeMissed3Action: %s" %str(e)
@property
def HomeMissed4ClickCommand(self):
return self.homeMissed4ClickCommand
def HomeMissed4Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.HomeTeam, "Home", "4", args2[0])
except Exception as e:
print "HomeMissed4Action: %s" %str(e)
@property
def HomeMissed5ClickCommand(self):
return self.homeMissed5ClickCommand
def HomeMissed5Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.HomeTeam, "Home", "5", args2[0])
except Exception as e:
print "HomeMissed5Action: %s" %str(e)
##############################################################################################
@property
def AwayMissed1ClickCommand(self):
return self.awayMissed1ClickCommand
def AwayMissed1Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.AwayTeam, "Away", "1", args2[0])
except Exception as e:
print "AwayMissed1Action: %s" %str(e)
@property
def AwayMissed2ClickCommand(self):
return self.awayMissed2ClickCommand
def AwayMissed2Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.AwayTeam, "Away", "2", args2[0])
except Exception as e:
print "AwayMissed2Action: %s" %str(e)
@property
def AwayMissed3ClickCommand(self):
return self.awayMissed3ClickCommand
def AwayMissed3Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.AwayTeam, "Away", "3", args2[0])
except Exception as e:
print "AwayMissed3Action: %s" %str(e)
@property
def AwayMissed4ClickCommand(self):
return self.awayMissed4ClickCommand
def AwayMissed4Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.AwayTeam, "Away", "4", args2[0])
except Exception as e:
print "AwayMissed4Action: %s" %str(e)
@property
def AwayMissed5ClickCommand(self):
return self.awayMissed5ClickCommand
def AwayMissed5Action(self, param=None, args1 = None, args2 = None):
try:
self.__MissedAction(self.Game.AwayTeam, "Away", "5", args2[0])
except Exception as e:
print "AwayMissed5Action: %s" %str(e)
##############################################################################################
@property
def NewRoundClickCommand(self):
return self.newRoundClickCommand
def NewRoundAction(self, param=None, args1 = None, args2 = None):
try:
for i in range(5, 0, -1):
if not ((getattr(self, "HomeGoal%sIsChecked" %i) or getattr(self, "HomeMissed%sIsChecked" %i)) and (getattr(self, "AwayGoal%sIsChecked" %i) or getattr(self, "AwayMissed%sIsChecked" %i))):
self.appCore.StatusManager.Add("Fill all rounds before create a new one!")
return False
if not self.appCore.UserIteraction.ShowMessageBoxYesNo("NEW ROUND", "CREATE NEW ROUND?").ToString() == "Yes": return
for i in range(1, 6):
setattr(self, "Round%s" %i, (getattr(self, "Round%s" %i) + 5))
for i in range(5, 0, -1):
setattr(self, "HomeGoal%sIsChecked" %i, False)
setattr(self, "HomeMissed%sIsChecked" %i, False)
setattr(self, "AwayGoal%sIsChecked" %i, False)
setattr(self, "AwayMissed%sIsChecked" %i, False)
except Exception as e:
print "NewRoundAction: %s" %str(e)
@property
def ResetClickCommand(self):
return self.resetClickCommand
def ResetAction(self, param=None, args1 = None, args2 = None):
try:
if not self.appCore.UserIteraction.ShowMessageBoxYesNo("RESET", "RESET PENALTYS!\n\nCONTINUE ANYWAY?").ToString() == "Yes": return
configurations = {
"Round1": 1,
"Round2": 2,
"Round3": 3,
"Round4": 4,
"Round5": 5,
"HomeGoal1IsChecked": False,
"HomeGoal2IsChecked": False,
"HomeGoal3IsChecked": False,
"HomeGoal4IsChecked": False,
"HomeGoal5IsChecked": False,
"HomeMissed1IsChecked": False,
"HomeMissed2IsChecked": False,
"HomeMissed3IsChecked": False,
"HomeMissed4IsChecked": False,
"HomeMissed5IsChecked": False,
"AwayGoal1IsChecked": False,
"AwayGoal2IsChecked": False,
"AwayGoal3IsChecked": False,
"AwayGoal4IsChecked": False,
"AwayGoal5IsChecked": False,
"AwayMissed1IsChecked": False,
"AwayMissed2IsChecked": False,
"AwayMissed3IsChecked": False,
"AwayMissed4IsChecked": False,
"AwayMissed5IsChecked": False,
}
penaltyEvents = filter(lambda event: event.Event and event.Name == "Penalty", self.Game.OrderedGameEvents)
self.Game.DeleteGameEvents(penaltyEvents)
for configuration in configurations:
setattr(self, configuration, configurations[configuration])
graphic = GraphicTemplatesManager.GetGraphicByName("PENALTIES")
if not graphic: return
if not IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput):return
Project.ExecuteScript(graphic.Script, "__updatePenalties")
except Exception as e:
print "ResetAction: %s" %str(e)
@property
def ShowClickCommand(self):
return self.showClickCommand
def ShowAction(self, param=None, args1 = None, args2 = None):
graphic = GraphicTemplatesManager.GetGraphicByName("PENALTIES")
if not graphic: return
if IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput):
self.appCore.StatusManager.Add("Graphic is OnAir!")
return
IntelliflowController.TakeIn(graphic, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Preview if graphic.Preview else IntelliflowController.EWorkflowType.Program)
@property
def UpdateClickCommand(self):
return self.updateClickCommand
def UpdateAction(self, param=None, args1 = None, args2 = None):
graphic = GraphicTemplatesManager.GetGraphicByName("PENALTIES")
if not graphic: return
if not IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput):return
Project.ExecuteScript(graphic.Script, "__updatePenalties")
@property
def OutClickCommand(self):
return self.outClickCommand
def OutAction(self, param=None, args1 = None, args2 = None):
graphic = GraphicTemplatesManager.GetGraphicByName("PENALTIES")
if not graphic: return
IntelliflowController.TakeOut(graphic, OutputManager.ActiveChannelOutput)
def validateShootouts(self, number):
for i in range(1, number):
if not getattr(self, "homeGoal%sIsChecked" %i) and not getattr(self, "homeMissed%sIsChecked" %i):
self.appCore.StatusManager.Add("Round %s for Home Team is not valid!" %i)
return False
if not getattr(self, "awayGoal%sIsChecked" %i) and not getattr(self, "awayMissed%sIsChecked" %i):
self.appCore.StatusManager.Add("Round %s for Away Team is not valid!" %i)
return False
return True
def loadPenaltyEvents(self):
try:
event = FootballEvents.Penalty
homeTeamPenalties = 1
awayTeamPenalties = 1
orderedGameEvents = self.Game.OrderedGameEvents
homeGameEvents = filter(lambda item: item.Event == event and item.Team == self.Game.HomeTeam, list(orderedGameEvents))
awayGameEvents = filter(lambda item: item.Event == event and item.Team == self.Game.AwayTeam, list(orderedGameEvents))
homeRes = int(homeGameEvents.Count % 5) if int(homeGameEvents.Count % 5) != 0 else 5
awayRes = int(awayGameEvents.Count % 5) if int(awayGameEvents.Count % 5) != 0 else 5
for gameEvent in homeGameEvents[-homeRes:]:
eventAttr = next((item for item in list(gameEvent.Attributes) if (item.Name == FootballEventAttributes.PenaltyKickResult.Name)), None)
if eventAttr:
if eventAttr.Value == EPenaltyKickResult.Goal.ToString():
setattr(self, "HomeGoal%sIsChecked"%homeTeamPenalties, True)
elif eventAttr.Value == EPenaltyKickResult.Other.ToString():
setattr(self, "HomeMissed%sIsChecked"%homeTeamPenalties, True)
homeTeamPenalties += 1
for gameEvent in awayGameEvents[-awayRes:]:
eventAttr = next((item for item in list(gameEvent.Attributes) if (item.Name == FootballEventAttributes.PenaltyKickResult.Name)), None)
if eventAttr:
if eventAttr.Value == EPenaltyKickResult.Goal.ToString():
setattr(self, "AwayGoal%sIsChecked"%awayTeamPenalties, True)
elif eventAttr.Value == EPenaltyKickResult.Other.ToString():
setattr(self, "AwayMissed%sIsChecked"%awayTeamPenalties, True)
awayTeamPenalties += 1
maxEvents = max(homeGameEvents.Count, awayGameEvents.Count)
round = (int(maxEvents / 5) + 1) * 5
for enum, i in enumerate(reversed(range(round, round - 5, -1))):
setattr(self, "Round%s" % (enum+1), i)
except Exception as e:
print "loadPenaltyEvents: %s" %str(e)
def __GoalAction(self, team, propertyTeam, propertyNumber, eventNumber):
try:
print propertyNumber
print self.isHomeStarting
print team.IsHomeTeam
if propertyNumber == 1 and (self.isHomeStarting == True) and not team.IsHomeTeam:
self.appCore.StatusManager.Add("Home team is starting!")
isChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
if not self.Game.Clock.ActivePart.Number == 9:
self.appCore.StatusManager.Add("You're not on Penalties part!")
isChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
if not self.validateShootouts(int(propertyNumber)):
isChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
event = FootballEvents.Penalty
gamePart = self.Game.Clock.ActivePart.Number
time = TimeSpan(0, int(eventNumber), 0)
goalChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
missedChecked = getattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber))
if goalChecked: #creates a new penalty event
if missedChecked:
setattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber), False)
orderedGameEvents = self.Game.OrderedGameEvents
gameEvents = filter(lambda item: item.Event == event and item.Team == team, list(orderedGameEvents))
gameEvent = gameEvents[int(eventNumber) - 1]
eventAttr = next((item for item in list(gameEvent.Attributes) if (item.Name == FootballEventAttributes.PenaltyKickResult.Name)), None)
if eventAttr and eventAttr.Value == EPenaltyKickResult.Other.ToString():
eventAttr.Value = EPenaltyKickResult.Goal.ToString()
self.Game.UpdateGameEvent(gameEvent)
else:
penaltyValueTuple = ValueTuple.Create(FootballEventAttributes.PenaltyKickResult.Name, EPenaltyKickResult.Goal.ToString())
gameEvent = self.Game.AddEvent(event, gamePart, time, team, None, None, None, None, [penaltyValueTuple])
else: #delete penalty event
orderedGameEvents = self.Game.OrderedGameEvents
#gameEvent = next((item for item in reversed(list(orderedGameEvents)) if (item.Event == event and item.Team == team)), None)
gameEvents = filter(lambda item: item.Event == event and item.Team == team, list(orderedGameEvents))
gameEvent = gameEvents[int(eventNumber) - 1]
if gameEvent:
self.Game.DeleteGameEvent(gameEvent)
except Exception as e:
print "__GoalAction: %s" %str(e)
def __MissedAction(self, team, propertyTeam, propertyNumber, eventNumber):
try:
if propertyNumber == 1 and self.isHomeStarting == True and not team.IsHomeTeam:
self.appCore.StatusManager.Add("Home team is starting!")
isChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
if not self.Game.Clock.ActivePart.Number == 9:
self.appCore.StatusManager.Add("You're not on Penalties part!")
isChecked = getattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
if not self.validateShootouts(int(propertyNumber)):
isChecked = getattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber))
setattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber), False if isChecked else True)
return
event = FootballEvents.Penalty
gamePart = self.Game.Clock.ActivePart.Number
time = TimeSpan(0, int(eventNumber), 0)
goalChecked = getattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber))
missedChecked = getattr(self, "%sMissed%sIsChecked"%(propertyTeam, propertyNumber))
if missedChecked:
if goalChecked:
setattr(self, "%sGoal%sIsChecked"%(propertyTeam, propertyNumber), False)
orderedGameEvents = self.Game.OrderedGameEvents
gameEvents = filter(lambda item: item.Event == event and item.Team == team,list(orderedGameEvents))
gameEvent = gameEvents[int(eventNumber) - 1]
eventAttr = next((item for item in list(gameEvent.Attributes) if (item.Name == FootballEventAttributes.PenaltyKickResult.Name)), None)
if eventAttr and eventAttr.Value == EPenaltyKickResult.Goal.ToString():
eventAttr.Value = EPenaltyKickResult.Other.ToString()
self.Game.UpdateGameEvent(gameEvent)
else:
penaltyValueTuple = ValueTuple.Create(FootballEventAttributes.PenaltyKickResult.Name, EPenaltyKickResult.Other.ToString())
gameEvent = self.Game.AddEvent(event, gamePart, time, team, None, None, None, None, [penaltyValueTuple])
else: #delete penalty event
orderedGameEvents = self.Game.OrderedGameEvents
gameEvents = filter(lambda item: item.Event == event and item.Team == team, list(orderedGameEvents))
gameEvent = gameEvents[int(eventNumber) - 1]
if gameEvent:
self.Game.DeleteGameEvent(gameEvent)
except Exception as e:
print "__MissedAction: %s" %str(e)