Nouveau roll-dialog: mode attaque / defense

This commit is contained in:
2025-09-21 00:15:21 +02:00
parent 607eedc6d2
commit 0730bdf240
52 changed files with 940 additions and 415 deletions

View File

@@ -1,6 +1,6 @@
<div>
{{#if effects}}
{{#each effects as |effect key|}}
{{#each effects as |effect|}}
<span class="active-effect" data-effect="{{effect.id}}">
<img class="button-effect-img {{#if @root.options.isGM}}delete-active-effect{{/if}}" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" width="24" height="24" />
</span>

View File

@@ -22,19 +22,34 @@
{{#if (eq defender.type 'personnage')}}
<a class='chat-card-button appel-chance-defense'
data-attackerId='{{attackerId}}' data-defenderTokenId='{{defenderToken.id}}' data-attackerTokenId='{{attackerToken.id}}'>
Faire appel à la chance</a>
Faire appel à la chance
</a>
<br>
{{/if}}
{{#if (and (eq defender.type 'personnage') (gt defender.system.compteurs.destinee.value 0))}}
<a class='chat-card-button appel-destinee-defense'
data-attackerId='{{attackerId}}' data-attackerTokenId='{{attackerToken.id}}' data-defenderTokenId='{{defenderToken.id}}'>
Utiliser la destinée</a>
Utiliser la destinée
</a>
<br>
{{/if}}
{{/unless}}
{{else}}
{{#if (settings-get 'rdd-advanced-roll-dialog-v2')}}
<a class='chat-card-button defense-button'
data-attackerId='{{attackerId}}'
data-attackerTokenId='{{attackerToken.id}}'
data-defenderTokenId='{{defenderToken.id}}'
>
Se défendre
{{#if (or (eq attaqueCategorie 'tir') (eq attaqueCategorie 'lancer'))}}
(difficulté à déterminer)
{{else}}
à {{diffLibre }}
{{/if}}
</a>
<br>
{{/if}}
{{#each armes as |arme key|}}
<a class='chat-card-button parer-button'
data-attackerId='{{../attackerId}}' data-defenderTokenId='{{../defenderToken.id}}' data-attackerTokenId='{{../attackerToken.id}}'
@@ -53,9 +68,9 @@
{{/each}}
{{#if mainsNues}}
<a class='chat-card-button parer-button'
data-attackerId='{{attackerId}}' data-defenderTokenId='{{defenderToken.id}}' data-attackerTokenId='{{attackerToken.id}}'
data-armeid='{{arme._id}}' data-competence='{{arme.system.competence}}'>
Parer à mains nues à {{diffLibre}}{{#if arme.nbUsage}} (Utilisations : {{arme.nbUsage}}){{/if}}
data-attackerId='{{attackerId}}' data-defenderTokenId='{{defenderToken.id}}' data-attackerTokenId='{{attackerToken.id}}'
data-armeid='{{arme._id}}' data-competence='{{arme.system.competence}}'>
Parer à mains nues à {{diffLibre}}{{#if arme.nbUsage}} (Utilisations : {{arme.nbUsage}}){{/if}}
</a>
<br>
{{/if}}

View File

@@ -2,13 +2,13 @@
<span {{#if ajustements}}class="tooltip-overflow tooltip-dotted" {{/if}}>
<span>
<span>{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}</span>
{{#if ajustements}}
{{/if}}
{{log this}}
{{#if rolled.factorHtml}}<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>{{/if}}
{{log rolled}}
{{#if (and rolled.factorHtml (gt rolled.factorHtml 1))}}
<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>
<span>= {{rolled.score}}%</span>
<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>
{{else}}
<span>= {{rolled.score}}%</span>
{{#if rolled.factorHtml}}
<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>
{{/if}}
</span>
<div class="tooltiptext ttt-ajustements">

View File

@@ -1,6 +1,6 @@
<div class="table-ajustement">
<span class="tooltip tooltip-dotted">
<span class="roll-part-resolution">Ajustements: {{rollData.current.carac.value}} à {{plusMoins rollData.current.totaldiff}}</span>
<span class="roll-part-resolution">Jet: {{rollData.current.carac.value}} à {{plusMoins rollData.current.totaldiff}}</span>
<div class="tooltiptext ttt-ajustements">
{{#each rollData.ajustements as |ajust|}}
{{#if ajust}}

View File

@@ -1,14 +1,56 @@
{{log 'roll-part-attaque.current' current}}
{{log 'roll-part-attaque.refs' refs}}
<subline>
<select name="select-attaque" {{#if rollData.mode.retry}}disabled{{/if}}>
{{selectOptions refs.attaques selected=current.key valueAttr="key" labelAttr="label"}}
</select>
</subline>
<roll-part-img>
{{#if current.attaque}}
{{#if current.attaque.arme}}
<img src="{{current.attaque.arme.img}}" data-tooltip="{{current.attaque.arme.name}}" />
{{/if}}
</roll-part-img>
<roll-part-detail>
<subline>
<select name="select-attaque" {{#if rollData.mode.retry}}disabled{{/if}}>
{{selectOptions refs.attaques selected=current.key valueAttr="key" labelAttr="label"}}
<label for="select-tactique">Tactique:</label>
<select name="select-tactique" {{#if rollData.mode.retry}}disabled{{/if}}>
{{selectOptions refs.tactiques selected=current.tactique.key valueAttr="key" labelAttr="label"}}
</select>
</subline>
<subline>
{{#if (eq current.attaque.arme.system.mortalite 'empoignade')}}
Empoignade, pas de dommages directs
{{else}}
{{#if (and (ne current.attaque.arme.system.mortalite 'non-mortel') (eq current.dmg.penetration 0))}}
<input name="check-mortalite" type="checkbox" {{#if (eq current.dmg.mortalite 'mortel')}}checked{{/if}} />
{{/if}}
<label for="check-mortalite">
Dommages: {{plusMoins current.dmg.total}} ({{current.dmg.mortalite}})
{{~#if current.dmg.penetration}}, pénétration {{current.dmg.penetration}}{{/if}}
</label>
{{/if}}
</subline>
{{#if current.attaquant.effets}}
<subline>
<span class="status-surprise">
Attaquant en&nbsp;<strong>{{lowerFirst current.attaquant.surprise.label}}</strong>:&nbsp;
{{#each current.attaquant.effets as |effect|}}
{{localize effect.name}}
<img class="button-effect-img" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" data-effect="{{effect.id}}"/>
{{/each}}
</span>
</subline>
{{/if}}
{{#if current.defenseur.surprise}}
<subline>
<span class="status-surprise">
Defenseur en&nbsp;<strong>{{lowerFirst current.defenseur.surprise.label}}</strong>:&nbsp;
{{#each current.defenseur.effets as |effect|}}
{{localize effect.name}}
<img class="button-effect-img" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" data-effect="{{effect.id}}"/>
{{/each}}
</span>
</subline>
{{/if}}
<subline>
</subline>
</roll-part-detail>

View File

@@ -1,3 +1,3 @@
<input name="{{code}}" type="checkbox" {{#if current.checked}}checked{{/if}}/>
{{#if current.icon}}{{{current.icon}}}{{/if}}
<label for="{{code}}">{{current.label}} : {{plusMoins current.value}}</label>
<label for="{{code}}">{{either current.label refs.label}} : {{plusMoins current.value}}</label>

View File

@@ -1,12 +1,21 @@
<roll-part-img>
{{#if current.defense}}
<img src="{{current.defense.arme.img}}" data-tooltip="{{current.defense.arme.name}}" />
{{/if}}
<img src="{{current.img}}" data-tooltip="{{current.name}}" />
</roll-part-img>
<roll-part-detail>
<subline>
<select name="select-arme" {{#if rollData.mode.retry}}disabled{{/if}}>
<select name="select-defense" {{#if rollData.mode.retry}}disabled{{/if}}>
{{selectOptions refs.defenses selected=current.key valueAttr="key" labelAttr="label"}}
</select>
</subline>
{{#if current.defenseur.effets}}
<subline>
<span class="status-surprise">
Defense en&nbsp;<strong>{{lowerFirst current.defenseur.surprise.label}}</strong>:&nbsp;
{{#each current.defenseur.effets as |effect|}}
{{localize effect.name}}
<img class="button-effect-img" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" data-effect="{{effect.id}}"/>
{{/each}}
</span>
</subline>
{{/if}}
</roll-part-detail>