summaryrefslogtreecommitdiffstats
path: root/weatbag/tiles/n3.py
diff options
context:
space:
mode:
authorThomas Kluyver <takowl@gmail.com>2013-01-09 02:28:35 -0800
committerThomas Kluyver <takowl@gmail.com>2013-01-09 02:28:35 -0800
commit1da208f02a091c1dc9a9912d7066805a445d09bd (patch)
treed99de9ea9b8d8073680f156395ee35022e37556a /weatbag/tiles/n3.py
parent3400844980917bb3d59da322a3e33f55f81afe12 (diff)
parent6d1a17c456b15841763b953a1427e8bd856f2263 (diff)
Merge pull request #4 from ben174/master
Add new n3 tile with Orc battle at entrance of cave. Player now has hit_points.
Diffstat (limited to 'weatbag/tiles/n3.py')
-rw-r--r--weatbag/tiles/n3.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/weatbag/tiles/n3.py b/weatbag/tiles/n3.py
new file mode 100644
index 0000000..7591110
--- /dev/null
+++ b/weatbag/tiles/n3.py
@@ -0,0 +1,72 @@
+from weatbag import words
+import random
+
+class Tile:
+ def __init__(self):
+ self.enemy_dead = False
+ self.enemy_life = 2
+
+ def describe(self):
+ if not self.enemy_dead:
+ print("You encounter an orc! He's got a mean look, but you're a "
+ "strong one. You should be able to take him. Attack or flee?")
+ else:
+ print("You see an orc corpse here.")
+
+
+ def enemy_swing(self, player):
+ if self.enemy_dead:
+ return
+ print("The enemy takes a swing at you!")
+ hit = random.choice((True,False))
+ if hit:
+ print("He hits you!")
+ player.hit_points -= 1
+ self.report_player_state(player)
+ else:
+ print("He misses!")
+
+ def player_swing(self, player):
+ hit = random.choice((True,False))
+ if hit:
+ print("You hit him!")
+ self.enemy_life -= 1
+ else:
+ print("You miss!")
+
+ if self.enemy_life == 0:
+ print("You have killed the orc!")
+ self.enemy_dead = True
+
+ def report_player_state(self, player):
+ print("You are %s" % (player.state_string()))
+
+ def leave(self, player, direction):
+ if not self.enemy_dead:
+ if not random.choice((True,False)):
+ print("The orc blocks your way!")
+ self.enemy_swing(player)
+ return False
+ else:
+ print("You manage to flee!")
+ return True
+
+ if direction=='s':
+ return True
+ if direction=='n':
+ return True
+
+ print("There is no path leading in that direction.")
+ return False
+
+ def action(self, player, do):
+ if do[0] == "flee":
+ self.leave(player, 's')
+ return
+
+ if do[0] in words.attack:
+ self.player_swing(player)
+ self.enemy_swing(player)
+
+ else:
+ print("Sorry, I don't understand")