diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index a82a220070..f900a60955 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -1,5 +1,6 @@ package mindustry.ai.types; +import arc.math.*; import arc.struct.*; import arc.util.*; import mindustry.entities.*; @@ -83,8 +84,10 @@ public class BuilderAI extends AIController{ }); } + float rebuildTime = (unit.team.rules().ai ? Mathf.lerp(15f, 2f, unit.team.rules().aiTier) : 2f) * 60f; + //find new request - if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, 60 * 2f)){ + if(!unit.team.data().blocks.isEmpty() && following == null && timer.get(timerTarget3, rebuildTime)){ Queue blocks = unit.team.data().blocks; BlockPlan block = blocks.first(); diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 98c835f026..eabaae3104 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1377,7 +1377,7 @@ public class Blocks implements ContentList{ itemCapacity = 9000; size = 4; - unitCapModifier = 14; + unitCapModifier = 16; researchCostMultiplier = 0.04f; }}; @@ -1389,7 +1389,7 @@ public class Blocks implements ContentList{ itemCapacity = 13000; size = 5; - unitCapModifier = 20; + unitCapModifier = 24; researchCostMultiplier = 0.05f; }}; @@ -1517,12 +1517,12 @@ public class Blocks implements ContentList{ lancer = new ChargeTurret("lancer"){{ requirements(Category.turret, with(Items.copper, 25, Items.lead, 50, Items.silicon, 45)); - range = 155f; - chargeTime = 50f; + range = 165f; + chargeTime = 40f; chargeMaxDelay = 30f; chargeEffects = 7; recoilAmount = 2f; - reloadTime = 90f; + reloadTime = 80f; cooldown = 0.03f; powerUse = 6f; shootShake = 2f; @@ -1544,6 +1544,7 @@ public class Blocks implements ContentList{ lifetime = 16f; drawSize = 400f; collidesAir = false; + length = 173f; }}; }}; @@ -1557,7 +1558,7 @@ public class Blocks implements ContentList{ reloadTime = 35f; shootCone = 40f; rotateSpeed = 8f; - powerUse = 3f; + powerUse = 3.3f; targetAir = false; range = 90f; shootEffect = Fx.lightningShoot; diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 5f6bd2c1a9..02222bd327 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -107,7 +107,7 @@ public class Logic implements ApplicationListener{ if(!(state.getSector().preset != null && !state.getSector().preset.useAI)){ state.rules.waveTeam.rules().ai = true; } - state.rules.waveTeam.rules().aiTier = state.getSector().threat; + state.rules.waveTeam.rules().aiTier = state.getSector().threat * 0.8f; state.rules.waveTeam.rules().infiniteResources = true; }