Allow items

This commit is contained in:
2022-02-16 17:43:51 +01:00
parent 7da8f7d9f1
commit 04afb7a424
15 changed files with 348 additions and 194 deletions

View File

@ -435,6 +435,36 @@ export class PegasusActor extends Actor {
this.updateEmbeddedDocuments('Item', [{ _id: specId, 'data.powersactivated': false }])
}
/* -------------------------------------------- */
equipActivate(itemId) {
let item = this.items.get(itemId)
if (item) {
let effects = []
for (let effect of item.data.data.effects) {
effect.data.itemId = itemId // Keep link
effects.push(effect)
}
if (effects.length > 0) {
this.createEmbeddedDocuments('Item', effects )
}
this.updateEmbeddedDocuments('Item', [{ _id: itemId, 'data.activated': true }])
}
}
/* -------------------------------------------- */
equipDeactivate(itemId) {
let toRem = []
for (let item of this.data.items) {
if (item.data.data.itemId && item.data.data.itemId == itemId) {
toRem.push(item.id)
}
}
if (toRem.length > 0) {
this.deleteEmbeddedDocuments('Item', toRem)
}
this.updateEmbeddedDocuments('Item', [{ _id: itemId, 'data.activated': false }])
}
/* -------------------------------------------- */
async perkEffectUsed(itemId) {
let effect = this.items.get(itemId)
@ -547,6 +577,10 @@ export class PegasusActor extends Actor {
await this.update({ 'data.nrg': nrg })
}
this.disableWeaverPerk(item)
PegasusUtility.createChatWithRollMode(item.name, {
content: await renderTemplate(`systems/fvtt-pegasus-rpg/templates/chat-perk-ready.html`, { name: this.name, perk: item })
});
}
if (status == "activated") {
// Add effects linked to the perk
@ -875,10 +909,10 @@ export class PegasusActor extends Actor {
&& (effect.data.stataffected != "notapplicable" || effect.data.specaffected.length > 0)
&& effect.data.stataffected != "special") {
if (effect.data.effectstatlevel) {
if ( effect.data.effectstat == rollData.statKey ) {
if (effect.data.effectstat == rollData.statKey) {
effect.data.effectlevel = rollData.statDicesLevel
}
if ( effect.data.stataffected == "all") { // Real nightmare
if (effect.data.stataffected == "all") { // Real nightmare
effect.data.effectlevel = this.data.data.statistics[effect.data.effectstat].value
}
}