Mercurial > qqw
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';
