pocket-friends/pocket_friends/surfaces/selection_info.py

51 lines
1.9 KiB
Python

"""Module for selection info. Shows egg stats after an egg has been selected from the starting
screen. Contains the surface object to be rendered."""
import pygame
from pocket_friends.elements import sprites
from pocket_friends.elements import surface
class Surface(surface.GameSurface):
def __init__(self, game_res, resources_dir, game_fps, **kwargs):
super().__init__(game_res, resources_dir, game_fps)
self._selected_egg = None
for key in kwargs.keys():
if key == 'selected_egg':
self._selected_egg = kwargs.get(key)
egg = sprites.SelectionEgg(self._selected_egg, resources_dir)
egg.rect.x = 8
egg.rect.y = 3
self._sprites.add(egg)
self._info_text = sprites.InfoText(resources_dir, game_res[0], egg.description)
self._info_icons = sprites.EggInfo(resources_dir, egg.contentedness, egg.metabolism, (32, 4))
def update(self):
"""
Advance the surface logic by one frame.
"""
self.preprocess()
self._info_text.draw(self)
self._info_icons.draw(self)
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_DOWN:
# Scroll down on the info screen.
self._info_text.scroll_down()
if event.key == pygame.K_UP:
# Scroll up on the info screen.
self._info_text.scroll_up()
if event.key == pygame.K_a:
self.running = False
self.additional_args = {'selected_color': self._selected_egg}
self.next_surface = 'playground'
if event.key == pygame.K_b:
self.running = False
self.additional_args = {'selected_color': self._selected_egg}
self.next_surface = 'egg_select'