From 68cc95c26d580faad46e5fa9723829bb3dd89f1a Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Wed, 8 Jun 2022 05:42:17 -0700 Subject: [PATCH] Wrap Immunities in unit stats (#6946) * Don't display move effect ability in stats * Wrap the immunities list --- core/src/mindustry/content/UnitTypes.java | 2 +- core/src/mindustry/entities/abilities/Ability.java | 2 ++ .../mindustry/entities/abilities/MoveEffectAbility.java | 1 + core/src/mindustry/type/UnitType.java | 8 +++----- core/src/mindustry/world/meta/StatValues.java | 8 ++++++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 3e29bd67c8..899926fe9a 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -3794,7 +3794,7 @@ public class UnitTypes{ x = 43f * i / 4f; particles = parts; //visual only, the middle one does the actual suppressing - active = false; + display = active = false; }}); } diff --git a/core/src/mindustry/entities/abilities/Ability.java b/core/src/mindustry/entities/abilities/Ability.java index 140a6d6e1a..daf9b543ed 100644 --- a/core/src/mindustry/entities/abilities/Ability.java +++ b/core/src/mindustry/entities/abilities/Ability.java @@ -6,6 +6,8 @@ import mindustry.gen.*; import mindustry.type.*; public abstract class Ability implements Cloneable{ + /** If false, this ability does not show in unit stats. */ + public boolean display = true; //the one and only data variable that is synced. public float data; diff --git a/core/src/mindustry/entities/abilities/MoveEffectAbility.java b/core/src/mindustry/entities/abilities/MoveEffectAbility.java index bbb8d36a6c..b53a3c3db9 100644 --- a/core/src/mindustry/entities/abilities/MoveEffectAbility.java +++ b/core/src/mindustry/entities/abilities/MoveEffectAbility.java @@ -24,6 +24,7 @@ public class MoveEffectAbility extends Ability{ this.color = color; this.effect = effect; this.interval = interval; + display = false; } public MoveEffectAbility(){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index e5687fcdde..e02f57a079 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -566,7 +566,7 @@ public class UnitType extends UnlockableContent{ var unique = new ObjectSet(); for(Ability a : abilities){ - if(unique.add(a.localized())){ + if(a.display && unique.add(a.localized())){ stats.add(Stat.abilities, a.localized()); } } @@ -609,9 +609,7 @@ public class UnitType extends UnlockableContent{ if(naval){ imm.remove(StatusEffects.wet); } - for(var i : imm){ - stats.add(Stat.immunities, i.emoji() + " " + i.localizedName); - } + stats.add(Stat.immunities, StatValues.statusEffects(imm)); } } @@ -1537,4 +1535,4 @@ public class UnitType extends UnlockableContent{ } } -} \ No newline at end of file +} diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 762a6cd930..b1962f232a 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -206,8 +206,8 @@ public class StatValues{ if(item instanceof Block block && block.itemDrop != null && !block.itemDrop.unlocked()) continue; - l.image(item.uiIcon).size(iconSmall).padRight(2).padLeft(2).padTop(3).padBottom(3); - l.add(item.localizedName).left().padLeft(1).padRight(4); + if(item.uiIcon.found()) l.image(item.uiIcon).size(iconSmall).padRight(2).padLeft(2).padTop(3).padBottom(3); + l.add(item.localizedName).left().padLeft(1).padRight(4).colspan(item.uiIcon.found() ? 1 : 2); if(i % 5 == 4){ l.row(); } @@ -223,6 +223,10 @@ public class StatValues{ return content(list.as()); } + public static StatValue statusEffects(Seq list){ + return content(list.as()); + } + public static StatValue boosters(float reload, float maxUsed, float multiplier, boolean baseReload, Boolf filter){ return table -> { table.row();