From 5031fa3c729c9ecc68b1c31799064e3ebaa78a08 Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Mon, 23 Jun 2025 19:58:22 +0200 Subject: [PATCH] rename some stuff --- .../ui/gamedataeditors/CommonEditor.java | 196 ++++++++--------- .../ui/gamedataeditors/NPCEditor.java | 203 ++++++------------ 2 files changed, 163 insertions(+), 236 deletions(-) diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/CommonEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/CommonEditor.java index 86c0c25..ff37862 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/CommonEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/CommonEditor.java @@ -15,6 +15,7 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.function.Supplier; import static com.gpl.rpg.atcontentstudio.ui.Editor.addIntegerField; @@ -81,14 +82,9 @@ public class CommonEditor { } public static class HitEffectPane extends DeathEffectPane { - Common.HitEffect hitEffect; - CollapsiblePanel hitEffectPane; - JSpinner hitEffectHPMin; - JSpinner hitEffectHPMax; - JSpinner hitEffectAPMin; - JSpinner hitEffectAPMax; + /// this should just be a convenience field, to access it, without casting. DO NOT SET WITHOUT ALSO SETTING THE FIELD IN THE SUPER-CLASS! + Common.HitEffect effect; NPCEditor.TargetTimedConditionsListModel hitTargetConditionsListModel; - JList hitSourceConditionsList; JList hitTargetConditionsList; Common.TimedActorConditionEffect selectedHitEffectTargetCondition; @@ -110,11 +106,12 @@ public class CommonEditor { this.selectedHitEffectTargetCondition = selectedHitEffectTargetCondition; } - void createHitEffectPaneContent(NPC npc, FieldUpdateListener listener, Editor editor, String applyToHint) { - createDeathEffectPaneContent(npc, listener, editor, applyToHint); + void createHitEffectPaneContent(NPC npc, FieldUpdateListener listener, Editor editor, String applyToHint, boolean writable, Common.HitEffect e, NPCEditor.SourceTimedConditionsListModel sourceConditionsModel1) { + effect = e; + createDeathEffectPaneContent(npc, listener, editor, applyToHint, writable, e, sourceConditionsModel1, Common.TimedActorConditionEffect::new); String titleTarget = "Actor Conditions applied to the target: "; - hitTargetConditionsListModel = new NPCEditor.TargetTimedConditionsListModel(hitEffect); + hitTargetConditionsListModel = new NPCEditor.TargetTimedConditionsListModel(effect); CommonEditor.TimedConditionsCellRenderer cellRendererTarget = new CommonEditor.TimedConditionsCellRenderer(); BasicLambdaWithArg selectedSetTarget = (value) -> selectedHitEffectTargetCondition = value; BasicLambdaWithReturn selectedGetTarget = () -> selectedHitEffectTargetCondition; @@ -129,7 +126,7 @@ public class CommonEditor { (x) -> { }, updatePaneTarget, - npc.writable, + writable, Common.TimedActorConditionEffect::new, cellRendererTarget, titleTarget, @@ -139,7 +136,7 @@ public class CommonEditor { if (npc.hit_effect == null || npc.hit_effect.conditions_target == null || npc.hit_effect.conditions_target.isEmpty()) { hitTargetConditionsPane.collapse(); } - hitEffectPane.add(hitTargetConditionsPane, JideBoxLayout.FIX); + effectPane.add(hitTargetConditionsPane, JideBoxLayout.FIX); } public void updateHitTargetTimedConditionEditorPane(JPanel pane, Common.TimedActorConditionEffect condition, final FieldUpdateListener listener, Editor e) { @@ -231,147 +228,144 @@ public class CommonEditor { } } - public static class DeathEffectPane { - Common.DeathEffect hitEffect; - CollapsiblePanel hitEffectPane; - JSpinner hitEffectHPMin; - JSpinner hitEffectHPMax; - JSpinner hitEffectAPMin; - JSpinner hitEffectAPMax; - NPCEditor.SourceTimedConditionsListModel hitSourceConditionsModel; - JList hitSourceConditionsList; - Common.TimedActorConditionEffect selectedHitEffectSourceCondition; + public static class DeathEffectPane> { + Common.DeathEffect effect; + CollapsiblePanel effectPane; + JSpinner effectHPMin; + JSpinner effectHPMax; + JSpinner effectAPMin; + JSpinner effectAPMax; + M sourceConditionsModel; + JList sourceConditionsList; + E selectedEffectSourceCondition; - Editor.MyComboBox hitSourceConditionBox; - JSpinner hitSourceConditionChance; - JRadioButton hitSourceConditionClear; - JRadioButton hitSourceConditionApply; - JRadioButton hitSourceConditionImmunity; - JSpinner hitSourceConditionMagnitude; - JRadioButton hitSourceConditionTimed; - JRadioButton hitSourceConditionForever; - JSpinner hitSourceConditionDuration; + Editor.MyComboBox sourceConditionBox; + JSpinner sourceConditionChance; + JRadioButton sourceConditionClear; + JRadioButton sourceConditionApply; + JRadioButton sourceConditionImmunity; + JSpinner sourceConditionMagnitude; + JRadioButton sourceConditionTimed; + JRadioButton sourceConditionForever; + JSpinner sourceConditionDuration; /* * create a new DeatchEffectPane with the selections (probably passed in from last time) */ - public DeathEffectPane(Common.TimedActorConditionEffect selectedHitEffectSourceCondition) { - this.selectedHitEffectSourceCondition = selectedHitEffectSourceCondition; + public DeathEffectPane(E selectedEffectSourceCondition) { + this.selectedEffectSourceCondition = selectedEffectSourceCondition; } - void createDeathEffectPaneContent(NPC npc, FieldUpdateListener listener, Editor editor, String applyToHint) { + void createDeathEffectPaneContent(NPC npc, FieldUpdateListener listener, Editor editor, String applyToHint, boolean writable, Common.DeathEffect e, M sourceConditionsModel, Supplier sourceNewSupplier) { if (applyToHint == null || applyToHint == "") { applyToHint = ""; } else { applyToHint = " (%s)".formatted(applyToHint); } - hitEffectPane = new CollapsiblePanel("Effect on every hit: "); - hitEffectPane.setLayout(new JideBoxLayout(hitEffectPane, JideBoxLayout.PAGE_AXIS)); - if (npc.hit_effect == null) { - hitEffect = new Common.HitEffect(); - } else { - hitEffect = npc.hit_effect; - } - hitEffectHPMin = addIntegerField(hitEffectPane, "HP bonus min%s: ".formatted(applyToHint), hitEffect.hp_boost_min, true, npc.writable, listener); - hitEffectHPMax = addIntegerField(hitEffectPane, "HP bonus max%s: ".formatted(applyToHint), hitEffect.hp_boost_max, true, npc.writable, listener); - hitEffectAPMin = addIntegerField(hitEffectPane, "AP bonus min%s: ".formatted(applyToHint), hitEffect.ap_boost_min, true, npc.writable, listener); - hitEffectAPMax = addIntegerField(hitEffectPane, "AP bonus max%s: ".formatted(applyToHint), hitEffect.ap_boost_max, true, npc.writable, listener); + effectPane = new CollapsiblePanel("Effect on every hit: "); + effectPane.setLayout(new JideBoxLayout(effectPane, JideBoxLayout.PAGE_AXIS)); + + effect = e; + effectHPMin = addIntegerField(effectPane, "HP bonus min%s: ".formatted(applyToHint), effect.hp_boost_min, true, writable, listener); + effectHPMax = addIntegerField(effectPane, "HP bonus max%s: ".formatted(applyToHint), effect.hp_boost_max, true, writable, listener); + effectAPMin = addIntegerField(effectPane, "AP bonus min%s: ".formatted(applyToHint), effect.ap_boost_min, true, writable, listener); + effectAPMax = addIntegerField(effectPane, "AP bonus max%s: ".formatted(applyToHint), effect.ap_boost_max, true, writable, listener); String titleSource = "Actor Conditions applied to the source: "; - hitSourceConditionsModel = new NPCEditor.SourceTimedConditionsListModel(hitEffect); + this.sourceConditionsModel = sourceConditionsModel; CommonEditor.TimedConditionsCellRenderer cellRendererSource = new CommonEditor.TimedConditionsCellRenderer(); - BasicLambdaWithArg selectedSetSource = (value) -> selectedHitEffectSourceCondition = value; - BasicLambdaWithReturn selectedGetSource = () -> selectedHitEffectSourceCondition; - BasicLambda selectedResetSource = () -> selectedHitEffectSourceCondition = null; - BasicLambdaWithArg updatePaneSource = (editorPane) -> updateDeathEffectSourceTimedConditionEditorPane(editorPane, selectedHitEffectSourceCondition, listener, editor); + BasicLambdaWithArg selectedSetSource = (value) -> selectedEffectSourceCondition = value; + BasicLambdaWithReturn selectedGetSource = () -> selectedEffectSourceCondition; + BasicLambda selectedResetSource = () -> selectedEffectSourceCondition = null; + BasicLambdaWithArg updatePaneSource = (editorPane) -> updateEffectSourceTimedConditionEditorPane(editorPane, selectedEffectSourceCondition, listener, editor); var resultSource = UiUtils.getCollapsibleItemList(listener, - hitSourceConditionsModel, + this.sourceConditionsModel, selectedResetSource, selectedSetSource, selectedGetSource, (x) -> { }, updatePaneSource, - npc.writable, - Common.TimedActorConditionEffect::new, + writable, + sourceNewSupplier, cellRendererSource, titleSource, (x) -> null); - hitSourceConditionsList = resultSource.list; - CollapsiblePanel hitSourceConditionsPane = resultSource.collapsiblePanel; - if (npc.hit_effect == null || npc.hit_effect.conditions_source == null || npc.hit_effect.conditions_source.isEmpty()) { - hitSourceConditionsPane.collapse(); + sourceConditionsList = resultSource.list; + CollapsiblePanel sourceConditionsPane = resultSource.collapsiblePanel; + if (effect == null || effect.conditions_source == null || effect.conditions_source.isEmpty()) { + sourceConditionsPane.collapse(); } - hitEffectPane.add(hitSourceConditionsPane, JideBoxLayout.FIX); + effectPane.add(sourceConditionsPane, JideBoxLayout.FIX); } - public void updateDeathEffectSourceTimedConditionEditorPane(JPanel pane, Common.TimedActorConditionEffect condition, final FieldUpdateListener listener, Editor e) { + public void updateEffectSourceTimedConditionEditorPane(JPanel pane, E condition, final FieldUpdateListener listener, Editor e) { pane.removeAll(); - if (hitSourceConditionBox != null) { - e.removeElementListener(hitSourceConditionBox); + if (sourceConditionBox != null) { + e.removeElementListener(sourceConditionBox); } boolean writable = e.target.writable; Project proj = e.target.getProject(); - hitSourceConditionBox = e.addActorConditionBox(pane, proj, "Actor Condition: ", condition.condition, writable, listener); - hitSourceConditionChance = e.addDoubleField(pane, "Chance: ", condition.chance, writable, listener); + sourceConditionBox = e.addActorConditionBox(pane, proj, "Actor Condition: ", condition.condition, writable, listener); + sourceConditionChance = e.addDoubleField(pane, "Chance: ", condition.chance, writable, listener); - hitSourceConditionClear = new JRadioButton("Clear active condition"); - pane.add(hitSourceConditionClear, JideBoxLayout.FIX); - hitSourceConditionApply = new JRadioButton("Apply condition with magnitude"); - pane.add(hitSourceConditionApply, JideBoxLayout.FIX); - hitSourceConditionMagnitude = addIntegerField(pane, "Magnitude: ", condition.magnitude == null ? null : condition.magnitude >= 0 ? condition.magnitude : 0, 1, false, writable, listener); - hitSourceConditionImmunity = new JRadioButton("Give immunity to condition"); - pane.add(hitSourceConditionImmunity, JideBoxLayout.FIX); + sourceConditionClear = new JRadioButton("Clear active condition"); + pane.add(sourceConditionClear, JideBoxLayout.FIX); + sourceConditionApply = new JRadioButton("Apply condition with magnitude"); + pane.add(sourceConditionApply, JideBoxLayout.FIX); + sourceConditionMagnitude = addIntegerField(pane, "Magnitude: ", condition.magnitude == null ? null : condition.magnitude >= 0 ? condition.magnitude : 0, 1, false, writable, listener); + sourceConditionImmunity = new JRadioButton("Give immunity to condition"); + pane.add(sourceConditionImmunity, JideBoxLayout.FIX); ButtonGroup radioEffectGroup = new ButtonGroup(); - radioEffectGroup.add(hitSourceConditionApply); - radioEffectGroup.add(hitSourceConditionClear); - radioEffectGroup.add(hitSourceConditionImmunity); + radioEffectGroup.add(sourceConditionApply); + radioEffectGroup.add(sourceConditionClear); + radioEffectGroup.add(sourceConditionImmunity); - hitSourceConditionTimed = new JRadioButton("For a number of rounds"); - pane.add(hitSourceConditionTimed, JideBoxLayout.FIX); - hitSourceConditionDuration = addIntegerField(pane, "Duration: ", condition.duration, 1, false, writable, listener); - hitSourceConditionForever = new JRadioButton("Forever"); - pane.add(hitSourceConditionForever, JideBoxLayout.FIX); + sourceConditionTimed = new JRadioButton("For a number of rounds"); + pane.add(sourceConditionTimed, JideBoxLayout.FIX); + sourceConditionDuration = addIntegerField(pane, "Duration: ", condition.duration, 1, false, writable, listener); + sourceConditionForever = new JRadioButton("Forever"); + pane.add(sourceConditionForever, JideBoxLayout.FIX); ButtonGroup radioDurationGroup = new ButtonGroup(); - radioDurationGroup.add(hitSourceConditionTimed); - radioDurationGroup.add(hitSourceConditionForever); + radioDurationGroup.add(sourceConditionTimed); + radioDurationGroup.add(sourceConditionForever); - updateDeathEffectSourceTimedConditionWidgets(condition); + updateEffectSourceTimedConditionWidgets(condition); - hitSourceConditionClear.addActionListener(new ActionListener() { + sourceConditionClear.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitSourceConditionClear, new Boolean(hitSourceConditionClear.isSelected())); + listener.valueChanged(sourceConditionClear, new Boolean(sourceConditionClear.isSelected())); } }); - hitSourceConditionApply.addActionListener(new ActionListener() { + sourceConditionApply.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitSourceConditionApply, new Boolean(hitSourceConditionApply.isSelected())); + listener.valueChanged(sourceConditionApply, new Boolean(sourceConditionApply.isSelected())); } }); - hitSourceConditionImmunity.addActionListener(new ActionListener() { + sourceConditionImmunity.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitSourceConditionImmunity, new Boolean(hitSourceConditionImmunity.isSelected())); + listener.valueChanged(sourceConditionImmunity, new Boolean(sourceConditionImmunity.isSelected())); } }); - hitSourceConditionTimed.addActionListener(new ActionListener() { + sourceConditionTimed.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitSourceConditionTimed, new Boolean(hitSourceConditionTimed.isSelected())); + listener.valueChanged(sourceConditionTimed, new Boolean(sourceConditionTimed.isSelected())); } }); - hitSourceConditionForever.addActionListener(new ActionListener() { + sourceConditionForever.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitSourceConditionForever, new Boolean(hitSourceConditionForever.isSelected())); + listener.valueChanged(sourceConditionForever, new Boolean(sourceConditionForever.isSelected())); } }); pane.revalidate(); @@ -379,21 +373,21 @@ public class CommonEditor { } - public void updateDeathEffectSourceTimedConditionWidgets(Common.TimedActorConditionEffect condition) { + public void updateEffectSourceTimedConditionWidgets(E condition) { boolean immunity = condition.isImmunity(); boolean clear = condition.isClear(); boolean forever = condition.isInfinite(); - hitSourceConditionClear.setSelected(clear); - hitSourceConditionApply.setSelected(!clear && !immunity); - hitSourceConditionMagnitude.setEnabled(!clear && !immunity); - hitSourceConditionImmunity.setSelected(immunity); + sourceConditionClear.setSelected(clear); + sourceConditionApply.setSelected(!clear && !immunity); + sourceConditionMagnitude.setEnabled(!clear && !immunity); + sourceConditionImmunity.setSelected(immunity); - hitSourceConditionTimed.setSelected(!forever); - hitSourceConditionTimed.setEnabled(!clear); - hitSourceConditionDuration.setEnabled(!clear && !forever); - hitSourceConditionForever.setSelected(forever); - hitSourceConditionForever.setEnabled(!clear); + sourceConditionTimed.setSelected(!forever); + sourceConditionTimed.setEnabled(!clear); + sourceConditionDuration.setEnabled(!clear && !forever); + sourceConditionForever.setSelected(forever); + sourceConditionForever.setEnabled(!clear); } } } diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java index 18cbf2b..71530f1 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/NPCEditor.java @@ -206,9 +206,15 @@ public class NPCEditor extends JSONElementEditor { blockChance = addIntegerField(combatTraitPane, "Block chance: ", npc.block_chance, false, npc.writable, listener); dmgRes = addIntegerField(combatTraitPane, "Damage resistance: ", npc.damage_resistance, false, npc.writable, listener); - hitEffectPane = new CommonEditor.HitEffectPane(this.hitEffectPane.selectedHitEffectSourceCondition, this.hitEffectPane.selectedHitEffectTargetCondition); - hitEffectPane.createHitEffectPaneContent(npc, listener, this, null); - combatTraitPane.add(hitEffectPane.hitEffectPane, JideBoxLayout.FIX); + Common.HitEffect hitEffect; + if (npc.hit_effect == null) { + hitEffect = new Common.HitEffect(); + } else { + hitEffect = npc.hit_effect; + } + hitEffectPane = new CommonEditor.HitEffectPane(this.hitEffectPane.selectedEffectSourceCondition, this.hitEffectPane.selectedHitEffectTargetCondition); + hitEffectPane.createHitEffectPaneContent(npc, listener, this, null, npc.writable, hitEffect, new SourceTimedConditionsListModel(hitEffect)); + combatTraitPane.add(hitEffectPane.effectPane, JideBoxLayout.FIX); hitReceivedEffectPane = new CollapsiblePanel("Effect on every hit received: "); hitReceivedEffectPane.setLayout(new JideBoxLayout(hitReceivedEffectPane, JideBoxLayout.PAGE_AXIS)); @@ -322,82 +328,9 @@ public class NPCEditor extends JSONElementEditor { pane.add(combatTraitPane, JideBoxLayout.FIX); } - - - public void updateHitSourceTimedConditionEditorPane(JPanel pane, Common.TimedActorConditionEffect condition, final FieldUpdateListener listener) { - pane.removeAll(); - if (hitEffectPane.hitSourceConditionBox != null) { - removeElementListener(hitEffectPane.hitSourceConditionBox); - } - - boolean writable = ((NPC) target).writable; - Project proj = ((NPC) target).getProject(); - - hitEffectPane.hitSourceConditionBox = addActorConditionBox(pane, proj, "Actor Condition: ", condition.condition, writable, listener); - hitEffectPane.hitSourceConditionChance = addDoubleField(pane, "Chance: ", condition.chance, writable, listener); - - hitEffectPane.hitSourceConditionClear = new JRadioButton("Clear active condition"); - pane.add(hitEffectPane.hitSourceConditionClear, JideBoxLayout.FIX); - hitEffectPane.hitSourceConditionApply = new JRadioButton("Apply condition with magnitude"); - pane.add(hitEffectPane.hitSourceConditionApply, JideBoxLayout.FIX); - hitEffectPane.hitSourceConditionMagnitude = addIntegerField(pane, "Magnitude: ", condition.magnitude == null ? null : condition.magnitude >= 0 ? condition.magnitude : 0, 1, false, writable, listener); - hitEffectPane.hitSourceConditionImmunity = new JRadioButton("Give immunity to condition"); - pane.add(hitEffectPane.hitSourceConditionImmunity, JideBoxLayout.FIX); - - ButtonGroup radioEffectGroup = new ButtonGroup(); - radioEffectGroup.add(hitEffectPane.hitSourceConditionApply); - radioEffectGroup.add(hitEffectPane.hitSourceConditionClear); - radioEffectGroup.add(hitEffectPane.hitSourceConditionImmunity); - - hitEffectPane.hitSourceConditionTimed = new JRadioButton("For a number of rounds"); - pane.add(hitEffectPane.hitSourceConditionTimed, JideBoxLayout.FIX); - hitEffectPane.hitSourceConditionDuration = addIntegerField(pane, "Duration: ", condition.duration, 1, false, writable, listener); - hitEffectPane.hitSourceConditionForever = new JRadioButton("Forever"); - pane.add(hitEffectPane.hitSourceConditionForever, JideBoxLayout.FIX); - - ButtonGroup radioDurationGroup = new ButtonGroup(); - radioDurationGroup.add(hitEffectPane.hitSourceConditionTimed); - radioDurationGroup.add(hitEffectPane.hitSourceConditionForever); - - updateHitSourceTimedConditionWidgets(condition); - - hitEffectPane.hitSourceConditionClear.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitEffectPane.hitSourceConditionClear, new Boolean(hitEffectPane.hitSourceConditionClear.isSelected())); - } - }); - hitEffectPane.hitSourceConditionApply.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitEffectPane.hitSourceConditionApply, new Boolean(hitEffectPane.hitSourceConditionApply.isSelected())); - } - }); - hitEffectPane.hitSourceConditionImmunity.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitEffectPane.hitSourceConditionImmunity, new Boolean(hitEffectPane.hitSourceConditionImmunity.isSelected())); - } - }); - - hitEffectPane.hitSourceConditionTimed.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitEffectPane.hitSourceConditionTimed, new Boolean(hitEffectPane.hitSourceConditionTimed.isSelected())); - } - }); - hitEffectPane.hitSourceConditionForever.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - listener.valueChanged(hitEffectPane.hitSourceConditionForever, new Boolean(hitEffectPane.hitSourceConditionForever.isSelected())); - } - }); - pane.revalidate(); - pane.repaint(); - } public void updateHitSourceTimedConditionWidgets(Common.TimedActorConditionEffect condition) { - hitEffectPane.updateDeathEffectSourceTimedConditionWidgets(condition); + hitEffectPane.updateEffectSourceTimedConditionWidgets(condition); } @@ -832,80 +765,80 @@ public class NPCEditor extends JSONElementEditor { npc.block_chance = (Integer) value; } else if (source == dmgRes) { npc.damage_resistance = (Integer) value; - } else if (source == hitEffectPane.hitEffectHPMin) { - hitEffectPane.hitEffect.hp_boost_min = (Integer) value; + } else if (source == hitEffectPane.effectHPMin) { + hitEffectPane.effect.hp_boost_min = (Integer) value; updateHit = true; - } else if (source == hitEffectPane.hitEffectHPMax) { - hitEffectPane.hitEffect.hp_boost_max = (Integer) value; + } else if (source == hitEffectPane.effectHPMax) { + hitEffectPane.effect.hp_boost_max = (Integer) value; updateHit = true; - } else if (source == hitEffectPane.hitEffectAPMin) { - hitEffectPane.hitEffect.ap_boost_min = (Integer) value; + } else if (source == hitEffectPane.effectAPMin) { + hitEffectPane.effect.ap_boost_min = (Integer) value; updateHit = true; - } else if (source == hitEffectPane.hitEffectAPMax) { - hitEffectPane.hitEffect.ap_boost_max = (Integer) value; + } else if (source == hitEffectPane.effectAPMax) { + hitEffectPane.effect.ap_boost_max = (Integer) value; updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionsList) { + } else if (source == hitEffectPane.sourceConditionsList) { updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionBox) { - if (hitEffectPane.selectedHitEffectSourceCondition.condition != null) { - hitEffectPane.selectedHitEffectSourceCondition.condition.removeBacklink(npc); + } else if (source == hitEffectPane.sourceConditionBox) { + if (hitEffectPane.selectedEffectSourceCondition.condition != null) { + hitEffectPane.selectedEffectSourceCondition.condition.removeBacklink(npc); } - hitEffectPane.selectedHitEffectSourceCondition.condition = (ActorCondition) value; - if (hitEffectPane.selectedHitEffectSourceCondition.condition != null) { - hitEffectPane.selectedHitEffectSourceCondition.condition.addBacklink(npc); - hitEffectPane.selectedHitEffectSourceCondition.condition_id = hitEffectPane.selectedHitEffectSourceCondition.condition.id; + hitEffectPane.selectedEffectSourceCondition.condition = (ActorCondition) value; + if (hitEffectPane.selectedEffectSourceCondition.condition != null) { + hitEffectPane.selectedEffectSourceCondition.condition.addBacklink(npc); + hitEffectPane.selectedEffectSourceCondition.condition_id = hitEffectPane.selectedEffectSourceCondition.condition.id; } else { - hitEffectPane.selectedHitEffectSourceCondition.condition_id = null; + hitEffectPane.selectedEffectSourceCondition.condition_id = null; } - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); - } else if (source == hitEffectPane.hitSourceConditionClear && (Boolean) value) { - hitEffectPane.selectedHitEffectSourceCondition.magnitude = ActorCondition.MAGNITUDE_CLEAR; - hitEffectPane.selectedHitEffectSourceCondition.duration = null; - updateHitSourceTimedConditionWidgets(hitEffectPane.selectedHitEffectSourceCondition); - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); + } else if (source == hitEffectPane.sourceConditionClear && (Boolean) value) { + hitEffectPane.selectedEffectSourceCondition.magnitude = ActorCondition.MAGNITUDE_CLEAR; + hitEffectPane.selectedEffectSourceCondition.duration = null; + updateHitSourceTimedConditionWidgets(hitEffectPane.selectedEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionApply && (Boolean) value) { - hitEffectPane.selectedHitEffectSourceCondition.magnitude = (Integer) hitEffectPane.hitSourceConditionMagnitude.getValue(); - hitEffectPane.selectedHitEffectSourceCondition.duration = hitEffectPane.hitSourceConditionForever.isSelected() ? ActorCondition.DURATION_FOREVER : (Integer) hitEffectPane.hitSourceConditionDuration.getValue(); - if (hitEffectPane.selectedHitEffectSourceCondition.duration == null || hitEffectPane.selectedHitEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { - hitEffectPane.selectedHitEffectSourceCondition.duration = 1; + } else if (source == hitEffectPane.sourceConditionApply && (Boolean) value) { + hitEffectPane.selectedEffectSourceCondition.magnitude = (Integer) hitEffectPane.sourceConditionMagnitude.getValue(); + hitEffectPane.selectedEffectSourceCondition.duration = hitEffectPane.sourceConditionForever.isSelected() ? ActorCondition.DURATION_FOREVER : (Integer) hitEffectPane.sourceConditionDuration.getValue(); + if (hitEffectPane.selectedEffectSourceCondition.duration == null || hitEffectPane.selectedEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { + hitEffectPane.selectedEffectSourceCondition.duration = 1; } - updateHitSourceTimedConditionWidgets(hitEffectPane.selectedHitEffectSourceCondition); - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + updateHitSourceTimedConditionWidgets(hitEffectPane.selectedEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionImmunity && (Boolean) value) { - hitEffectPane.selectedHitEffectSourceCondition.magnitude = ActorCondition.MAGNITUDE_CLEAR; - hitEffectPane.selectedHitEffectSourceCondition.duration = hitEffectPane.hitSourceConditionForever.isSelected() ? ActorCondition.DURATION_FOREVER : (Integer) hitEffectPane.hitSourceConditionDuration.getValue(); - if (hitEffectPane.selectedHitEffectSourceCondition.duration == null || hitEffectPane.selectedHitEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { - hitEffectPane.selectedHitEffectSourceCondition.duration = 1; + } else if (source == hitEffectPane.sourceConditionImmunity && (Boolean) value) { + hitEffectPane.selectedEffectSourceCondition.magnitude = ActorCondition.MAGNITUDE_CLEAR; + hitEffectPane.selectedEffectSourceCondition.duration = hitEffectPane.sourceConditionForever.isSelected() ? ActorCondition.DURATION_FOREVER : (Integer) hitEffectPane.sourceConditionDuration.getValue(); + if (hitEffectPane.selectedEffectSourceCondition.duration == null || hitEffectPane.selectedEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { + hitEffectPane.selectedEffectSourceCondition.duration = 1; } - updateHitSourceTimedConditionWidgets(hitEffectPane.selectedHitEffectSourceCondition); - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + updateHitSourceTimedConditionWidgets(hitEffectPane.selectedEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionMagnitude) { - hitEffectPane.selectedHitEffectSourceCondition.magnitude = (Integer) value; - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + } else if (source == hitEffectPane.sourceConditionMagnitude) { + hitEffectPane.selectedEffectSourceCondition.magnitude = (Integer) value; + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionTimed && (Boolean) value) { - hitEffectPane.selectedHitEffectSourceCondition.duration = (Integer) hitEffectPane.hitSourceConditionDuration.getValue(); - if (hitEffectPane.selectedHitEffectSourceCondition.duration == null || hitEffectPane.selectedHitEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { - hitEffectPane.selectedHitEffectSourceCondition.duration = 1; + } else if (source == hitEffectPane.sourceConditionTimed && (Boolean) value) { + hitEffectPane.selectedEffectSourceCondition.duration = (Integer) hitEffectPane.sourceConditionDuration.getValue(); + if (hitEffectPane.selectedEffectSourceCondition.duration == null || hitEffectPane.selectedEffectSourceCondition.duration == ActorCondition.DURATION_NONE) { + hitEffectPane.selectedEffectSourceCondition.duration = 1; } - updateHitSourceTimedConditionWidgets(hitEffectPane.selectedHitEffectSourceCondition); - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + updateHitSourceTimedConditionWidgets(hitEffectPane.selectedEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionForever && (Boolean) value) { - hitEffectPane.selectedHitEffectSourceCondition.duration = ActorCondition.DURATION_FOREVER; - updateHitSourceTimedConditionWidgets(hitEffectPane.selectedHitEffectSourceCondition); - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + } else if (source == hitEffectPane.sourceConditionForever && (Boolean) value) { + hitEffectPane.selectedEffectSourceCondition.duration = ActorCondition.DURATION_FOREVER; + updateHitSourceTimedConditionWidgets(hitEffectPane.selectedEffectSourceCondition); + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionDuration) { - hitEffectPane.selectedHitEffectSourceCondition.duration = (Integer) value; - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + } else if (source == hitEffectPane.sourceConditionDuration) { + hitEffectPane.selectedEffectSourceCondition.duration = (Integer) value; + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); updateHit = true; - } else if (source == hitEffectPane.hitSourceConditionChance) { - hitEffectPane.selectedHitEffectSourceCondition.chance = (Double) value; - hitEffectPane.hitSourceConditionsModel.itemChanged(hitEffectPane.selectedHitEffectSourceCondition); + } else if (source == hitEffectPane.sourceConditionChance) { + hitEffectPane.selectedEffectSourceCondition.chance = (Double) value; + hitEffectPane.sourceConditionsModel.itemChanged(hitEffectPane.selectedEffectSourceCondition); } else if (source == hitEffectPane.hitTargetConditionsList) { updateHit = true; } else if (source == hitEffectPane.hitTargetConditionBox) { @@ -1173,10 +1106,10 @@ public class NPCEditor extends JSONElementEditor { } if (updateHit) { - if (isNull(hitEffectPane.hitEffect)) { + if (isNull(hitEffectPane.effect)) { npc.hit_effect = null; } else { - npc.hit_effect = hitEffectPane.hitEffect; + npc.hit_effect = hitEffectPane.effect; } } if (updateHitReceived) {