fix: Correct critical bugs and complete Creature/Group DataModel implementation
- Fix TypeError: controls.find is not a function in hooks.mjs - Fix undefined 'npc' variable in applications.mjs - Fix CONFIG.VERMINE.model undefined by checking game.system.template existence - Fix TypeError: html.find(...).forEach is not a function in roll.mjs - Fix Cannot set properties of undefined (setting 'initial') in actor.mjs - Fix Cannot read properties of undefined (reading 'difficulty') in actor.mjs - Fix ActiveEffect application phase 'initial' already completed by adding combatStatus to base template - Fix Missing helper: 'select' in roll-dialog.hbs (removed invalid Handlebars select block) - Add SIZE_LEVELS labels to creatureSizeLevels config - Add SIZE_LEVELS translations to fr.json - Add combatStatus to base actor template - Convert all .html templates to .hbs for Foundry v14 compatibility - Update item-sheet.mjs to use .hbs extension - Update handlebars-manager.mjs to use .hbs for all partials Complete Vermine2047 Creature and Group sheet implementation: - Creature: Pattern, Size, Role, Pack with computed values - Group: Totem, Reserve, Morale, Objectives, Members management - All templates functional with proper styling Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -1,96 +1,152 @@
|
||||
<div class="grid grid-2col">
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.abilities'}}</span>
|
||||
<a class="item-control item-create" title="Create item" data-type="ability"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each abilities as |item id|}}
|
||||
{{#if (ne item.type 'totem')}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.specialties'}}</span>
|
||||
<a class="item-control item-create" title="Create item" data-type="specialty"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each specialties as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.backgrounds'}}</span>
|
||||
<a class="item-control item-create" title="Create item" data-type="background"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each backgrounds as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.traumas'}}</span>
|
||||
<a class="item-control item-create" title="Create item" data-type="trauma"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each traumas as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.evolutions'}}</span>
|
||||
<a class="item-control item-create" title="Create item" data-type="evolution"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each evolutions as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
<div class="grid grid-2col">
|
||||
{{!-- Group Identity --}}
|
||||
<div>
|
||||
<h4>{{ localize 'IDENTITY.profile' }}</h4>
|
||||
<div class="flexrow flex-group-center">
|
||||
<input type="text" name="system.identity.profile" value="{{system.identity.profile}}"
|
||||
placeholder="Profil du groupe..." style="flex: 1;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<h4>{{ localize 'IDENTITY.origin' }}</h4>
|
||||
<div class="flexrow flex-group-center">
|
||||
<input type="text" name="system.identity.origin" value="{{system.identity.origin}}"
|
||||
placeholder="Origine..." style="flex: 1;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>{{ localize 'IDENTITY.theme' }}</h4>
|
||||
<div class="flexrow flex-group-center">
|
||||
<input type="text" name="system.identity.theme" value="{{system.identity.theme}}"
|
||||
placeholder="Concept..." style="flex: 1;" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>{{ localize 'VERMINE.level' }}</h4>
|
||||
<div class="flexrow flex-group-center">
|
||||
<input type="number" name="system.level.value" value="{{system.level.value}}"
|
||||
data-dtype="Number" min="{{system.level.min}}" max="{{system.level.max}}" />
|
||||
<span>/ {{system.level.max}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>{{ localize 'VERMINE.reputation' }}</h4>
|
||||
<div class="flexrow flex-group-center">
|
||||
<input type="number" name="system.reputation.value" value="{{system.reputation.value}}"
|
||||
data-dtype="Number" min="{{system.reputation.min}}" max="{{system.reputation.max}}" />
|
||||
<span>/ {{system.reputation.max}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Group Notes --}}
|
||||
<div class="grid-span-2">
|
||||
<h4>{{ localize 'IDENTITY.notes' }}</h4>
|
||||
{{editor system.identity.notes target="system.identity.notes" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
{{!-- Group Abilities (from items) --}}
|
||||
<div class="grid-span-2">
|
||||
<h4>
|
||||
<span>{{ localize 'VERMINE.abilities' }}</span>
|
||||
<a class="item-control item-create" title="{{ localize 'ITEMS.new_ability' }}" data-type="ability"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each abilities as |item id|}}
|
||||
{{#if (ne item.type 'totem')}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="{{ localize 'UI.effect_edit' }}">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="{{ localize 'UI.effect_delete' }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- Specialties --}}
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.specialties' }}</span>
|
||||
<a class="item-control item-create" title="{{ localize 'ITEMS.new_specialty' }}" data-type="specialty"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each specialties as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="{{ localize 'UI.effect_edit' }}">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="{{ localize 'UI.effect_delete' }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- Backgrounds --}}
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.backgrounds' }}</span>
|
||||
<a class="item-control item-create" title="{{ localize 'ITEMS.new_background' }}" data-type="background"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each backgrounds as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="{{ localize 'UI.effect_edit' }}">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="{{ localize 'UI.effect_delete' }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- Traumas --}}
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.traumas' }}</span>
|
||||
<a class="item-control item-create" title="{{ localize 'ITEMS.new_trauma' }}" data-type="trauma"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each traumas as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="{{ localize 'UI.effect_edit' }}">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="{{ localize 'UI.effect_delete' }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
{{!-- Evolutions --}}
|
||||
<div>
|
||||
<h4>
|
||||
<span>{{ localize 'ITEMS.evolutions' }}</span>
|
||||
<a class="item-control item-create" title="{{ localize 'ITEMS.new_evolution' }}" data-type="evolution"><i class="fas fa-plus"></i></a>
|
||||
</h4>
|
||||
<ol class="list-item">
|
||||
{{#each evolutions as |item id|}}
|
||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||
<div class="item-name" style="flex:4;">
|
||||
<a class="item-control item-edit" title="{{ localize 'UI.effect_edit' }}">{{item.name}}</a>
|
||||
</div>
|
||||
<div class="item-controls flexrow">
|
||||
<a class="item-control item-delete" title="{{ localize 'UI.effect_delete' }}"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user