forked from mattboan/Galtron
-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathgameStats.py
91 lines (80 loc) · 2.6 KB
/
gameStats.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
import json
import os
import settings
class GameStats():
"""Track stats for alien shooter"""
def __init__(self, setting):
"""initialize statistics"""
self.setting = setting
# Start alien invasion in an active state.
self.gameActive = False
self.mainMenu = True
self.mainGame = False
self.mainAbout = False
self.playMenu = False
self.twoPlayer = False
self.settingsMenu = False
self.levelMenu = False
self.speedMenu = False
self.paused = False
self.score = 0
self.level = 1
self.highScore = 0
self.highScoreSaveFileName = 'data-files/highscore.json'
self.resetStats()
self.exiton = 0
#########
# self.gameLevel = 0
def setGameLoop(self, loop):
self.mainMenu = False
self.mainGame = False
self.mainAbout = False
self.playMenu = False
self.twoPlayer = False
self.settingsMenu = False
###########
self.levelMenu = False
self.speedMenu = False
if loop == 'mainMenu':
self.mainMenu = True
elif loop == 'mainGame':
self.mainGame = True
elif loop == 'mainAbout':
self.mainAbout = True
elif loop == 'playMenu':
self.playMenu = True
elif loop == 'twoPlayer':
self.twoPlayer = True
elif loop == 'settingsMenu':
self.settingsMenu = True
###################
elif loop == 'levelMenu':
self.levelMenu = True
elif loop == 'speedMenu':
self.speedMenu = True
def resetStats(self):
settingS = settings.Settings()
"""initialize statistics that can change during the game"""
self.shipsLeft = self.setting.shipLimit
self.level = 1
self.score = 0
self.counter = 3
self.ultimateGauge = 0
self.ultimatePattern = 1
settingS.initDynamicSettings()
self.tempScore = self.loadHighScore()
if self.highScore >= self.tempScore:
self.saveHighScore()
else:
self.highScore = self.tempScore
def loadHighScore(self):
score = 0
if not os.path.isfile(self.highScoreSaveFileName):
with open(self.highScoreSaveFileName, 'w') as f_obj:
f_obj.write('0')
with open(self.highScoreSaveFileName, 'r') as f_obj:
score = json.load(f_obj)
return score
def saveHighScore(self):
with open(self.highScoreSaveFileName, 'w') as f_obj:
json.dump(self.highScore, f_obj)