Preparation soins HUD
This commit is contained in:
		@@ -18,29 +18,36 @@ export class RdDTokenHud {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static async addExtensionHud(app, html, tokenId) {
 | 
			
		||||
  static async addExtensionHud(app, html, tokenId, isCombat) {
 | 
			
		||||
 | 
			
		||||
    let token = canvas.tokens.get(tokenId);
 | 
			
		||||
    let actor = token.actor;
 | 
			
		||||
    app.hasExtension = true;
 | 
			
		||||
    if (isCombat) {
 | 
			
		||||
      let combatant = game.combat.combatants.find(c => c.tokenId == tokenId);
 | 
			
		||||
      if (!(combatant?.actor)) {
 | 
			
		||||
        ui.notifications.warn(`Le combatant ${token.name} n'est pas associé à un acteur, impossible de déterminer ses actions de combat!`)
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
    app.hasExtension = true;
 | 
			
		||||
      let actions = RdDCombatManager.listActionsCombat(combatant);
 | 
			
		||||
      // initiative
 | 
			
		||||
      await RdDTokenHud.addExtensionHudInit(html, combatant, actions);
 | 
			
		||||
      // combat
 | 
			
		||||
      await RdDTokenHud.addExtensionHudCombat(html, combatant, actions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let actionsCombat = RdDCombatManager.listActionsCombat(combatant);
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async addExtensionHudInit(html, combatant, actions) {
 | 
			
		||||
    const hudData = {
 | 
			
		||||
      combatant: combatant,
 | 
			
		||||
      actions: actionsCombat,
 | 
			
		||||
      combatant, actions,
 | 
			
		||||
      commandes: [
 | 
			
		||||
        { name: "Autre action", command: 'autre' },
 | 
			
		||||
        { name: 'Initiative +1', command: 'inc', value: 0.01 },
 | 
			
		||||
        { name: 'Initiative -1', command: 'dec', value: -0.01 }]
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const controlIconCombat = html.find('.control-icon[data-action=combat]');
 | 
			
		||||
    // initiative
 | 
			
		||||
    await RdDTokenHud._configureSubMenu(controlIconCombat,
 | 
			
		||||
      'systems/foundryvtt-reve-de-dragon/templates/hud-actor-init.html',
 | 
			
		||||
      hudData,
 | 
			
		||||
@@ -51,22 +58,25 @@ export class RdDTokenHud {
 | 
			
		||||
          RdDTokenHud._initiativeCommand(initCommand, combatantId);
 | 
			
		||||
        } else {
 | 
			
		||||
          let index = event.currentTarget.attributes['data-action-index'].value;
 | 
			
		||||
          let action = actionsCombat[index];
 | 
			
		||||
          let action = hudData.actions[index];
 | 
			
		||||
          RdDCombatManager.rollInitiativeAction(combatantId, action);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static async addExtensionHudCombat(html, combatant, actions) {
 | 
			
		||||
    const hudData = { combatant, actions, commandes: [] };
 | 
			
		||||
    const controlIconTarget = html.find('.control-icon[data-action=target]');
 | 
			
		||||
    // combat
 | 
			
		||||
    await RdDTokenHud._configureSubMenu(controlIconTarget, 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-attaque.html', hudData,
 | 
			
		||||
      (event) => {
 | 
			
		||||
        const actionIndex = event.currentTarget.attributes['data-action-index']?.value;
 | 
			
		||||
        const action = actionsCombat[actionIndex];
 | 
			
		||||
        const action = hudData.actions[actionIndex];
 | 
			
		||||
        if (action.action == 'conjurer') {
 | 
			
		||||
          actor.conjurerPossession(actor.getPossession(action.system.possessionid));
 | 
			
		||||
          const possession = combatant.actor.getPossession(action.system.possessionid);
 | 
			
		||||
          combatant.actor.conjurerPossession(possession);
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          actor.rollArme(action);
 | 
			
		||||
          combatant.actor.rollArme(action);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
  }
 | 
			
		||||
@@ -83,16 +93,17 @@ export class RdDTokenHud {
 | 
			
		||||
  /* -------------------------------------------- */
 | 
			
		||||
  static async addTokenHudExtensions(app, html, tokenId) {
 | 
			
		||||
    const controlIconCombat = html.find('.control-icon[data-action=combat]');
 | 
			
		||||
    if (controlIconCombat.length > 0) {
 | 
			
		||||
      controlIconCombat.click(event => {
 | 
			
		||||
        if (event.currentTarget.className.includes('active')) {
 | 
			
		||||
          RdDTokenHud.removeExtensionHud(app, html, tokenId);
 | 
			
		||||
        } else {
 | 
			
		||||
        setTimeout(function () { RdDTokenHud.addExtensionHud(app, html, tokenId) }, 200);
 | 
			
		||||
          setTimeout(() => RdDTokenHud.addExtensionHud(app, html, tokenId), 200);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    if (controlIconCombat.length>0 && controlIconCombat[0].className.includes('active')) {
 | 
			
		||||
      RdDTokenHud.addExtensionHud(app, html, tokenId);
 | 
			
		||||
      const isCombat = controlIconCombat[0].className.includes('active');
 | 
			
		||||
      RdDTokenHud.addExtensionHud(app, html, tokenId, isCombat);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1390,27 +1390,27 @@ table.table-nombres-astraux tr:hover {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ======================================== */
 | 
			
		||||
.tokenhudext {
 | 
			
		||||
.token-hud-ext {
 | 
			
		||||
	display: flex; 
 | 
			
		||||
	flex: 0 !important;
 | 
			
		||||
  font-family: CaslonPro;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
}
 | 
			
		||||
.tokenhudext.left {
 | 
			
		||||
.token-hud-ext.left {
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2.75rem;
 | 
			
		||||
  right: 4rem;
 | 
			
		||||
}
 | 
			
		||||
.tokenhudext.right {
 | 
			
		||||
.token-hud-ext.right {
 | 
			
		||||
  justify-content: flex-start;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 2.75rem;
 | 
			
		||||
  left: 4rem;
 | 
			
		||||
}
 | 
			
		||||
.control-icon.tokenhudicon {
 | 
			
		||||
.control-icon.token-hud-icon {
 | 
			
		||||
  width: fit-content;
 | 
			
		||||
  height: fit-content;
 | 
			
		||||
  min-width: 6rem;
 | 
			
		||||
@@ -1419,7 +1419,7 @@ table.table-nombres-astraux tr:hover {
 | 
			
		||||
  line-height: 1rem;
 | 
			
		||||
  margin: 0.2rem;
 | 
			
		||||
}
 | 
			
		||||
.control-icon.tokenhudicon.right {
 | 
			
		||||
.control-icon.token-hud-icon.right {
 | 
			
		||||
  margin-left: 8px;
 | 
			
		||||
}
 | 
			
		||||
.rdd-hud-menu label {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
<div class="control-icon rdd-combat ">
 | 
			
		||||
  <img class="rdd-hud-togglebutton" src="systems/foundryvtt-reve-de-dragon/icons/heures/hd06.svg" width="36" height="36" title="Attaque"/>
 | 
			
		||||
  <div class="rdd-hud-list tokenhudext left">
 | 
			
		||||
  <div class="rdd-hud-list token-hud-ext left">
 | 
			
		||||
    {{#each actions as |action key|}}
 | 
			
		||||
    {{#unless action.system.initOnly}}
 | 
			
		||||
    <div class="control-icon tokenhudicon rdd-hud-menu rdd-attaque"
 | 
			
		||||
    <div class="control-icon token-hud-icon rdd-hud-menu rdd-attaque"
 | 
			
		||||
        data-combatant-id="{{../combatant.id}}"
 | 
			
		||||
        data-action-index="{{action.index}}"
 | 
			
		||||
        title="{{action.name}}">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<div class="control-icon rdd-initiative ">
 | 
			
		||||
  <img class="rdd-hud-togglebutton" src="icons/svg/sword.svg" width="36" height="36" title="Initiative" />
 | 
			
		||||
  <div class="rdd-hud-list tokenhudext right">
 | 
			
		||||
  <div class="rdd-hud-list token-hud-ext right">
 | 
			
		||||
    {{#each actions as |action key|}}
 | 
			
		||||
    <div class="control-icon tokenhudicon rdd-hud-menu"
 | 
			
		||||
    <div class="control-icon token-hud-icon rdd-hud-menu"
 | 
			
		||||
        data-combatant-id="{{../combatant.id}}"
 | 
			
		||||
        data-action-index="{{action.index}}"
 | 
			
		||||
        title="{{action.name}}">
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
    </div>
 | 
			
		||||
    {{/each}}
 | 
			
		||||
    {{#each commandes as |commande key|}}
 | 
			
		||||
    <div class="control-icon tokenhudicon rdd-hud-menu"
 | 
			
		||||
    <div class="control-icon token-hud-icon rdd-hud-menu"
 | 
			
		||||
        data-command="{{commande.command}}" 
 | 
			
		||||
        data-combatant-id="{{../combatant.id}}"
 | 
			
		||||
        data-action-index="{{commande.index}}"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user