Configurable min squad size

This commit is contained in:
Anuken
2022-04-22 17:46:47 -04:00
parent 520d80a96b
commit 764b1c27bf
5 changed files with 7 additions and 5 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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);