Slight prettier but much hackier keypad requirement color.
[koperkapel.git] / koperkapel / gamelib / keypad.py
index b328f3965e54b3af1ed0b4997ae5bd739c246f3a..c7961dbc3484e6af5900523e6e290be2ddd9195c 100644 (file)
@@ -2,22 +2,29 @@
 
 import os
 from pgzero.loaders import images
+from pgzero.ptext import getsurf
 from ..actors.orientatedsurf import SurfActor
-from ..constants import TILE_SIZE
 
 
 class Keypad(SurfActor):
 
-    def __init__(self, x, y, doors):
+    def __init__(self, x, y, doors, required_smart=0):
         self._doors = doors
         self.game_pos = (x, y)
-        surf = images.load(os.path.join('fixtures', 'keypad'))
-        super().__init__(surf, anchor=(0, 0))
+        self.required_smart = required_smart
+        surf = images.load(os.path.join('fixtures', 'keypad')).copy()
+        ocolor = (96, 96, 128, 255)
+        surf.blit(getsurf(
+            str(required_smart), owidth=2,
+            ocolor=ocolor, color="black"), (0, 0))
+        super().__init__(surf, anchor=(1, 1))
 
-    def activate(self, roaches):
-        # FIXME: Check stats
-        for door in self._doors:
-            if door.is_closed():
-                door.open()
-            else:
-                door.close()
+    def activate(self, smart):
+        if smart >= self.required_smart:
+            for door in self._doors:
+                if door.is_closed():
+                    door.open()
+                else:
+                    door.close()
+        else:
+            print("You are not smart enough for this keypad.")