feat: équipement, échanges de coups et améliorations des fiches

- équipement des armes et protections (champ equipped, liste des équipés, toggle)
- échanges de coups automatisés (attaque/défense/résolution/blessures dans le chat)
- dialogue d'attaque par type (personnage/PNJ/créature), portées et difficultés
- conservation du scroll des fiches lors des modifs (option scrollable + classe active)
- verrouillage des compétences PNJ en mode jeu
- corrections review combat (défenseur, difficulté >10, multi-cibles, permissions)
This commit is contained in:
2026-08-04 14:14:03 +02:00
parent 31f2f4530c
commit f2c8cfe246
45 changed files with 2105 additions and 78 deletions
+8
View File
@@ -15,6 +15,7 @@
data-type="defense"
data-action="create"
><i class="fas fa-plus"></i></a>
<a style="visibility:hidden;" aria-hidden="true"><i class="fas fa-circle"></i></a>
<a style="visibility:hidden;" aria-hidden="true"><i class="fas fa-trash"></i></a>
</div>
</li>
@@ -42,6 +43,13 @@
<div><a data-action="edit" title="Edit Item">{{item.system.rarity.value}}</a></div>
<div><a data-action="edit" title="Edit Item">{{item.system.reliability}}</a></div>
<div class="item-controls">
<a
data-action="toggleEquip"
data-item-id="{{item._id}}"
title="{{#if item.system.equipped}}{{ localize 'VERMINE.unequip'}}{{else}}{{ localize 'VERMINE.equip'}}{{/if}}"
><i
class="fas {{#if item.system.equipped}}fa-circle-check{{else}}fa-circle{{/if}}"
></i></a>
<a
data-action="delete"
title="Delete Item"
@@ -0,0 +1,64 @@
{{#if equippedWeapons.length}}
<div class="equipped-gear">
<h4 class="item-name flexrow">{{ localize 'ITEMS.weapons'}}</h4>
<ol class="items-list">
{{#each equippedWeapons as |item|}}
<li
class="item flexrow flex-group-center align-center"
data-item-id="{{item._id}}"
>
<div class="item-name flexrow" style="flex:4;">
<div class="item-image">
<a data-action="roll"><img
src="{{item.img}}"
title="{{item.name}}"
width="24"
height="24"
/></a>
</div>
<a data-action="roll">{{item.name}}</a>
</div>
<div style="flex:1;"><a data-action="attack" title="{{ localize 'VERMINE.attack' }}"><i class="fas fa-crosshairs"></i></a></div>
<div style="flex:2;"><a data-action="edit" title="Edit Item">
{{#if item.system.damage.addVigor}}
{{localize 'VERMINE.vigor'}}+
{{/if}}
{{item.system.damage.value}}
({{item.system.damage.type}})
</a></div>
<div style="flex:2;">{{#if item.system.skill}}{{ smarttlk 'SKILLS' item.system.skill 'name' }}{{/if}}</div>
</li>
{{/each}}
</ol>
</div>
{{/if}}
{{#if equippedDefenses.length}}
<div class="equipped-gear">
<h4 class="item-name flexrow">{{ localize 'ITEMS.defenses'}}</h4>
<ol class="items-list">
{{#each equippedDefenses as |item|}}
<li
class="item flexrow flex-group-center align-center"
data-item-id="{{item._id}}"
>
<div class="item-name flexrow" style="flex:4;">
<div class="item-image">
<a data-action="roll"><img
src="{{item.img}}"
title="{{item.name}}"
width="24"
height="24"
/></a>
</div>
<a data-action="edit" title="Edit Item">{{item.name}}</a>
</div>
<div style="flex:2;"><a data-action="edit" title="Edit Item">{{item.system.level}}</a></div>
<div style="flex:2;"><a data-action="edit" title="Edit Item">
{{#if item.system.isShield}}{{ localize 'ITEMS.shield' }}{{/if}}
</a></div>
</li>
{{/each}}
</ol>
</div>
{{/if}}
+6
View File
@@ -9,6 +9,7 @@
<div class="item-controls">
<a class="item-control item-create" title="Create item"
data-type="weapon" data-action="create"><i class="fas fa-plus"></i></a>
<a style="visibility:hidden;" aria-hidden="true"><i class="fas fa-circle"></i></a>
<a style="visibility:hidden;" aria-hidden="true"><i class="fas fa-trash"></i></a>
<a style="visibility:hidden;" aria-hidden="true"><i class="fas fa-edit"></i></a>
</div>
@@ -37,10 +38,15 @@
<div style="flex:1;"><a data-action="edit" title="Edit Item">{{item.system.rarity.value}}</a></div>
<div style="flex:1;"><a data-action="edit" title="Edit Item">{{item.system.reliability}}</a></div>
<div class="item-controls">
<a data-action="toggleEquip" data-item-id="{{item._id}}"
title="{{#if item.system.equipped}}{{ localize 'VERMINE.unequip'}}{{else}}{{ localize 'VERMINE.equip'}}{{/if}}"><i
class="fas {{#if item.system.equipped}}fa-circle-check{{else}}fa-circle{{/if}}"></i></a>
<a data-action="delete" title="Delete Item"><i
class="fas fa-trash"></i></a>
<a data-action="edit" title="Edit Item"><i
class="fas fa-edit"></i></a>
<a data-action="attack" title="{{ localize 'VERMINE.attack' }}"><i
class="fas fa-crosshairs"></i></a>
<a data-action="roll" title="Roll Item"><i
class="fas fa-dice"></i></a>
</div>
+2
View File
@@ -8,6 +8,7 @@
{{/if}}
</label>
<div class="skill-control">
{{#if @root.isEditMode}}
<input
type="range"
name="system.skills.{{key}}.value"
@@ -16,6 +17,7 @@
max="{{skill.max}}"
data-dtype="Number"
/>
{{/if}}
<span class="skill-value">{{skill.value}}D</span>
</div>
</div>