Configurable min squad size
This commit is contained in:
@@ -34,8 +34,6 @@ public class RtsAI{
|
||||
//in order of priority??
|
||||
static final BlockFlag[] flags = {BlockFlag.generator, BlockFlag.factory, BlockFlag.core, BlockFlag.battery};
|
||||
static final ObjectFloatMap<Building> weights = new ObjectFloatMap<>();
|
||||
//TODO configurable, perhaps
|
||||
static final int minSquadSize = 4;
|
||||
//TODO max squad size
|
||||
static final boolean debug = OS.hasProp("mindustry.debug");
|
||||
|
||||
@@ -172,7 +170,7 @@ public class RtsAI{
|
||||
|
||||
//defend when close, or this is the only squad defending
|
||||
//TODO will always rush to defense no matter what
|
||||
if(best instanceof CoreBuild || units.size >= minSquadSize || best.within(ax, ay, 500f)){
|
||||
if(best instanceof CoreBuild || units.size >= data.team.rules().rtsAiMinSquadSize || best.within(ax, ay, 500f)){
|
||||
defend = best;
|
||||
|
||||
if(debug){
|
||||
@@ -239,7 +237,7 @@ public class RtsAI{
|
||||
}
|
||||
|
||||
@Nullable Building findTarget(float x, float y, int total, float dps, float health){
|
||||
if(total < minSquadSize) return null;
|
||||
if(total < data.team.rules().rtsAiMinSquadSize) return null;
|
||||
|
||||
//flag priority?
|
||||
//1. generator
|
||||
|
||||
@@ -224,6 +224,8 @@ public class Rules{
|
||||
|
||||
/** Enables "RTS" unit AI. TODO wip */
|
||||
public boolean rtsAi;
|
||||
/** Minimum size of attack squads. */
|
||||
public int rtsAiMinSquadSize = 4;
|
||||
|
||||
/** How fast unit factories build units. */
|
||||
public float unitBuildSpeedMultiplier = 1f;
|
||||
|
||||
@@ -253,6 +253,7 @@ public class CustomRulesDialog extends BaseDialog{
|
||||
number("@rules.blockdamagemultiplier", f -> teams.blockDamageMultiplier = f, () -> teams.blockDamageMultiplier);
|
||||
|
||||
check("@rules.rtsai", b -> teams.rtsAi = b, () -> teams.rtsAi, () -> team != rules.defaultTeam);
|
||||
numberi("@rules.rtsminsquadsize", f -> teams.rtsAiMinSquadSize = f, () -> teams.rtsAiMinSquadSize, () -> teams.rtsAi, 0, 100);
|
||||
|
||||
check("@rules.infiniteresources", b -> teams.infiniteResources = b, () -> teams.infiniteResources);
|
||||
number("@rules.buildspeedmultiplier", f -> teams.buildSpeedMultiplier = f, () -> teams.buildSpeedMultiplier, 0.001f, 50f);
|
||||
|
||||
Reference in New Issue
Block a user