summaryrefslogtreecommitdiffstats
path: root/weatbag/tiles/n3.py
blob: 125898b22797dea2549e3f23c4d95e2576b1b9cb (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
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

        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)
        
        else:
            print("Sorry, I don't understand")