comparison skaapsteker/gamestate.py @ 632:0675f390653c

Initial port to Python 3 and Pygame 2.
author Simon Cross <hodgestar@gmail.com>
date Fri, 20 Jan 2023 20:01:06 +0100
parents a91b2e4400a5
children
comparison
equal deleted inserted replaced
631:672e6e7ecfe9 632:0675f390653c
28 28
29 def __setattr__(self, key, value): 29 def __setattr__(self, key, value):
30 self._data[key] = value 30 self._data[key] = value
31 31
32 def __iter__(self): 32 def __iter__(self):
33 return self._data.iterkeys() 33 return self._data.keys()
34 34
35 def __contains__(self, key): 35 def __contains__(self, key):
36 return key in self._data 36 return key in self._data
37 37
38 def copy(self): 38 def copy(self):
53 53
54 def load_game(self, game_file=None): 54 def load_game(self, game_file=None):
55 if game_file is None: 55 if game_file is None:
56 game_file = self._game_file 56 game_file = self._game_file
57 raw_data = open(game_file, "rb").read() 57 raw_data = open(game_file, "rb").read()
58 self.data = json.loads(raw_data, encoding='utf-8') 58 self.data = json.loads(raw_data)
59 self.world = StateProxy(self.data, self) 59 self.world = StateProxy(self.data, self)
60 60
61 def new_game(self): 61 def new_game(self):
62 self.load_game(data.filepath("game.json")) 62 self.load_game(data.filepath("game.json"))
63 if options['all_tails']: 63 if options['all_tails']:
78 return 78 return
79 save_dir, _ = os.path.split(self._game_file) 79 save_dir, _ = os.path.split(self._game_file)
80 if not os.path.exists(save_dir): 80 if not os.path.exists(save_dir):
81 try: 81 try:
82 os.makedirs(save_dir) 82 os.makedirs(save_dir)
83 except: 83 except Exception:
84 print "Cannot create save game directory." 84 print("Cannot create save game directory.")
85 return 85 return
86 try: 86 try:
87 json.dump(self.data, open(self._game_file, "wb"), indent=4) 87 with open(self._game_file, "w") as f:
88 except: 88 json.dump(self.data, f, indent=4)
89 print "Cannot create save game file." 89 except Exception:
90 print("Cannot create save game file.")
90 91
91 def create_sprites(self, level): 92 def create_sprites(self, level):
92 sprites = [] 93 sprites = []
93 for stype, key in [ 94 for stype, key in [
94 ('items', 'items'), 95 ('items', 'items'),