From 8b97cdb6206518a15570605f953d53d0c50261af Mon Sep 17 00:00:00 2001 From: Trevor Good Date: Sun, 14 Apr 2024 21:51:23 -0400 Subject: [PATCH] More text on screen, enemies getting stronger notification, playable units get stats reset properly --- src/main.py | 27 ++++++++++++++++++++++++--- src/sprites.py | 21 +++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/main.py b/src/main.py index 393d3d2..6644384 100644 --- a/src/main.py +++ b/src/main.py @@ -160,6 +160,21 @@ def build_screen(self): self.font, (0, 0, 0), Mage, 3, self.all_text, topleft=(10, 50) ) + TextArea( + self.font, + "[i] Stats page", + (0, 0, 0), + self.all_text, + center=(SCREEN_WIDTH / 2, 20), + ) + + self.stronger_enemies_text = TextArea( + self.font, + "Enemies are getting stronger...", + (0, 0, 0), + center=(SCREEN_WIDTH / 2, 65), + ) + pos = 100 for entity in [Warrior, Ranger, Mage, Skeleton, Zombie]: GameScreenStatsText( @@ -247,14 +262,19 @@ def update(self, screen, delta_time): self.transition_state(GameState.States.GAME_OVER) elif not self.all_enemies: if self.room_transition_timer is None: - self.room_transition_timer = 0 self.rooms_cleared += 1 + self.room_transition_timer = ( + -1000 if self.rooms_cleared % 3 == 0 else 0 + ) self.all_text.add(self.room_cleared_text) + if self.rooms_cleared % 3 == 0: + self.all_text.add(self.stronger_enemies_text) else: self.room_transition_timer += delta_time if self.room_transition_timer >= 1000: self.room_transition_timer = None self.room_cleared_text.kill() + self.stronger_enemies_text.kill() for entity in self.all_players: self.playable_units[type(entity)] += 1 entity.kill() @@ -294,8 +314,9 @@ def __title_screen_play_click(self): self.transition_state(GameState.States.GAME_SCREEN) def __game_over_play_click(self): - Skeleton.reset_stats() - Zombie.reset_stats() + for unit in [Warrior, Ranger, Mage, Skeleton, Zombie]: + unit.reset_stats() + self.selected_unit = Warrior self.transition_state(GameState.States.TITLE_SCREEN) diff --git a/src/sprites.py b/src/sprites.py index 48ba649..d3dfd95 100644 --- a/src/sprites.py +++ b/src/sprites.py @@ -155,6 +155,13 @@ def __init__(self, centerpos: tuple[int, int], *groups): *groups, ) + @classmethod + def reset_stats(cls): + cls.health = 5 + cls.attack = 2 + cls.speed = 5 + cls.attack_speed_scale = 1 + class Ranger(Unit): health = 3 @@ -175,6 +182,13 @@ def __init__(self, centerpos: tuple[int, int], *groups): *groups, ) + @classmethod + def reset_stats(cls): + cls.health = 3 + cls.attack = 3 + cls.speed = 6 + cls.attack_speed_scale = 1 + class Mage(Unit): health = 1 @@ -195,6 +209,13 @@ def __init__(self, centerpos: tuple[int, int], *groups): *groups, ) + @classmethod + def reset_stats(cls): + cls.health = 1 + cls.attack = 5 + cls.speed = 4 + cls.attack_speed_scale = 1 + class Skeleton(Unit): health = 3