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

/* -------------------------------------------- */
export class RdDItemCompetenceCreature extends Item {

  /* -------------------------------------------- */
  static setRollDataCreature(rollData) {
    rollData.competence = Misc.data(rollData.competence);
    rollData.carac = { "carac_creature": { label: rollData.competence.name, value: rollData.competence.data.carac_value } };
    rollData.competence.data.defaut_carac = "carac_creature";
    rollData.competence.data.categorie = "creature";
    rollData.selectedCarac = rollData.carac.carac_creature;
    if (rollData.competence.data.iscombat) {
      rollData.arme = RdDItemCompetenceCreature.toArme(rollData.competence);
    }

  }

  /* -------------------------------------------- */
  static toArme(itemData) {
    if (RdDItemCompetenceCreature.isCompetenceAttaque(itemData)) {
      itemData = Misc.data(itemData);
      let arme = { name: itemData.name, data: duplicate(itemData) };
      mergeObject(arme.data,
        {
          competence: itemData.name,
          resistance: 100,
          equipe: true,
          penetration: 0,
          force: 0,
          rapide: true
        });
      return arme;
    }
    console.error("RdDItemCompetenceCreature.toArme(", itemData, ") : impossible de transformer l'Item en arme");
    return undefined;
  }

  /* -------------------------------------------- */
  static isCompetenceAttaque(itemData) {
    itemData = Misc.data(itemData);
    return itemData.type == 'competencecreature' && itemData.data.iscombat;
  }
  
  /* -------------------------------------------- */
  static isCompetenceParade(itemData) {
    itemData = Misc.data(itemData);
    return itemData.type == 'competencecreature' && itemData.data.isparade;
  }
}