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
+1
View File
@@ -1079,6 +1079,7 @@ rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
rules.rtsai = RTS AI
rules.rtsminsquadsize = Min Squad Size
rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP)
rules.corecapture = Capture Core On Destruction
rules.polygoncoreprotection = Polygonal Core Protection
+2 -4
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
+2
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;
@@ -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);
+1 -1
View File
@@ -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=b2eb1dd566
archash=99ceda8bf2