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-----
1 files changed,
39 insertions(+),
1 deletions(-)
jump to
M
AI.js
→
AI.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)