This module adds a validated workflow for applying Advances in the SWADE system.
Clicking the Add Advance button on the character sheet opens a dialog where you choose the type of advance and make your selections. Clicking Add adds the advance to the advance list and applies the changes to the character.
- New Edge: Drag and drop an edge onto the dialog. The edge's requirements are checked against the character and any that are not met are highlighted. The edge is added to the character. If you have the Item Browser module enabled, you will be able to use it to browse for an edge instead.
- Raise Single Skill: Choose one skill whose unmodified die is equal to or greater than its linked attribute and raise it by one die type.
- Raise Two Skills: Choose two skills whose unmodified dice are below their linked attributes and raise each by one die type.
- Raise Attribute: Raise an attribute by one die type. Only available once per rank.
- Decrease Hindrance: Minor hindrances are removed and Major hindrances are reduced to Minor. Major hindrances with no Minor version are removed after being decreased twice.
When an advance added by this module is deleted, its changes are undone where possible: edges are removed, skills and attributes are lowered, newly added skills are removed and hindrances are restored. When deleting older advances, we rewind and reapply all following advances to ensure that everything is still valid. If not, a warning confirmation is shown.
Clicking the edit button on an advance opens the same dialog with the advance's current choices filled in. The dialog shows the character as it was before the advance was applied. We rewind and reapply all the advances to ensure that everything is still valid.
Clicking Save undoes the advance's old changes and then applies the new choices. The advance keeps its place in the list. If nothing was changed, the character is left alone. Advances that weren't created by this module can also be edited (see below).
When editing an advance that wasn't created by the module, it reads the description in an attempt to populate the data e.g. for a New Edge advance, it looks for the edge name in the description and searches for that edge on the actor. If it's able to resolve the data, it will treat it the same as if the module had created it, including undoing changes if it is modified.
When editing an advance, the Edit Description button switches the dialog to an editor for the advance's description. Only the description is shown and only it is saved. The advance's type and choices, the data the module stores on the advance, and the character are not touched, so nothing is undone or reapplied. The description is saved as typed. Back to Advance returns to the normal view.
Anything typed in the editor is only saved from the editor. If you switch back to the normal view and save, the description changes are ignored and the description is written as normal, or nothing is done if nothing else was changed.
The dialog has a Planned checkbox in the top right; it looks like an hourglass. A planned advance saves its choices but makes no changes to the character. Later planned advances build on earlier ones, so the dialog offers the skills, hindrances and edge requirements the character will have once the planned advances before it have been applied.
Clicking the planned toggle on an advance keeps planned advances at the end of the list. Marking an advance as planned also marks every advance after it as planned, and marking it as no longer planned also changes every advance before it. This ensures that an advance that isn't planned never comes after one that is. An advance added after a planned advance is always planned. A confirmation lists the advances affected, and any problems that applying them causes, before anything happens. Advances that become planned have their changes undone. Advances that are no longer planned have their saved choices applied to the character. Edges of planned advances are kept as a copy stored with the advance so they can be added later even if the original item is gone.
Advances that weren't created by this module are read from their description when they become planned, as when editing them. If that isn't possible only their planned status changes and the confirmation says so.