74f32a96f3344acacddb3406633e9cce62edbaab
[koperkapel.git] / koperkapel / scenes / roaches.py
1 """ Roach management scene. """
2
3 from pgzero.constants import keys
4 from ..actors.buttons import TextButton
5 from .base import Scene, ChangeSceneEvent
6
7
8 class RoachesScene(Scene):
9     """ Roach management scene. """
10
11     def __init__(self):
12         super().__init__()
13         self._roach_actors = {}
14
15     def update(self, world, dt):
16         for i, roach in enumerate(world.roaches):
17             if roach.name in self._roach_actors:
18                 actor = self._roach_actors[roach.name]
19             else:
20                 actor = TextButton("%s [%s]" % (
21                     roach.name,
22                     ", ".join("%s=%s" % kv for kv in sorted(
23                         roach.attributes.items()),
24                     )))
25                 self._roach_actors[roach.name] = actor
26                 self.actors.add(actor)
27             # TODO: remove missing roaches
28             actor.pos = (300, 100 + i * 100)
29
30     def on_key_down(self, key, mod, unicode):
31         if key == keys.ESCAPE:
32             from .menu import MenuScene
33             return [ChangeSceneEvent(MenuScene())]