@@ -20,32 +20,74 @@ def __init__(self, **kwargs):
2020
2121 self .actual_round = - 1
2222
23- def add_round (self ):
23+ def add_round (self , data ):
2424
2525 teams = {}
2626 teams [self .team1_name ] = Team .from_json ({"name" : self .team1_name , "players" : {}})
2727 teams [self .team2_name ] = Team .from_json ({"name" : self .team2_name , "players" : {}})
28- self .rounds .append (Round .from_json ({"teams" : teams }))
28+ self .rounds .append (Round .from_json ({"teams" : teams , "start_time" : data [ 0 ] }))
2929
3030 self .actual_round += 1
31+ print ("###### NEW ROUND {} #######" .format (self .actual_round ))
3132
3233 def add_player (self , data ):
3334
3435 if data ["player_name" ] in self .rounds [self .actual_round ].teams [data ["team_name" ]].players :
35- print ("player already exist" )
3636 self .add_character (data )
3737 return - 1
3838 else :
3939 self .rounds [self .actual_round ].teams [data ["team_name" ]].add_player (
4040 {"name" : data ["player_name" ], "characters" : {}})
41+ print ("add player" , data ["player_name" ])
4142 self .add_character (data )
4243 return 0
4344
44-
4545 def add_character (self , data ):
4646
4747 if data ["character_name" ] in self .rounds [self .actual_round ].teams [data ["team_name" ]].players [data ["player_name" ]].characters :
48- print ("character already exist" )
4948 return - 2
5049 else :
5150 self .rounds [self .actual_round ].teams [data ["team_name" ]].players [data ["player_name" ]].add_character ({"name" : data ["character_name" ]})
51+
52+ if len (self .rounds [self .actual_round ].teams [data ["team_name" ]].players [data ["player_name" ]].characters [data ["character_name" ]].played_time ) > 0 :
53+ self .rounds [self .actual_round ].teams [data ["team_name" ]].players [data ["player_name" ]].characters [data ["character_name" ]].played_time [- 1 ]["end" ] = data ["time" ]
54+
55+ self .rounds [self .actual_round ].teams [data ["team_name" ]].players [data ["player_name" ]].characters [data ["character_name" ]].add_played_time ({"start" : data ["time" ]})
56+
57+ def add_kill (self , data ):
58+
59+ killer_data = {"time" : data [0 ], "player_victim" : data [7 ], "character_victim" : data [8 ]}
60+ victim_data = {"time" : data [0 ], "player_killer" : data [4 ], "character_killer" : data [5 ]}
61+
62+ self .create_if_player_and_caracter_not_exist (data [3 ], data [4 ], data [5 ])
63+ self .create_if_player_and_caracter_not_exist (data [6 ], data [7 ], data [8 ])
64+
65+ if not data [5 ] in self .rounds [self .actual_round ].teams [data [3 ]].players [data [4 ]].characters :
66+ self .add_character ({"time" : data [0 ], "team_name" : data [3 ], "player_name" : data [4 ], "character_name" : data [5 ]})
67+
68+ if not data [6 ] in self .rounds [self .actual_round ].teams [data [6 ]].players [data [7 ]].characters :
69+ self .add_character ({"time" : data [0 ], "team_name" : data [6 ], "player_name" : data [7 ], "character_name" : data [8 ]})
70+
71+ self .rounds [self .actual_round ].teams [data [3 ]].players [data [4 ]].characters [data [5 ]].add_kill (killer_data )
72+ self .rounds [self .actual_round ].teams [data [6 ]].players [data [7 ]].characters [data [8 ]].add_death (victim_data )
73+
74+ def add_player_stat (self , data ):
75+
76+ self .create_if_player_and_caracter_not_exist (data [4 ], data [5 ], data [6 ])
77+
78+ player_data = {"eliminations" : data [6 ], "final_blows" : data [7 ], "deaths" : data [8 ], "damage" : data [9 ],
79+ "barrier_damage" : data [10 ], "hero_damage" : data [11 ], "healing" : data [12 ], "healing_receive" : data [13 ],
80+ "self_healing" : data [14 ], "damage_taken" : data [15 ], "damage_blocked" : data [16 ], "defensive_assist" : data [17 ],
81+ "offensive_assists" : data [18 ], "ultimated_earn" : data [19 ], "ultimates_used" : data [20 ], "solo_kills" : data [23 ],
82+ "critical_hits_accuracy" : data [28 ], "weapon_accuracy" : data [37 ], "hero_time_played" : data [38 ]}
83+
84+ if player_data ["hero_time_played" ] != "0" :
85+ self .rounds [self .actual_round ].teams [data [4 ]].players [data [5 ]].characters [data [6 ]].add_character_stats (player_data )
86+
87+ def create_if_player_and_caracter_not_exist (self , team , player_name , character_name ):
88+
89+ if not player_name in self .rounds [self .actual_round ].teams [team ].players :
90+ self .add_player ({"team_name" : team , "player_name" : player_name , "character_name" : character_name , "time" : self .rounds [self .actual_round ].start_time })
91+
92+ if not character_name in self .rounds [self .actual_round ].teams [team ].players [player_name ].characters :
93+ self .add_character ({"team_name" : team , "player_name" : player_name , "character_name" : character_name , "time" : self .rounds [self .actual_round ].start_time })
0 commit comments