This commit is contained in:
Pan 2019-04-03 21:49:33 +13:00
parent 7212008673
commit 93624cbda3
3 changed files with 25 additions and 4 deletions

View File

@ -40,7 +40,6 @@ public class mapAwarenessAI {
public int numberOfPlayerBuildingDestroyedPreviousFrame; public int numberOfPlayerBuildingDestroyedPreviousFrame;
public int playerAssetDestoryedCountDown; public int playerAssetDestoryedCountDown;
public boolean playerHasMostlyLightTanks; public boolean playerHasMostlyLightTanks;
public boolean playerHasMostlyHeavyTanks; public boolean playerHasMostlyHeavyTanks;
public boolean playIsRushingHighTierUnits; public boolean playIsRushingHighTierUnits;
@ -49,6 +48,7 @@ public class mapAwarenessAI {
public boolean playerIsRushingLightTank; public boolean playerIsRushingLightTank;
public boolean playerHasManyLightTanksButNoHeavyTank; public boolean playerHasManyLightTanksButNoHeavyTank;
public boolean playerHasMostlyHeavyAndStealthTanks; public boolean playerHasMostlyHeavyAndStealthTanks;
public boolean canRushPlayer;
public solidObject[] mapAsset; public solidObject[] mapAsset;
public boolean[] visionMap; public boolean[] visionMap;
@ -470,6 +470,9 @@ public class mapAwarenessAI {
maxNumberOfStealthTanks_playerInLastFiveMinutes = 0; maxNumberOfStealthTanks_playerInLastFiveMinutes = 0;
//determine if a rush is feasible against the player
findTheMostVulnerablePlayerBase(); findTheMostVulnerablePlayerBase();
findPlayerForceLocation(); findPlayerForceLocation();

View File

@ -335,8 +335,8 @@ public class scoutingManagerAI {
if(scout != null && scout.currentHP > 0 && scout.type == 0){ if(scout != null && scout.currentHP > 0 && scout.type == 0){
mainThread.ec.theUnitProductionAI.addLightTank((lightTank)scout); mainThread.ec.theUnitProductionAI.addLightTank((lightTank)scout);
scout.moveTo(mainThread.ec.theUnitProductionAI.rallyPoint.x, mainThread.ec.theUnitProductionAI.rallyPoint.z); scout.moveTo(mainThread.ec.theUnitProductionAI.rallyPoint.x, mainThread.ec.theUnitProductionAI.rallyPoint.z);
scout.currentCommand = solidObject.attackMove; scout.currentCommand = solidObject.move;
scout.secondaryCommand = solidObject.attackMove; scout.secondaryCommand = solidObject.StandBy;
} }
destinationNode = 0; destinationNode = 0;
scout = o; scout = o;

View File

@ -48,12 +48,28 @@ public class unitProductionAI {
public solidObject[] unitInCombatRadius; public solidObject[] unitInCombatRadius;
public solidObject[] unitOutsideCombatRadius; public solidObject[] unitOutsideCombatRadius;
public float rushRallyPointX, rushRallyPointZ;
public int frameAI; public int frameAI;
public unitProductionAI(baseInfo theBaseInfo){ public unitProductionAI(baseInfo theBaseInfo){
this.theBaseInfo = theBaseInfo; this.theBaseInfo = theBaseInfo;
rallyPoint = new vector(0,0,0); rallyPoint = new vector(0,0,0);
if(gameData.getRandom() < 341) {
rushRallyPointX = 9.5f+2;
rushRallyPointZ = 5.5f+2;
}else if(gameData.getRandom() < 682) {
rushRallyPointX = 9.5f-2.75f;
rushRallyPointZ = 5.5f+2;
}else {
rushRallyPointX = 9.5f+3.5f;
rushRallyPointZ = 5.5f-0.5f;
}
rushRallyPointX = 9.5f+2;
rushRallyPointZ = 5.5f+2;
lightTanksControlledByCombatAI = new lightTank[192]; lightTanksControlledByCombatAI = new lightTank[192];
rocketTanksControlledByCombatAI = new rocketTank[72]; rocketTanksControlledByCombatAI = new rocketTank[72];
stealthTanksControlledByCombatAI = new stealthTank[96]; stealthTanksControlledByCombatAI = new stealthTank[96];
@ -117,7 +133,9 @@ public class unitProductionAI {
//If the difficulty is set to normal or hard, set the rally point just outside of player's natural expansion. //If the difficulty is set to normal or hard, set the rally point just outside of player's natural expansion.
//So if the player is going for a fast expansion and don't have much units, the AI can perform a rush attack. //So if the player is going for a fast expansion and don't have much units, the AI can perform a rush attack.
if(frameAI < 360 && mainThread.ec.theCombatManagerAI.checkIfAIHasBiggerForce(1f)) {
rallyPoint.set(rushRallyPointX, 0, rushRallyPointZ);
}
//make sure not to over produce when the resource is running low //make sure not to over produce when the resource is running low