changeset 310:b371c2ea309e

excised level locking
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Fri, 16 Sep 2011 18:32:31 +0200
parents 67312228c158
children 3b7288064935
files data/menus/lock.png mamba/gamestate.py mamba/habitats/levelmenu.py mamba/widgets/levelbutton.py source/svg/menus/lock.svg
diffstat 5 files changed, 10 insertions(+), 123 deletions(-) [+]
line wrap: on
line diff
Binary file data/menus/lock.png has changed
--- a/mamba/gamestate.py	Fri Sep 16 18:32:12 2011 +0200
+++ b/mamba/gamestate.py	Fri Sep 16 18:32:31 2011 +0200
@@ -10,7 +10,6 @@
 
 
 levels = []
-unlocked_levels = set()
 done_levels = set()
 
 
@@ -21,16 +20,15 @@
 
 
 def load_state():
-    global unlocked_levels, done_levels
+    global done_levels
     fn = os.path.join(options.save_location, 'gamestate.json')
     if os.access(fn, os.R_OK):
         f = open(fn, 'r')
         state = json.load(f)
         f.close()
-        unlocked_levels = set(state['unlocked_levels'])
         done_levels = set(state['done_levels'])
     else:
-        unlocked_levels = set((0,))
+        done_levels = set((0,))
 
 
 def save_state():
@@ -39,7 +37,6 @@
         os.makedirs(options.save_location)
     f = open(fn, 'w')
     json.dump({
-        'unlocked_levels': list(unlocked_levels),
         'done_levels': list(done_levels),
     }, f)
     f.close()
--- a/mamba/habitats/levelmenu.py	Fri Sep 16 18:32:12 2011 +0200
+++ b/mamba/habitats/levelmenu.py	Fri Sep 16 18:32:31 2011 +0200
@@ -2,7 +2,7 @@
 
 from pygame.locals import KEYDOWN
 
-from mamba.gamestate import levels, unlocked_levels, done_levels
+from mamba.gamestate import levels, done_levels
 from mamba.constants import ESCAPE_KEYS
 from mamba.engine import Habitat, NewHabitatEvent
 from mamba.widgets.levelbutton import LevelButton
@@ -15,7 +15,6 @@
         self.level_buttons = {}
         for level, name in enumerate(levels):
             button = LevelButton((50 + 75 * level, 100), str(level + 1),
-                                 locked=level not in unlocked_levels,
                                  done=level in done_levels)
             button.add_callback('clicked', self.level_selected, name)
             self.container.add(button)
@@ -25,20 +24,12 @@
 
     def update_buttons(self):
         for name, button in self.level_buttons.iteritems():
-            button.locked = name not in unlocked_levels
             button.done = name in done_levels
 
     def level_selected(self, ev, widget, name):
-        # Demo:
-        if widget.locked:
-            unlocked_levels.add(name)
-            self.update_buttons()
-            return True
-
-        if not widget.locked:
-            from mamba.habitats.level import LevelHabitat
-            NewHabitatEvent.post(LevelHabitat(name))
-            return True
+        from mamba.habitats.level import LevelHabitat
+        NewHabitatEvent.post(LevelHabitat(name))
+        return True
 
     def keydown_event(self, ev, widget):
         if ev.key in ESCAPE_KEYS:
--- a/mamba/widgets/levelbutton.py	Fri Sep 16 18:32:12 2011 +0200
+++ b/mamba/widgets/levelbutton.py	Fri Sep 16 18:32:31 2011 +0200
@@ -9,10 +9,9 @@
 
 class LevelButton(Button):
 
-    def __init__(self, rect, text, locked=True, done=False):
+    def __init__(self, rect, text, done=False):
         super(LevelButton, self).__init__(rect)
         self.text = text
-        self.locked = locked
         self.done = done
         self.focussable = True
         self.border = 3
@@ -25,9 +24,7 @@
         self.surface.fill(0)
 
         image = None
-        if self.locked:
-            image = load_image('menus/lock.png')
-        elif self.done:
+        if self.done:
             image = load_image('menus/tick.png')
         if image:
             self.surface.blit(image, image.get_rect())
@@ -42,9 +39,9 @@
                 self._text.rect.width - self.rect.width,
                 self._text.rect.height - self.rect.height)
         self.surface.blit(self._text.surface, text_rect)
-        self._state = (self.locked, self.done, self.focussed)
+        self._state = (self.done, self.focussed)
 
     def draw(self, surface):
-        if self._state != (self.locked, self.done, self.focussed):
+        if self._state != (self.done, self.focussed):
             self.prepare()
         surface.blit(self.surface, self.rect)
--- a/source/svg/menus/lock.svg	Fri Sep 16 18:32:12 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="50"
-   height="50"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   sodipodi:docname="lock.svg">
-  <defs
-     id="defs4" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="7.919596"
-     inkscape:cx="6.11207"
-     inkscape:cy="29.630633"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1280"
-     inkscape:window-height="776"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1">
-    <sodipodi:guide
-       orientation="1,0"
-       position="5,0"
-       id="guide3761" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="45,0"
-       id="guide3763" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="25,0"
-       id="guide3765" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="10,0"
-       id="guide3767" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="40,0"
-       id="guide3769" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="0,5"
-       id="guide3781" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="0,45"
-       id="guide3801" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-1002.3622)">
-    <path
-       style="fill:#ff0000;fill-opacity:1;stroke:none"
-       d="m 11.6665,1027.362 0,20.0002 26.667,0 0,-20.0002 -26.667,0 z M 25,1029.5842 c 1.840972,0 3.333375,1.4924 3.333375,3.3334 0,1.2301 -0.675259,2.2974 -1.666687,2.875 l 0,9.3474 -3.333375,0 0,-9.3474 c -0.991429,-0.5776 -1.666688,-1.6449 -1.666688,-2.875 0,-1.841 1.492403,-3.3334 3.333375,-3.3334 z"
-       id="rect2987"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#ff0000;stroke-width:4.44449996999999986;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m 16.111,1037.3621 0,-18.8891 c 0,0 0,-8.889 8.889,-8.889 8.889,0 8.889,8.889 8.889,8.889 l 0,18.8891"
-       id="path3789"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccscc" />
-  </g>
-</svg>