Min attack weight rule

This commit is contained in:
Anuken 2022-04-23 12:26:59 -04:00
parent 27768b7451
commit 43aeb90eb9
5 changed files with 6 additions and 4 deletions

View File

@ -1082,6 +1082,7 @@ rules.waves = Waves
rules.attack = Attack Mode rules.attack = Attack Mode
rules.rtsai = RTS AI rules.rtsai = RTS AI
rules.rtsminsquadsize = Min Squad Size rules.rtsminsquadsize = Min Squad Size
rules.rtsminattackweight = Min Attack Weight
rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP) rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP)
rules.corecapture = Capture Core On Destruction rules.corecapture = Capture Core On Destruction
rules.polygoncoreprotection = Polygonal Core Protection rules.polygoncoreprotection = Polygonal Core Protection

View File

@ -28,8 +28,6 @@ public class RtsAI{
static final IntSet assignedTargets = new IntSet(); static final IntSet assignedTargets = new IntSet();
static final float squadRadius = 120f; static final float squadRadius = 120f;
static final int timeUpdate = 0, timerSpawn = 1; static final int timeUpdate = 0, timerSpawn = 1;
//TODO make configurable
static final float minWeight = 1f;
//in order of priority?? //in order of priority??
static final BlockFlag[] flags = {BlockFlag.generator, BlockFlag.factory, BlockFlag.core, BlockFlag.battery}; static final BlockFlag[] flags = {BlockFlag.generator, BlockFlag.factory, BlockFlag.core, BlockFlag.battery};
@ -267,7 +265,7 @@ public class RtsAI{
); );
float weight = weights.get(result, 0f); float weight = weights.get(result, 0f);
if(weight < minWeight && total < Units.getCap(data.team)){ if(weight < data.team.rules().minAttackWeight && total < Units.getCap(data.team)){
return null; return null;
} }

View File

@ -226,6 +226,8 @@ public class Rules{
public boolean rtsAi; public boolean rtsAi;
/** Minimum size of attack squads. */ /** Minimum size of attack squads. */
public int rtsAiMinSquadSize = 4; public int rtsAiMinSquadSize = 4;
/** Minimum "advantage" needed for a squad to attack. Higher -> more cautious. */
public float minAttackWeight = 1.2f;
/** How fast unit factories build units. */ /** How fast unit factories build units. */
public float unitBuildSpeedMultiplier = 1f; public float unitBuildSpeedMultiplier = 1f;

View File

@ -255,6 +255,7 @@ public class CustomRulesDialog extends BaseDialog{
check("@rules.rtsai", b -> teams.rtsAi = b, () -> teams.rtsAi, () -> team != rules.defaultTeam); 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); numberi("@rules.rtsminsquadsize", f -> teams.rtsAiMinSquadSize = f, () -> teams.rtsAiMinSquadSize, () -> teams.rtsAi, 0, 100);
number("@rules.rtsminattackweight", f -> teams.minAttackWeight = f, () -> teams.minAttackWeight, () -> teams.rtsAi);
check("@rules.infiniteresources", b -> teams.infiniteResources = b, () -> teams.infiniteResources); check("@rules.infiniteresources", b -> teams.infiniteResources = b, () -> teams.infiniteResources);
number("@rules.buildspeedmultiplier", f -> teams.buildSpeedMultiplier = f, () -> teams.buildSpeedMultiplier, 0.001f, 50f); number("@rules.buildspeedmultiplier", f -> teams.buildSpeedMultiplier = f, () -> teams.buildSpeedMultiplier, 0.001f, 50f);

View File

@ -25,4 +25,4 @@ org.gradle.caching=true
#used for slow jitpack builds; TODO see if this actually works #used for slow jitpack builds; TODO see if this actually works
org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000 org.gradle.internal.http.connectionTimeout=100000
archash=99ceda8bf2 archash=871de12b14