Merui swap / Bomber command support

This commit is contained in:
Anuken
2022-05-10 11:13:13 -04:00
parent 85d7f2cd62
commit 9ac75df34e
6 changed files with 39 additions and 34 deletions

View File

@@ -78,11 +78,15 @@ public class CommandAI extends AIController{
float engageRange = unit.type.range - 10f;
if(move){
moveTo(vecOut,
attackTarget != null && unit.within(attackTarget, engageRange) ? engageRange :
unit.isGrounded() ? 0f :
attackTarget != null ? engageRange :
0f, unit.isFlying() ? 40f : 100f, false, null);
if(unit.type.circleTarget && attackTarget != null){
circleAttack(80f);
}else{
moveTo(vecOut,
attackTarget != null && unit.within(attackTarget, engageRange) ? engageRange :
unit.isGrounded() ? 0f :
attackTarget != null ? engageRange :
0f, unit.isFlying() ? 40f : 100f, false, null);
}
//calculateFlock().limit(unit.speed() * flockMult)
}

View File

@@ -15,11 +15,11 @@ public class FlyingAI extends AIController{
unloadPayloads();
if(target != null && unit.hasWeapons()){
if(!unit.type.circleTarget){
if(unit.type.circleTarget){
circleAttack(120f);
}else{
moveTo(target, unit.type.range * 0.8f);
unit.lookAt(target);
}else{
attack(120f);
}
}
@@ -56,21 +56,4 @@ public class FlyingAI extends AIController{
return core;
}
protected void attack(float circleLength){
vec.set(target).sub(unit);
float ang = unit.angleTo(target);
float diff = Angles.angleDist(ang, unit.rotation());
if(diff > 70f && vec.len() < circleLength){
vec.setAngle(unit.vel().angle());
}else{
vec.setAngle(Angles.moveToward(unit.vel().angle(), vec.angle(), 6f));
}
vec.setLength(unit.speed());
unit.moveAt(vec);
}
}