|
|
@@ -22,6 +22,7 @@ import javax.swing.KeyStroke;
|
|
|
import javax.swing.UIManager;
|
|
|
|
|
|
import org.leumasjaffe.charsheet.model.DDCharacter;
|
|
|
+import org.leumasjaffe.charsheet.model.DDCharacterClass;
|
|
|
import org.leumasjaffe.charsheet.view.dev.DeveloperMenu;
|
|
|
|
|
|
import java.awt.event.KeyEvent;
|
|
|
@@ -104,6 +105,35 @@ public class D20Sheet extends JFrame {
|
|
|
mntmExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK));
|
|
|
mnFile.add(mntmExit);
|
|
|
|
|
|
+ JMenu mnSession = new JMenu("Session");
|
|
|
+ menuBar.add(mnSession);
|
|
|
+
|
|
|
+ JMenuItem mntmGainExperience = new JMenuItem("Gain Experience");
|
|
|
+ mnSession.add(mntmGainExperience);
|
|
|
+
|
|
|
+ JMenuItem mntmTakeRest = new JMenuItem("Take Rest");
|
|
|
+ mntmTakeRest.addActionListener(e -> {
|
|
|
+ // Step 0: Gather information about the rest
|
|
|
+ // Step 0.1: Check if 8-hour or full day
|
|
|
+ // Step 0.2: Check if Long-Term-Care
|
|
|
+ // Step 1: Heal Character according to info
|
|
|
+ // Step 1.1: Heal non-lethal damage
|
|
|
+ // Step 1.2: Heal ability damage
|
|
|
+ // Step 2: Regenerate spells prepared
|
|
|
+ // Step 2.1: If Spontaneous, skip (2)
|
|
|
+ for (DDCharacterClass dclass : model.getClasses()) {
|
|
|
+ dclass.getSpellBook().ifPresent(sb -> {
|
|
|
+ if (sb.preparesSpells()) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ sb.renew();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // Step N: regenerate spellbooks
|
|
|
+ });
|
|
|
+ mnSession.add(mntmTakeRest);
|
|
|
+
|
|
|
developerMenu = new DeveloperMenu();
|
|
|
menuBar.add(developerMenu);
|
|
|
|