|
|
@@ -11,6 +11,7 @@ import javax.swing.JTextArea;
|
|
|
import org.leumasjaffe.charsheet.model.DDCharacterClass;
|
|
|
import org.leumasjaffe.charsheet.model.magic.DDSpell;
|
|
|
import org.leumasjaffe.charsheet.model.magic.DDSpell.Component;
|
|
|
+import org.leumasjaffe.charsheet.model.magic.Source;
|
|
|
|
|
|
import javax.swing.JScrollPane;
|
|
|
import javax.swing.JLabel;
|
|
|
@@ -19,6 +20,8 @@ import java.awt.Font;
|
|
|
import java.awt.FlowLayout;
|
|
|
import javax.swing.JCheckBox;
|
|
|
|
|
|
+import static org.leumasjaffe.charsheet.model.magic.DDSpell.Component.*;
|
|
|
+
|
|
|
public class SpellInfoPanel extends JPanel {
|
|
|
|
|
|
/**
|
|
|
@@ -130,34 +133,37 @@ public class SpellInfoPanel extends JPanel {
|
|
|
panel.add(panel_1, gbc_panel_1);
|
|
|
panel_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
|
|
|
|
|
|
+ final Set<Component> comps = spell.getComponents();
|
|
|
+ final Source src = dclass.getProto().getSpells().get().getGroup();
|
|
|
+
|
|
|
JCheckBox chckbxVerbal = new JCheckBox("Verbal");
|
|
|
chckbxVerbal.setEnabled(false);
|
|
|
- chckbxVerbal.setSelected(spell.getComponents().contains(Component.V));
|
|
|
+ chckbxVerbal.setSelected(comps.contains(V));
|
|
|
panel_1.add(chckbxVerbal);
|
|
|
|
|
|
JCheckBox chckbxSomatic = new JCheckBox("Somatic");
|
|
|
chckbxSomatic.setEnabled(false);
|
|
|
- chckbxSomatic.setSelected(spell.getComponents().contains(Component.S));
|
|
|
+ chckbxSomatic.setSelected(comps.contains(S));
|
|
|
panel_1.add(chckbxSomatic);
|
|
|
|
|
|
JCheckBox chckbxMaterial = new JCheckBox("Material");
|
|
|
chckbxMaterial.setEnabled(false);
|
|
|
- chckbxMaterial.setSelected(spell.getComponents().contains(Component.M));
|
|
|
+ chckbxMaterial.setSelected(comps.contains(M) || (comps.contains(M_DF) && src == Source.ARCANE));
|
|
|
panel_1.add(chckbxMaterial);
|
|
|
|
|
|
JCheckBox chckbxFocus = new JCheckBox("Focus");
|
|
|
chckbxFocus.setEnabled(false);
|
|
|
- chckbxFocus.setSelected(spell.getComponents().contains(Component.F));
|
|
|
+ chckbxFocus.setSelected(comps.contains(F) || (comps.contains(F_DF) && src == Source.ARCANE));
|
|
|
panel_1.add(chckbxFocus);
|
|
|
|
|
|
JCheckBox chckbxDivineFocus = new JCheckBox("Divine Focus");
|
|
|
chckbxDivineFocus.setEnabled(false);
|
|
|
- chckbxDivineFocus.setSelected(spell.getComponents().contains(Component.DF));
|
|
|
+ chckbxDivineFocus.setSelected(comps.contains(DF) || ((comps.contains(M_DF) || comps.contains(F_DF)) && src == Source.DIVINE));
|
|
|
panel_1.add(chckbxDivineFocus);
|
|
|
|
|
|
JCheckBox chckbxExperience = new JCheckBox("Experience");
|
|
|
chckbxExperience.setEnabled(false);
|
|
|
- chckbxExperience.setSelected(spell.getComponents().contains(Component.XP));
|
|
|
+ chckbxExperience.setSelected(comps.contains(XP));
|
|
|
panel_1.add(chckbxExperience);
|
|
|
|
|
|
JLabel lblCastingTime = new JLabel("Casting Time:");
|
|
|
@@ -188,7 +194,8 @@ public class SpellInfoPanel extends JPanel {
|
|
|
gbc_lblRange.gridy = 3;
|
|
|
panel.add(lblRange, gbc_lblRange);
|
|
|
|
|
|
- range = new JTextField(spell.getRange().toString());
|
|
|
+ range = new JTextField(spell.getRange().getResolved(dclass.getLevel()));
|
|
|
+ range.setToolTipText(spell.getRange().toString());
|
|
|
range.setEditable(false);
|
|
|
range.setColumns(10);
|
|
|
GridBagConstraints gbc_range = new GridBagConstraints();
|