all repos — uStrat @ abd33b2eed75765634891dd5157d81acd19fb300

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

setup primitive AI targeting for cities, structs, and units
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQJDBAABCAAtFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAl4BQ5cPHG5pbGl4QG5p
bGZtLmNjAAoJEDt/vCIUTmOYILMP/jAUzy+3vZbyGM8+cJavEF8O8kwKx7aD94S/
0vcA6+n6fG7BiQoITjW3sJuwkArjumXOFOQ6w6jyjCZWbLBHVTHSPobvqSGwQbiw
Vl0fne9fu/tJ8ey21Z5Lk+AXB1Ipsbojk2Sv7ByMD+ONHM3jdzpC71qWp2mSc6LY
jGhSKUVBRjAUTiEqvDshw/D+GCzjf3eTtSXdZb+mTL+0QsLYlrn32zXDxCJeZ0s6
QT7THj5IP176z3dtHeCMkVlKGUG/fYQ32Ym00lScb/d4WWkeQmSuAVpnRXfVHrkN
5+550bHkzM2czxl+0eDiaybLnNXrzfXtCBb4P+2uJh/Hr6aSAif0yaRZa8B8e1h6
znTR9UKZSF5xz0ttsx8stRi5ZQE3K2QBOEZpD9OQcmnLNeQ0ei3Kfctg6vqUW090
A6vTJlnAdvAjjy/iNye0hlFImFXUuzd8cUFSwcK63EH0CgGRnml0w21eCICsDwBz
R0RRbq50+Z7J7kstDk9nHxQ3bqtAzZL6oin8PFvtN9KNjWywAxJtzJ898gha9Iso
Ynk6Gey+ntYwSOOSPof91rWSn6ZHEv6bT7ENdE1dZqI3JYEZRaKDiqZqRICYrHGD
r4GPAFo0CbGG0a7nks/Su9vrgm1wbm46a7OBKsPATjZxiEZBhoPmCMkeFSSgcCuz
WMhqG2jE
=8yPh
-----END PGP SIGNATURE-----
commit

abd33b2eed75765634891dd5157d81acd19fb300

parent

5b756985fac9b828ebdeb98c1628e6ad4c753cbf

1 files changed, 39 insertions(+), 1 deletions(-)

jump to
M AI.jsAI.js

@@ -32,7 +32,6 @@ {

var x = teams.cpu.units[AI.focus]; var w = AI.rand(2); var z = AI.rand(5); - z = 0; switch (z) { case 0:

@@ -62,6 +61,7 @@

AI.findTarget = function() { var x = teams.cpu.units[AI.focus]; + console.log("cpu unit " + AI.focus + " target type: " + x.targetType); switch (x.targetType) { case "city":

@@ -109,10 +109,48 @@ }

AI.selectEnemyUnit = function() { + // rank enemy units: HP*ATK/DEF + var i, j, k, u; + u = -1 + j = 0; + for (i = 0; i < teams.cpu.units.length; i++) + { + if (isEmptyObject(teams.cpu.units[i].equipment)) + continue; + k = teams.cpu.units[i].hp*(teams.cpu.units[i].pow + teams.cpu.units.equipment.grade)/teams.cpu.units[i].def; + if (k > j) + { + k = j; + u = i; + } + } + if (u >= 0) + return teams.cpu.units[u]; + else + return map.data[16][16]; } AI.selectEnemyStruct = function() { + // rank structs by HP/DEF + var i, j, k, s; + j = 0; + s = -1; + + for (i = 0; i < teams.cpu.structs.length; i++) + { + k = teams.cpu.structs[i].hp/teams.cpu.structs[i].def; + if (k > j) + { + j = k; + s = i; + } + } + if (s > 0) + return teams.cpu.structs[u]; + else + return teams.cpu.structs[0]; + } AI.getBearing = function(self, target)