1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
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 direction =='w':
print("Cave wall this way.")
return False
elif 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
return True
no_path_msg = "There is no path leading in that direction."
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)
elif do[0] in words.use and do[1]=="berries":
if player.has("berries"):
player.take("berries")
player.hit_points += 2
if player.hit_points > player.MAX_HIT_POINT:
player.hit_points = player.MAX_HIT_POINT
print("You ate the berries and feel better now.")
else:
print("Sorry you don't have any berries.")
else:
print("Sorry, I don't understand")
|