comparison gamelib/game_base.py @ 94:245ef50de84d

Sanity-check research, schematic and mission classes. (Ironic, no?)
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 09 May 2012 21:22:10 +0200
parents 74ce25ec2073
children 53277724645b
comparison
equal deleted inserted replaced
93:f0bf77787d1e 94:245ef50de84d
6 subclasses = [] 6 subclasses = []
7 for cls in base_class.__subclasses__(): 7 for cls in base_class.__subclasses__():
8 if leaf_only and cls.__subclasses__(): 8 if leaf_only and cls.__subclasses__():
9 # Not a leaf class, and only want leaves 9 # Not a leaf class, and only want leaves
10 continue 10 continue
11 if hasattr(cls, 'sanity_check'):
12 cls.sanity_check()
11 subclasses.append(cls) 13 subclasses.append(cls)
12 return subclasses 14 return subclasses
13 15
14 16
15 def get_save_filename(): 17 def get_save_filename():
58 def save_name(cls): 60 def save_name(cls):
59 return "%s.%s" % (cls.SCIENCE_TYPE, cls.__name__) 61 return "%s.%s" % (cls.SCIENCE_TYPE, cls.__name__)
60 62
61 def save_data(self): 63 def save_data(self):
62 return (self.save_name(), self.points) 64 return (self.save_name(), self.points)
65
66 @classmethod
67 def sanity_check(cls):
68 for science, points in cls.PREREQUISITES:
69 assert issubclass(science, Science)
70 assert isinstance(points, int)