import { RdDSheetUtility } from "../rdd-sheet-utility.js";
import { RdDBaseActorSheet } from "./base-actor-sheet.js";

/* -------------------------------------------- */
/**
 * Extend the basic ActorSheet with some very simple modifications
 * @extends {ActorSheet}
 */
export class RdDBaseActorReveSheet extends RdDBaseActorSheet {

  /** @override */
  static get defaultOptions() {
    return mergeObject(RdDBaseActorSheet.defaultOptions, {
      width: 550
    });
  }

  /* -------------------------------------------- */
  /** @override */
  activateListeners(html) {
    super.activateListeners(html);

    // Everything below here is only needed if the sheet is editable
    if (!this.options.editable) return;

    this.html.find('.encaisser-direct').click(async event => {
      this.actor.encaisser();
    })
    this.html.find('.remise-a-neuf').click(async event => {
      if (game.user.isGM) {
        this.actor.remiseANeuf();
      }
    });

    this.html.find('.carac-label a').click(async event => {
      let caracName = event.currentTarget.attributes.name.value;
      this.actor.rollCarac(caracName.toLowerCase());
    });

    this.html.find('a.competence-label').click(async event => {
      this.actor.rollCompetence(RdDSheetUtility.getItemId(event));
    });

    this.html.find('.delete-active-effect').click(async event => {
      if (game.user.isGM) {
        let effect = this.html.find(event.currentTarget).parents(".active-effect").data('effect');
        this.actor.removeEffect(effect);
      }
    });
    this.html.find('.enlever-tous-effets').click(async event => {
      if (game.user.isGM) {
        await this.actor.removeEffects();
      }
    });

    this.html.find('.endurance-plus').click(async event => {
      this.actor.santeIncDec("endurance", 1);
    });
    this.html.find('.endurance-moins').click(async event => {
      this.actor.santeIncDec("endurance", -1);
    });
  }

}