all repos — uStrat @ 64702e70d3ac9850705bab5b83ae7b9e18da12f3

simple turn-based strategy game inspired by uCity, Super Robot Wars, C&C, Fire Emblem

added Ace, Angel, and BlitzWalker to Fabricate menu; demo base and units on load
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQJDBAABCAAtFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAl0BpvQPHG5pbGl4QG5p
bGZtLmNjAAoJEDt/vCIUTmOYQxkP/jifAW5mxZ/PHXg73nLDI75a0+F4u9TeHfDx
4EDPS/1gFvOdtp2R01l1DzguwMMs0PvB47Txbs2wOsfF/iDEMwTnYnWn2Uw/D6m1
IYIHwDlvEdRgwKUKdvZ4/q/ip+io9nYRzkd/rhNjuS3AdjUVLEzkJu0d6vhiJhYV
ZPvZPOIRAn1bVCXNP3ewQoblM+eigLyVT4r9PEqTemARS2dTS1occr1lYz6hKiLR
rDStGrcdkCUprp47egVLFBdPYHVkx1QSO/72evxqC644JWSpchhqGrzGExUmwIiP
HnNLKDmWGZjAkcCSw55vW2hp6Euo1vNAq8kzYnqT7J/nZPbjdgdaqZfic58Z5CsH
EG4ntX8F568kCumUQJyvgQR4CeADEY7oFT4Z0X1HY9vkh2eGAXdMp4F/choA1B4U
/K1sSTYzl/fWVqnoycFWs2u7bc0ymj9ffzdQMpXkXpa8vZxmjB4uMN+SKndWF3tU
OXpFLydC3xxoa4Y1psD0REDFTbF7Q4IFWZHyk6HCxojhZFzLOdAnKDnmJb7ER7sz
cCfkxXupIyMvXSuLuWduUpYUDZEiDvD/13xLHOe67qKOBOrWtSsaNIFPUQbjKnf+
MEJaMtGRS+JNbfkRxfsBuEf9wQF2u6mxXj0+eFwlYtrxoLttAHs3UozNpDvbEQwW
hB0RcgB6
=9O2t
-----END PGP SIGNATURE-----
commit

64702e70d3ac9850705bab5b83ae7b9e18da12f3

parent

b91fdb49ec7308d4d8b43e7014dc997a499d848b

3 files changed, 130 insertions(+), 1 deletions(-)

jump to
M Unit.jsUnit.js

@@ -14,6 +14,40 @@ this.hasMoved = false;

this.name = ""; } +function mkAce(player, x, y) +{ + var self = new Unit(); + self.sprite = new Image(); + self.sprite.src = "assets/unit/" + player + "/ace.png"; + self.pow = 7; + self.def = 2; + self.agi = 7; + self.hp = 25; + self.maxHP = 25; + self.x = x; + self.y = y; + self.cost = 80; + self.name = player + " Ace"; + map.data[x][y].unit = self; + return self; +} + +function buildAce() +{ + switch (gameState.phase) + { + case "p1": + teams.p1.units.push(mkAce("p1", mapCursor.x, mapCursor.y)); + teams.p1.energy -= teams.p1.units[teams.p1.units.length -1].cost; + resetFlow(); + break; + case "cpu": + teams.cpu.units.push(mkAce("cpu", mapCursor.x, mapCursor.y)); + teams.cpu.energy -= teams.cpu.units[teams.cpu.units.length -1].cost; + break; + } +} + function mkRanger(player, x, y) { var self = new Unit();

@@ -75,3 +109,71 @@ teams.cpu.energy -= teams.cpu.units[teams.cpu.units.length - 1].cost;

break; } } + +function mkBattleAngel(player, x, y) +{ + var self = new Unit(); + self.sprite = new Image(); + self.sprite.src = "assets/unit/" + player + "/battleAngel.png"; + self.hp = 30; + self.maxHP = 30; + self.pow = 6; + self.def = 3; + self.agi = 10; + self.cost = 180; + self.x = x; + self.y = y; + self.name = player + " Battle Angel"; + map.data[x][y].unit = self; + return self; +} + +function buildBattleAngel() +{ + switch(gameState.phase) + { + case "p1": + teams.p1.units.push(mkBattleAngel("p1", mapCursor.x, mapCursor.y)); + teams.p1.energy -= teams.p1.units[teams.p1.units.length - 1].cost; + resetFlow(); + break; + case "cpu": + teams.cpu.structs.push(mkBattleAngel("cpu", mapCursor.x, mapCursor.y)); + teams.cpu.energy -= teams.cpu.units[teams.cpu.units.length - 1].cost; + break; + } +} + +function mkBlitzWalker(player, x, y) +{ + var self = new Unit(); + self.sprite = new Image(); + self.sprite.src = "assets/unit/" + player + "/blitzWalker.png"; + self.hp = 50; + self.maxHP = 50; + self.pow = 10; + self.def = 5; + self.agi = 6; + self.cost = 300; + self.x = x; + self.y = y; + self.name = player + " Blitzwalker"; + map.data[x][y].unit = self; + return self; +} + +function buildBlitzWalker() +{ + switch(gameState.phase) + { + case "p1": + teams.p1.units.push(mkBlitzWalker("p1", mapCursor.x, mapCursor.y)); + teams.p1.energy -= teams.p1.units[teams.p1.units.length - 1].cost; + resetFlow(); + break; + case "cpu": + teams.cpu.structs.push(mkBlitzWalker("cpu", mapCursor.x, mapCursor.y)); + teams.cpu.energy -= teams.cpu.units[teams.cpu.units.length - 1].cost; + break; + } +}
M index.htmlindex.html

@@ -200,7 +200,21 @@ {

var gCanvas = document.getElementById("screen"); window.screen = gCanvas.getContext("2d"); map.generate(); + window.teams = new defTeams(); + teams.p1.structs.push(mkSolar("p1", 15, 15)); + teams.p1.structs.push(mkSolar("p1", 16, 15)); + teams.p1.structs.push(mkSolar("p1", 17, 15)); + teams.p1.structs.push(mkSolar("p1", 15, 16)); + teams.p1.structs.push(mkSolar("p1", 17, 16)); + teams.p1.structs.push(mkFactory("p1", 15, 17)); + teams.p1.structs.push(mkArmory("p1", 16, 17)); + teams.p1.units.push(mkRanger("p1", 17, 17)); + teams.p1.units.push(mkKnight("p1", 17, 16)); + teams.p1.units.push(mkAce("p1", 15, 15)); + teams.p1.units.push(mkBattleAngel("p1", 15, 16)); + teams.p1.units.push(mkBlitzWalker("p1", 16, 15)); + camera.centerOnCursor(); if (navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini|Mobile/i)) {

@@ -216,6 +230,7 @@ </head>

<body onload="main();"> <div id="loadFont">loading font...</div> + <div id="dpad"> <div id="upButton"></div> <div id="downButton"></div>

@@ -232,8 +247,8 @@ <div id="wButton"></div>

<div id="xButton"></div> <div id="yButton"></div> </div> - <div id="qButton"></div> <div id="startButton"></div> + <canvas id="screen" width="320" height="180"></canvas> </body>