Mercurial > sypikslang
view gamelib/game_base.py @ 84:9d0ad8aeb598
Add some gameplay fluff text in readme
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 09 May 2012 18:12:01 +0200 |
parents | b503ccb0a86e |
children | 74ce25ec2073 |
line wrap: on
line source
def get_subclasses(base_class, leaf_only=True): subclasses = [] for cls in base_class.__subclasses__(): if leaf_only and cls.__subclasses__(): # Not a leaf class, and only want leaves continue subclasses.append(cls) return subclasses class Science(object): NAME = None PREREQUISITES = () ACQUISITION_CHANCE = 1.0 SCIENCE_TYPE = None def __init__(self, points=0): self.points = points def spend_point(self): self.points += 1 def can_spend(self, lab, spend): return True @classmethod def depends_on(self, sciences): for science_class, _ in self.PREREQUISITES: if any(isinstance(science, science_class) for science in sciences): return True return False @classmethod def save_name(cls): return "%s.%s" % (cls.SCIENCE_TYPE, cls.__name__) def save_data(self): return (self.save_name(), self.points)