1 """ Roach management scene. """
3 from pgzero.constants import keys
4 from pgzero.actor import Actor
5 from ..actors.buttons import TextButton
6 from ..constants import WIDTH, HEIGHT
7 from .base import Scene, ChangeSceneEvent
10 class RoachesScene(Scene):
11 """ Roach management scene. """
15 self._roach_actors = {}
16 self._roaches = self.actors.add_layer("roaches", level=10)
17 self._pads = self.actors.add_layer("pads", level=5)
21 self._roach_pad = self._pads.add(
22 Actor("roach_management/roach_pad"))
23 self._roach_pad.pos = (WIDTH * (7/8), HEIGHT * (1/4))
24 self._inventory_pad = self._pads.add(
25 Actor("roach_management/inventory_pad"))
26 self._inventory_pad.pos = (WIDTH * (7/8), HEIGHT * (3/4))
28 def update(self, world, dt):
29 for i, roach in enumerate(world.roaches):
30 if roach.name in self._roach_actors:
31 actor = self._roach_actors[roach.name]
33 actor = TextButton("%s [%s]" % (
35 ", ".join("%s=%s" % kv for kv in sorted(
36 roach.attributes.items()),
38 self._roach_actors[roach.name] = actor
39 self._roaches.add(actor)
40 # TODO: remove missing roaches
41 actor.pos = (300, 100 + i * 100)
43 def on_key_down(self, key, mod, unicode):
44 if key == keys.ESCAPE:
45 from .menu import MenuScene
46 return [ChangeSceneEvent(MenuScene())]