feat: gérer les armes des créatures (morsure, griffes, piqûre…)

- gestion des armes dans l'onglet Combat des créatures (équipement + liste)
- dégâts de l'arme équipée utilisés à la place de computed.damage (+ Vigueur+)
- correction du libellé Vigueur+ (ADVERSITY.vigor au lieu de VERMINE.vigor)
This commit is contained in:
2026-08-04 14:25:27 +02:00
parent 9cf7d9ac68
commit 8d8428cad3
6 changed files with 21 additions and 4 deletions
@@ -84,6 +84,9 @@ export default class VermineCreatureSheetV2 extends VermineBaseActorSheet {
break break
case "combat": case "combat":
context.tab = context.tabs.combat context.tab = context.tabs.combat
context.weapons = doc.itemTypes.weapon
context.equippedWeapons = doc.itemTypes.weapon.filter(i => i.system.equipped)
context.equippedDefenses = doc.itemTypes.defense.filter(i => i.system.equipped)
break break
case "effects": case "effects":
context.tab = context.tabs.effects context.tab = context.tabs.effects
+7 -1
View File
@@ -113,7 +113,8 @@ export class VermineExchange {
/** /**
* Dégâts de base de l'arme (hors réussites de l'attaque). * Dégâts de base de l'arme (hors réussites de l'attaque).
* Le trait "Vigueur+" ajoute la vigueur de l'attaquant. * Le trait "Vigueur+" ajoute la vigueur de l'attaquant.
* PNJ sans arme et créatures utilisent leurs dégâts propres. * PNJ sans arme et créatures utilisent leurs dégâts propres. Une créature
* équipée d'une arme (morsure, griffes…) utilise les dégâts de celle-ci.
* @param {Actor} actor L'attaquant * @param {Actor} actor L'attaquant
* @param {Item|null} weapon * @param {Item|null} weapon
* @returns {number} * @returns {number}
@@ -121,6 +122,11 @@ export class VermineExchange {
static baseDamage(actor, weapon) { static baseDamage(actor, weapon) {
const type = actor.type const type = actor.type
if (type === 'creature') { if (type === 'creature') {
if (weapon?.system?.damage) {
let base = weapon.system.damage.value || 0
if (weapon.system.damage.addVigor) base += actor.system?.computed?.vigor || 0
return base
}
return actor.system?.computed?.damage || 0 return actor.system?.computed?.damage || 0
} }
if (weapon?.system?.damage) { if (weapon?.system?.damage) {
@@ -1,4 +1,6 @@
<div class="tab combat sheet-part {{#if @root.tabs.combat.active}}active{{/if}}" data-group="sheet" data-tab="combat"> <div class="tab combat sheet-part {{#if @root.tabs.combat.active}}active{{/if}}" data-group="sheet" data-tab="combat">
{{> "systems/vermine2047/templates/actor/parts/actor-equipped-gear.hbs"}}
<div class="grid grid-2col"> <div class="grid grid-2col">
{{!-- Computed Values --}} {{!-- Computed Values --}}
<div> <div>
@@ -67,6 +69,12 @@
</div> </div>
</div> </div>
{{!-- Armes --}}
<div class="grid-span-2 weapons">
<h4 class="item-name flexrow">{{ localize 'ITEMS.weapons' }}</h4>
{{> "systems/vermine2047/templates/actor/parts/actor-weapons.hbs"}}
</div>
{{!-- Equipment --}} {{!-- Equipment --}}
<div class="grid-span-2"> <div class="grid-span-2">
<h4>{{ localize 'VERMINE.gear' }}</h4> <h4>{{ localize 'VERMINE.gear' }}</h4>
@@ -21,7 +21,7 @@
<div style="flex:1;"><a data-action="attack" title="{{ localize 'VERMINE.attack' }}"><i class="fas fa-crosshairs"></i></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"> <div style="flex:2;"><a data-action="edit" title="Edit Item">
{{#if item.system.damage.addVigor}} {{#if item.system.damage.addVigor}}
{{localize 'VERMINE.vigor'}}+ {{localize 'ADVERSITY.vigor'}}+
{{/if}} {{/if}}
{{item.system.damage.value}} {{item.system.damage.value}}
({{item.system.damage.type}}) ({{item.system.damage.type}})
+1 -1
View File
@@ -12,7 +12,7 @@
<div class="flexrow flex-wrap weapon-details"> <div class="flexrow flex-wrap weapon-details">
<span class="weapon-detail"> <span class="weapon-detail">
<strong>{{localize "VERMINE.damages"}}:</strong> <strong>{{localize "VERMINE.damages"}}:</strong>
{{#if weapon.system.damage.addVigor}}{{localize "VERMINE.vigor"}}+ {{/if}} {{#if weapon.system.damage.addVigor}}{{localize "ADVERSITY.vigor"}}+ {{/if}}
{{ weapon.system.damage.value }} ({{ weapon.system.damage.type }}) {{ weapon.system.damage.value }} ({{ weapon.system.damage.type }})
</span> </span>
<span class="weapon-detail"> <span class="weapon-detail">
+1 -1
View File
@@ -24,7 +24,7 @@
<div class="flexrow flex-wrap weapon-details"> <div class="flexrow flex-wrap weapon-details">
<span class="weapon-detail"> <span class="weapon-detail">
<strong>{{localize "VERMINE.damages"}}:</strong> <strong>{{localize "VERMINE.damages"}}:</strong>
{{#if param.weapon.system.damage.addVigor}}{{localize "VERMINE.vigor"}}+ {{/if}} {{#if param.weapon.system.damage.addVigor}}{{localize "ADVERSITY.vigor"}}+ {{/if}}
{{param.weapon.system.damage.value}} ({{param.weapon.system.damage.type}}) {{param.weapon.system.damage.value}} ({{param.weapon.system.damage.type}})
</span> </span>
<span class="weapon-detail"> <span class="weapon-detail">