all repos — uStrat @ 7576a5a8a6266b8792ef592da67a6c8029bbf7b2

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

initialize attack logic
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQJDBAABCAAtFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAl5DJRgPHG5pbGl4QG5p
bGZtLmNjAAoJEDt/vCIUTmOYDm8P/2DPfHZboow4Y3qOYwYBLpp3iMTgZc/C1Pcn
USMpmEVPlz5hYEN0YGv3Vw9LaB++n0g2WzM/Ze0sJEcofoGwF0Ab/a29L/PLNrRl
3wh7BQspwKs81uUfRGizomEACnxdQxx6XURyxbGJogxJdbys9HIpvWCDh8epi3+l
nUSKq0dnZ5a7vN3JlkH/Y4E78zwNFrb6AoLrzQdTID3ERUyuoJXpGtmuIYf9Rb6c
m434/+cOqx/PLOmj3grq++gRcM17421U8RREIh+DvGLKendL0j7INcA153t72c1U
Dr2EQ16MPLvT5yh/8VDWDoErmiYkD4RJfCQniw7DvYCr+3mQeNhypXiv8FmJ2A01
D5wtGGVEGjdZ5+7AFWT9Az1KqH4d6k2k+LES/92zEWE4ubbhU3gtAit+51zBy9Ta
nTOwebWtnNLd7ygMw9KjCfGjcJTnfzVS5uKEB/dDVz8amEEF9MNYBT2BPq9yQQb6
qE0q56JW2CcWEy8iajqoQxX1BSuXQEaMD9+XW1UOhIalu8uKxwr/kV1B5g4n2AmF
Q832TC+BnEZ2TYTr+TLSzRTENa49a+1psUWLQQLGIo4QHhN4hEBRhDGxib4wE6ww
Iz25IKXBdpNQ0NuhyXnmpTtoMWDEGRNMFQeU1QySGv+xZRifkTl1R9yVjrL4/Q44
Iqlp/GNM
=Fd4W
-----END PGP SIGNATURE-----
commit

7576a5a8a6266b8792ef592da67a6c8029bbf7b2

parent

36d62670c1002815e0f2e5e25db4d71769b02e43

2 files changed, 42 insertions(+), 6 deletions(-)

jump to
M Attack.jsAttack.js

@@ -5,9 +5,9 @@ attack.rotation = 0;

attack.src = {}; attack.gfx = {}; -attack.gfx.overlay = new Image() +attack.gfx.overlay = new Image(); attack.gfx.overlay.src = "assets/ui/attackOverlay.png"; -attack.gfx.explosion = new Image() +attack.gfx.explosion = new Image(); attack.gfx.explosion.src = "assets/fx/explosion.png"; attack.animCounter = 0;

@@ -18,6 +18,15 @@ {

gameState.flow = "attackSelect"; attack.src = map.data[mapCursor.x][mapCursor.y].unit; attack.pattern = attack.src.equipment.pattern; +} + +attack.cpuInit = function() +{ + gameState.flow = "cpuAttackReady"; + attack.src = teams.cpu.units[AI.focus]; + attack.pattern = attack.src.equipment.pattern; + mapCursor.x = attack.src.target.x; + mapCursor.y = attack.src.target.y; } attack.cancel = function()

@@ -66,6 +75,8 @@ this.animCounter = 0;

this.src.hasAttacked = true; if (gameState.flow != "youLose" && gameState.flow != "youWin") { + if (gameState.phase == "cpu") + AI.focus++; gameState.flow = "attackEnd"; } }
M Engine.jsEngine.js

@@ -229,13 +229,32 @@ if (AI.focus >= teams.cpu.units.length)

{ AI.focus = 0; AI.manageEquipment(); - gameState.flow = "cpuAttack"; + gameState.flow = "cpuAttackInit"; } else gameState.flow = "cpuGenTargets"; } -function cpuAttack() +function cpuAttackInit() +{ + attack.cpuInit(); +} + +function cpuAttackReady() +{ + if (AI.focus >= teams.cpu.units.length) + { + AI.focus = 0; + endPhase(); + } + else + { + gameState.flow = "cpuAttackGo"; + } +} + +function cpuAttackGo() { + attackAnim(); } function loseScreen()

@@ -318,9 +337,15 @@ break;

case "cpuMoveDone": cpuMoveDone(); break; - case "cpuAttack": - cpuAttack(); + case "cpuAttackInit": + cpuAttackInit(); break; + case "cpuAttackReady": + cpuAttackReady(); + break; + case "cpuAttackGo": + cpuAttackGo(); + break; case "youWin": winScreen(); break;