Mercurial > sypikslang
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])) |