From 4d2163d2486ccec6610d5374dab0f21fe1d4d197 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 27 May 2024 18:12:21 -0400 Subject: [PATCH] Less frequent Erekir turret retargeting when valid target is present --- core/src/mindustry/content/Blocks.java | 7 +++++++ .../src/mindustry/world/blocks/defense/turrets/Turret.java | 7 ++++++- gradle.properties | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index d0f1cabe59..969090e462 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -4152,6 +4152,7 @@ public class Blocks{ liquidConsumed = 10f / 60f; targetInterval = 5f; + newTargetInterval = 30f; targetUnderBlocks = false; float r = range = 130f; @@ -4242,6 +4243,8 @@ public class Blocks{ shootY = 7f; rotateSpeed = 1.4f; minWarmup = 0.85f; + + newTargetInterval = 40f; shootWarmupSpeed = 0.07f; coolant = consume(new ConsumeLiquid(Liquids.water, 30f / 60f)); @@ -4462,6 +4465,8 @@ public class Blocks{ heatRequirement = 10f; maxHeatEfficiency = 2f; + newTargetInterval = 40f; + inaccuracy = 1f; shake = 2f; shootY = 4; @@ -4684,6 +4689,8 @@ public class Blocks{ shootSound = Sounds.missileLaunch; minWarmup = 0.94f; + newTargetInterval = 40f; + unitSort = UnitSorts.strongest; shootWarmupSpeed = 0.03f; targetAir = false; targetUnderBlocks = false; diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 3245ecc6e1..7659d6102c 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -36,6 +36,8 @@ public class Turret extends ReloadTurret{ public final int timerTarget = timers++; /** Ticks between attempt at finding a target. */ public float targetInterval = 20; + /** Target interval for when this turret already has a valid target. -1 = targetInterval */ + public float newTargetInterval = -1f; /** Maximum ammo units stored. */ public int maxAmmo = 30; @@ -176,6 +178,7 @@ public class Turret extends ReloadTurret{ if(elevation < 0) elevation = size / 2f; if(recoilTime < 0f) recoilTime = reload; if(cooldownTime < 0f) cooldownTime = reload; + if(newTargetInterval <= 0f) newTargetInterval = targetInterval; super.init(); } @@ -405,7 +408,7 @@ public class Turret extends ReloadTurret{ if(hasAmmo()){ if(Float.isNaN(reloadCounter)) reloadCounter = 0; - if(timer(timerTarget, targetInterval)){ + if(timer(timerTarget, target == null ? newTargetInterval : targetInterval)){ findTarget(); } @@ -438,6 +441,8 @@ public class Turret extends ReloadTurret{ wasShooting = true; updateShooting(); } + }else{ + target = null; } if(alwaysShooting){ diff --git a/gradle.properties b/gradle.properties index 1196682aac..5736b39a3e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=30a01a48a1 +archash=2126b31154