home
This commit is contained in:
parent
eafa1e27f2
commit
a8c70bdb05
@ -234,7 +234,7 @@ public class AssetManager {
|
|||||||
|
|
||||||
//if(i == 0) {
|
//if(i == 0) {
|
||||||
rocketTank l = new rocketTank(new vector(j*0.25f+ 1.125f,-0.3f, 22.125f - i*0.25f), 90, 1);
|
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);
|
addRocketTank(l);
|
||||||
//techCenter.rocketTankResearched_enemy = true;
|
//techCenter.rocketTankResearched_enemy = true;
|
||||||
|
|
||||||
|
@ -69,35 +69,44 @@ public class microManagementAI {
|
|||||||
|
|
||||||
//Prioritize searching for targets among static defenses
|
//Prioritize searching for targets among static defenses
|
||||||
boolean suitableTargertFound = false;
|
boolean suitableTargertFound = false;
|
||||||
|
float distanceToDesination = 999;
|
||||||
|
solidObject target = null;
|
||||||
for(int j = 0; j < playerStaticDefenceInMinimap.length; j++) {
|
for(int j = 0; j < playerStaticDefenceInMinimap.length; j++) {
|
||||||
if(playerStaticDefenceInMinimap[j] != null && !playerStaticDefenceInMinimap[j].willDieFromIncomingAttack()){
|
if(playerStaticDefenceInMinimap[j] != null && !playerStaticDefenceInMinimap[j].willDieFromIncomingAttack()){
|
||||||
x1 = playerStaticDefenceInMinimap[j].centre.x;
|
x1 = playerStaticDefenceInMinimap[j].centre.x;
|
||||||
x2 = unitInCombatRadius[i].centre.x;
|
x2 = unitInCombatRadius[i].centre.x;
|
||||||
z1 = playerStaticDefenceInMinimap[j].centre.z;
|
z1 = playerStaticDefenceInMinimap[j].centre.z;
|
||||||
z2 = unitInCombatRadius[i].centre.z;
|
z2 = unitInCombatRadius[i].centre.z;
|
||||||
float distanceToDesination = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
|
float d = (x1 - x2)*(x1 - x2) + (z1 - z2)*(z1 - z2);
|
||||||
if(distanceToDesination < scanRange){
|
if(d < scanRange && d < distanceToDesination){
|
||||||
unitInCombatRadius[i].attack(playerStaticDefenceInMinimap[j]);
|
distanceToDesination = d;
|
||||||
|
target = playerStaticDefenceInMinimap[j];
|
||||||
|
|
||||||
unitInCombatRadius[i].currentCommand = solidObject.attackCautiously;
|
|
||||||
unitInCombatRadius[i].secondaryCommand = solidObject.StandBy;
|
|
||||||
|
|
||||||
suitableTargertFound = true;
|
|
||||||
|
|
||||||
if(distanceToDesination < myRange) {
|
|
||||||
int myDamage = unitInCombatRadius[i].myDamage;
|
|
||||||
if(techCenter.rocketTankResearched_enemy) {
|
|
||||||
myDamage*=2;
|
|
||||||
}
|
|
||||||
myDamage = (int)(myDamage*rocketTank.damageAginstBuildingMulitplier);
|
|
||||||
|
|
||||||
playerStaticDefenceInMinimap[j].incomingDamage+=myDamage*2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(target != null) {
|
||||||
|
unitInCombatRadius[i].attack(target);
|
||||||
|
|
||||||
|
unitInCombatRadius[i].currentCommand = solidObject.attackCautiously;
|
||||||
|
unitInCombatRadius[i].secondaryCommand = solidObject.StandBy;
|
||||||
|
|
||||||
|
suitableTargertFound = true;
|
||||||
|
|
||||||
|
if(distanceToDesination < myRange) {
|
||||||
|
int myDamage = unitInCombatRadius[i].myDamage;
|
||||||
|
if(techCenter.rocketTankResearched_enemy) {
|
||||||
|
myDamage*=2;
|
||||||
|
}
|
||||||
|
myDamage = (int)(myDamage*rocketTank.damageAginstBuildingMulitplier);
|
||||||
|
|
||||||
|
target.incomingDamage+=myDamage*2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(suitableTargertFound)
|
if(suitableTargertFound)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -117,9 +126,6 @@ public class microManagementAI {
|
|||||||
|
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//find targets among moving unites
|
//find targets among moving unites
|
||||||
for(int j=0; j < numberOfPlayerUnitsOnMinimap; j++){
|
for(int j=0; j < numberOfPlayerUnitsOnMinimap; j++){
|
||||||
if(playerUnitInMinimap[j] != null && !playerUnitInMinimap[j].willDieFromIncomingAttack()){
|
if(playerUnitInMinimap[j] != null && !playerUnitInMinimap[j].willDieFromIncomingAttack()){
|
||||||
@ -127,7 +133,7 @@ public class microManagementAI {
|
|||||||
x2 = unitInCombatRadius[i].centre.x;
|
x2 = unitInCombatRadius[i].centre.x;
|
||||||
z1 = playerUnitInMinimap[j].centre.z;
|
z1 = playerUnitInMinimap[j].centre.z;
|
||||||
z2 = unitInCombatRadius[i].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){
|
if(distanceToDesination < myRange){
|
||||||
unitInCombatRadius[i].attack(playerUnitInMinimap[j]);
|
unitInCombatRadius[i].attack(playerUnitInMinimap[j]);
|
||||||
|
@ -694,6 +694,8 @@ public class rocketTank extends solidObject{
|
|||||||
|
|
||||||
//attack a single unit, ignore any hostile units it encounters
|
//attack a single unit, ignore any hostile units it encounters
|
||||||
public void performAttackLogic(){
|
public void performAttackLogic(){
|
||||||
|
if(targetObject == null)
|
||||||
|
return;
|
||||||
|
|
||||||
destinationX = targetObject.getRealCentre().x;
|
destinationX = targetObject.getRealCentre().x;
|
||||||
destinationY = targetObject.getRealCentre().z;
|
destinationY = targetObject.getRealCentre().z;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user