Esempio n. 1
0
 def hero_atack(self,by):
     if by == "spell":
         top_border = False
         bot_border = False
         left_border = False
         right_border = False
         if self._hero is None or self._hero.spell is None:
             return False
         for rng in range(0, self._hero.spell.cast_range + 1):
             top_border = self._hero._y == 0
             if not top_border:
                 if self._map[self._hero._y - rng][self._hero._x] == "E" and self._hero.can_cast():
                     enemy = self._enemies.pop()
                     f = Fight(self._hero, enemy)
                     if f.start_battle(self._hero, enemy):
                         self._map[enemy._y][enemy._x] = "."
                         return True
             bot_border = self._hero._y == len(self._map)
             if not bot_border:
                 if self._map[self._hero._y + rng][self._hero._x] == "E" and self._hero.can_cast():
                     enemy = self._enemies.pop()
                     f = Fight(self._hero, enemy)
                     print(enemy._x, enemy._y)
                     if f.start_battle(self._hero, enemy):
                         self._map[enemy._y][enemy._x] = "."
                         return True
             left_border = self._hero._x == 0
             if not left_border:
                 if self._map[self._hero._y][self._hero._x - rng] == "E" and self._hero.can_cast():
                     enemy = self._enemies.pop()
                     f = Fight(self._hero, enemy)
                     if f.start_battle(self._hero, enemy):
                         self._map[enemy._y][enemy._x] = "."
                         return True
             right_border = self._hero._x == 0
             if not right_border:
                 if self._map[self._hero._y][self._hero._x + rng] == "E" and self._hero.can_cast():
                     enemy = self._enemies.pop()
                     f = Fight(self._hero, enemy)
                     if f.start_battle(self._hero, enemy):
                         self._map[enemy._y][enemy._x] = "."
                         return True
     return False
Esempio n. 2
0
 def move_hero(self, direction):
     if direction not in ["up", "down", "left", "right"]:
         raise ValueError
     if direction == "right":
         if self._hero._x == len(self._map[0]) - 1:
             return False
         if self._map[self._hero._y][self._hero._x + 1] == "#":
             return False
         if self._map[self._hero._y][self._hero._x + 1] == "E":
             f = Fight(self._hero, self._enemies.pop())
             f.start_battle(self._hero, self._enemies.pop())
         self._map[self._hero._y][self._hero._x] = "."
         self._hero._x += 1
         self._map[self._hero._y][self._hero._x] = "H"
         return True
     if direction == "left":
         if self._hero._x == 0:
             return False
         if self._map[self._hero._y][self._hero._ - 1] == "#":
             return False
         if self._map[self._hero._y][self._hero._x - 1] == "E":
             f = Fight(self._hero, self._enemies.pop())
             f.start_battle(self._hero, self._enemies.pop())
         self._map[self._hero._y][self._hero._x] = "."
         self._hero._x -= 1
         self._map[self._hero._y][self._hero._x] = "H"
         return True
     if direction == "up":
         if self._hero._y == 0:
             return False
         if self._map[self._hero._y - 1][self._hero._x] == "#":
             return False
         if self._map[self._hero._y - 1][self._hero._x] == "E":
             f = Fight(self._hero, self._enemies.pop())
             f.start_battle(self._hero, self._enemies.pop())
         self._map[self._hero._y][self._hero._x] = "."
         self._hero._y -= 1
         self._map[self._hero._y][self._hero._x] = "H"
         return True
     if direction == "down":
         if self._hero._y == len(self._map) - 1:
             return False
         if self._map[self._hero._y + 1][self._hero._x] == "#":
             return False
         if self._map[self._hero._y + 1][self._hero._x] == "E":
             f = Fight(self._hero, self._enemies.pop())
             f.start_battle(self._hero, self._enemies.pop())
         self._map[self._hero._y][self._hero._x] = "."
         self._hero._y += 1
         self._map[self._hero._y][self._hero._x] = "H"
         return True