|
|
@@ -13,7 +13,7 @@ import org.leumasjaffe.charsheet.model.Ability;
|
|
|
import org.leumasjaffe.charsheet.model.DDCharacter;
|
|
|
import org.leumasjaffe.charsheet.model.DDCharacterClass;
|
|
|
import org.leumasjaffe.charsheet.util.AbilityHelper;
|
|
|
-import org.leumasjaffe.function.TriFunction;
|
|
|
+import org.leumasjaffe.function.QuadFunction;
|
|
|
import org.leumasjaffe.observer.IndirectObservableListener;
|
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
|
|
|
|
@@ -60,10 +60,10 @@ public class SpellPanel extends JPanel {
|
|
|
knownPane.setViewportView(known);
|
|
|
|
|
|
listenerPerDay = new IndirectObservableListener<>(prepared,
|
|
|
- new AppendSpellLevelOperation(ability, SpellLevelPerDayPanel::new));
|
|
|
+ new AppendSpellLevelOperation(chara, ability, SpellLevelPerDayPanel::new));
|
|
|
listenerPerDay.setObserved(dclass, ability, dclass.getLevel(), dclass.getSpellBook().get());
|
|
|
listenerKnown = new IndirectObservableListener<>(known,
|
|
|
- new AppendSpellLevelOperation(ability, SpellLevelPanel::new));
|
|
|
+ new AppendSpellLevelOperation(chara, ability, SpellLevelPanel::new));
|
|
|
listenerKnown.setObserved(dclass, ability, dclass.getLevel(), dclass.getSpellBook().get());
|
|
|
}
|
|
|
|
|
|
@@ -71,14 +71,15 @@ public class SpellPanel extends JPanel {
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
private static final class AppendSpellLevelOperation implements BiConsumer<JPanel, DDCharacterClass> {
|
|
|
@NonFinal int previousHighestSpellLevel = 0;
|
|
|
+ DDCharacter chara;
|
|
|
Ability.Scores ability;
|
|
|
- TriFunction<DDCharacterClass, Integer, Ability.Scores, JPanel> function;
|
|
|
+ QuadFunction<DDCharacter, DDCharacterClass, Integer, Ability.Scores, JPanel> function;
|
|
|
|
|
|
@Override
|
|
|
public void accept(final JPanel root, final DDCharacterClass dclass) {
|
|
|
for (int i = previousHighestSpellLevel; i < dclass.getHighestSpellLevel(); ++i) {
|
|
|
if (dclass.getSpellBook().get().numSpellsKnownAtLevel(i) == 0) break;
|
|
|
- root.add(function.apply(dclass, i, ability));
|
|
|
+ root.add(function.apply(chara, dclass, i, ability));
|
|
|
}
|
|
|
previousHighestSpellLevel = dclass.getHighestSpellLevel();
|
|
|
}
|