This commit is contained in:
Pan 2019-02-09 18:44:05 +13:00
parent eafa1e27f2
commit a8c70bdb05
3 changed files with 31 additions and 23 deletions

View File

@ -234,7 +234,7 @@ public class AssetManager {
//if(i == 0) {
rocketTank l = new rocketTank(new vector(j*0.25f+ 1.125f,-0.3f, 22.125f - i*0.25f), 90, 1);
//l.damageMultiplier =2;
l.damageMultiplier =2;
addRocketTank(l);
//techCenter.rocketTankResearched_enemy = true;

View File

@ -69,15 +69,25 @@ public class microManagementAI {
//Prioritize searching for targets among static defenses
boolean suitableTargertFound = false;
float distanceToDesination = 999;
solidObject target = null;
for(int j = 0; j < playerStaticDefenceInMinimap.length; j++) {
if(playerStaticDefenceInMinimap[j] != null && !playerStaticDefenceInMinimap[j].willDieFromIncomingAttack()){
x1 = playerStaticDefenceInMinimap[j].centre.x;
x2 = unitInCombatRadius[i].centre.x;
z1 = playerStaticDefenceInMinimap[j].centre.z;
z2 = unitInCombatRadius[i].centre.z;
float distanceToDesination = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
if(distanceToDesination < scanRange){
unitInCombatRadius[i].attack(playerStaticDefenceInMinimap[j]);
float d = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
if(d < scanRange && d < distanceToDesination){
distanceToDesination = d;
target = playerStaticDefenceInMinimap[j];
}
}
}
if(target != null) {
unitInCombatRadius[i].attack(target);
unitInCombatRadius[i].currentCommand = solidObject.attackCautiously;
unitInCombatRadius[i].secondaryCommand = solidObject.StandBy;
@ -91,13 +101,12 @@ public class microManagementAI {
}
myDamage = (int)(myDamage*rocketTank.damageAginstBuildingMulitplier);
playerStaticDefenceInMinimap[j].incomingDamage+=myDamage*2;
}
break;
}
target.incomingDamage+=myDamage*2;
}
}
if(suitableTargertFound)
continue;
@ -117,9 +126,6 @@ public class microManagementAI {
}else {
//find targets among moving unites
for(int j=0; j < numberOfPlayerUnitsOnMinimap; j++){
if(playerUnitInMinimap[j] != null && !playerUnitInMinimap[j].willDieFromIncomingAttack()){
@ -127,7 +133,7 @@ public class microManagementAI {
x2 = unitInCombatRadius[i].centre.x;
z1 = playerUnitInMinimap[j].centre.z;
z2 = unitInCombatRadius[i].centre.z;
float distanceToDesination = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
distanceToDesination = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
if(distanceToDesination < myRange){
unitInCombatRadius[i].attack(playerUnitInMinimap[j]);

View File

@ -694,6 +694,8 @@ public class rocketTank extends solidObject{
//attack a single unit, ignore any hostile units it encounters
public void performAttackLogic(){
if(targetObject == null)
return;
destinationX = targetObject.getRealCentre().x;
destinationY = targetObject.getRealCentre().z;