diff --git a/triple-dungeon/main.py b/triple-dungeon/main.py index a7d9249..8667c1b 100644 --- a/triple-dungeon/main.py +++ b/triple-dungeon/main.py @@ -245,7 +245,7 @@ class Game(arcade.Window): bullet.remove_from_sprite_lists() if len(enemy_hit_list): boon = self.Recipe.add_kill(enemy_hit_list[0].monster_type) - if self.player.add_kill(enemy_hit_list[0].monster_type): + if boon >= 0: getattr(self.player, Config.BOON_LIST[boon])(); enemy_hit_list[0].remove_from_sprite_lists() bullet.remove_from_sprite_lists() diff --git a/triple-dungeon/mobs.py b/triple-dungeon/mobs.py index 1f7e934..d1b928a 100644 --- a/triple-dungeon/mobs.py +++ b/triple-dungeon/mobs.py @@ -168,19 +168,6 @@ class Player(Mob): self.cur_recipe = None self.speed = 14 - def add_kill(self, creature) -> int: - # Adds a kill to kill_list. If 3 or more check the recipe then give a power up if it matches. - self.kill_list.append(creature) - print(self.kill_list) - print(self.cur_recipe) - if len(self.kill_list) >= 3: - if self.cur_recipe == self.kill_list: - print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++") - self.kill_list = [] - return 1 - self.kill_list = [] - return 0 - def heal(self): self.health+=Config.HEAL_AMOUNT diff --git a/triple-dungeon/recipe.py b/triple-dungeon/recipe.py index a4381d4..71b5488 100644 --- a/triple-dungeon/recipe.py +++ b/triple-dungeon/recipe.py @@ -25,8 +25,10 @@ class ActiveRecipe(arcade.SpriteList): super().__init__() self.active = Recipe.GHOSTS self.cycle_recipes = [self.set_ghosts, self.set_frogs, self.set_ggf] + self.ghost = arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png") + self.frog = arcade.Sprite(filename="resources/images/monsters/frog/frog1.png") self.pos = 0 - self.kill_num = 0 + self.kill_list = [] def render(self) -> None: @@ -37,7 +39,16 @@ class ActiveRecipe(arcade.SpriteList): sprite.scale = 4 sprite.center_x = screen_right - x sprite.center_y = screen_top - + x += 70 + sprite.draw() + x = 0 + for kill in self.kill_list: + sprite = getattr(self, kill) + screen_right = arcade.get_viewport()[1] - 240 + screen_top = arcade.get_viewport()[3] - 150 + sprite.scale = 4 + sprite.center_x = screen_right + x + sprite.center_y = screen_top x += 70 sprite.draw() @@ -48,33 +59,34 @@ class ActiveRecipe(arcade.SpriteList): self.cycle_recipes[self.pos]() def add_kill(self, monster_type) -> int: - for sprite in self.sprite_list: - if monster_type in "ghost": - r, g, b = sprite.color - darken = lambda c, s: c * (1 - s) - r = darken(r, .5) - g = darken(g, .5) - b = darken(b, .5) - sprite.color = (r, g, b) - return self.pos + # Adds a kill to kill_list. If 3 or more check the recipe then give a power up if it matches. + self.kill_list.append(monster_type) + ret_val = -1 + if len(self.kill_list) >= 3: + if self.active == self.kill_list: + print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++") + self.kill_list = [] + ret_val = self.pos + self.kill_list = [] + return ret_val def set_ghosts(self) -> None: self.active = Recipe.GHOSTS self.sprite_list = [] - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png")) + self.sprite_list.append(self.ghost) + self.sprite_list.append(self.ghost) + self.sprite_list.append(self.ghost) def set_frogs(self) -> None: self.active = Recipe.FROGS self.sprite_list = [] - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/frog/frog1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/frog/frog1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/frog/frog1.png")) + self.sprite_list.append(self.frog) + self.sprite_list.append(self.frog) + self.sprite_list.append(self.frog) def set_ggf(self) -> None: self.active = Recipe.GHOST_FROG self.sprite_list = [] - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/frog/frog1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png")) - self.sprite_list.append(arcade.Sprite(filename="resources/images/monsters/ghost/ghost1.png")) \ No newline at end of file + self.sprite_list.append(self.frog) + self.sprite_list.append(self.ghost) + self.sprite_list.append(self.ghost) \ No newline at end of file