mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-03-09 20:29:06 +07:00
Separate turret tracking range for malign/smite
This commit is contained in:
parent
56f3dac3d2
commit
b2ef7f346f
@ -4954,6 +4954,7 @@ public class Blocks{
|
||||
reload = 100f;
|
||||
recoil = 2f;
|
||||
range = 300;
|
||||
trackingRange = range * 1.4f;
|
||||
shootCone = 30f;
|
||||
scaledHealth = 350;
|
||||
rotateSpeed = 1.5f;
|
||||
@ -5290,6 +5291,7 @@ public class Blocks{
|
||||
envEnabled |= Env.space;
|
||||
reload = 9f;
|
||||
range = 370;
|
||||
trackingRange = range * 1.4f;
|
||||
shootCone = 100f;
|
||||
scaledHealth = 370;
|
||||
rotateSpeed = 2f;
|
||||
|
@ -60,6 +60,8 @@ public class Turret extends ReloadTurret{
|
||||
public float shootX = 0f, shootY = Float.NEGATIVE_INFINITY;
|
||||
/** Random spread on the X axis. */
|
||||
public float xRand = 0f;
|
||||
/** Range at which it finds and locks on to the taget, but does not shoot. */
|
||||
public float trackingRange = 0f;
|
||||
/** Minimum bullet range. Used for artillery only. */
|
||||
public float minRange = 0f;
|
||||
/** Minimum warmup needed to fire. */
|
||||
@ -182,6 +184,7 @@ public class Turret extends ReloadTurret{
|
||||
if(newTargetInterval <= 0f) newTargetInterval = targetInterval;
|
||||
|
||||
super.init();
|
||||
trackingRange = Math.max(range, trackingRange);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -248,6 +251,10 @@ public class Turret extends ReloadTurret{
|
||||
return range;
|
||||
}
|
||||
|
||||
public float trackingRange(){
|
||||
return range() + trackingRange - range;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float warmup(){
|
||||
return shootWarmup;
|
||||
@ -425,6 +432,7 @@ public class Turret extends ReloadTurret{
|
||||
targetPosition(target);
|
||||
|
||||
if(Float.isNaN(rotation)) rotation = 0;
|
||||
canShoot = within(target, range() + (target instanceof Sized hb ? hb.hitSize()/1.9f : 0f));
|
||||
}
|
||||
|
||||
if(!isControlled()){
|
||||
@ -475,7 +483,7 @@ public class Turret extends ReloadTurret{
|
||||
}
|
||||
|
||||
protected void findTarget(){
|
||||
float range = range();
|
||||
float range = trackingRange();
|
||||
|
||||
if(targetAir && !targetGround){
|
||||
target = Units.bestEnemy(team, x, y, range, e -> !e.dead() && !e.isGrounded() && unitFilter.get(e), unitSort);
|
||||
|
Loading…
Reference in New Issue
Block a user