/* -------------------------------------------- */
export class RdDTMRRencontreDialog extends Dialog {

  /* -------------------------------------------- */
  constructor(actor, rencontre, tmr) {
    const dialogConf = {
      title: "Rencontre en TMR!",
      content: "Vous rencontrez un " + rencontre.name + " de force " + rencontre.system.force + "<br>",
      buttons: {
        derober: { icon: '<i class="fas fa-check"></i>', label: "Se dérober", callback: () => this.onButtonAction('derober') },
        maitiser: { icon: '<i class="fas fa-check"></i>', label: "Maîtriser", callback: () => this.onButtonAction('maitriser') }
      },
      default: "derober"
    }
    if ((rencontre.system.refoulement ?? 0) == 0) {
      dialogConf.buttons.ignorer = { icon: '<i class="fas fa-check"></i>', label: "Ignorer", callback: () => this.onButtonAction('ignorer') }
    }
    else {
      dialogConf.buttons.refouler =  { icon: '<i class="fas fa-check"></i>', label: "Refouler", callback: () => this.onButtonAction('refouler') }
    }

    const dialogOptions = {
      classes: ["tmrrencdialog"],
      width: 320, height: 'fit-content',
      'z-index': 50
    }
    super(dialogConf, dialogOptions);

    this.toClose = false;
    this.tmr = tmr;
    this.actor = actor;
    this.rencontre = rencontre;
  }

  async onButtonAction(action) {
    this.toClose = true;
    await this.actor.tmrApp?.restoreTMRAfterAction();
    this.actor.tmrApp?.onActionRencontre(action, this.tmr, this.rencontre)
  }
  
  /* -------------------------------------------- */
  async close() {
    if (this.actor.tmrApp){
      if (this.toClose) {
        return await super.close();
      }
      else {
        ui.notifications.info("Vous devez résoudre la rencontre.");
        return this.actor.tmrApp.forceTMRContinueAction();
      }
    }
    else {
      return await super.close();
    }
  }

}