mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-03-03 22:21:17 +07:00
BuildTurret AI, efficiency
This commit is contained in:
parent
6fb2b3e920
commit
f108791379
@ -1,16 +1,25 @@
|
||||
package mindustry.world.blocks.defense;
|
||||
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.game.Teams.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.*;
|
||||
import mindustry.world.blocks.defense.turrets.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class BuildTurret extends BaseTurret{
|
||||
public final int timerTarget = timers++;
|
||||
public int targetInterval = 20;
|
||||
|
||||
public @Load(value = "@-base", fallback = "block-@size") TextureRegion baseRegion;
|
||||
public float buildSpeed = 1f;
|
||||
//created in init()
|
||||
@ -70,8 +79,25 @@ public class BuildTurret extends BaseTurret{
|
||||
unit.lookAt(angleTo(unit.buildPlan()));
|
||||
}
|
||||
|
||||
unit.buildSpeedMultiplier(efficiency() * timeScale);
|
||||
|
||||
if(!isControlled()){
|
||||
unit.updateBuilding(true);
|
||||
|
||||
if(unit.buildPlan() == null && timer(timerTarget, targetInterval)){
|
||||
Queue<BlockPlan> blocks = team.data().blocks;
|
||||
for(int i = 0; i < blocks.size; i++){
|
||||
var block = blocks.get(i);
|
||||
if(within(block.x * tilesize, block.y * tilesize, range)){
|
||||
if(Build.validPlace(content.block(block.block), unit.team(), block.x, block.y, block.rotation)){
|
||||
unit.addBuild(new BuildPlan(block.x, block.y, block.rotation, content.block(block.block), block.config));
|
||||
//shift build plan to tail so next unit builds something else
|
||||
blocks.addLast(blocks.removeIndex(i));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//please do not commit suicide
|
||||
|
Loading…
Reference in New Issue
Block a user