diff --git a/module/item/class-sheet.js b/module/item/class-sheet.js index a1cdfa0..8a17b5f 100644 --- a/module/item/class-sheet.js +++ b/module/item/class-sheet.js @@ -29,6 +29,9 @@ export class MothershipClassSheet extends MothershipItemSheet { if (typeof data.system.base_adjustment.skills_granted == 'undefined'){ data.system.base_adjustment.skills_granted=[]; } + if (typeof data.system.selected_adjustment.choose_stat.stats == 'undefined'){ + data.system.selected_adjustment.choose_stat.stats=[]; + } return data; } @@ -54,7 +57,7 @@ export class MothershipClassSheet extends MothershipItemSheet { super.activateListeners(html); // Delete Inventory Item - html.find('.item-delete').click(ev => { + html.find('.skill-delete').click(ev => { const li = $(ev.currentTarget).parents(".item"); let skills = this.object.system.base_adjustment.skills_granted.filter(function( obj ) { @@ -64,8 +67,69 @@ export class MothershipClassSheet extends MothershipItemSheet { return this.render(false); }); + html.find('.stat-delete').click(ev => { + const li = $(ev.currentTarget).parents(".item"); + + let stats = this.object.system.selected_adjustment.choose_stat.stats.filter(function( obj ) { + return obj !== li.data("itemId"); + }); + this.object.update({"system.selected_adjustment.choose_stat.stats":stats}); + return this.render(false); + }); + + html.find('.stat-create').click(this._onStatCreate.bind(this)); } + + + /** + * Handle creating a new stat for the class selected adjustment + * @param {Event} event The originating click event + * @private + */ + _onStatCreate(event) { + event.preventDefault(); + + let d = new Dialog({ + title: "Select Stat", + content: `

Stat

\ +
`, + buttons: { + roll: { + icon: '', + label: "Create", + callback: (html) => { + + let statname = html.find('[id=\"system.selected_adjustment.choose_stat.stats\"]')[0].value + + let stats = this.object.system.selected_adjustment.choose_stat.stats; + stats.push(statname); + this.object.update({"system.selected_adjustment.choose_stat.stats":stats}); + + } + }, + cancel: { + icon: '', + label: "Cancel", + callback: () => { } + } + }, + default: "roll", + close: () => { } + }); + d.render(true); + + // Finally, create the item! + return; + } /**** async _updateObject(event, formData) { const item = this.object; diff --git a/templates/item/item-class-sheet.html b/templates/item/item-class-sheet.html index ba1988d..56a8783 100644 --- a/templates/item/item-class-sheet.html +++ b/templates/item/item-class-sheet.html @@ -160,7 +160,22 @@ value="{{system.selected_adjustment.choose_stat.modification}}" data-dtype="Number" />
- todo: editor to add or SELECT the optional stats +
    +
  1. +
    {{ localize 'Mosh.Name' }}
    + +
  2. + {{#each system.selected_adjustment.choose_stat.stats as |stat id|}} +
  3. +
    {{stat}}
    +
    + +
    +
  4. + {{/each}} +
{{!-- skills Tab --}} @@ -183,7 +198,7 @@
{{skill.system.rank}}
{{skill.system.bonus}}
- +
{{/each}}