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]);