-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathPlayer.py
109 lines (97 loc) · 4.57 KB
/
Player.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
from dictionnaries import *
class Player:
def __init__(self):
self.position: int = 0
self.tyre_wear = []
self.tyres = 0
self.warnings = 0
self.ERS_mode = -1
self.ERS_pourcentage = 0
self.fuelRemainingLaps = 0
self.fuelMix = 0
self.numero = 0
self.teamId = -1
self.pit: int = 0
self.FrontLeftWingDamage = 0
self.FrontRightWingDamage = 0
self.tyres_temp_inner = [0, 0, 0, 0]
self.tyres_temp_surface = [0, 0, 0, 0]
self.tyresAgeLaps = 0
self.lastLapTime: float = 0
self.currentSectors = [0] * 3
self.lastLapSectors = [0] * 3
self.bestLapSectors = [0] * 3
self.worldPositionX = 0
self.worldPositionZ = 0
self.penalties = 0
self.driverStatus = 0
self.bestLapTime = 0
self.drs: int = 0
self.yourTelemetry: int = 0
self.speed: int = 0
self.rearWingDamage = 0
self.floorDamage = 0
self.diffuserDamage = 0
self.sidepodDamage = 0
self.name = " "
self.S200_reached = True
self.currentLapTime = 0
self.setup_array = []
self.oval = None
self.Xmove = 0
self.Zmove = 0
self.etiquette = ""
self.aiControlled = -1
self.hasRetired = False
self.speed_trap = 0
self.delta_to_leader = 0
self.currentLapInvalid = 1
def __str__(self):
return self.name + str(self.position)
def printing(self, buttonId, liste_joueurs, session):
if buttonId == 0: # Menu principal
if session in [5, 6, 7, 8, 9, 13]: # Qualif
return (
f"P{self.position}, {self.name} Lap :{conversion(self.currentLapTime, 2)} {ERS_dictionary[self.ERS_mode]},"
f" num = {self.numero} Last lap : {conversion(self.lastLapTime, 2)}"
f" Fastest lap : {conversion(self.bestLapTime, 2)} {pit_dictionary[self.pit]}")
else: #Course
return f"P{self.position}, {self.name} {self.tyresAgeLaps} tours " \
f"Gap :{'%.3f'%(self.delta_to_leader/1000)} {self.ERS_pourcentage}% {ERS_dictionary[self.ERS_mode]} " \
f"Warnings = {self.warnings} num = {self.numero} {pit_dictionary[self.pit]} {DRS_dict[self.drs]} "
elif buttonId == 1: # Dégâts
return (f"P{self.position}, {self.name} "
f"usure = {self.tyre_wear}, FW = [{self.FrontLeftWingDamage}, "
f"{self.FrontRightWingDamage}] | "
f"RW ={self.rearWingDamage} | "
f"floor = {self.floorDamage} | "
f"diffuser = {self.diffuserDamage} | "
f"sidepod = {self.sidepodDamage} | "
f"{pit_dictionary[self.pit]}")
elif buttonId == 2: # Températures
return (
f"P{self.position} {self.name}, RL : {self.tyres_temp_surface[0]}|{self.tyres_temp_inner[0]}, "
f"RR :{self.tyres_temp_surface[1]}|{self.tyres_temp_inner[1]} "
f"FL : {self.tyres_temp_surface[2]}|{self.tyres_temp_inner[2]}, "
f"FR : {self.tyres_temp_surface[3]}|{self.tyres_temp_inner[3]}, {pit_dictionary[self.pit]} ")
elif buttonId == 3: # Laps
return f"P{self.position}, {self.name} "+ \
f"Current lap : {conversion(self.currentLapTime, 2)} [{', '.join('%.3f'%truc for truc in self.currentSectors)}] " + \
f"Last lap : {conversion(self.lastLapTime, 2)} [{', '.join('%.3f'%truc for truc in self.lastLapSectors)}] " + \
f"Fastest lap : {conversion(self.bestLapTime, 2)} [{', '.join('%.3f'%truc for truc in self.bestLapSectors)}] " + \
f"{pit_dictionary[self.pit]}"
elif buttonId == 4:
return f"P{self.position}, {self.name} ERS = {self.ERS_pourcentage}% | {ERS_dictionary[self.ERS_mode]} " \
f"Fuel = {round(self.fuelRemainingLaps, 2)} tours | {self.penalties}s | {self.speed_trap}km/h"
def is_not_on_lap(self):
return self.currentLapTime == 0 or (self.yourTelemetry==1 and self.ERS_mode == 0) or \
(self.currentSectors[0] + 1 > self.bestLapSectors[0] != 0) or \
(self.currentSectors[1] + 1 > self.bestLapSectors[1] != 0)
def gestion_qualif(self, MnT_team):
if MnT_team is None:
return "black"
else:
if self.teamId == MnT_team:
return "blue"
else:
return "green" if self.is_not_on_lap() else "red"