changeset 519:ddd86cb25945

Updated hangar.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 07 Sep 2013 20:09:31 +0200
parents 83f3a376e9a7
children 3f79a77ef1e3 62784e479ed2
files data/levels/hangar nagslang/game_object.py nagslang/mutators.py
diffstat 3 files changed, 45 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/data/levels/hangar	Sat Sep 07 19:59:30 2013 +0200
+++ b/data/levels/hangar	Sat Sep 07 20:09:31 2013 +0200
@@ -63,22 +63,22 @@
   classname: Note
 - args:
   - [2200, 1750]
-  - 'TO HANGARS 5-7'
+  - TO HANGARS 5-7
   classname: Note
 - args:
   - [2200, 1050]
-  - 'TO HANGARS 1-3'
+  - TO HANGARS 1-3
   classname: Note
 - args:
-  - [2400, 1450]
+  - [2880, 1401]
   - cargo_bay
   - [60, 1200]
   - 0
   - keycard_red
   classname: KeyedDoor
 - args:
-  - [2350, 1500]
-  - 'WARNING: Maintenance foreman's keycard required'
+  - [2400, 1401]
+  - 'Please note that the Maintenance Foreman''s keycard is required to access all base areas from the hangar.'
   classname: Note
 - args:
   - [2150, 1300]
@@ -98,6 +98,20 @@
   - keycard_red
   classname: collectable.KeyCard
   name: keycard_red
+- args:
+  - [2680, 1701]
+  - crew
+  - [100, 100]
+  - 90
+  - keycard_red
+  classname: KeyedDoor
+- args:
+  - [2680, 1101]
+  - sheep
+  - [100, 450]
+  - 90
+  - keycard_red
+  classname: KeyedDoor
 lines: []
 polygons:
   1:
@@ -155,5 +169,13 @@
   - [2180, 2500]
   - [2200, 2520]
   - [2400, 2520]
+  - [2400, 1481]
+  - [2480, 1481]
+  - [2480, 1701]
+  - [2880, 1701]
+  - [2880, 1101]
+  - [2480, 1101]
+  - [2480, 1321]
+  - [2400, 1321]
   - [2400, 280]
-size: [2601, 2601]
+size: [3001, 2601]
--- a/nagslang/game_object.py	Sat Sep 07 19:59:30 2013 +0200
+++ b/nagslang/game_object.py	Sat Sep 07 20:09:31 2013 +0200
@@ -6,7 +6,7 @@
 from nagslang import environment
 from nagslang import puzzle
 from nagslang import render
-from nagslang.mutators import FLIP_H, ImageOverlay
+from nagslang.mutators import FLIP_H, ImageOverlay, rotator
 from nagslang.constants import (
     COLLISION_TYPE_DOOR, COLLISION_TYPE_FURNITURE, COLLISION_TYPE_PROJECTILE,
     COLLISION_TYPE_SWITCH, COLLISION_TYPE_SHEEP, COLLISION_TYPE_SHEEP_PEN,
@@ -396,11 +396,18 @@
             super(ContinueGameDoor, self)._post_door_event(protagonist)
 
 
+def make_overlay_image(image_name, angle):
+    transforms = ()
+    if angle != 0:
+        transforms = (rotator(-angle),)
+    return resources.get_image('objects', image_name, transforms=transforms)
+
+
 class PuzzleDoor(BaseDoor):
     def __init__(self, space, position, destination, dest_pos, angle,
                  key_state):
         self._key_state = key_state
-        overlay = ImageOverlay(resources.get_image('objects', 'lock.png'))
+        overlay = ImageOverlay(make_overlay_image('lock.png', angle))
         super(PuzzleDoor, self).__init__(
             space, position, destination, dest_pos, angle,
             render.ImageStateRenderer({
@@ -439,7 +446,7 @@
                  key_item=None):
         self._key_item = key_item
         overlay = ImageOverlay(
-            resources.get_image('objects', '%s.png' % (key_item,)))
+            make_overlay_image('%s.png' % (key_item,), angle))
         super(KeyedDoor, self).__init__(
             space, position, destination, dest_pos, angle,
             render.ImageRenderer(resources.get_image(
--- a/nagslang/mutators.py	Sat Sep 07 19:59:30 2013 +0200
+++ b/nagslang/mutators.py	Sat Sep 07 20:09:31 2013 +0200
@@ -57,13 +57,17 @@
         return image
 
 
+def rotator(angle):
+    return Mutator(rotate, angle)
+
+
 # Identity mutator
 NULL = Mutator(lambda x: x)
 
 # Rotation
-R90 = Mutator(rotate, 90)
-R180 = Mutator(rotate, 180)
-R270 = Mutator(rotate, -90)
+R90 = rotator(90)
+R180 = rotator(180)
+R270 = rotator(-90)
 
 FLIP_H = Mutator(flip, True, False)
 FLIP_V = Mutator(flip, False, True)