aab4a9a2be480a310f5e820a8abf2beb77f705bd
[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())]