Generic roll and update items

This commit is contained in:
2022-01-13 21:05:55 +01:00
parent 3d70f556fb
commit b4b41f5c96
5 changed files with 63 additions and 18 deletions

View File

@@ -200,15 +200,19 @@ export class PegasusActorSheet extends ActorSheet {
this.actor.equipItem( li.data("item-id") );
this.render(true);
});
html.find('.update-field').change(ev => {
const fieldName = $(ev.currentTarget).data("field-name");
let value = ev.currentTarget.value;
this.actor.update( { [`${fieldName}`]: value } );
});
html.find('.perk-active').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.activatePerk( li.data("item-id") );
this.render(true);
this.render(true);
});
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {

View File

@@ -1,6 +1,7 @@
import { PegasusUtility } from "./pegasus-utility.js";
import { PegasusActor } from "./pegasus-actor.js";
import { PegasusActorSheet } from "./pegasus-actor-sheet.js";
import { PegasusItemSheet } from "./pegasus-item-sheet.js";
export class PegasusActorCreate {
@@ -176,6 +177,42 @@ export class PegasusActorCreate {
}
}
/* -------------------------------------------- */
async openItemView( event) {
let step = $(event.currentTarget).data("step");
let itemId = $(event.currentTarget).data("item-id");
let itemData
if ( step == 'select-race') {
itemData = this.races.find( item => item._id == itemId );
}
if ( step == 'select-race-optionnal') {
itemData = this.raceOptionnalAbilities.optionnalabilities.find( item => item._id == itemId );
}
if ( step == 'select-race-perks') {
itemData = this.perks.find( item => item._id == itemId );
}
if ( step == 'select-race-perks'){
itemData = this.racePerks.find( item => item._id == itemId );
}
if ( step == 'select-role') {
itemData = this.roles.find( item => item._id == itemId );
}
if ( step == 'select-role-start-spec') {
itemData = this.roleSpecStart.find( item => item._id == itemId );
}
if (step == 'select-role-spec') {
itemData = this.roleSpec.find( item => item._id == itemId );
}
if (step == 'select-role-perk') {
itemData = this.rolePerks.find( item => item._id == itemId );
}
if (itemData) {
let item = await Item.create(itemData, {temporary: true});
new PegasusItemSheet(item).render(true);
}
}
/* -------------------------------------------- */
manageSelectableStats( race ) {
this.raceSelectableStats = {

View File

@@ -128,10 +128,11 @@ export class PegasusUtility {
static async chatListeners(html) {
html.on("click", '.chat-create-actor', event => {
console.log("Event !")
game.system.pegasus.creator.processChatEvent(event);
} );
html.on("click", '.view-item-from-chat', event => {
game.system.pegasus.creator.openItemView( event)
} );
}
/* -------------------------------------------- */