comparison gamelib/gamestate.py @ 111:bb76ce231ff9

Merge changes.
author Simon Cross <hodgestar@gmail.com>
date Wed, 09 May 2012 22:37:49 +0200
parents 4a44d133ad2e
children 685301e35f88
comparison
equal deleted inserted replaced
110:ff7c953502d5 111:bb76ce231ff9
3 3
4 """The actual game state object""" 4 """The actual game state object"""
5 5
6 from gamelib import missions, lab 6 from gamelib import missions, lab
7 from gamelib.game_base import get_subclasses 7 from gamelib.game_base import get_subclasses
8 from gamelib.constants import NEW_SCIENCE, NEW_SCHEMATIC 8 from gamelib.constants import NEW_SCIENCE, NEW_SCHEMATIC, M_VALS
9 9
10 10
11 class Game(object): 11 class Game(object):
12 12
13 def __init__(self, init_data=None): 13 def __init__(self, init_data=None):
31 for cls in get_subclasses(missions.Mission): 31 for cls in get_subclasses(missions.Mission):
32 self.missions.append(cls()) 32 self.missions.append(cls())
33 33
34 def start_turn(self): 34 def start_turn(self):
35 # Make more flexible? 35 # Make more flexible?
36 self.points += 3 36 self.points += 1 + M_VALS[self.milestone] * 2
37 self.turn += 1 37 self.turn += 1
38 self.cur_missions = [] 38 self.cur_missions = []
39 self.cur_allocation = [] 39 self.cur_allocation = []
40 40
41 def get_available_equipment(self): 41 def get_available_equipment(self):
91 data['money'] = self.money 91 data['money'] = self.money
92 data['reputation'] = self.reputation 92 data['reputation'] = self.reputation
93 data['milestone'] = self.milestone 93 data['milestone'] = self.milestone
94 data['points'] = self.points 94 data['points'] = self.points
95 data['lab'] = self.lab.save_data() 95 data['lab'] = self.lab.save_data()
96 data['turn'] = self.turn
96 # Save mission state 97 # Save mission state
97 data['missions'] = {} 98 data['missions'] = {}
98 for mission in self.missions: 99 for mission in self.missions:
99 miss_name = type(mission).__name__ 100 miss_name = type(mission).__name__
100 data['missions'][miss_name] = mission.save_data() 101 data['missions'][miss_name] = mission.save_data()
103 def _load_data(self, data): 104 def _load_data(self, data):
104 """Restore the game state""" 105 """Restore the game state"""
105 self.money = data['money'] 106 self.money = data['money']
106 self.reputation = data['reputation'] 107 self.reputation = data['reputation']
107 self.points = data['points'] 108 self.points = data['points']
109 self.turn = data['turn']
108 self.lab = lab.Lab(data['lab']) 110 self.lab = lab.Lab(data['lab'])
109 for mis_class in missions.Mission.__subclasses__(): 111 for mis_class in missions.Mission.__subclasses__():
110 miss_name = mis_class.__name__ 112 miss_name = mis_class.__name__
111 if miss_name in data['missions']: 113 if miss_name in data['missions']:
112 self.missions.append(mis_class(data['missions'][miss_name])) 114 self.missions.append(mis_class(data['missions'][miss_name]))