Mercurial > sypikslang
annotate gamelib/tests/repl_game.py @ 29:355aa7592492
Missions in the REPL!
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 06 May 2012 20:27:41 +0200 |
parents | 2f7d8f908de0 |
children | 12c33aac7684 |
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 |
29 | 13 def display_turn_data(self): |
28 | 14 print "Repute:", self.game.reputation |
15 print "Moneys:", self.game.money | |
26 | 16 print "Points:", self.game.points |
29 | 17 |
18 def display_science(self): | |
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 | 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 | 22 if science.can_spend(self.game.lab): |
23 self.science.append(science) | |
24 print " %s. %s (%s)" % ( | |
25 len(self.science), science.NAME, science.points) | |
26 else: | |
27 print " -- %s (%s)" % (science.NAME, science.points) | |
29 | 28 |
29 def display_equipment(self): | |
30 print "Equipment:" | |
31 self.equipment = [] | |
32 for equipment in self.game.get_available_equipment(): | |
33 self.equipment.append(equipment) | |
34 print " %s. %s (%s) $%s" % ( | |
35 len(self.equipment), equipment.NAME, equipment.points, | |
36 equipment.COST) | |
37 | |
38 def display_missions(self): | |
28 | 39 print "Missions:" |
29 | 40 self.missions = [] |
41 for mission in self.game.missions: | |
42 self.missions.append(mission) | |
43 print " %s. %s\n %s" % ( | |
44 len(self.missions), mission.NAME, mission.SHORT_DESCRIPTION) | |
45 | |
46 def display_state(self): | |
47 print "-" * 10, "NEW TURN", "-" * 30 | |
48 self.display_turn_data() | |
49 print "" | |
50 self.display_science() | |
51 print "" | |
52 self.display_equipment() | |
53 print "" | |
54 self.display_missions() | |
28 | 55 print "-" * 50 |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
56 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
57 def next_turn(self, research_list, missions): |
29 | 58 missions = [(self.missions[i[0] - 1], |
59 [self.equipment[i[j] - 1] for j in range(1, len(i))]) | |
60 for i in missions] | |
26 | 61 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
|
62 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
|
63 self.game.cur_missions.extend(missions) |
29 | 64 print "-" * 10, "RESULTS", "-" * 31 |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
65 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
|
66 self._begin_turn() |