Fixed misleading build UI for team-specific infinite resources

This commit is contained in:
Anuken
2026-09-12 10:49:45 -04:00
parent 7501697f02
commit 06163708bd
2 changed files with 6 additions and 2 deletions
+4
View File
@@ -343,6 +343,10 @@ public class Rules{
return unitFactoryActivationDelay + teams.get(team).unitFactoryActivationDelay;
}
public boolean isInfiniteResources(Team team){
return infiniteResources || teams.get(team).infiniteResources;
}
/** A team-specific ruleset. */
public static class TeamRule{
/** Whether, when AI is enabled, ships should be spawned from the core. TODO remove / unnecessary? */
@@ -312,7 +312,7 @@ public class PlacementFragment{
button.update(() -> { //color unplacable things gray
Building core = player.core();
Color color = (state.rules.infiniteResources || (core != null && (core.items.has(block.requirements, state.rules.buildCostMultiplier) || state.rules.infiniteResources))) && player.isBuilder() ? Color.white : Color.gray;
Color color = (state.rules.isInfiniteResources(player.team()) || (core != null && (core.items.has(block.requirements, state.rules.buildCostMultiplier) || state.rules.infiniteResources))) && player.isBuilder() ? Color.white : Color.gray;
button.forEach(elem -> elem.setColor(color));
button.setChecked(control.input.block == block);
@@ -407,7 +407,7 @@ public class PlacementFragment{
line.label(() -> {
Building core = player.core();
int stackamount = Math.round(stack.amount * state.rules.buildCostMultiplier);
if(core == null || state.rules.infiniteResources) return "*/" + stackamount;
if(core == null || state.rules.isInfiniteResources(player.team())) return "*/" + stackamount;
int amount = core.items.get(stack.item);
String color = (amount < stackamount / 2f ? "[scarlet]" : amount < stackamount ? "[accent]" : "[white]");