Mercurial > sypikslang
view gamelib/tests/repl_game.py @ 42:47c7e96cf9c8
Change initial mission creation logic to look for leaf classes
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Mon, 07 May 2012 14:00:18 +0200 |
parents | 12c33aac7684 |
children | 52913ba12988 |
line wrap: on
line source
from gamelib.gamestate import Game class ReplGame(object): def __init__(self, init_data=None): self.game = Game(init_data=init_data) self._begin_turn() def _begin_turn(self): self.game.start_turn() self.display_state() def display_turn_data(self): print "Repute:", self.game.reputation print "Moneys:", self.game.money print "Points:", self.game.points def display_science(self): print "Science:" self.science = [] for science in self.game.lab.science: if science.can_spend(self.game.lab): self.science.append(science) print " %s. %s (%s)" % ( len(self.science), science.NAME, science.points) else: print " -- %s (%s)" % (science.NAME, science.points) def display_equipment(self): print "Equipment:" self.equipment = [] for equipment in self.game.get_available_equipment(): self.equipment.append(equipment) print " %s. %s (%s) $%s" % ( len(self.equipment), equipment.NAME, equipment.points, equipment.COST) def display_missions(self): print "Missions:" self.missions = [] for mission in self.game.get_available_missions(): self.missions.append(mission) print " %s. %s\n %s" % ( len(self.missions), mission.NAME, mission.SHORT_DESCRIPTION) def display_state(self): print "-" * 10, "NEW TURN", "-" * 30 self.display_turn_data() print "" self.display_science() print "" self.display_equipment() print "" self.display_missions() print "-" * 50 def next_turn(self, research_list, missions): missions = [(self.missions[i[0] - 1], [self.equipment[i[j] - 1] for j in range(1, len(i))]) for i in missions] research_list = [self.science[i - 1] for i in research_list] self.game.cur_allocation.extend(research_list) self.game.cur_missions.extend(missions) print "-" * 10, "RESULTS", "-" * 31 self.game.end_turn() self._begin_turn()