From 63660707d1134d6efa7ce0b7780e2d759112fc9d Mon Sep 17 00:00:00 2001 From: Nicolas Margulies Date: Fri, 16 Oct 2020 17:58:00 +0200 Subject: [PATCH] A basic fighting mechanic and a few entities --- dungeonbattle/entities/__init__.py | 0 dungeonbattle/entities/monsters.py | 5 +++++ dungeonbattle/entities/player.py | 5 +++++ dungeonbattle/interfaces.py | 19 +++++++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 dungeonbattle/entities/__init__.py create mode 100644 dungeonbattle/entities/monsters.py create mode 100644 dungeonbattle/entities/player.py diff --git a/dungeonbattle/entities/__init__.py b/dungeonbattle/entities/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dungeonbattle/entities/monsters.py b/dungeonbattle/entities/monsters.py new file mode 100644 index 0000000..c9cdf1c --- /dev/null +++ b/dungeonbattle/entities/monsters.py @@ -0,0 +1,5 @@ +from ..interfaces import FightingEntity + +class Squirrel(FightingEntity): + maxhealth = 10 + strength = 3 diff --git a/dungeonbattle/entities/player.py b/dungeonbattle/entities/player.py new file mode 100644 index 0000000..66aed0c --- /dev/null +++ b/dungeonbattle/entities/player.py @@ -0,0 +1,5 @@ +from ..interfaces import FightingEntity + +class Player(FightingEntity): + maxhealth = 20 + strength = 5 \ No newline at end of file diff --git a/dungeonbattle/interfaces.py b/dungeonbattle/interfaces.py index 838cbec..3ba9efd 100644 --- a/dungeonbattle/interfaces.py +++ b/dungeonbattle/interfaces.py @@ -50,3 +50,22 @@ class Entity: def move(self, x: int, y: int) -> None: self.tile.x = x self.tile.y = y + +class FightingEntity(Entity): + maxhealth: int + health: int + strength: int + + def __init__(self): + self.health = self.maxhealth + + def hit(self, opponent) -> None: + opponent.take_damage(self, self.strength) + + def take_damage(self, attacker, amount:int) -> None: + self.health -= amount + if self.health <= 0: + self.die() + + def die(self) -> None: + pass