Compare commits
3 Commits
fvtt-pegas
...
fvtt-pegas
Author | SHA1 | Date | |
---|---|---|---|
bbf0f31d4c | |||
552ff9564a | |||
26f2fba457 |
@ -495,7 +495,7 @@ export class PegasusActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async activateViceOrVirtue(itemId) {
|
||||
let item = this.items.find(item => item.id == itemId)
|
||||
if (item && item.system) {
|
||||
if (item?.system) {
|
||||
let nrg = duplicate(this.system.nrg)
|
||||
if (!item.system.activated) { // Current value
|
||||
|
||||
@ -581,7 +581,7 @@ export class PegasusActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async activatePower(itemId) {
|
||||
let item = this.items.find(item => item.id == itemId)
|
||||
if (item && item.system) {
|
||||
if (item?.system) {
|
||||
|
||||
let nrg = duplicate(this.system.nrg)
|
||||
if (!item.system.activated) { // Current value
|
||||
@ -1517,6 +1517,11 @@ export class PegasusActor extends Actor {
|
||||
let effect = await PegasusUtility.getEffectFromCompendium("Fear")
|
||||
this.createEmbeddedDocuments('Item', [effect])
|
||||
}
|
||||
} else { // Remove fear if healed
|
||||
let fear = this.items.find(it => it.name.toLowerCase() == "fear" && it.type == "effect")
|
||||
if (fear) {
|
||||
this.deleteEmbeddedDocuments('Item', [fear.id])
|
||||
}
|
||||
}
|
||||
/* Manage flag state for status */
|
||||
this.defeatedDisplayed = this.defeatedDisplayed && this.system.secondary.health.status != "defeated"
|
||||
@ -1919,6 +1924,18 @@ export class PegasusActor extends Actor {
|
||||
await this.createEmbeddedDocuments('Item', newItems)
|
||||
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
checkEFfectsHindranceDeletion(statKey) {
|
||||
let toRem = []
|
||||
let effects = this.items.filter(effect => effect.type == 'effect' && effect.system.oneuse &&
|
||||
effect.system.hindrance && (effect.system.stataffected == statKey || effect.system.stataffected == "all"))
|
||||
for (let effect of effects) {
|
||||
toRem.push(effect.id)
|
||||
}
|
||||
if (toRem.length > 0) {
|
||||
this.deleteEmbeddedDocuments('Item', toRem)
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
computeCurrentHindrances(statKey) {
|
||||
@ -1930,12 +1947,10 @@ export class PegasusActor extends Actor {
|
||||
if (overCapacity > 0) {
|
||||
hindrancesDices += overCapacity
|
||||
}
|
||||
let effects = this.items.filter(item => item.type == 'effect')
|
||||
let effects = this.items.filter(effect => effect.type == 'effect' && effect.system.hindrance && (effect.system.stataffected == statKey || effect.system.stataffected == "all"))
|
||||
for (let effect of effects) {
|
||||
if (effect.system.hindrance) {
|
||||
hindrancesDices += effect.system.effectlevel
|
||||
}
|
||||
}
|
||||
if (statKey.toLowerCase() == "stl" && this.system.secondary.concealment.status == "exposed") {
|
||||
hindrancesDices += 1
|
||||
}
|
||||
|
@ -104,7 +104,6 @@ export class PegasusCombat extends Combat {
|
||||
user: game.user.id,
|
||||
alias: combatant.actor.name,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||
content: msg
|
||||
}
|
||||
ChatMessage.create(chatData);
|
||||
@ -153,7 +152,6 @@ export class PegasusCombat extends Combat {
|
||||
user: game.user.id,
|
||||
alias: combatant.actor.name,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||
content: `<div>${combatant.actor.name} is performing ${ticData[num].text}</div`
|
||||
};
|
||||
ChatMessage.create(chatData);
|
||||
|
@ -787,7 +787,7 @@ export class PegasusUtility {
|
||||
// De-actived used effects from perks
|
||||
let toRem = []
|
||||
for (let effect of rollData.effectsList) {
|
||||
if (effect.effect && effect.effect.system.isUsed && effect.effect.system.oneuse) {
|
||||
if (effect?.effect?.system.isUsed && effect.effect.system.oneuse) {
|
||||
effect.defenderTokenId = rollData.defenderTokenId
|
||||
if (effect.foreign) {
|
||||
if (game.user.isGM) {
|
||||
@ -801,11 +801,11 @@ export class PegasusUtility {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (toRem.length > 0) {
|
||||
//console.log("Going to remove one use effects", toRem)
|
||||
let actor = game.actors.get(rollData.actorId)
|
||||
if (toRem.length > 0) {
|
||||
actor.deleteEmbeddedDocuments('Item', toRem)
|
||||
}
|
||||
actor.checkEFfectsHindranceDeletion(rollData.statKey)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -252,7 +252,7 @@
|
||||
],
|
||||
"title": "Pegasus RPG",
|
||||
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
|
||||
"version": "11.0.18",
|
||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v11.0.18.zip",
|
||||
"version": "11.0.21",
|
||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-pegasus-rpg/archive/fvtt-pegasus-rpg-v11.0.21.zip",
|
||||
"background": "systems/fvtt-pegasus-rpg/images/ui/pegasus_welcome_page.webp"
|
||||
}
|
Reference in New Issue
Block a user