!function e(t,n,i){function s(o,r){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!r&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return s(n||e)},c,c.exports,e,t,n,i)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=[],i=g.neighboors(e,t),s=0;s0)return!1;return!0}},{key:"_hasUserWin",value:function(){for(var e=0;e=0;s--)for(var a=this._getEnemy(i.enemies[s]),o=s-1;o>=0;o--){var r=this._getEnemy(i.enemies[o]);if(a.type===r.type){t.push([a,r,i]);break}}for(var l=0;ld){var h=c[parseInt(Math.random()*c.length)];this.tiles[h.coord].removePawn(h.id);var p=this.pawns[h.id];if(delete this.pawns[h.id],t.push({type:"pawn.killed",damage:u,defense:d,pawn:sk.utils.deepCopy(p)}),!Object.keys(this._pawns).length)return t}}return t}},{key:"report",value:function(e){var t=this;e&&console.clear(),console.log(""),console.log("BOARD REPORT =================================="),console.log("Current turn: "+this._turnCount),console.log("Inventory: "+(this._inventory||"nothing")),console.log(""),console.log("Important tiles:");for(var n in this.tiles){var i=this.tiles[n];if(i.enemies.length||i.pawns.length||i.item){if(console.log("<"+n+">:"),i.enemies.length){var s=i.enemies.map(function(e){for(var n=0;n"),n.target&&(i+=" "),n.item&&(i+=" "),n.damage&&(i+=" "),n.defense&&(i+=" "),n.pawn&&(i+=" "),n.enemy&&(i+=" "),console.log(n.type+":"+i)}console.log("===============================================")}},{key:"tiles",get:function(){return this._tiles}},{key:"spawnPoints",get:function(){return this._spawnPoints}},{key:"pawns",get:function(){return this._pawns}},{key:"inventory",get:function(){return this._inventory}},{key:"enemies",get:function(){return this._enemies}},{key:"goals",get:function(){return this._goals}}]),e}();n.default=w},{"ld/board/Enemy":6,"ld/board/Pawn":7,"ld/board/Tile":8,"ld/board/actions":9,"ld/board/astar":10,"ld/board/utils":11}],6:[function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n=0)return this.pawns.splice(this.pawns.indexOf(e),1)}},{key:"addEnemy",value:function(e){this.enemies.push(e)}},{key:"removeEnemy",value:function(e){if(this.enemies.indexOf(e)>=0)return this.enemies.splice(this.enemies.indexOf(e),1)}},{key:"addItem",value:function(e){this.item=e}},{key:"removeItem",value:function(e){var t=this.item;return this.item=null,t}},{key:"addSpawnPoint",value:function(e){this.spawnPoint=!0}},{key:"removeSpawnPoint",value:function(e){var t=this.spawnPoint;return this.spawnPoint=!1,t}}]),e}());n.default=o},{"ld/board/utils":11}],9:[function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0}),n.wait=n.pickup=n.attack=n.movement=void 0;var s=function(){function e(e,t){for(var n=0;n=(l.movementCost+e.movementMods[l.type]||0))return!0}return!1}},{key:"getTargets",value:function(e){for(var t=e.actions,n=[],i=this._board.getNeighboors(e.coord),s=0;s=r&&n.push(a)}return n}},{key:"perform",value:function(e,t){var n=this._board.tiles[t];this._board.tiles[e.coord].removePawn(e.id),n.addPawn(e.id);var i=e.coord;e.coord=t;var s=n.movementCost+(e.movementMods[n.type]||0);return e.actions-=s,[{type:"pawn.movement",from:i,to:e.coord,pawn:e}]}}]),e}(),n.attack=function(){function e(t){i(this,e),this._board=t}return s(e,[{key:"canPerform",value:function(e,t){var n=this._board.getNeighboors(e.coord,e.range);if(n.push(e.coord),t){for(var i=!1,s=0;s0){var d=l.amount-c;d<=0?(console.log("Enemy died from "+c+" damage. "+d+" remaining for the next enemy"),a.push(l),l.amount=d,s=Math.abs(d),n.push({type:"enemy.killed",defense:u,damage:c,enemy:sk.utils.deepCopy(l),pawn:sk.utils.deepCopy(e)})):(console.log("Enemies din't die, "+d+" remaining"),l.amount=d,n.push({type:"enemy.damaged",defense:u,damage:c,enemy:sk.utils.deepCopy(l),pawn:sk.utils.deepCopy(e)}))}}for(var h=a.length-1;h>=0;h--){var p=this._board.enemies.splice(this._board.enemies.indexOf(a[h]),1)[0];console.log("Removing enemy "+p.type+"x"+p.amount+" from the list");this._board.tiles[p.coord].removeEnemy(p.id)}return e.actions=0,n}}]),e}(),n.pickup=function(){function e(t){i(this,e),this._board=t}return s(e,[{key:"canPerform",value:function(e,t){return t||(t=e.coord),t[0]===e.coord[0]&&t[1]===e.coord[1]&&!!this._board.tiles[t].item}},{key:"getTargets",value:function(e){return!!this._board.tiles[e.coord].item}},{key:"perform",value:function(e,t){var n=this._board.tiles[e.coord],i=n.removeItem();return this._board.inventory.push(i),e.actions-=1,[{type:"pawn.pickup",item:i,pawn:e}]}}]),e}(),n.wait=function(){function e(t){i(this,e),this._board=t}return s(e,[{key:"canPerform",value:function(e,t){return!0}},{key:"getTargets",value:function(e){return!0}},{key:"perform",value:function(e,t){return e.actions=0,[{type:"pawn.wait",pawn:e}]}}]),e}()},{"ld/board/utils":11}],10:[function(e,t,n){"use strict";function i(e,t,n,i){for(var s=o[parseInt(4*Math.random())],r=[],l=0;l3&&void 0!==arguments[3]&&arguments[3],a=[{coord:t,cost:0,c1:0,c2:0,history:[]}],o={};for(o[a[0].coord]=!0;a.length;){var r=a.shift();if(r.coord[0]===n[0]&&r.coord[1]===n[1])return r.history;for(var l=i(e,r,n,s),u=0;u1&&void 0!==arguments[1]?arguments[1]:1,n=[],i=e[0],a=e[1],o=[i-parseInt((t+Math.abs((1&a)-1))/2),a-t],r=0,l=t;t>=0;t--){for(var u=o[1],c=0;c<=l+r;c++){var d=o[0]+c;d===i&&u===a||(n.push([d,u]),u!==a&&n.push([d,2*a-u]))}r+=1,o=s(o,"SW")}return n}function o(e,t){for(var n=e[1]-t[1]>0?"N":"S",i=e[0]-t[0]>0?"W":"E",a=n+i,o=0,r=e;r[1]!==t[1];)o+=1,r=s(r,a);return o+=Math.abs(r[0]-t[0])}function r(e,t){var n=e[1]-t[1]>0?"N":"S",i=e[0]-t[0]>0?"W":"E";return t[1]===e[1]?i:n+i}Object.defineProperty(n,"__esModule",{value:!0}),n.dice=i,n.next=s,n.neighboors=a,n.distance=o,n.direction=r;var l=[{NW:[-1,-1],NE:[0,-1],W:[-1,0],E:[1,0],SW:[-1,1],SE:[0,1]},{NW:[0,-1],NE:[1,-1],W:[-1,0],E:[1,0],SW:[0,1],SE:[1,1]}]},{}],12:[function(e,t,n){"use strict";sk.component({name:"button",access:"button",data:{over:!1,down:!1}})},{}],13:[function(e,t,n){"use strict";sk.entity({name:"button",display:"sprite",components:["button"],initialize:function(){}})},{}],14:[function(e,t,n){"use strict";sk.entity({name:"enemy",display:"container",initialize:function(){this.sprite=new PIXI.Sprite,this.ribbon=new PIXI.Graphics,this.text=new PIXI.Text("",{fontSize:15,fill:13886173}),this.display.addChild(this.sprite),this.display.addChild(this.ribbon),this.display.addChild(this.text),this.sprite.anchor={x:.5,y:.5},this.ribbon.beginFill(1250067).drawRoundedRect(-20,15,40,20,10).endFill(),this.text.text="",this.text.anchor.x=.5,this.text.anchor.y=.5,this.text.y=25}})},{}],15:[function(e,t,n){"use strict";sk.entity({name:"map",display:"container",initialize:function(){this.loadMap=function(){var e=9999,t=-9999,n=9999,i=-9999,s=new PIXI.Container,a=new PIXI.Container;for(var o in board.tiles){var r=board.tiles[o],l=board.coordToPosition(r.coord[0],r.coord[1]);l.xt&&(t=l.x),l.yi&&(i=l.y);var u=new sk.displayObjects.Sprite(game.resources.get("tile_grass"));u.configure({position:l});var c=game.resources.get(r.image),d=new sk.displayObjects.Sprite(c);d.configure({position:l}),s.addChild(u),a.addChild(d)}s.filters=[new PIXI.filters.BlurFilter(40,20)],s.cacheAsBitmap=!0,this.display.addChild(s),a.cacheAsBitmap=!0,this.display.addChild(a)}}})},{}],16:[function(e,t,n){"use strict";sk.entity({name:"pawn",display:"sprite"})},{}],17:[function(e,t,n){"use strict";sk.entity({name:"targets",display:"graphics",initialize:function(){this.show=function(e){this.display.clear();for(var t=0;t=2||e._heroes.indexOf(s)>=0)){e._heroes.push(s);var t=2===e._heroes.length,n=!0;e.job(800,function(e){e=sk.utils.easing.quadOut(e),e<.5&&n?o.display.alpha=1-2*e:(n&&(n=!1,o.display.texture=o.display.texture_real),o.display.alpha=2*(e-.5))},function(){o.display.alpha=1}),t&&e.finish()}}),e._buttons.push(o)}(u);this.finish=function(){var e=this;this.job(500,function(t){t=sk.utils.easing.circIn(t),e.title.alpha=1-t},function(){e.title.alpha=0},400);for(var t=0,i=this._buttons.length-1;i>=0;i--)!function(i){var s=e._buttons[i],a=0;e._heroes.indexOf(e._buttons[i].__id__)>=0&&(a=200*n+100),e.job(500,function(e){e=sk.utils.easing.circIn(e),s.display.alpha=1-e},function(){s.display.alpha=0,0===i&&setTimeout(function(){board.loadMap(game.resources.get("map_01"),e._heroes),game.scenes.play("level",new sk.transitions.FadeIn(1e3))},500)},t+a),e._heroes.indexOf(e._buttons[i].__id__)<0&&(t+=200)}(i)}},update:function(e){for(var t=this._jobs.slice(),n=0;n0){if(this._delay-=1e3*e,this._delay>0)return;this._remaining+=this._delay}if(this._remaining-=1e3*e,this._remaining<0)return this.finish();var t=1-this._remaining/this._duration;this._updateFn&&this._updateFn(t)}},{key:"finish",value:function(){this._isFinished||(this._isFinished=!0,this._scene._jobs.splice(this._scene._jobs.indexOf(this),1),this._completeFn&&this._completeFn())}}]),e}()},{}],22:[function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n0){if(this._delay-=1e3*e,this._delay>0)return;this._remaining+=this._delay}if(this._remaining-=1e3*e,this._remaining<0)return this.finish();var t=1-this._remaining/this._duration;this._updateFn&&this._updateFn(t)}},{key:"finish",value:function(){this._isFinished||(this._isFinished=!0,this._scene._jobs.splice(this._scene._jobs.indexOf(this),1),this._completeFn&&this._completeFn())}}]),e}()},{}],23:[function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n0){if(this._delay-=1e3*e,this._delay>0)return;this._remaining+=this._delay}if(this._remaining-=1e3*e,this._remaining<0)return this.finish();var t=1-this._remaining/this._duration;this._updateFn&&this._updateFn(t)}},{key:"finish",value:function(){this._isFinished||(this._isFinished=!0,this._scene._jobs.splice(this._scene._jobs.indexOf(this),1),this._completeFn&&this._completeFn())}}]),e}()},{}],24:[function(e,t,n){"use strict";sk.scene({name:"loading",initialize:function(){this.addStatic("text").configure({text:"Loading...",position:{x:game.display.width/2,y:game.display.height/2},anchor:{x:.5,y:.5}})}})},{}],25:[function(e,t,n){"use strict";sk.scene({name:"menu",layers:["background","items"],systems:["button"],initialize:function(){this.addStatic("sprite","background").configure({texture:game.resources.get("background")})}})},{}],26:[function(e,t,n){"use strict";sk.system({name:"button",check:function(e){return e.has("button")},update:function(e,t){for(var n=t.length-1;n>=0;n--){var i=t[n],s=i.c.button;0!==i.display.alpha&&(i.display.containsPoint(game.mouse.position)?(s.over||(game.events.dispatch("buttonenter",i),this.enter(i)),game.events.dispatch("buttonover",i),s.over=!0,game.mouse.isPressed(sk.BUTTON.LEFT)&&(s.down=!0,game.events.dispatch("buttonclick",i)),game.mouse.isUp(sk.BUTTON.LEFT)&&(s.down=!1)):s.over&&(game.events.dispatch("buttonleave",i),this.leave(i),s.over=!1,s.down=!1))}},methods:{enter:function(e){e.display.alpha&&(e.$hoverJob&&e.$hoverJob.finish(),e.$hoverJob=this.scene.job(300,function(t){var n=sk.utils.easing.cubicOut;e.display.scale.x=e.display.scale.y=1+.1*n(t),e.display.alpha=1-.1*n(t)},function(){e.display.scale={x:1.1,y:1.1},e.display.alpha=.9}))},leave:function(e){e.display.alpha&&(e.$hoverJob&&e.$hoverJob.finish(),e.$hoverJob=this.scene.job(300,function(t){var n=sk.utils.easing.cubicIn;e.display.scale.x=e.display.scale.y=1.1-.1*n(t),e.display.alpha=.9+.1*n(t)},function(){e.display.scale={x:1,y:1},e.display.alpha=1}))}}})},{}],27:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.manifest=[{id:"map_01",type:"json",url:"maps/map01.json"},{id:"data_enemies",type:"json",url:"data/enemies.json"},{id:"data_heroes",type:"json",url:"data/heroes.json"},{id:"data_tiles",type:"json",url:"data/tiles.json"},{id:"data_spawn",type:"json",url:"data/spawn.json"},{id:"spritesheet_textures",type:"spriteSheet",url:"textures/textures.json"}]},{}]},{},[4]); //# sourceMappingURL=game.min.js.map