summaryrefslogtreecommitdiffstats
path: root/weatbag/tiles/n3.py
blob: f85dd421e97abe9681d48e81c99dda37234a6b09 (plain)
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")