import { Misc } from "./misc.js";

/**
 * Extend the base Dialog entity by defining a custom window to perform roll.
 * @extends {Dialog}
 */
export class RdDRollDialogEthylisme extends Dialog {

  /* -------------------------------------------- */
  constructor(html, rollData, actor, onRoll) {
    // Common conf
    let dialogConf = {
      title: "Test d'éthylisme",
      content: html,
      default: "rollButton",
      buttons: { "rollButton": { label: "Test d'éthylisme", callback: html => onRoll(this.rollData) } }
    };
    let dialogOptions = { classes: ["rdd-roll-dialog"], width: 400, height: 'fit-content', 'z-index': 99999 }
    super(dialogConf, dialogOptions)

    this.rollData = rollData;
    this.actor = actor;
  }

  activateListeners(html) {
    super.activateListeners(html);
    this.html = html;
    this.bringToTop();

    this.html.find(".force-alcool").change((event) => {
      this.rollData.forceAlcool = Misc.toInt(event.currentTarget.value);
      this.updateRollResult();
    });

    this.html.find(".force-alcool").val(Misc.toInt(this.rollData.forceAlcool));
    this.updateRollResult();
  }

  /* -------------------------------------------- */
  async updateRollResult() {
    this.html.find(".roll-ethylisme").text(this.rollData.vie + " / " + Misc.toSignedString(Number(this.rollData.etat) + Number(this.rollData.forceAlcool) + this.rollData.diffNbDoses));
    this.html.find(".table-resolution").remove();
  }

}