extract isImmunity & isClear & isInfinite

This commit is contained in:
OMGeeky
2025-06-23 15:09:41 +02:00
parent a7f214a1cb
commit 1ca2b9068e
3 changed files with 15 additions and 7 deletions

View File

@@ -32,6 +32,15 @@ public final class Common {
cclone.duration = this.duration; cclone.duration = this.duration;
return cclone; return cclone;
} }
public boolean isInfinite(){
return duration != null && duration == ActorCondition.DURATION_FOREVER;
}
public boolean isImmunity(){
return (magnitude == null || magnitude == ActorCondition.MAGNITUDE_CLEAR) && (duration != null && duration > ActorCondition.DURATION_NONE);
}
public boolean isClear(){
return (magnitude == null || magnitude == ActorCondition.MAGNITUDE_CLEAR) && (duration == null || duration == ActorCondition.DURATION_NONE);
}
} }
public static class ActorConditionEffect { public static class ActorConditionEffect {

View File

@@ -22,9 +22,9 @@ public class CommonEditor {
if (effect.condition != null) { if (effect.condition != null) {
boolean immunity = (effect.magnitude == null || effect.magnitude == ActorCondition.MAGNITUDE_CLEAR) && (effect.duration != null && effect.duration > ActorCondition.DURATION_NONE); boolean immunity = effect.isImmunity();
boolean clear = (effect.magnitude == null || effect.magnitude == ActorCondition.MAGNITUDE_CLEAR) && (effect.duration == null || effect.duration == ActorCondition.DURATION_NONE); boolean clear = effect.isClear();
boolean forever = effect.duration != null && effect.duration == ActorCondition.DURATION_FOREVER; boolean forever = effect.isInfinite();
if (clear) { if (clear) {
label.setIcon(new ImageIcon(effect.condition.getIcon())); label.setIcon(new ImageIcon(effect.condition.getIcon()));

View File

@@ -632,10 +632,9 @@ public class ItemEditor extends JSONElementEditor {
} }
public void updateHitTargetTimedConditionWidgets(Common.TimedActorConditionEffect condition) { public void updateHitTargetTimedConditionWidgets(Common.TimedActorConditionEffect condition) {
boolean immunity = condition.isImmunity();
boolean immunity = (condition.magnitude == null || condition.magnitude == ActorCondition.MAGNITUDE_CLEAR) && (condition.duration != null && condition.duration > ActorCondition.DURATION_NONE); boolean clear = condition.isClear();
boolean clear = (condition.magnitude == null || condition.magnitude == ActorCondition.MAGNITUDE_CLEAR) && (condition.duration == null || condition.duration == ActorCondition.DURATION_NONE); boolean forever = condition.isInfinite();
boolean forever = condition.duration != null && condition.duration == ActorCondition.DURATION_FOREVER;
hitTargetConditionClear.setSelected(clear); hitTargetConditionClear.setSelected(clear);
hitTargetConditionApply.setSelected(!clear && !immunity); hitTargetConditionApply.setSelected(!clear && !immunity);