changeset 72:ecc2cb7a40da

Don't show items that have already been picked up
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sun, 17 Feb 2013 20:33:28 +0100
parents f415ddc040d7
children be468e4d43b7
files dw.js
diffstat 1 files changed, 23 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/dw.js	Sun Feb 17 20:26:50 2013 +0100
+++ b/dw.js	Sun Feb 17 20:33:28 2013 +0100
@@ -12,6 +12,7 @@
         '"': { 'tileset': "ground.png", 'tile_x': 3, 'tile_y': 3, },
         '=': { 'tileset': "ground.png", 'tile_x': 1, 'tile_y': 1, }
     };
+    module.items = [];
 
 
     module.Field = function () { var self = document.getElementById('field');
@@ -129,6 +130,12 @@
                     row.appendChild(Square(x, y));
                     var sprite = self.get_prop(x, y, 'sprite');
                     if (sprite) {
+                        var give = self.get_prop(x, y, 'give');
+                        if (give && module.has_item(give)) {
+                            var give_sprite = self.get_prop(x, y, 'give_sprite');                           if (give_sprite !== void 0) {
+                                sprite = give_sprite;
+                            };
+                        };
                         sprite = module.Sprite(sprite, x, y); 
                         if (self.get_prop(x, y, 'noshadow')) {
                             sprite.style.background = 'transparent';
@@ -229,7 +236,6 @@
 
         self.facing = 2;
         self.steps = 0;
-        self.items = module.load_cookie('items').split(',');
         DX = [ 0,  1,  0, -1 ];
         DY = [-1,  0,  1,  0 ];
 
@@ -248,7 +254,7 @@
             };
             var unlock = module.field.get_prop(nx, ny, 'unlock');
             if (unlock) {
-               if (self.has_item(unlock)) {
+               if (module.has_item(unlock)) {
                     var sprite = module.find_sprite(nx, ny);
                     if (sprite) {
                         var s = module.field.get_prop(nx, ny, 'unlock_sprite');
@@ -267,8 +273,8 @@
             if (!locked) {
                 var give = module.field.get_prop(nx, ny, 'give');
                 if (give) {
-                    if (!self.has_item(give)) {
-                        self.add_item(give);
+                    if (!module.has_item(give)) {
+                        module.add_item(give);
                         var s = module.field.get_prop(nx, ny, 'give_sprite');
                         if (s !== void 0) {
                             var sprite = module.find_sprite(nx, ny);
@@ -297,18 +303,6 @@
             };
         };
 
-        self.has_item = function (item) {
-            return !(self.items.indexOf(item) === -1)
-        };
-
-        self.add_item = function (item) {
-            if (!self.has_item(item)) {
-                self.items.push(item);
-            };
-            var items = self.items.join(',');
-            module.save_cookie('items', items);
-        };
-
         self.set_pos = function () {
             // Update the position of the sprite.
 
@@ -436,6 +430,18 @@
         document.cookie = name + "=" + value;
     };
 
+    module.has_item = function (item) {
+        return module.items.indexOf(item) !== -1;
+    };
+
+    module.add_item = function (item) {
+        if (!module.has_item(item)) {
+            module.items.push(item);
+        };
+        var items = module.items.join(',');
+        module.save_cookie('items', items);
+    };
+
     module.loop = function () {
         // The main game loop.
 
@@ -451,6 +457,7 @@
         window.onkeydown = module.keydown;
         window.onkeyup = module.keyup;
         module.sprites = [];
+        module.items = module.load_cookie('items').split(',');
         module.field = module.Field();
         module.field.redraw();
         var entrance = window.location.hash.substr(1) || '0';