deploy: 1f62c8fdf0872e3f01af12f8348390e253371641
BIN
TiledTDThree64.png
Normal file
After Width: | Height: | Size: 143 KiB |
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.10" tiledversion="1.11.0" name="TiledTDThree64" tilewidth="64" tileheight="64" tilecount="140" columns="14">
|
||||
<image source="../../../../dumping/tiles/TiledTDThree64.png" width="896" height="640"/>
|
||||
<image source="./TiledTDThree64.png" width="896" height="640"/>
|
||||
</tileset>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import{u as We,G as te,v as re,x as Ve,l as se,M as g,E as u,e as D,y as ne,z as _,F as je,R as E,H as ae,I as ie,J as Ne,a as m,S as p,j as B,w as oe,K as $,L as $e,d as q,B as k,k as U,N as M,T as b,O as S,Q as qe,c as Ke,C as w,V as le,W as ue,X as de,Y as ce,Z as Ye,P as Je,h as Xe,b as K,D as he,_ as Y,$ as Qe,a0 as Ze,a1 as et}from"./index-CkdXe05Z.js";import{S as fe,T as J,B as tt,c as rt}from"./colorToUniform-D6WiE-Of.js";const pe=class A extends We{constructor(e){e={...A.defaultOptions,...e},super(e),this.enabled=!0,this._state=fe.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.addResource("uTexture",0,1)}apply(e,t,r,n){e.applyFilter(this,t,r,n)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){const{gpu:t,gl:r,...n}=e;let a,i;return t&&(a=te.from(t)),r&&(i=re.from(r)),new A({gpuProgram:a,glProgram:i,...n})}};pe.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1};let st=pe;var nt=`in vec2 vMaskCoord;
|
||||
import{u as We,G as te,v as re,x as Ve,l as se,M as g,E as u,e as D,y as ne,z as _,F as je,R as E,H as ae,I as ie,J as Ne,a as m,S as p,j as B,w as oe,K as $,L as $e,d as q,B as k,k as U,N as M,T as b,O as S,Q as qe,c as Ke,C as w,V as le,W as ue,X as de,Y as ce,Z as Ye,P as Je,h as Xe,b as K,D as he,_ as Y,$ as Qe,a0 as Ze,a1 as et}from"./index-DUfzhg12.js";import{S as fe,T as J,B as tt,c as rt}from"./colorToUniform-C1jQKuTl.js";const pe=class A extends We{constructor(e){e={...A.defaultOptions,...e},super(e),this.enabled=!0,this._state=fe.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.addResource("uTexture",0,1)}apply(e,t,r,n){e.applyFilter(this,t,r,n)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){const{gpu:t,gl:r,...n}=e;let a,i;return t&&(a=te.from(t)),r&&(i=re.from(r)),new A({gpuProgram:a,glProgram:i,...n})}};pe.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1};let st=pe;var nt=`in vec2 vMaskCoord;
|
||||
in vec2 vTextureCoord;
|
||||
|
||||
uniform sampler2D uTexture;
|
@ -1,4 +1,4 @@
|
||||
import{T as _,a as M,n as g}from"./index-CkdXe05Z.js";const P={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},u=0,h=1,c=2,d=3,f=4,p=5,x=class b{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<u)}set blend(t){!!(this.data&1<<u)!==t&&(this.data^=1<<u)}get offsets(){return!!(this.data&1<<h)}set offsets(t){!!(this.data&1<<h)!==t&&(this.data^=1<<h)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<c)}set culling(t){!!(this.data&1<<c)!==t&&(this.data^=1<<c)}get depthTest(){return!!(this.data&1<<d)}set depthTest(t){!!(this.data&1<<d)!==t&&(this.data^=1<<d)}get depthMask(){return!!(this.data&1<<p)}set depthMask(t){!!(this.data&1<<p)!==t&&(this.data^=1<<p)}get clockwiseFrontFace(){return!!(this.data&1<<f)}set clockwiseFrontFace(t){!!(this.data&1<<f)!==t&&(this.data^=1<<f)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=P[t]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){const t=new b;return t.depthTest=!1,t.blend=!0,t}};x.default2d=x.for2d();let w=x,T=0;class S{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1}createTexture(t,o,e){const r=new _({...this.textureOptions,width:t,height:o,resolution:1,antialias:e,autoGarbageCollect:!0});return new M({source:r,label:`texturePool_${T++}`})}getOptimalTexture(t,o,e=1,r){let n=Math.ceil(t*e-1e-6),l=Math.ceil(o*e-1e-6);n=g(n),l=g(l);const a=(n<<17)+(l<<1)+(r?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let s=this._texturePool[a].pop();return s||(s=this.createTexture(n,l,r)),s.source._resolution=e,s.source.width=n/e,s.source.height=l/e,s.source.pixelWidth=n,s.source.pixelHeight=l,s.frame.x=0,s.frame.y=0,s.frame.width=t,s.frame.height=o,s.updateUvs(),this._poolKeyHash[s.uid]=a,s}getSameSizeTexture(t,o=!1){const e=t.source;return this.getOptimalTexture(t.width,t.height,e._resolution,o)}returnTexture(t){const o=this._poolKeyHash[t.uid];this._texturePool[o].push(t)}clear(t){if(t=t!==!1,t)for(const o in this._texturePool){const e=this._texturePool[o];if(e)for(let r=0;r<e.length;r++)e[r].destroy(!0)}this._texturePool={}}}const k=new S,m={name:"local-uniform-bit",vertex:{header:`
|
||||
import{T as _,a as M,n as g}from"./index-DUfzhg12.js";const P={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},u=0,h=1,c=2,d=3,f=4,p=5,x=class b{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<u)}set blend(t){!!(this.data&1<<u)!==t&&(this.data^=1<<u)}get offsets(){return!!(this.data&1<<h)}set offsets(t){!!(this.data&1<<h)!==t&&(this.data^=1<<h)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<c)}set culling(t){!!(this.data&1<<c)!==t&&(this.data^=1<<c)}get depthTest(){return!!(this.data&1<<d)}set depthTest(t){!!(this.data&1<<d)!==t&&(this.data^=1<<d)}get depthMask(){return!!(this.data&1<<p)}set depthMask(t){!!(this.data&1<<p)!==t&&(this.data^=1<<p)}get clockwiseFrontFace(){return!!(this.data&1<<f)}set clockwiseFrontFace(t){!!(this.data&1<<f)!==t&&(this.data^=1<<f)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=P[t]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){const t=new b;return t.depthTest=!1,t.blend=!0,t}};x.default2d=x.for2d();let w=x,T=0;class S{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1}createTexture(t,o,e){const r=new _({...this.textureOptions,width:t,height:o,resolution:1,antialias:e,autoGarbageCollect:!0});return new M({source:r,label:`texturePool_${T++}`})}getOptimalTexture(t,o,e=1,r){let n=Math.ceil(t*e-1e-6),l=Math.ceil(o*e-1e-6);n=g(n),l=g(l);const a=(n<<17)+(l<<1)+(r?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let s=this._texturePool[a].pop();return s||(s=this.createTexture(n,l,r)),s.source._resolution=e,s.source.width=n/e,s.source.height=l/e,s.source.pixelWidth=n,s.source.pixelHeight=l,s.frame.x=0,s.frame.y=0,s.frame.width=t,s.frame.height=o,s.updateUvs(),this._poolKeyHash[s.uid]=a,s}getSameSizeTexture(t,o=!1){const e=t.source;return this.getOptimalTexture(t.width,t.height,e._resolution,o)}returnTexture(t){const o=this._poolKeyHash[t.uid];this._texturePool[o].push(t)}clear(t){if(t=t!==!1,t)for(const o in this._texturePool){const e=this._texturePool[o];if(e)for(let r=0;r<e.length;r++)e[r].destroy(!0)}this._texturePool={}}}const k=new S,m={name:"local-uniform-bit",vertex:{header:`
|
||||
|
||||
struct LocalUniforms {
|
||||
uTransformMatrix:mat3x3<f32>,
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
BIN
assets/creeps/cloaker/0.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/cloaker/1.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/cloaker/10.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/cloaker/11.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/cloaker/2.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/3.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/4.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/5.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/6.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/cloaker/7.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/8.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/cloaker/9.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/demon/0.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/demon/1.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/demon/2.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/creeps/demon/3.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/creeps/demon/4.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/demon/5.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/creeps/demon/6.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/creeps/demon/7.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/maker/1.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/maker/2.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
assets/creeps/maker/3.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/maker/4.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/maker/5.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/maker/6.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/creeps/maker/7.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
296
assets/index-DUfzhg12.js
Normal file
@ -5,7 +5,7 @@
|
||||
"textureArrayLength": 12,
|
||||
"stats": {
|
||||
"health": 5,
|
||||
"speed": 6,
|
||||
"speed": 4,
|
||||
"special": null,
|
||||
"resistance": {
|
||||
"physical": 0,
|
||||
@ -19,10 +19,10 @@
|
||||
{
|
||||
"name": "quick",
|
||||
"textures": [],
|
||||
"textureArrayLength": 12,
|
||||
"textureArrayLength": 8,
|
||||
"stats": {
|
||||
"health": 7,
|
||||
"speed": 2.4,
|
||||
"health": 2,
|
||||
"speed": 6,
|
||||
"special": null,
|
||||
"resistance": {
|
||||
"physical": 0,
|
||||
@ -38,8 +38,8 @@
|
||||
"textures": [],
|
||||
"textureArrayLength": 12,
|
||||
"stats": {
|
||||
"health": 7,
|
||||
"speed": 2.4,
|
||||
"health": 12,
|
||||
"speed": 2,
|
||||
"special": null,
|
||||
"resistance": {
|
||||
"physical": 0,
|
||||
|
@ -2,6 +2,7 @@
|
||||
{
|
||||
"name": "Fire Gem",
|
||||
"description": "Forged from molten lava, the Fire Gem imbues your tower's attacks and adds 50% extra fire damage. It can be merged with any gem and is common. This text shouldn't be long.",
|
||||
"color": "red",
|
||||
"type": "Fire",
|
||||
"totalLevels": 2,
|
||||
"textures": [],
|
||||
@ -11,7 +12,7 @@
|
||||
"genericImprovements": [
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -19,7 +20,7 @@
|
||||
},
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -30,14 +31,14 @@
|
||||
{
|
||||
"physical": 0,
|
||||
"divine": 0,
|
||||
"fire": 0.5,
|
||||
"fire": 0.25,
|
||||
"ice": 0,
|
||||
"frostfire": 0
|
||||
},
|
||||
{
|
||||
"physical": 0,
|
||||
"divine": 0,
|
||||
"fire": 0.5,
|
||||
"fire": 0.25,
|
||||
"ice": 0,
|
||||
"frostfire": 0
|
||||
}
|
||||
@ -46,6 +47,7 @@
|
||||
{
|
||||
"name": "Yeti Gem",
|
||||
"description": "Yeti gem description. Something something, write this while drunk or something.",
|
||||
"color": "#32e4fc",
|
||||
"type": "Yeti",
|
||||
"totalLevels": 2,
|
||||
"textures": [],
|
||||
@ -55,7 +57,7 @@
|
||||
"genericImprovements": [
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -63,7 +65,7 @@
|
||||
},
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -90,6 +92,7 @@
|
||||
{
|
||||
"name": "Titalium Gem",
|
||||
"description": "Titalium gem description. Something something zombie creeps working for you something something.",
|
||||
"color": "pink",
|
||||
"type": "Titalium",
|
||||
"totalLevels": 3,
|
||||
"textures": [],
|
||||
@ -99,7 +102,7 @@
|
||||
"genericImprovements": [
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -107,7 +110,7 @@
|
||||
},
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -115,7 +118,7 @@
|
||||
},
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -149,6 +152,7 @@
|
||||
{
|
||||
"name": "Soulforge Gem",
|
||||
"description": "Soulforge gem description, have to write later.",
|
||||
"color": "gray",
|
||||
"type": "Soulforge",
|
||||
"totalLevels": 2,
|
||||
"textures": [],
|
||||
@ -158,7 +162,7 @@
|
||||
"genericImprovements": [
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
@ -166,7 +170,7 @@
|
||||
},
|
||||
{
|
||||
"damageUp": 2,
|
||||
"attackSpeedUp": 100,
|
||||
"attackSpeedUp": 10,
|
||||
"rangeUp": 0.5,
|
||||
"timeToLiveUp": 0,
|
||||
"pierceUp": 1,
|
||||
|
@ -9,26 +9,30 @@
|
||||
"description": "The building block of society, nothing more basic exists.",
|
||||
"stats": {
|
||||
"damage": 2,
|
||||
"cooldown": 60,
|
||||
"cooldown": 120,
|
||||
"gemSlotsAmount": 2,
|
||||
"cost": 100,
|
||||
"range": 3
|
||||
"range": 3,
|
||||
"timeToLive": 120,
|
||||
"pierce": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Circle Tower",
|
||||
"behaviour": "BasicTowerBehaviour",
|
||||
"behaviour": "CircleTowerBehaviour",
|
||||
"sprite": "circle_tower",
|
||||
"texture": null,
|
||||
"projectileTextures": [],
|
||||
"projectileTexturesArrayLength": 4,
|
||||
"description": "If you feel a little circular.",
|
||||
"stats": {
|
||||
"damage": 6,
|
||||
"cooldown": 180,
|
||||
"damage": 2,
|
||||
"cooldown": 120,
|
||||
"gemSlotsAmount": 3,
|
||||
"cost": 125,
|
||||
"range": 3
|
||||
"range": 2,
|
||||
"timeToLive": 8,
|
||||
"pierce": 30
|
||||
}
|
||||
}
|
||||
]
|
||||
|
BIN
assets/maps/01_first_steps.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
assets/maps/02_the_turn.png
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
assets/maps/03_fork_in_the_road.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
assets/maps/04_crossroads.png
Normal file
After Width: | Height: | Size: 131 KiB |
BIN
assets/maps/05_the_maze.png
Normal file
After Width: | Height: | Size: 183 KiB |
BIN
assets/maps/06_multiple_fronts.png
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
assets/maps/07_final_stretch.png
Normal file
After Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 120 KiB |
76
assets/missions/01_first_steps.json
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
"name": "First Steps",
|
||||
"description": "Welcome to your first defense mission. Protect the exit from basic invaders.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/01_first_steps.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[0, 8],
|
||||
[1, 8],
|
||||
[2, 8],
|
||||
[3, 8],
|
||||
[4, 8],
|
||||
[5, 8],
|
||||
[6, 8],
|
||||
[7, 8],
|
||||
[8, 8],
|
||||
[9, 8],
|
||||
[10, 8],
|
||||
[11, 8],
|
||||
[12, 8],
|
||||
[13, 8],
|
||||
[14, 8],
|
||||
[15, 8],
|
||||
[16, 8],
|
||||
[17, 8],
|
||||
[18, 8],
|
||||
[19, 8],
|
||||
[20, 8],
|
||||
[21, 8],
|
||||
[22, 8],
|
||||
[23, 8],
|
||||
[24, 8]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 4000,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 0, 0]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1]
|
||||
}
|
||||
]
|
||||
}
|
128
assets/missions/02_the_turn.json
Normal file
@ -0,0 +1,128 @@
|
||||
{
|
||||
"name": "The Turn",
|
||||
"description": "Start using some better strategies for this one.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/02_the_turn.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1],
|
||||
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[0, 4],
|
||||
[1, 4],
|
||||
[2, 4],
|
||||
[3, 4],
|
||||
[4, 4],
|
||||
[5, 4],
|
||||
[6, 4],
|
||||
[7, 4],
|
||||
[8, 4],
|
||||
[9, 4],
|
||||
[10, 4],
|
||||
[11, 4],
|
||||
[12, 4],
|
||||
[12, 5],
|
||||
[12, 6],
|
||||
[12, 7],
|
||||
[12, 8],
|
||||
[12, 9],
|
||||
[12, 10],
|
||||
[11, 10],
|
||||
[10, 10],
|
||||
[9, 10],
|
||||
[8, 10],
|
||||
[7, 10],
|
||||
[6, 10],
|
||||
[5, 10],
|
||||
[4, 10],
|
||||
[3, 10],
|
||||
[3, 11],
|
||||
[3, 12],
|
||||
[3, 13],
|
||||
[3, 14],
|
||||
[4, 14],
|
||||
[5, 14],
|
||||
[6, 14],
|
||||
[7, 14],
|
||||
[8, 14],
|
||||
[9, 14],
|
||||
[10, 14],
|
||||
[11, 14],
|
||||
[12, 14],
|
||||
[13, 14],
|
||||
[14, 14],
|
||||
[15, 14],
|
||||
[16, 14],
|
||||
[17, 14],
|
||||
[18, 14],
|
||||
[19, 14],
|
||||
[20, 14],
|
||||
[20, 13],
|
||||
[20, 12],
|
||||
[20, 11],
|
||||
[20, 10],
|
||||
[20, 9],
|
||||
[20, 8],
|
||||
[20, 7],
|
||||
[20, 6],
|
||||
[20, 5],
|
||||
[21, 5],
|
||||
[22, 5],
|
||||
[23, 5],
|
||||
[24, 5]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 0, 0, 0]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 0, 0, 0]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [1, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [2, 2, 2, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
141
assets/missions/03_fork_in_the_road.json
Normal file
@ -0,0 +1,141 @@
|
||||
{
|
||||
"name": "Fork in the Road",
|
||||
"description": "Multiple paths and heavily armored tank units test your defensive strategy.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/03_fork_in_the_road.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
|
||||
[1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[0, 8],
|
||||
[1, 8],
|
||||
[2, 8],
|
||||
[3, 8],
|
||||
[4, 8],
|
||||
[5, 8],
|
||||
[6, 8],
|
||||
[7, 8],
|
||||
[8, 8],
|
||||
[8, 7],
|
||||
[8, 6],
|
||||
[8, 5],
|
||||
[8, 4],
|
||||
[9, 4],
|
||||
[10, 4],
|
||||
[11, 4],
|
||||
[12, 4],
|
||||
[13, 4],
|
||||
[14, 4],
|
||||
[15, 4],
|
||||
[16, 4],
|
||||
[17, 4],
|
||||
[18, 4],
|
||||
[19, 4],
|
||||
[20, 4],
|
||||
[21, 4],
|
||||
[22, 4],
|
||||
[23, 4],
|
||||
[24, 4]
|
||||
],
|
||||
[
|
||||
[0, 8],
|
||||
[1, 8],
|
||||
[2, 8],
|
||||
[3, 8],
|
||||
[4, 8],
|
||||
[5, 8],
|
||||
[6, 8],
|
||||
[7, 8],
|
||||
[8, 8],
|
||||
[8, 9],
|
||||
[8, 10],
|
||||
[8, 11],
|
||||
[8, 12],
|
||||
[9, 12],
|
||||
[10, 12],
|
||||
[11, 12],
|
||||
[12, 12],
|
||||
[13, 12],
|
||||
[14, 12],
|
||||
[15, 12],
|
||||
[16, 12],
|
||||
[17, 12],
|
||||
[18, 12],
|
||||
[19, 12],
|
||||
[20, 12],
|
||||
[21, 12],
|
||||
[22, 12],
|
||||
[23, 12],
|
||||
[24, 12]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 0, 0, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 800,
|
||||
"creeps": [1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 900,
|
||||
"creeps": [2, 0, 0, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 5000,
|
||||
"spawnIntervalTicks": 700,
|
||||
"creeps": [1, 1, 2, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 800,
|
||||
"creeps": [2, 1, 0, 2, 1, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [2, 2, 1, 1, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
169
assets/missions/04_crossroads.json
Normal file
@ -0,0 +1,169 @@
|
||||
{
|
||||
"name": "Crossroads",
|
||||
"description": "Multiple entry points and intersecting paths require careful tower placement and strategy.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/04_crossroads.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[0, 13],
|
||||
[1, 13],
|
||||
[2, 13],
|
||||
[3, 13],
|
||||
[4, 13],
|
||||
[5, 13],
|
||||
[6, 13],
|
||||
[7, 13],
|
||||
[8, 13],
|
||||
[9, 13],
|
||||
[10, 13],
|
||||
[11, 13],
|
||||
[12, 13],
|
||||
[13, 13],
|
||||
[14, 13],
|
||||
[15, 13],
|
||||
[15, 12],
|
||||
[15, 11],
|
||||
[15, 10],
|
||||
[16, 10],
|
||||
[17, 10],
|
||||
[18, 10],
|
||||
[19, 10],
|
||||
[20, 10],
|
||||
[20, 9],
|
||||
[20, 8],
|
||||
[20, 7],
|
||||
[20, 6],
|
||||
[21, 6],
|
||||
[22, 6],
|
||||
[23, 6],
|
||||
[24, 6]
|
||||
],
|
||||
[
|
||||
[14, 0],
|
||||
[14, 1],
|
||||
[14, 2],
|
||||
[13, 2],
|
||||
[12, 2],
|
||||
[11, 2],
|
||||
[10, 2],
|
||||
[9, 2],
|
||||
[8, 2],
|
||||
[7, 2],
|
||||
[7, 3],
|
||||
[7, 4],
|
||||
[7, 5],
|
||||
[8, 5],
|
||||
[9, 5],
|
||||
[10, 5],
|
||||
[11, 5],
|
||||
[12, 5],
|
||||
[12, 6],
|
||||
[12, 7],
|
||||
[12, 8],
|
||||
[12, 9],
|
||||
[12, 10],
|
||||
[13, 10],
|
||||
[14, 10],
|
||||
[15, 10],
|
||||
[16, 10],
|
||||
[17, 10],
|
||||
[18, 10],
|
||||
[19, 10],
|
||||
[20, 10],
|
||||
[20, 9],
|
||||
[20, 8],
|
||||
[20, 7],
|
||||
[20, 6],
|
||||
[21, 6],
|
||||
[22, 6],
|
||||
[23, 6],
|
||||
[24, 6]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 1, 0, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 800,
|
||||
"creeps": [1, 1, 2, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 0]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 800,
|
||||
"creeps": [2, 0, 2, 0, 2, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 5000,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [1, 2, 1, 2, 1, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 700,
|
||||
"creeps": [2, 1, 0, 2, 1, 0, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 0, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
263
assets/missions/05_the_maze.json
Normal file
@ -0,0 +1,263 @@
|
||||
{
|
||||
"name": "The Maze",
|
||||
"description": "A complex network of paths requires masterful tower placement and timing.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/05_the_maze.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1],
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0],
|
||||
[1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 0, 9, 0, 0, 0, 0, 9, 9, 9],
|
||||
[1, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9, 0, 1, 0, 9, 0, 0, 9, 0, 1, 1, 0, 0, 0, 0],
|
||||
[1, 0, 9, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 0, 9, 0, 1, 1, 0, 9, 9, 9, 9, 9, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 0, 9, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 9, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[0, 1],
|
||||
[1, 1],
|
||||
[2, 1],
|
||||
[3, 1],
|
||||
[4, 1],
|
||||
[5, 1],
|
||||
[6, 1],
|
||||
[7, 1],
|
||||
[8, 1],
|
||||
[9, 1],
|
||||
[10, 1],
|
||||
[11, 1],
|
||||
[12, 1],
|
||||
[13, 1],
|
||||
[14, 1],
|
||||
[15, 1],
|
||||
[16, 1],
|
||||
[17, 1],
|
||||
[17, 2],
|
||||
[17, 3],
|
||||
[17, 4],
|
||||
[17, 5],
|
||||
[17, 6],
|
||||
[17, 7],
|
||||
[17, 8],
|
||||
[17, 9],
|
||||
[17, 10],
|
||||
[17, 11],
|
||||
[17, 12],
|
||||
[17, 13],
|
||||
[17, 14],
|
||||
[16, 14],
|
||||
[15, 14],
|
||||
[14, 14],
|
||||
[13, 14],
|
||||
[12, 14],
|
||||
[11, 14],
|
||||
[10, 14],
|
||||
[9, 14],
|
||||
[8, 14],
|
||||
[7, 14],
|
||||
[6, 14],
|
||||
[5, 14],
|
||||
[5, 13],
|
||||
[5, 12],
|
||||
[5, 11],
|
||||
[5, 10],
|
||||
[5, 9],
|
||||
[6, 9],
|
||||
[7, 9],
|
||||
[8, 9],
|
||||
[9, 9],
|
||||
[10, 9],
|
||||
[10, 10],
|
||||
[10, 11],
|
||||
[11, 11],
|
||||
[12, 11],
|
||||
[13, 11],
|
||||
[14, 11],
|
||||
[14, 10],
|
||||
[14, 9],
|
||||
[14, 8],
|
||||
[14, 7],
|
||||
[15, 7],
|
||||
[16, 7],
|
||||
[17, 7],
|
||||
[18, 7],
|
||||
[19, 7],
|
||||
[20, 7],
|
||||
[21, 7],
|
||||
[22, 7],
|
||||
[22, 8],
|
||||
[23, 8],
|
||||
[24, 8]
|
||||
],
|
||||
[
|
||||
[0, 15],
|
||||
[1, 15],
|
||||
[2, 15],
|
||||
[2, 14],
|
||||
[2, 13],
|
||||
[2, 12],
|
||||
[2, 11],
|
||||
[2, 10],
|
||||
[2, 9],
|
||||
[2, 8],
|
||||
[2, 7],
|
||||
[2, 6],
|
||||
[2, 5],
|
||||
[2, 4],
|
||||
[3, 4],
|
||||
[4, 4],
|
||||
[5, 4],
|
||||
[6, 4],
|
||||
[7, 4],
|
||||
[8, 4],
|
||||
[9, 4],
|
||||
[10, 4],
|
||||
[11, 4],
|
||||
[12, 4],
|
||||
[13, 4],
|
||||
[14, 4],
|
||||
[14, 5],
|
||||
[14, 6],
|
||||
[14, 7],
|
||||
[14, 8],
|
||||
[14, 9],
|
||||
[14, 10],
|
||||
[14, 11],
|
||||
[13, 11],
|
||||
[12, 11],
|
||||
[11, 11],
|
||||
[10, 11],
|
||||
[10, 10],
|
||||
[10, 9],
|
||||
[9, 9],
|
||||
[8, 9],
|
||||
[7, 9],
|
||||
[6, 9],
|
||||
[5, 9],
|
||||
[5, 10],
|
||||
[5, 11],
|
||||
[5, 12],
|
||||
[5, 13],
|
||||
[5, 14],
|
||||
[6, 14],
|
||||
[7, 14],
|
||||
[8, 14],
|
||||
[9, 14],
|
||||
[10, 14],
|
||||
[11, 14],
|
||||
[12, 14],
|
||||
[13, 14],
|
||||
[14, 14],
|
||||
[15, 14],
|
||||
[16, 14],
|
||||
[17, 14],
|
||||
[17, 13],
|
||||
[17, 12],
|
||||
[17, 11],
|
||||
[17, 10],
|
||||
[17, 9],
|
||||
[17, 8],
|
||||
[17, 7],
|
||||
[18, 7],
|
||||
[19, 7],
|
||||
[20, 7],
|
||||
[21, 7],
|
||||
[22, 7],
|
||||
[22, 8],
|
||||
[23, 8],
|
||||
[24, 8]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 800,
|
||||
"creeps": [0, 1, 0, 1, 0, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 5000,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [1, 1, 2, 1, 1, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 700,
|
||||
"creeps": [2, 0, 2, 1, 2, 0, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [2, 1, 2, 1, 2, 1, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [2, 2, 1, 1, 0, 2, 2, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1, 1, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 300,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1, 2, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 8000,
|
||||
"spawnIntervalTicks": 250,
|
||||
"creeps": [2, 2, 2, 2, 2, 1, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
199
assets/missions/06_multiple_fronts.json
Normal file
@ -0,0 +1,199 @@
|
||||
{
|
||||
"name": "Multi-Defense",
|
||||
"description": "Multiple exits must be defended simultaneously against increasingly difficult waves.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/06_multiple_fronts.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
|
||||
[1, 0, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1],
|
||||
[1, 0, 9, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1],
|
||||
[1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 1, 1, 0, 9, 0, 0, 0],
|
||||
[1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9],
|
||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[9, 9, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[0, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 0, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9],
|
||||
[1, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[5, 0],
|
||||
[5, 1],
|
||||
[5, 2],
|
||||
[4, 2],
|
||||
[3, 2],
|
||||
[2, 2],
|
||||
[2, 3],
|
||||
[2, 4],
|
||||
[2, 5],
|
||||
[3, 5],
|
||||
[4, 5],
|
||||
[5, 5],
|
||||
[6, 5],
|
||||
[7, 5],
|
||||
[8, 5],
|
||||
[9, 5],
|
||||
[10, 5],
|
||||
[11, 5],
|
||||
[12, 5],
|
||||
[13, 5],
|
||||
[13, 4],
|
||||
[13, 3],
|
||||
[13, 2],
|
||||
[14, 2],
|
||||
[15, 2],
|
||||
[16, 2],
|
||||
[17, 2],
|
||||
[18, 2],
|
||||
[19, 2],
|
||||
[20, 2],
|
||||
[21, 2],
|
||||
[21, 3],
|
||||
[21, 4],
|
||||
[21, 5],
|
||||
[22, 5],
|
||||
[23, 5],
|
||||
[24, 5]
|
||||
],
|
||||
[
|
||||
[0, 9],
|
||||
[1, 9],
|
||||
[2, 9],
|
||||
[2, 10],
|
||||
[2, 11],
|
||||
[2, 12],
|
||||
[2, 13],
|
||||
[2, 14],
|
||||
[2, 15],
|
||||
[3, 15],
|
||||
[4, 15],
|
||||
[5, 15],
|
||||
[6, 15],
|
||||
[7, 15],
|
||||
[8, 15],
|
||||
[9, 15],
|
||||
[10, 15],
|
||||
[11, 15],
|
||||
[11, 14],
|
||||
[11, 13],
|
||||
[12, 13],
|
||||
[13, 13],
|
||||
[14, 13],
|
||||
[15, 13],
|
||||
[16, 13],
|
||||
[17, 13],
|
||||
[17, 14],
|
||||
[18, 14],
|
||||
[19, 14],
|
||||
[20, 14],
|
||||
[21, 14],
|
||||
[22, 14],
|
||||
[23, 14],
|
||||
[24, 14]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 700,
|
||||
"creeps": [0, 1, 0, 1, 0, 1, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 5000,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [1, 1, 2, 1, 1, 2, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [2, 1, 2, 1, 2, 1, 2, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1, 1, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 300,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2, 2, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 250,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 300,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 200,
|
||||
"creeps": [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 250,
|
||||
"creeps": [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 8000,
|
||||
"spawnIntervalTicks": 150,
|
||||
"creeps": [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
223
assets/missions/07_final_stretch.json
Normal file
@ -0,0 +1,223 @@
|
||||
{
|
||||
"name": "Final Stretch",
|
||||
"description": "The final map, the longest map, the 7th map.",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/07_final_stretch.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 0, 9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 9, 9, 9, 9, 0, 1, 0, 9, 9, 9, 9, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 0, 0, 9, 0, 1, 0, 9, 0, 0, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1, 0, 9, 0, 1],
|
||||
[1, 0, 9, 0, 0, 0, 9, 0, 1, 0, 9, 0, 0, 0, 9, 0, 1, 0, 9, 0, 0, 0, 9, 0, 1],
|
||||
[1, 0, 9, 9, 9, 9, 9, 0, 1, 0, 9, 9, 9, 9, 9, 0, 1, 0, 9, 9, 9, 9, 9, 0, 1],
|
||||
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[2, 0],
|
||||
[2, 1],
|
||||
[2, 2],
|
||||
[2, 3],
|
||||
[2, 4],
|
||||
[2, 5],
|
||||
[2, 6],
|
||||
[2, 7],
|
||||
[2, 8],
|
||||
[2, 9],
|
||||
[2, 10],
|
||||
[2, 11],
|
||||
[2, 12],
|
||||
[2, 13],
|
||||
[2, 14],
|
||||
[3, 14],
|
||||
[4, 14],
|
||||
[5, 14],
|
||||
[6, 14],
|
||||
[6, 13],
|
||||
[6, 12],
|
||||
[6, 11],
|
||||
[6, 10],
|
||||
[6, 9],
|
||||
[6, 8],
|
||||
[6, 7],
|
||||
[6, 6],
|
||||
[6, 5],
|
||||
[6, 4],
|
||||
[6, 3],
|
||||
[6, 2],
|
||||
[7, 2],
|
||||
[8, 2],
|
||||
[9, 2],
|
||||
[10, 2],
|
||||
[10, 3],
|
||||
[10, 4],
|
||||
[10, 5],
|
||||
[10, 6],
|
||||
[10, 7],
|
||||
[10, 8],
|
||||
[10, 9],
|
||||
[10, 10],
|
||||
[10, 11],
|
||||
[10, 12],
|
||||
[10, 13],
|
||||
[10, 14],
|
||||
[11, 14],
|
||||
[12, 14],
|
||||
[13, 14],
|
||||
[14, 14],
|
||||
[14, 13],
|
||||
[14, 12],
|
||||
[14, 11],
|
||||
[14, 10],
|
||||
[14, 9],
|
||||
[14, 8],
|
||||
[14, 7],
|
||||
[14, 6],
|
||||
[14, 5],
|
||||
[14, 4],
|
||||
[14, 3],
|
||||
[14, 2],
|
||||
[15, 2],
|
||||
[16, 2],
|
||||
[17, 2],
|
||||
[18, 2],
|
||||
[18, 3],
|
||||
[18, 4],
|
||||
[18, 5],
|
||||
[18, 6],
|
||||
[18, 7],
|
||||
[18, 8],
|
||||
[18, 9],
|
||||
[18, 10],
|
||||
[18, 11],
|
||||
[18, 12],
|
||||
[18, 13],
|
||||
[18, 14],
|
||||
[19, 14],
|
||||
[20, 14],
|
||||
[21, 14],
|
||||
[22, 14],
|
||||
[22, 13],
|
||||
[22, 12],
|
||||
[22, 11],
|
||||
[22, 10],
|
||||
[22, 9],
|
||||
[22, 8],
|
||||
[22, 7],
|
||||
[22, 6],
|
||||
[22, 5],
|
||||
[22, 4],
|
||||
[22, 3],
|
||||
[22, 2],
|
||||
[22, 1],
|
||||
[22, 0]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 700,
|
||||
"creeps": [0, 1, 0, 1, 0, 1, 0]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 5000,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [1, 1, 2, 1, 1, 2, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 600,
|
||||
"creeps": [2, 1, 2, 1, 2, 1, 2, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 500,
|
||||
"creeps": [2, 2, 1, 1, 2, 2, 1, 1, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 6000,
|
||||
"spawnIntervalTicks": 300,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 400,
|
||||
"creeps": [2, 2, 2, 1, 1, 1, 2, 2, 2, 1]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 250,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 300,
|
||||
"creeps": [2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 7000,
|
||||
"spawnIntervalTicks": 200,
|
||||
"creeps": [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 250,
|
||||
"creeps": [2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2]
|
||||
},
|
||||
{
|
||||
"firstCreepSpawnTick": 8000,
|
||||
"spawnIntervalTicks": 150,
|
||||
"creeps": [2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
@ -1,128 +0,0 @@
|
||||
{
|
||||
"name": "Mission 1",
|
||||
"description": "This is the first mission",
|
||||
"mapImage": {
|
||||
"url": "/assets/maps/mission_01.png"
|
||||
},
|
||||
"gameMap": {
|
||||
"rows": 17,
|
||||
"columns": 25,
|
||||
"cells": [
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
|
||||
],
|
||||
"paths": [
|
||||
[
|
||||
[4, 0],
|
||||
[4, 1],
|
||||
[4, 2],
|
||||
[4, 3],
|
||||
[4, 4],
|
||||
[4, 5],
|
||||
[4, 6],
|
||||
[4, 7],
|
||||
[4, 8],
|
||||
[4, 9],
|
||||
[4, 10],
|
||||
[4, 11],
|
||||
[4, 12],
|
||||
[5, 12],
|
||||
[6, 12],
|
||||
[7, 12],
|
||||
[8, 12],
|
||||
[9, 12],
|
||||
[10, 12],
|
||||
[10, 11],
|
||||
[10, 10],
|
||||
[10, 9],
|
||||
[10, 8],
|
||||
[10, 7],
|
||||
[10, 6],
|
||||
[10, 5],
|
||||
[10, 4],
|
||||
[10, 3],
|
||||
[11, 3],
|
||||
[12, 3],
|
||||
[13, 3],
|
||||
[14, 3],
|
||||
[14, 4],
|
||||
[14, 5],
|
||||
[14, 6],
|
||||
[14, 7],
|
||||
[14, 8],
|
||||
[14, 9],
|
||||
[14, 10],
|
||||
[14, 11],
|
||||
[14, 12],
|
||||
[14, 13],
|
||||
[14, 14],
|
||||
[14, 15],
|
||||
[14, 16],
|
||||
[14, 17],
|
||||
[14, 18],
|
||||
[14, 19],
|
||||
[14, 20],
|
||||
[13, 20],
|
||||
[12, 20],
|
||||
[11, 20],
|
||||
[10, 20],
|
||||
[9, 20],
|
||||
[8, 20],
|
||||
[7, 20],
|
||||
[6, 20],
|
||||
[5, 20],
|
||||
[5, 21],
|
||||
[5, 22],
|
||||
[5, 23],
|
||||
[5, 24]
|
||||
]
|
||||
]
|
||||
},
|
||||
"rounds": [
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [0, 0, 0, 0, 0]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 0, 0, 0]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [1, 1, 1, 1, 1]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"waves": [
|
||||
{
|
||||
"firstCreepSpawnTick": 500,
|
||||
"spawnIntervalTicks": 1000,
|
||||
"creeps": [2, 2, 2, 2, 2]
|
||||
}
|
||||
],
|
||||
"offeredGems": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
BIN
favicon.ico
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
favicon.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
@ -2,12 +2,11 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
<link href="https://fonts.googleapis.com/css?family=Aclonica" rel="stylesheet" />
|
||||
<title>Bastion App</title>
|
||||
<script type="module" crossorigin src="/assets/index-CkdXe05Z.js"></script>
|
||||
<title>Bastion: The Watcher's Lament</title>
|
||||
<script type="module" crossorigin src="/assets/index-DUfzhg12.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
|
@ -1 +1 @@
|
||||
92f1963
|
||||
1f62c8f
|
||||
|
@ -3,9 +3,11 @@
|
||||
"height": 4300,
|
||||
"width": 2
|
||||
},
|
||||
"activeFile": "Mission011.tmx",
|
||||
"activeFile": "tiled/07_final_stretch.tmx",
|
||||
"expandedProjectPaths": [
|
||||
"."
|
||||
".",
|
||||
"tiled",
|
||||
"assets/missions"
|
||||
],
|
||||
"file.lastUsedOpenFilter": "All Files (*)",
|
||||
"fileStates": {
|
||||
@ -16,7 +18,7 @@
|
||||
"scaleInDock": 0.33,
|
||||
"scaleInEditor": 1
|
||||
},
|
||||
"/home/koneko/dumping/tiles/TiledTDThree64.tmx": {
|
||||
"C:/home/koneko/dumping/tiles/TiledTDThree64.tmx": {
|
||||
"scale": 0.187625,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
@ -36,31 +38,118 @@
|
||||
"scale": 0.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 570,
|
||||
"y": 448
|
||||
"x": 959,
|
||||
"y": 543
|
||||
}
|
||||
},
|
||||
"Tileset.tsx": {
|
||||
"scaleInDock": 0.5,
|
||||
"scaleInDock": 0.75,
|
||||
"scaleInEditor": 1
|
||||
},
|
||||
"tiled/01_first_steps..tmx": {
|
||||
"scale": 1,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 975,
|
||||
"y": 640.5
|
||||
}
|
||||
},
|
||||
"tiled/01_first_steps.tmx": {
|
||||
"scale": 0.33,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 639.3939393939394,
|
||||
"y": 433.33333333333326
|
||||
}
|
||||
},
|
||||
"tiled/02_the_turn.tmx": {
|
||||
"scale": 0.33,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 869.6969696969697,
|
||||
"y": 203.03030303030323
|
||||
}
|
||||
},
|
||||
"tiled/03_fork_in_the_road.tmx": {
|
||||
"scale": 0.33,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 2693.9393939393935,
|
||||
"y": 239.3939393939395
|
||||
}
|
||||
},
|
||||
"tiled/04_crossroads.tmx": {
|
||||
"scale": 1,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 646.5,
|
||||
"y": 543
|
||||
}
|
||||
},
|
||||
"tiled/05_the_maze.tmx": {
|
||||
"scale": 0.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 896,
|
||||
"y": 406
|
||||
}
|
||||
},
|
||||
"tiled/06_multiple_fronts.tmx": {
|
||||
"scale": 0.75,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 873.3333333333333,
|
||||
"y": 474.6666666666666
|
||||
}
|
||||
},
|
||||
"tiled/07_final_stretch.tmx": {
|
||||
"scale": 0.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 971,
|
||||
"y": 270
|
||||
}
|
||||
},
|
||||
"tiled/Mission01.tmx": {
|
||||
"scale": 1,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 833,
|
||||
"y": 629
|
||||
}
|
||||
}
|
||||
},
|
||||
"last.exportedFilePath": "C:/Work/Projects/Matej/towerdefense/public/tiled",
|
||||
"last.externalTilesetPath": "/home/koneko/Programing/js/towerdefense/public",
|
||||
"map.height": 17,
|
||||
"map.lastUsedExportFilter": "All Files (*)",
|
||||
"map.lastUsedFormat": "tmx",
|
||||
"map.tileHeight": 64,
|
||||
"map.tileWidth": 64,
|
||||
"map.width": 30,
|
||||
"map.width": 25,
|
||||
"openFiles": [
|
||||
"Tileset.tsx",
|
||||
"Mission011.tmx"
|
||||
"tiled/04_crossroads.tmx",
|
||||
"tiled/05_the_maze.tmx",
|
||||
"tiled/01_first_steps.tmx",
|
||||
"tiled/02_the_turn.tmx",
|
||||
"tiled/03_fork_in_the_road.tmx",
|
||||
"tiled/06_multiple_fronts.tmx",
|
||||
"tiled/07_final_stretch.tmx"
|
||||
],
|
||||
"project": "maps.tiled-project",
|
||||
"recentFiles": [
|
||||
"Tileset.tsx",
|
||||
"tiled/04_crossroads.tmx",
|
||||
"tiled/05_the_maze.tmx",
|
||||
"tiled/01_first_steps.tmx",
|
||||
"tiled/02_the_turn.tmx",
|
||||
"tiled/03_fork_in_the_road.tmx",
|
||||
"tiled/06_multiple_fronts.tmx",
|
||||
"tiled/07_final_stretch.tmx",
|
||||
"tiled/Mission01.tmx",
|
||||
"tiled/01_first_steps..tmx",
|
||||
"Mission011.tmx",
|
||||
"Mission01.tmx",
|
||||
"/home/koneko/dumping/tiles/TiledTDThree64.tmx"
|
||||
"Tileset.tsx",
|
||||
"Mission01.tmx"
|
||||
],
|
||||
"tileset.lastUsedFilter": "Tiled tileset files (*.tsx *.xml)"
|
||||
}
|
||||
|
25
tiled/01_first_steps.tmx
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="25" height="17" tilewidth="64" tileheight="64" infinite="0" nextlayerid="2" nextobjectid="1">
|
||||
<tileset firstgid="1" source="../Tileset.tsx"/>
|
||||
<layer id="1" name="Tile Layer 1" width="25" height="17">
|
||||
<data encoding="csv">
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
|
||||
32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
25
tiled/02_the_turn.tmx
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="25" height="17" tilewidth="64" tileheight="64" infinite="0" nextlayerid="2" nextobjectid="1">
|
||||
<tileset firstgid="1" source="../Tileset.tsx"/>
|
||||
<layer id="1" name="Tile Layer 1" width="25" height="17">
|
||||
<data encoding="csv">
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
4,4,4,4,4,4,4,4,4,4,4,4,4,5,15,15,15,15,15,15,15,15,15,15,15,
|
||||
18,18,18,18,18,18,18,18,18,18,18,18,18,19,15,15,15,15,15,3,4,4,4,4,4,
|
||||
32,32,32,32,32,32,32,32,32,32,32,7,18,19,15,15,15,15,15,17,18,18,18,18,18,
|
||||
15,15,15,15,15,15,15,15,15,15,15,17,18,19,15,15,15,15,15,17,18,6,32,32,32,
|
||||
15,15,15,15,15,15,15,15,15,15,15,17,18,19,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,17,18,19,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,3,4,4,4,4,4,4,4,4,21,18,19,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,17,18,18,18,18,18,18,18,18,18,18,19,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,17,18,6,32,32,32,32,32,32,32,32,33,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,17,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,17,18,19,15,15,15,
|
||||
15,15,17,18,20,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,18,19,15,15,15,
|
||||
15,15,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,15,15,15,
|
||||
15,15,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|
25
tiled/03_fork_in_the_road.tmx
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.10" tiledversion="1.11.2" orientation="orthogonal" renderorder="right-down" width="25" height="17" tilewidth="64" tileheight="64" infinite="0" nextlayerid="2" nextobjectid="1">
|
||||
<tileset firstgid="1" source="../Tileset.tsx"/>
|
||||
<layer id="1" name="Tile Layer 1" width="25" height="17">
|
||||
<data encoding="csv">
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
15,15,15,15,15,15,15,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
|
||||
15,15,15,15,15,15,15,17,18,6,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
|
||||
15,15,15,15,15,15,15,17,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
4,4,4,4,4,4,4,21,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
18,18,18,18,18,18,18,18,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
32,32,32,32,32,32,32,7,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,17,18,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,17,18,20,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
15,15,15,15,15,15,15,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
|
||||
15,15,15,15,15,15,15,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
|
||||
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
|
||||
</data>
|
||||
</layer>
|
||||
</map>
|