annotate gamelib/tests/repl_game.py @ 28:2f7d8f908de0

Better REPL client.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 06 May 2012 19:45:01 +0200
parents 5d699b1f7188
children 355aa7592492
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 from gamelib.gamestate import Game
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
3
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
4 class ReplGame(object):
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
5 def __init__(self, init_data=None):
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
6 self.game = Game(init_data=init_data)
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
7 self._begin_turn()
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
8
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
9 def _begin_turn(self):
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
10 self.game.start_turn()
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
11 self.display_state()
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
12
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
13 def display_state(self):
28
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
14 print "-" * 50
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
15 print "Repute:", self.game.reputation
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
16 print "Moneys:", self.game.money
26
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
17 print "Points:", self.game.points
28
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
18 print ""
23
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
19 print "Science:"
26
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
20 self.science = []
23
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
21 for science in self.game.lab.science:
26
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
22 if science.can_spend(self.game.lab):
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
23 self.science.append(science)
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
24 print " %s. %s (%s)" % (
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
25 len(self.science), science.NAME, science.points)
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
26 else:
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
27 print " -- %s (%s)" % (science.NAME, science.points)
28
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
28 print ""
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
29 print "Missions:"
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
30 print " * Coming soon!"
2f7d8f908de0 Better REPL client.
Jeremy Thurgood <firxen@gmail.com>
parents: 26
diff changeset
31 print "-" * 50
23
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
32
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
33 def next_turn(self, research_list, missions):
26
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
34 assert not missions, "Missions not currently supported."
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
35 research_list = [self.science[i - 1] for i in research_list]
23
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
36 self.game.cur_allocation.extend(research_list)
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
37 self.game.cur_missions.extend(missions)
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
38 self.game.end_turn()
f6a3b213857b Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
39 self._begin_turn()