generated from mwc/project_game
85 lines
2.3 KiB
Python
85 lines
2.3 KiB
Python
from strategy import (
|
|
random_move,
|
|
move_toward_player,
|
|
)
|
|
|
|
class Orc:
|
|
"""Scary.
|
|
"""
|
|
character = "O"
|
|
maxHp = 20
|
|
hp = maxHp
|
|
deadly = True
|
|
speed = 25
|
|
|
|
def __init__(self,position):
|
|
self.position = position
|
|
|
|
def play_turn(self, game):
|
|
if game.turn_number % self.speed == 0:
|
|
move = move_toward_player(self.position, game)
|
|
if move:
|
|
x, y = self.position
|
|
dx, dy = move
|
|
self.position = (x + dx, y + dy)
|
|
if self.position == game.get_agent_by_name("player").position:
|
|
game.state['message'] = "Yum."
|
|
game.end()
|
|
|
|
if self.hp <= 0:
|
|
game.remove_agent(self)
|
|
game.get_agent_by_name("player").xp += self.maxHp
|
|
|
|
class Rat:
|
|
"""Not so scary.
|
|
"""
|
|
character = "R"
|
|
maxHp = 2
|
|
hp = maxHp
|
|
deadly = True
|
|
speed = 15
|
|
|
|
def __init__(self, position):
|
|
self.position = position
|
|
|
|
def play_turn(self, game):
|
|
if game.turn_number % self.speed == 0:
|
|
move = random_move(self.position, game)
|
|
if move:
|
|
x, y = self.position
|
|
dx, dy = move
|
|
self.position = (x + dx, y + dy)
|
|
if self.position == game.get_agent_by_name("player").position:
|
|
game.state['message'] = "Eep."
|
|
game.end()
|
|
|
|
if self.hp <= 0:
|
|
game.remove_agent(self)
|
|
game.get_agent_by_name("player").xp += self.maxHp
|
|
|
|
class Spider:
|
|
"""Creepy-crawly.
|
|
"""
|
|
character = "S"
|
|
maxHp = 5
|
|
hp = maxHp
|
|
deadly = True
|
|
speed = 5
|
|
|
|
def __init__(self,position):
|
|
self.position = position
|
|
|
|
def play_turn(self, game):
|
|
if game.turn_number % self.speed == 0:
|
|
move = random_move(self.position, game)
|
|
if move:
|
|
x, y = self.position
|
|
dx, dy = move
|
|
self.position = (x + dx, y + dy)
|
|
if self.position == game.get_agent_by_name("player").position:
|
|
game.state['message'] = "Hsssss."
|
|
game.end()
|
|
|
|
if self.hp <= 0:
|
|
game.remove_agent(self)
|
|
game.get_agent_by_name("player").xp += self.maxHp |