diff --git a/src/entities/Collidable.py b/src/entities/Collidable.py index ebe0f2f..72a7c36 100644 --- a/src/entities/Collidable.py +++ b/src/entities/Collidable.py @@ -1,5 +1,31 @@ -import src.entities.Entity as Entity +from src.entities.Entity import Entity class Collidable(Entity): - pass + + def __init__(self, texture, pos, id): + super().__init__(texture, pos, id) + + def check_for_collision(self, x_pos, y_pos): + if self.pos[0] == x_pos: + if self.pos[1] == y_pos: + return True + + return False + + +col = Collidable(1, 1, 1) + + +""" + def interact_with_hp(self, hp, Statistics): + Statistics.set_hp(hp) + + def interact_with_hunger(self, hunger, Statistics): + Statistics.set_hunger(hunger) + + def interact_with_thirst(self, thirst, Statistics): + Statistics.set_thirst(thirst) + + def interact_with_stamina(self, stamina, Statistics): + Statistics.set_stamina(stamina)""" \ No newline at end of file diff --git a/src/entities/Entity.py b/src/entities/Entity.py index b9d4d43..e9be7f1 100644 --- a/src/entities/Entity.py +++ b/src/entities/Entity.py @@ -1,5 +1,6 @@ class Entity: - def __init__(self): - self.texture - self.pos - self.id + + def __init__(self, texture, pos, id): + self.texture = texture + self.pos = pos + self.id = id diff --git a/src/entities/Interactable.py b/src/entities/Interactable.py index 7720fdf..a3f3fb9 100644 --- a/src/entities/Interactable.py +++ b/src/entities/Interactable.py @@ -1,5 +1,24 @@ -import src.entities.Entity as Entity +from src.entities.Entity import Entity class Interactable(Entity): - pass + + def __init__(self, texture, pos, id): + super().__init__(texture, pos, id) + + @staticmethod + def interact_with_hp(hp, Statistics): + Statistics.set_hp(hp) + + @staticmethod + def interact_with_hunger(hunger, Statistics): + Statistics.set_hunger(hunger) + + @staticmethod + def interact_with_thirst(thirst, Statistics): + Statistics.set_thirst(thirst) + + @staticmethod + def interact_with_stamina(stamina, Statistics): + Statistics.set_stamina(stamina) + diff --git a/src/entities/Npc.py b/src/entities/Npc.py index 45f460e..5867cac 100644 --- a/src/entities/Npc.py +++ b/src/entities/Npc.py @@ -1,7 +1,10 @@ -import src.entities.Collidable as Collidable +from src.entities.Collidable import Collidable +from src.entities.Interactable import Interactable -class Npc(Collidable): - def __init__(self): - self.path - self.speed +class Npc(Collidable, Interactable): + def __init__(self, texture, pos, id, path, speed): + Collidable.__init__(self, texture, pos, id) + Interactable.__init__(self, texture, pos, id) + self.path = path + self.speed = speed diff --git a/src/entities/Statistics.py b/src/entities/Statistics.py index 18b4cc9..1b28c2b 100644 --- a/src/entities/Statistics.py +++ b/src/entities/Statistics.py @@ -1,6 +1,46 @@ class Statistics: def __init__(self): - self.hp - self.hunger - self.thirst - self.stamina + self.hp = 100 + self.hunger = 100 + self.thirst = 100 + self.stamina = 100 + + # methods that don't let the values pass below 0 and over 100 during change + def set_hp(self, hp_diff): + if 0 <= self.hp + hp_diff <= 100: + self.hp = self.hp + hp_diff + else: + if self.hp + hp_diff <= 0: + self.hp = 0 + else: + self.hp = 100 + + def set_hunger(self, hunger_diff): + if 0 <= self.hp + hunger_diff <= 100: + self.hp = self.hp + hunger_diff + else: + if self.hp + hunger_diff <= 0: + self.hp = 0 + else: + self.hp = 100 + + def set_thirst(self, thirst_diff): + if 0 <= self.hp + thirst_diff <= 100: + self.hp = self.hp + thirst_diff + else: + if self.hp + thirst_diff <= 0: + self.hp = 0 + else: + self.hp = 100 + + def set_stamina(self, stamina_diff): + if 0 <= self.hp + stamina_diff <= 100: + self.hp = self.hp + stamina_diff + else: + if self.hp + stamina_diff <= 0: + self.hp = 0 + else: + self.hp = 100 + + +