Re-added command center

This commit is contained in:
Anuken
2020-08-24 19:49:49 -04:00
parent 6b7debbba7
commit b207d05d4b
21 changed files with 5747 additions and 5541 deletions

View File

@@ -6,6 +6,8 @@ import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class FlyingAI extends AIController{
@Override
@@ -18,7 +20,7 @@ public class FlyingAI extends AIController{
unit.wobble();
}
if(target != null && unit.hasWeapons()){
if(target != null && unit.hasWeapons() && command() == UnitCommand.attack){
if(unit.type().weapons.first().rotate){
moveTo(target, unit.range() * 0.8f);
unit.lookAt(target);
@@ -26,6 +28,15 @@ public class FlyingAI extends AIController{
attack(80f);
}
}
if(target == null && command() == UnitCommand.attack && state.rules.waves && unit.team == state.rules.defaultTeam){
moveTo(getClosestSpawner(), state.rules.dropZoneRadius + 120f);
}
if(command() == UnitCommand.rally){
target = targetFlag(unit.x, unit.y, BlockFlag.rally, false);
moveTo(target, 60f);
}
}
@Override

View File

@@ -7,6 +7,7 @@ import mindustry.entities.units.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.world.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -19,13 +20,19 @@ public class GroundAI extends AIController{
Building core = unit.closestEnemyCore();
if(core != null){
if(unit.within(core,unit.range() / 1.1f)){
target = core;
}
if(core != null && unit.within(core, unit.range() / 1.1f)){
target = core;
}
if(!unit.within(core, unit.range() * 0.5f)){
moveToCore(FlagTarget.enemyCores);
if((core == null || !unit.within(core, unit.range() * 0.5f)) && command() == UnitCommand.attack){
moveToCore(FlagTarget.enemyCores);
}
if(command() == UnitCommand.rally){
Teamc target = targetFlag(unit.x, unit.y, BlockFlag.rally, false);
if(target != null && !unit.within(target, 70f)){
moveToCore(FlagTarget.rallyPoints);
}
}
@@ -60,7 +67,7 @@ public class GroundAI extends AIController{
protected void moveToCore(FlagTarget path){
Tile tile = unit.tileOn();
if(tile == null) return;
Tile targetTile = pathfinder.getTargetTile(tile, unit.team(), path);
Tile targetTile = pathfinder.getTargetTile(tile, unit.team, path);
if(tile == targetTile) return;