|
@@ -8,6 +8,7 @@ import org.leumasjaffe.charsheet.model.observable.IntValue;
|
|
|
import org.leumasjaffe.charsheet.model.skill.DDSkill;
|
|
import org.leumasjaffe.charsheet.model.skill.DDSkill;
|
|
|
import org.leumasjaffe.charsheet.util.StringHelper;
|
|
import org.leumasjaffe.charsheet.util.StringHelper;
|
|
|
import org.leumasjaffe.observer.IndirectObservableListener;
|
|
import org.leumasjaffe.observer.IndirectObservableListener;
|
|
|
|
|
+import org.leumasjaffe.observer.Observable;
|
|
|
import org.leumasjaffe.observer.ObservableListener;
|
|
import org.leumasjaffe.observer.ObservableListener;
|
|
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
import lombok.AccessLevel;
|
|
@@ -45,7 +46,7 @@ public class SkillLine extends JPanel {
|
|
|
|
|
|
|
|
JCheckBox checkBoxIsClassSkill = new JCheckBox("");
|
|
JCheckBox checkBoxIsClassSkill = new JCheckBox("");
|
|
|
checkBoxIsClassSkill.setToolTipText("Class Skill?");
|
|
checkBoxIsClassSkill.setToolTipText("Class Skill?");
|
|
|
- checkBoxIsClassSkill.setSelected(skill.isClassSkill());
|
|
|
|
|
|
|
+ checkBoxIsClassSkill.setSelected(chara.isClassSkill(skill.getName()));
|
|
|
checkBoxIsClassSkill.setEnabled(false);
|
|
checkBoxIsClassSkill.setEnabled(false);
|
|
|
GridBagConstraints gbc_checkBoxIsClassSkill = new GridBagConstraints();
|
|
GridBagConstraints gbc_checkBoxIsClassSkill = new GridBagConstraints();
|
|
|
gbc_checkBoxIsClassSkill.insets = new Insets(1, 0, 0, 0);
|
|
gbc_checkBoxIsClassSkill.insets = new Insets(1, 0, 0, 0);
|
|
@@ -158,20 +159,30 @@ public class SkillLine extends JPanel {
|
|
|
add(misc, gbc_misc);
|
|
add(misc, gbc_misc);
|
|
|
misc.setColumns(10);
|
|
misc.setColumns(10);
|
|
|
|
|
|
|
|
- totalListener = new IndirectObservableListener<>(total,
|
|
|
|
|
- (c, v) -> {
|
|
|
|
|
- final float skillRanks = skill.getRanks();
|
|
|
|
|
- final int mod = Ability.modifier(Ability.fields.get(skill.getAbility())
|
|
|
|
|
- .apply(chara.getAbilities().getBase()).value());
|
|
|
|
|
- c.setText(StringHelper.toString(skillRanks + mod));
|
|
|
|
|
- });
|
|
|
|
|
- modifierListener = new ObservableListener<>(modifier,
|
|
|
|
|
- ( c, v ) -> c.setText(StringHelper.toString(Ability.modifier(v.value()))));
|
|
|
|
|
|
|
|
|
|
- final IntValue abilScore = Ability.fields.get(skill.getAbility())
|
|
|
|
|
- .apply(chara.getAbilities().getBase());
|
|
|
|
|
- totalListener.setObserved(chara, abilScore);
|
|
|
|
|
- modifierListener.setObserved(abilScore);
|
|
|
|
|
|
|
+ if ( skill.getAbility().isEmpty() ) {
|
|
|
|
|
+ totalListener = new IndirectObservableListener<>(total,
|
|
|
|
|
+ (c, v) -> {
|
|
|
|
|
+ c.setText(StringHelper.toString(skill.getRanks()));
|
|
|
|
|
+ });
|
|
|
|
|
+ modifierListener = null;
|
|
|
|
|
+ totalListener.setObserved(chara, new Observable());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ totalListener = new IndirectObservableListener<>(total,
|
|
|
|
|
+ (c, v) -> {
|
|
|
|
|
+ final float skillRanks = skill.getRanks();
|
|
|
|
|
+ final int mod = Ability.modifier(Ability.fields.get(skill.getAbility())
|
|
|
|
|
+ .apply(chara.getAbilities().getBase()).value());
|
|
|
|
|
+ c.setText(StringHelper.toString(skillRanks + mod));
|
|
|
|
|
+ });
|
|
|
|
|
+ modifierListener = new ObservableListener<>(modifier,
|
|
|
|
|
+ ( c, v ) -> c.setText(StringHelper.toString(Ability.modifier(v.value()))));
|
|
|
|
|
+
|
|
|
|
|
+ final IntValue abilScore = Ability.fields.get(skill.getAbility())
|
|
|
|
|
+ .apply(chara.getAbilities().getBase());
|
|
|
|
|
+ totalListener.setObserved(chara, abilScore);
|
|
|
|
|
+ modifierListener.setObserved(abilScore);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|