Configurable RTS AI parameters for logic

This commit is contained in:
Anuken
2022-04-24 16:46:26 -04:00
parent abdb1c1252
commit d5e522994e
7 changed files with 15 additions and 11 deletions

View File

@@ -1355,7 +1355,7 @@ public class LExecutor{
}
}
case ambientLight -> state.rules.ambientLight.fromDouble(exec.num(value));
case unitBuildSpeed, unitDamage, blockHealth, blockDamage, buildSpeed -> {
case unitBuildSpeed, unitDamage, blockHealth, blockDamage, buildSpeed, rtsMinSquad, rtsMinWeight -> {
if(exec.obj(p1) instanceof Team team){
float num = exec.numf(value);
switch(rule){
@@ -1364,6 +1364,8 @@ public class LExecutor{
case unitDamage -> team.rules().unitDamageMultiplier = Math.max(num, 0f);
case blockHealth -> team.rules().blockHealthMultiplier = Math.max(num, 0.001f);
case blockDamage -> team.rules().blockDamageMultiplier = Math.max(num, 0f);
case rtsMinWeight -> team.rules().rtsMinWeight = num;
case rtsMinSquad -> team.rules().rtsMinSquad = (int)num;
}
}
}

View File

@@ -1265,7 +1265,7 @@ public class LStatements{
fields(table, "w", p3, s -> p3 = s);
fields(table, "h", p4, s -> p4 = s);
}
case buildSpeed, unitBuildSpeed, unitDamage, blockHealth, blockDamage -> {
case buildSpeed, unitBuildSpeed, unitDamage, blockHealth, blockDamage, rtsMinSquad, rtsMinWeight -> {
if(p1.equals("0")){
p1 = "@sharded";
}

View File

@@ -18,7 +18,9 @@ public enum LogicRule{
unitBuildSpeed,
unitDamage,
blockHealth,
blockDamage;
blockDamage,
rtsMinWeight,
rtsMinSquad;
public static final LogicRule[] all = values();
}