terra/terra.demo.min.js
2014-08-17 02:23:48 -04:00

1 line
30 KiB
JavaScript
Executable File

Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this;return fNOP=function(){},fBound=function(){return n.apply(this instanceof fNOP&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))},fNOP.prototype=this.prototype,fBound.prototype=new fNOP,fBound}),!function(e,t){"function"==typeof define&&define.amd?define("smoothScroll",t(e)):"object"==typeof exports?module.exports=t(e):e.smoothScroll=t(e)}(this,function(e){"use strict";var t,n={},r=!!document.querySelector&&!!e.addEventListener,o={speed:500,easing:"easeInOutCubic",offset:0,updateURL:!0,callbackBefore:function(){},callbackAfter:function(){}},i=function(e,t,n){if("[object Object]"===Object.prototype.toString.call(e))for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.call(n,e[r],r,e);else for(var o=0,i=e.length;i>o;o++)t.call(n,e[o],o,e)},a=function(e,t){var n={};return i(e,function(t,r){n[r]=e[r]}),i(t,function(e,r){n[r]=t[r]}),n},u=function(e){for(var t,n=String(e),r=n.length,o=-1,i="",a=n.charCodeAt(0);++o<r;){if(t=n.charCodeAt(o),0===t)throw new InvalidCharacterError("Invalid character: the input contains U+0000.");i+=t>=1&&31>=t||127==t||0===o&&t>=48&&57>=t||1===o&&t>=48&&57>=t&&45===a?"\\"+t.toString(16)+" ":t>=128||45===t||95===t||t>=48&&57>=t||t>=65&&90>=t||t>=97&&122>=t?n.charAt(o):"\\"+n.charAt(o)}return i},c=function(e,t){var n;return"easeInQuad"===e&&(n=t*t),"easeOutQuad"===e&&(n=t*(2-t)),"easeInOutQuad"===e&&(n=.5>t?2*t*t:-1+(4-2*t)*t),"easeInCubic"===e&&(n=t*t*t),"easeOutCubic"===e&&(n=--t*t*t+1),"easeInOutCubic"===e&&(n=.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1),"easeInQuart"===e&&(n=t*t*t*t),"easeOutQuart"===e&&(n=1- --t*t*t*t),"easeInOutQuart"===e&&(n=.5>t?8*t*t*t*t:1-8*--t*t*t*t),"easeInQuint"===e&&(n=t*t*t*t*t),"easeOutQuint"===e&&(n=1+--t*t*t*t*t),"easeInOutQuint"===e&&(n=.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t),n||t},s=function(e,t,n){var r=0;if(e.offsetParent)do r+=e.offsetTop,e=e.offsetParent;while(e);return r=r-t-n,r>=0?r:0},l=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},f=function(e){return e&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(e):{}},p=function(e,t){history.pushState&&(t||"true"===t)&&history.pushState({pos:e.id},"",window.location.pathname+e)};return n.animateScroll=function(t,n,r,i){var g=a(g||o,r||{}),h=f(t?t.getAttribute("data-options"):null);g=a(g,h),n="#"+u(n.substr(1));var d,y,m,v=document.querySelector("[data-scroll-header]"),b=null===v?0:v.offsetHeight+v.offsetTop,w=e.pageYOffset,j=s(document.querySelector(n),b,parseInt(g.offset,10)),x=j-w,E=l(),k=0;t&&"a"===t.tagName.toLowerCase()&&i&&i.preventDefault(),p(n,g.updateURL);var O=function(r,o,i){var a=e.pageYOffset;(r==o||a==o||e.innerHeight+a>=E)&&(clearInterval(i),g.callbackAfter(t,n))},S=function(){k+=16,y=k/parseInt(g.speed,10),y=y>1?1:y,m=w+x*c(g.easing,y),e.scrollTo(0,Math.floor(m)),O(m,j,d)},A=function(){g.callbackBefore(t,n),d=setInterval(S,16)};0===e.pageYOffset&&e.scrollTo(0,0),A()},n.init=function(e){if(r){t=a(o,e||{});var u=document.querySelectorAll("[data-scroll]");i(u,function(e){e.addEventListener("click",n.animateScroll.bind(null,e,e.hash,t),!1)})}},n}),self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var o in e)e.hasOwnProperty(o)&&(r[o]=t.util.clone(e[o]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var o in n)r[o]=n[o];return r},insertBefore:function(e,n,r,o){o=o||t.languages;var i=o[e],a={};for(var u in i)if(i.hasOwnProperty(u)){if(u==n)for(var c in r)r.hasOwnProperty(c)&&(a[c]=r[c]);a[u]=i[u]}return o[e]=a},DFS:function(e,n){for(var r in e)n.call(e,r,e[r]),"Object"===t.util.type(e)&&t.languages.DFS(e[r],n)}},highlightAll:function(e,n){for(var r,o=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),i=0;r=o[i++];)t.highlightElement(r,e===!0,n)},highlightElement:function(r,o,i){for(var a,u,c=r;c&&!e.test(c.className);)c=c.parentNode;if(c&&(a=(c.className.match(e)||[,""])[1],u=t.languages[a]),u){r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+a,c=r.parentNode,/pre/i.test(c.nodeName)&&(c.className=c.className.replace(e,"").replace(/\s+/g," ")+" language-"+a);var s=r.textContent;if(s){var l={element:r,language:a,grammar:u,code:s};if(t.hooks.run("before-highlight",l),o&&self.Worker){var f=new Worker(t.filename);f.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),a),t.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,i&&i.call(l.element),t.hooks.run("after-highlight",l)},f.postMessage(JSON.stringify({language:l.language,code:l.code}))}else l.highlightedCode=t.highlight(l.code,l.grammar,l.language),t.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,i&&i.call(r),t.hooks.run("after-highlight",l)}}},highlight:function(e,r,o){var i=t.tokenize(e,r);return n.stringify(t.util.encode(i),o)},tokenize:function(e,n){var r=t.Token,o=[e],i=n.rest;if(i){for(var a in i)n[a]=i[a];delete n.rest}e:for(var a in n)if(n.hasOwnProperty(a)&&n[a]){var u=n[a];u="Array"===t.util.type(u)?u:[u];for(var c=0;c<u.length;++c){var s=u[c],l=s.inside,f=!!s.lookbehind,p=0;s=s.pattern||s;for(var g=0;g<o.length;g++){var h=o[g];if(o.length>e.length)break e;if(!(h instanceof r)){s.lastIndex=0;var d=s.exec(h);if(d){f&&(p=d[1].length);var y=d.index-1+p,d=d[0].slice(p),m=d.length,v=y+m,b=h.slice(0,y+1),w=h.slice(v+1),j=[g,1];b&&j.push(b);var x=new r(a,l?t.tokenize(d,l):d);j.push(x),w&&j.push(w),Array.prototype.splice.apply(o,j)}}}}}return o},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[],r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(r&&r.length)for(var o,i=0;o=r[i++];)o(n)}}},n=t.Token=function(e,t){this.type=e,this.content=t};if(n.stringify=function(e,r,o){if("string"==typeof e)return e;if("[object Array]"==Object.prototype.toString.call(e))return e.map(function(t){return n.stringify(t,r,e)}).join("");var i={type:e.type,content:n.stringify(e.content,r,o),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:o};"comment"==i.type&&(i.attributes.spellcheck="true"),t.hooks.run("wrap",i);var a="";for(var u in i.attributes)a+=u+'="'+(i.attributes[u]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+a+">"+i.content+"</"+i.tag+">"},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,o=n.code;self.postMessage(JSON.stringify(t.tokenize(o,t.languages[r]))),self.close()},!1),self.Prism):self.Prism;var r=document.getElementsByTagName("script");return r=r[r.length-1],r&&(t.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),Prism.languages.markup={comment:/<!--[\w\W]*?-->/g,prolog:/<\?.+?\?>/,doctype:/<!DOCTYPE.+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\&#?[\da-z]{1,8};/gi},Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))}),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//g,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*?(\r?\n|$)/g,lookbehind:!0}],string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/gi,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/gi,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/<script[\w\W]*?>[\w\W]*?<\/script>/gi,inside:{tag:{pattern:/<script[\w\W]*?>|<\/script>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}}),function e(t,n,r){function o(a,u){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!u&&c)return c(a,!0);if(i)return i(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e){function t(){document.body.className=document.body.scrollTop>=o?"sticky":""}function n(e,t){var n=function(){setTimeout(function(){e(),requestAnimationFrame(n)},1e3/t)};requestAnimationFrame(n)}var r=e("../../app/terrarium.js");e("./bugs.js");var o=window.innerHeight,i=document.documentElement.clientWidth,a=Math.ceil(o/20),u=Math.ceil(i/20),c=new r(u,a,"topTerrarium",20,document.getElementById("header"));c.canvas.style.top=c.canvas.style.left="50%",c.canvas.style.marginTop=-10*a+"px",c.canvas.style.marginLeft=-10*u+"px",c.populate([["plant",50],["wimp",10],["bully",5]]);var s=new r(25,25,"golTerrarium",12,document.getElementById("gol"));s.populate([["GoL",100]]);var l=new r(100,100,"cyclicTerrarium",3,document.getElementById("cyclic"));l.populate([["cyclic",100]]),c.draw(),s.draw(),l.draw(),n(function(){c.grid=c.step(),c.draw(),s.grid=s.step(),s.draw(),l.grid=l.step(),l.draw()},1e3),smoothScroll.init({offset:60}),document.addEventListener("scroll",t)},{"../../app/terrarium.js":5,"./bugs.js":8}],2:[function(e,t){var n=e("./util.js"),r=function(){function e(){this.age=0}e.prototype.initialEnergy=50,e.prototype.maxEnergy=100,e.prototype.metabolism=.7,e.prototype.size=50,e.prototype.speed=1,e.prototype.vision=1,e.prototype.sustainability=2,e.prototype.reproduceLv=.7,e.prototype.moveLv=.2,e.prototype.boundEnergy=function(){this.energy>this.maxEnergy&&(this.energy=this.maxEnergy)},e.prototype.isDead=function(){return this.energy<=0},e.prototype.reproduce=function(e){var t=n.filter(e,function(e){return!e.creature});if(t.length){var o=t[n.random(t.length-1)],i=o.coords,a=r.make(this.type),u=function(){return this.energy-=this.initialEnergy,!0}.bind(this),c=this.wait;return{x:i.x,y:i.y,creature:a,successFn:u,failureFn:c}}return!1},e.prototype.move=function(e){var t=this,r=n.filter(e,function(e){return e.creature.size<this.size}.bind(this));if(r.length<this.sustainability&&(r=n.filter(e,function(e){return!e.creature})),r.length){var o=r[n.random(r.length-1)],i=o.coords,a=function(){var e=o.creature.energy*this.metabolism;return this.energy=this.energy+(e||-10),!1}.bind(this);return{x:i.x,y:i.y,creature:t,successFn:a}}return!1},e.prototype.wait=function(){return this.energy-=5,!0},e.prototype.queue=function(e){{var t={};this.maxEnergy}this.energy>this.maxEnergy*this.reproduceLv&&this.reproduce?t=this.reproduce(e):this.energy>this.moveLv&&this.move&&(t=this.move(e));var n=t.creature;return n?(n.successFn=t.successFn||n.wait,n.failureFn=t.failureFn||n.wait,{x:t.x,y:t.y,creature:n}):!1};var t={};return{make:function(e,n){var r=t[e];return r?new r(n):!1},register:function(r,o){var i=r.type;if("string"==typeof i&&"undefined"==typeof t[i]){t[i]="function"==typeof o?function(){this.energy=this.initialEnergy,o.call(this)}:function(){this.energy=this.initialEnergy};var a=r.color;return("object"!=typeof a||3!==a.length)&&(r.color=[n.random(255),n.random(255),n.random(255)]),t[i].prototype=new e,t[i].prototype.constructor=t[i],n.each(r,function(e,n){t[i].prototype[n]=e}),t[i].prototype.successFn=t[i].wait,t[i].prototype.failureFn=t[i].wait,t[i].prototype.energy=r.initialEnergy,!0}return!1}}}();t.exports=r},{"./util.js":6}],3:[function(e,t){var n=e("./util.js");t.exports=function(e,t,r){var o=e.getContext("2d");o.font="bold "+r+"px Arial",o.clearRect(0,0,e.width,e.height),n.each(t,function(e,t){n.each(e,function(e,n){if(e){var i=e.colorFn?e.colorFn():e.color+","+e.energy/e.maxEnergy;o.fillStyle="rgba("+i+")",e.character?o.fillText(e.character,t*r,n*r+r):o.fillRect(t*r,n*r,r,r)}})})}},{"./util.js":6}],4:[function(e,t){var n=function(e,t,n,r){function o(r){var o=document.createElement("canvas");return r=function(){var e=document.createElement("canvas").getContext("2d"),t=window.devicePixelRatio||1,n=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/n}(),o.width=e*r,o.height=t*r,o.style.width=e+"px",o.style.height=t+"px",o.getContext("2d").setTransform(r,0,0,r,0,0),o.id=n,o}var i=o();return r?r.parentNode.insertBefore(i,r.nextSibling):document.body.appendChild(i),i};t.exports={createCanvasElement:n}},{}],5:[function(e,t){function n(e,t,n,r,o){this.width=e,this.height=t,this.cellSize=r||10,this.grid=[],this.canvas=a.createCanvasElement(e*r,t*r,n,o)}var r=e("./util"),o=e("./creature.js"),i=e("./display.js"),a=e("./dom.js");n.prototype.populate=function(e,t){function n(e,t){var n=e+t[1];return!i&&n>a&&(i=o.make(t[0])),n}var i,a=0;t||(t=this.grid);for(var u=this.width;u--;)if(t[u]=[],e)for(var c=this.height;c--;)i=!1,a=r.random(99,!0),r.reduce(e,n,0),t[u].push(i)},n.prototype.step=function(e){function t(e){if(e){var t=r.assign(new e.constructor,e);return t.isDead()?!1:t}return!1}function n(e){return r.map(e,t)}function o(e){return{coords:e,creature:h[e.x][e.y]}}function i(e){var t=e.creature;t?(t.failureFn(),t.boundEnergy()):(e.wait(),e.boundEnergy())}function a(e,t,n){if(e){var a=r.map(r.getNeighborCoords(t,n,p-1,g-1,e.vision),o),u=e.queue(a);if(u){var c=f[u.x];c[u.y]||(c[u.y]=[]),c[u.y].push({x:t,y:n,creature:u.creature})}else i(e)}}function u(e,t){r.each(e,function(e,n){a(e,t,n)})}function c(e,t,n){if(e){var o=e.splice(r.random(e.length-1),1)[0],a=o.creature;a.successFn()===!1&&(l[o.x][o.y]=!1),a.boundEnergy(),l[t][n]=a,r.each(e,i)}}function s(e,t){r.each(e,function(e,n){c(e,t,n)})}var l,f,p=this.width,g=this.height,h=this.grid;for("number"!=typeof e&&(e=1);e--;)h=l?r.clone(l):this.grid,l=r.map(h,n),f=[],this.populate(!1,f),r.each(l,u),r.each(f,s);return l},n.prototype.draw=function(){i(this.canvas,this.grid,this.cellSize)},t.exports=n},{"./creature.js":2,"./display.js":3,"./dom.js":4,"./util":6}],6:[function(e,t){e("../bower_components/seedrandom/seedrandom.js")("terra",{global:!0});var n=e("../lodash_custom/lodash.custom.min.js")._;n.getNeighborCoords=function(e,t,n,r,o){var i,a,u,c,s=[];("number"!=typeof o||1>o)&&(o=1),i=Math.max(0,e-o),u=Math.max(0,t-o),a=Math.min(e+o,n),c=Math.min(t+o,r);for(var l=i;a>=l;l++)for(var f=u;c>=f;f++)(l!==e||f!==t)&&s.push({x:l,y:f});return s},t.exports=n},{"../bower_components/seedrandom/seedrandom.js":7,"../lodash_custom/lodash.custom.min.js":9}],7:[function(e,t){!function(e,t,n,r,o,i,a,u,c){function s(e){var t,n=e.length,o=this,i=0,a=o.i=o.j=0,u=o.S=[];for(n||(e=[n++]);r>i;)u[i]=i++;for(i=0;r>i;i++)u[i]=u[a=m&a+e[i%n]+(t=u[i])],u[a]=t;(o.g=function(e){for(var t,n=0,i=o.i,a=o.j,u=o.S;e--;)t=u[i=m&i+1],n=n*r+u[m&(u[i]=u[a=m&a+t])+(u[a]=t)];return o.i=i,o.j=a,n})(r)}function l(e,t){var n,r=[],o=typeof e;if(t&&"object"==o)for(n in e)try{r.push(l(e[n],t-1))}catch(i){}return r.length?r:"string"==o?e:e+"\x00"}function f(e,t){for(var n,r=e+"",o=0;o<r.length;)t[m&o]=m&(n^=19*t[m&o])+r.charCodeAt(o++);return g(t)}function p(n){try{return e.crypto.getRandomValues(n=new Uint8Array(r)),g(n)}catch(o){return[+new Date,e,(n=e.navigator)&&n.plugins,e.screen,g(t)]}}function g(e){return String.fromCharCode.apply(0,e)}var h=n.pow(r,o),d=n.pow(2,i),y=2*d,m=r-1,v=n["seed"+c]=function(e,i,a){var u=[];i=1==i?{entropy:!0}:i||{};var m=f(l(i.entropy?[e,g(t)]:null==e?p():e,3),u),v=new s(u);return f(g(v.S),t),(i.pass||a||function(e,t,r){return r?(n[c]=e,t):e})(function(){for(var e=v.g(o),t=h,n=0;d>e;)e=(e+n)*r,t*=r,n=v.g(1);for(;e>=y;)e/=2,t/=2,n>>>=1;return(e+n)/t},m,"global"in i?i.global:this==n)};f(n[c](),t),a&&a.exports?a.exports=v:u&&u.amd&&u(function(){return v})}(this,[],Math,256,6,52,"object"==typeof t&&t,"function"==typeof define&&define,"random")},{}],8:[function(e){var t=e("../../app/creature.js"),n=e("../../app/util.js");t.register({type:"plant",color:[0,120,0],size:10,initialEnergy:5,maxEnergy:20,wait:function(){this.energy+=1},move:!1,reproduceLv:.65}),t.register({type:"wimp",color:[0,255,255],size:20,maxEnergy:50,initialEnergy:10}),t.register({type:"bully",color:[255,200,0],size:30,maxEnergy:50,initialEnergy:10,reproduceLv:.6,moveLv:0,metabolism:1,sustainability:3}),t.register({type:"GoL",colorFn:function(){return this.alive?this.color+",1":"0,0,0,0"},wait:function(){},isDead:function(){return!1},queue:function(e){var t=n.filter(e,function(e){return e.creature.alive}).length;return this.alive=3===t||2===t&&this.alive,!1}},function(){this.alive=Math.random()<.5}),t.register({type:"cyclic",colors:["255,0,0,1","255,217,0,1","72,255,0,1","0,255,145,1","0,145,255,1","72,0,255,1","255,0,217,1"],colorFn:function(){return this.colors[this.state]},wait:function(){},isDead:function(){return!1},queue:function(e){var t=(this.state+1)%7,r=n.some(e,function(e){return e.creature.state===t});r&&(this.state=t)}},function(){this.state=Math.floor(7*Math.random())})},{"../../app/creature.js":2,"../../app/util.js":6}],9:[function(e,t,n){(function(e){(function(){function r(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}function o(e){e.length=0,_.length<N&&_.push(e)}function i(e,t){var n;t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);var r=-1;n=n-t||0;for(var o=Array(0>n?0:n);++r<n;)o[r]=e[t+r];return o}function a(){}function u(e){function t(){if(r){var e=i(r);st.apply(e,arguments)}if(this instanceof t){var a=s(n.prototype),e=n.apply(a,e||arguments);return v(e)?e:a}return n.apply(o,e||arguments)}var n=e[0],r=e[2],o=e[4];return jt(t,e),t}function c(e,t,n,a,u){if(n){var s=n(e);if("undefined"!=typeof s)return s}if(!v(e))return e;var l=ot.call(e);if(!G[l]||!wt.nodeClass&&r(e))return e;var f=vt[l];switch(l){case z:case q:return new f(+e);case W:case Q:return new f(e);case J:return s=f(e.source,I.exec(e)),s.lastIndex=e.lastIndex,s}if(l=xt(e),t){var p=!a;a||(a=_.pop()||[]),u||(u=_.pop()||[]);for(var g=a.length;g--;)if(a[g]==e)return u[g];s=l?f(e.length):{}}else s=l?i(e):At({},e);return l&&(ct.call(e,"index")&&(s.index=e.index),ct.call(e,"input")&&(s.input=e.input)),t?(a.push(e),u.push(s),(l?St:Ct)(e,function(e,r){s[r]=c(e,t,n,a,u)}),p&&(o(a),o(u)),s):s}function s(e){return v(e)?gt(e):{}}function l(e,t,n){if("function"!=typeof e)return A;if("undefined"==typeof t||!("prototype"in e))return e;var r=e.__bindData__;if("undefined"==typeof r&&(wt.funcNames&&(r=!e.name),r=r||!wt.funcDecomp,!r)){var o=ut.call(e);wt.funcNames||(r=!L.test(o)),r||(r=B.test(o),jt(e,r))}if(!1===r||!0!==r&&1&r[1])return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,i){return e.call(t,n,r,o,i)}}return S(e,t)}function f(e){function t(){var e=l?u:this;if(o){var y=i(o);st.apply(y,arguments)}return(a||g)&&(y||(y=i(arguments)),a&&st.apply(y,a),g&&y.length<c)?(r|=16,f([n,h?r:-4&r,y,null,u,c])):(y||(y=arguments),p&&(n=e[d]),this instanceof t?(e=s(n.prototype),y=n.apply(e,y),v(y)?y:e):n.apply(e,y))}var n=e[0],r=e[1],o=e[2],a=e[3],u=e[4],c=e[5],l=1&r,p=2&r,g=4&r,h=8&r,d=n;return jt(t,e),t}function p(e,t,n,i,a,u){if(n){var c=n(e,t);if("undefined"!=typeof c)return!!c}if(e===t)return 0!==e||1/e==1/t;if(e===e&&!(e&&Y[typeof e]||t&&Y[typeof t]))return!1;if(null==e||null==t)return e===t;var s=ot.call(e),l=ot.call(t);if(s==T&&(s=H),l==T&&(l=H),s!=l)return!1;switch(s){case z:case q:return+e==+t;case W:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case J:case Q:return e==t+""}if(l=s==M,!l){var f=ct.call(e,"__wrapped__"),g=ct.call(t,"__wrapped__");if(f||g)return p(f?e.__wrapped__:e,g?t.__wrapped__:t,n,i,a,u);if(s!=H||!wt.nodeClass&&(r(e)||r(t)))return!1;if(s=!wt.argsObject&&y(e)?Object:e.constructor,f=!wt.argsObject&&y(t)?Object:t.constructor,s!=f&&!(m(s)&&s instanceof s&&m(f)&&f instanceof f)&&"constructor"in e&&"constructor"in t)return!1}for(s=!a,a||(a=_.pop()||[]),u||(u=_.pop()||[]),f=a.length;f--;)if(a[f]==e)return u[f]==t;var h=0,c=!0;if(a.push(e),u.push(t),l){if(f=e.length,h=t.length,(c=h==f)||i)for(;h--;)if(l=f,g=t[h],i)for(;l--&&!(c=p(e[l],g,n,i,a,u)););else if(!(c=p(e[h],g,n,i,a,u)))break}else Pt(t,function(t,r,o){return ct.call(o,r)?(h++,c=ct.call(e,r)&&p(e[r],t,n,i,a,u)):void 0}),c&&!i&&Pt(e,function(e,t,n){return ct.call(n,t)?c=-1<--h:void 0});return a.pop(),u.pop(),s&&(o(a),o(u)),c}function g(e,t,n,r,o,a){var c=1&t,s=4&t,l=16&t,p=32&t;if(!(2&t||m(e)))throw new TypeError;l&&!n.length&&(t&=-17,l=n=!1),p&&!r.length&&(t&=-33,p=r=!1);var h=e&&e.__bindData__;return h&&!0!==h?(h=i(h),h[2]&&(h[2]=i(h[2])),h[3]&&(h[3]=i(h[3])),!c||1&h[1]||(h[4]=o),!c&&1&h[1]&&(t|=8),!s||4&h[1]||(h[5]=a),l&&st.apply(h[2]||(h[2]=[]),n),p&&ft.apply(h[3]||(h[3]=[]),r),h[1]|=t,g.apply(null,h)):(1==t||17===t?u:f)([e,t,n,r,o,a])}function h(){$.h=D,$.b=$.c=$.g=$.i="",$.e="t",$.j=!0;for(var e,t=0;e=arguments[t];t++)for(var n in e)$[n]=e[n];t=$.a,$.d=/^[^,]+/.exec(t)[0],e=Function,t="return function("+t+"){",n=$;var r="var n,t="+n.d+",E="+n.e+";if(!t)return E;"+n.i+";";n.b?(r+="var u=t.length;n=-1;if("+n.b+"){",wt.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+n.g+";}}else{"):wt.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+n.g+";}}else{"),wt.enumPrototypes&&(r+="var G=typeof t=='function';"),wt.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");var o=[];if(wt.enumPrototypes&&o.push('!(G&&n=="prototype")'),wt.enumErrorProps&&o.push('!(F&&(n=="message"||n=="name"))'),n.j&&n.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",o.length&&(r+="if("+o.join("&&")+"){"),r+=n.g+";",o.length&&(r+="}"),r+="}";else if(r+="for(n in t){",n.j&&o.push("m.call(t, n)"),o.length&&(r+="if("+o.join("&&")+"){"),r+=n.g+";",o.length&&(r+="}"),r+="}",wt.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+n.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",n.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+n.g+"}";r+="}"}return(n.b||wt.nonEnumArgs)&&(r+="}"),r+=n.c+";return E",e("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",t+r+"}")(l,R,tt,ct,F,y,xt,b,$.f,nt,Y,bt,Q,rt,ot)}function d(e){return"function"==typeof e&&it.test(e)}function y(e){return e&&"object"==typeof e&&"number"==typeof e.length&&ot.call(e)==T||!1}function m(e){return"function"==typeof e}function v(e){return!(!e||!Y[typeof e])}function b(e){return"string"==typeof e||e&&"object"==typeof e&&ot.call(e)==Q||!1}function w(e,t,n){var r=[];if(t=a.createCallback(t,n,3),xt(e)){n=-1;for(var o=e.length;++n<o;){var i=e[n];t(i,n,e)&&r.push(i)}}else St(e,function(e,n,o){t(e,n,o)&&r.push(e)});return r}function j(e,t,n){if(t&&"undefined"==typeof n&&xt(e)){n=-1;for(var r=e.length;++n<r&&!1!==t(e[n],n,e););}else St(e,t,n);return e}function x(e,t,n){var r=-1,o=e?e.length:0,i=Array("number"==typeof o?o:0);if(t=a.createCallback(t,n,3),xt(e))for(;++r<o;)i[r]=t(e[r],r,e);else St(e,function(e,n,o){i[++r]=t(e,n,o)});return i}function E(e,t,n,r){var o=3>arguments.length;if(t=a.createCallback(t,r,4),xt(e)){var i=-1,u=e.length;for(o&&(n=e[++i]);++i<u;)n=t(n,e[i],i,e)}else St(e,function(e,r,i){n=o?(o=!1,e):t(n,e,r,i)});return n}function O(e,t,n){var r;if(t=a.createCallback(t,n,3),xt(e)){n=-1;for(var o=e.length;++n<o&&!(r=t(e[n],n,e)););}else St(e,function(e,n,o){return!(r=t(e,n,o))});return!!r}function S(e,t){return 2<arguments.length?g(e,17,i(arguments,2),null,t):g(e,1,null,null,t)}function A(e){return e}function P(){}function C(e){return function(t){return t[e]}}var _=[],F={},N=40,I=/\w*$/,L=/^\s*function[ \n\r\t]+\w/,B=/\bthis\b/,D="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),T="[object Arguments]",M="[object Array]",z="[object Boolean]",q="[object Date]",R="[object Error]",W="[object Number]",H="[object Object]",J="[object RegExp]",Q="[object String]",G={"[object Function]":!1};G[T]=G[M]=G[z]=G[q]=G[W]=G[H]=G[J]=G[Q]=!0;var U={configurable:!1,enumerable:!1,value:null,writable:!1},$={a:"",b:null,c:"",d:"",e:"",v:null,g:"",h:null,support:null,i:"",j:!1},Y={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},K=Y[typeof window]&&window||this,V=Y[typeof n]&&n&&!n.nodeType&&n,X=Y[typeof t]&&t&&!t.nodeType&&t,Z=Y[typeof e]&&e;!Z||Z.global!==Z&&Z.window!==Z||(K=Z);var et=[],tt=Error.prototype,nt=Object.prototype,rt=String.prototype,ot=nt.toString,it=RegExp("^"+(ot+"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),at=Math.floor,ut=Function.prototype.toString,ct=nt.hasOwnProperty,st=et.push,lt=nt.propertyIsEnumerable,ft=et.unshift,pt=function(){try{var e={},t=d(t=Object.defineProperty)&&t,n=t(e,e,e)&&t}catch(r){}return n}(),gt=d(gt=Object.create)&&gt,ht=d(ht=Array.isArray)&&ht,dt=d(dt=Object.keys)&&dt,yt=Math.min,mt=Math.random,vt={};vt[M]=Array,vt[z]=Boolean,vt[q]=Date,vt["[object Function]"]=Function,vt[H]=Object,vt[W]=Number,vt[J]=RegExp,vt[Q]=String;var bt={};bt[M]=bt[q]=bt[W]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},bt[z]=bt[Q]={constructor:!0,toString:!0,valueOf:!0},bt[R]=bt["[object Function]"]=bt[J]={constructor:!0,toString:!0},bt[H]={constructor:!0},function(){for(var e=D.length;e--;){var t,n=D[e];for(t in bt)ct.call(bt,t)&&!ct.call(bt[t],n)&&(bt[t][n]=!1)}}();var wt=a.support={};!function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in arguments);wt.argsClass=ot.call(arguments)==T,wt.argsObject=arguments.constructor==Object&&!(arguments instanceof Array),wt.enumErrorProps=lt.call(tt,"message")||lt.call(tt,"name"),wt.enumPrototypes=lt.call(e,"prototype"),wt.funcDecomp=!d(K.k)&&B.test(function(){return this}),wt.funcNames="string"==typeof Function.name,wt.nonEnumArgs=0!=r,wt.nonEnumShadows=!/valueOf/.test(n),wt.spliceObjects=(et.splice.call(t,0,1),!t[0]),wt.unindexedChars="xx"!="x"[0]+Object("x")[0];try{wt.nodeClass=!(ot.call(document)==H&&!({toString:0}+""))}catch(o){wt.nodeClass=!0}}(1),gt||(s=function(){function e(){}return function(t){if(v(t)){e.prototype=t;var n=new e;e.prototype=null}return n||K.Object()}}());var jt=pt?function(e,t){U.value=t,pt(e,"__bindData__",U)}:P;wt.argsClass||(y=function(e){return e&&"object"==typeof e&&"number"==typeof e.length&&ct.call(e,"callee")&&!lt.call(e,"callee")||!1});var xt=ht||function(e){return e&&"object"==typeof e&&"number"==typeof e.length&&ot.call(e)==M||!1},Et=h({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),kt=dt?function(e){return v(e)?wt.enumPrototypes&&"function"==typeof e||wt.nonEnumArgs&&e.length&&y(e)?Et(e):dt(e):[]}:Et,Z={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:kt,g:"if(e(t[n],n,g)===false)return E"},ht={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:kt,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Ot={i:"if(!B[typeof t])return E;"+Z.i,b:!1},St=h(Z),At=h(ht,{i:ht.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Pt=h(Z,Ot,{j:!1}),Ct=h(Z,Ot);m(/x/)&&(m=function(e){return"function"==typeof e&&"[object Function]"==ot.call(e)}),a.assign=At,a.bind=S,a.createCallback=function(e,t,n){var r=typeof e;if(null==e||"function"==r)return l(e,t,n);if("object"!=r)return C(e);var o=kt(e),i=o[0],a=e[i];return 1!=o.length||a!==a||v(a)?function(t){for(var n=o.length,r=!1;n--&&(r=p(t[o[n]],e[o[n]],null,!0)););return r}:function(e){return e=e[i],a===e&&(0!==a||1/a==1/e)}},a.filter=w,a.forEach=j,a.forIn=Pt,a.forOwn=Ct,a.keys=kt,a.map=x,a.property=C,a.collect=x,a.each=j,a.extend=At,a.select=w,a.clone=function(e,t,n,r){return"boolean"!=typeof t&&null!=t&&(r=n,n=t,t=!1),c(e,t,"function"==typeof n&&l(n,r,1))},a.identity=A,a.isArguments=y,a.isArray=xt,a.isFunction=m,a.isObject=v,a.isString=b,a.noop=P,a.random=function(e,t,n){var r=null==e,o=null==t;return null==n&&("boolean"==typeof e&&o?(n=e,e=1):o||"boolean"!=typeof t||(n=t,o=!0)),r&&o&&(t=1),e=+e||0,o?(t=e,e=0):t=+t||0,n||e%1||t%1?(n=mt(),yt(e+n*(t-e+parseFloat("1e-"+((n+"").length-1))),t)):e+at(mt()*(t-e+1))},a.reduce=E,a.some=O,a.any=O,a.foldl=E,a.inject=E,a.VERSION="2.4.1",V&&X&&(V._=a)}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]);