From f4e2799009f1ae91f3a7cc4d5d339c0f2cb8077b Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Sun, 5 Apr 2020 21:59:26 +0200 Subject: [PATCH 1/4] Player class now has statistics --- src/entities/Player.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/entities/Player.py b/src/entities/Player.py index c47fc35..7234cc7 100644 --- a/src/entities/Player.py +++ b/src/entities/Player.py @@ -10,6 +10,7 @@ class Player(Entity): super().__init__("player.jpg", size, (spawnpoint[0] * size, spawnpoint[1] * size)) # Where the player is facing, 0 - north, 1 self.rotation = Rotations.NORTH + self.statistics = Statistics(100, 0, 0, 100) # Move in a desired direction def move(self, rotation): @@ -28,6 +29,7 @@ class Player(Entity): self.image = pygame.transform.rotate(self.image, ((self.rotation.value - rotation.value) * 90)) self.rotation = rotation + class Rotations(Enum): NORTH = 0 EAST = 1 From a0bbee30d15421f632fca2d01d103ca8d6ae2426 Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Sun, 5 Apr 2020 21:59:40 +0200 Subject: [PATCH 2/4] Player movement now costs stamina --- src/entities/Player.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/entities/Player.py b/src/entities/Player.py index 7234cc7..cad65ac 100644 --- a/src/entities/Player.py +++ b/src/entities/Player.py @@ -14,6 +14,7 @@ class Player(Entity): # Move in a desired direction def move(self, rotation): + self.statistics.stamina -= 1 if rotation.value == Rotations.NORTH.value: self.rect.y -= self.rect.w elif rotation.value == Rotations.EAST.value: From dc7023adfaae613e1658e0eedfb57146aba0280e Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Sun, 5 Apr 2020 22:02:15 +0200 Subject: [PATCH 3/4] Fixed: statistics now change by invoking methods instead of variable change --- src/entities/Player.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entities/Player.py b/src/entities/Player.py index cad65ac..d9a3c0c 100644 --- a/src/entities/Player.py +++ b/src/entities/Player.py @@ -14,7 +14,7 @@ class Player(Entity): # Move in a desired direction def move(self, rotation): - self.statistics.stamina -= 1 + self.statistics.set_stamina(-1) if rotation.value == Rotations.NORTH.value: self.rect.y -= self.rect.w elif rotation.value == Rotations.EAST.value: From 5c80033a0b2f046cb9fa8b2b88e818a3debbfb1e Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Sun, 5 Apr 2020 22:04:40 +0200 Subject: [PATCH 4/4] Added getStatistic method & enum --- src/entities/Player.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/entities/Player.py b/src/entities/Player.py index d9a3c0c..a7aba49 100644 --- a/src/entities/Player.py +++ b/src/entities/Player.py @@ -24,6 +24,18 @@ class Player(Entity): elif rotation.value == Rotations.WEST.value: self.rect.x -= self.rect.w + # Returns given statistic + def getStatistic(self, stat): + if stat.value == StatisticNames.HP: + return self.statistics.hp + elif stat.value == StatisticNames.HUNGER: + return self.statistics.hunger + elif stat.value == StatisticNames.THIRST: + return self.statistics.thirst + elif stat.value == StatisticNames.STAMINA: + return self.statistics.stamina + return None + def rotate(self, rotation): # If the player is not facing given direction, it will not move the first time, it will only get rotated if self.rotation.value != rotation.value: @@ -35,4 +47,11 @@ class Rotations(Enum): NORTH = 0 EAST = 1 SOUTH = 2 - WEST = 3 \ No newline at end of file + WEST = 3 + + +class StatisticNames(Enum): + HP = 0 + STAMINA = 1 + HUNGER = 2 + THIRST = 3 \ No newline at end of file