Sync to v7.2.0
This commit is contained in:
75
scripts/groEX1wJ9l00PkDF.js
Normal file
75
scripts/groEX1wJ9l00PkDF.js
Normal file
@ -0,0 +1,75 @@
|
||||
let turns = this.effect.getFlag("wfrp4e", "turns");
|
||||
if (turns <= 0) return;
|
||||
turns--;
|
||||
|
||||
const speaker = ChatMessage.getSpeaker({actor: this.actor});
|
||||
const targetId = this.effect.getFlag("wfrp4e", "target");
|
||||
const target = canvas.scene.tokens.get(targetId);
|
||||
|
||||
if (turns > 0) {
|
||||
this.effect.setFlag("wfrp4e", "turns", turns);
|
||||
|
||||
return this.script.scriptMessage(`<p><b>${speaker.alias}</b> continue de s'enrouler autour de <b>${target.name}</b>. Il pourra commencer à lui faire des dommages dans ${turns} turns.</p>`);
|
||||
}
|
||||
|
||||
if (this.actor.items.find(i => i.type === "extendedTest" && i.name === this.effect.name)) {
|
||||
this.script.scriptMessage(`<p><b>${speaker.alias}</b> peut reprendre l'écrasementcan sur <b>${target.name}</b> avec un Test Etendu.</p>`);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const extendedTestData = {
|
||||
name: this.effect.name,
|
||||
type: "extendedTest",
|
||||
img: this.effect.img,
|
||||
system: {
|
||||
SL: {
|
||||
current: 0,
|
||||
target: target.actor.system.status.wounds.value
|
||||
},
|
||||
test: {
|
||||
value: 'Force'
|
||||
},
|
||||
completion: {
|
||||
value: "remove"
|
||||
},
|
||||
difficulty: {
|
||||
value: "challenging"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const extendedTests = await this.actor.createEmbeddedDocuments("Item", [extendedTestData], {fromEffect: this.effect.id});
|
||||
const extendedTest = extendedTests[0];
|
||||
|
||||
this.script.scriptMessage(`<p><b>${speaker.alias}</b> a fini de s'enrouler aytour de <b>${target.name}</b>. Il peut maintenant l'écraser via le Test Etendu @UUID[${extendedTest.uuid}].</p>`);
|
||||
|
||||
let effect = {
|
||||
name: extendedTest.name,
|
||||
icon: extendedTest.img,
|
||||
flags: {
|
||||
wfrp4e: {
|
||||
applicationData: {
|
||||
type: "document",
|
||||
documentType: "Item"
|
||||
},
|
||||
scriptData: [
|
||||
{
|
||||
label: extendedTest.name,
|
||||
script: `
|
||||
let id = this.item.flags.wfrp4e.fromEffect;
|
||||
let effect = this.actor.effects.find(e => e.id === id);
|
||||
const speaker = ChatMessage.getSpeaker({actor: this.actor});
|
||||
const targetId = effect.getFlag("wfrp4e", "target");
|
||||
const target = canvas.scene.tokens.get(targetId);
|
||||
this.script.scriptMessage(\`<p><b>${speaker.alias}</b> écrase <b>${target.name}</b>. Le bateau se brise, réduit à une masse d'épaves.</p>\`);
|
||||
await effect.delete();
|
||||
`,
|
||||
trigger: "deleteEffect"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await extendedTests[0].createEmbeddedDocuments("ActiveEffect", [effect]);
|
Reference in New Issue
Block a user