Migration vers datamodels

This commit is contained in:
2026-02-25 15:49:55 +01:00
parent 64eb40abfb
commit f1ab04bf32
95 changed files with 7418 additions and 593 deletions

View File

@@ -0,0 +1,57 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="biodata" data-group="primary">
<div class="grid grid-2col">
<div>
<ul class="item-list alternate-list">
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.bornplace"}}</label>
<input type="text" name="system.biodata.lieunaissance" value="{{system.biodata.lieunaissance}}" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.age"}}</label>
<input type="text" name="system.biodata.age" value="{{system.biodata.age}}" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.profession"}}</label>
<input type="text" name="system.biodata.profession" value="{{system.biodata.profession}}" />
</li>
</ul>
</div>
<div>
<ul>
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.residence"}}</label>
<input type="text" name="system.biodata.residence" value="{{system.biodata.residence}}" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.origin"}}</label>
<input type="text" name="system.biodata.nationalite" value="{{system.biodata.nationalite}}" />
</li>
<li class="item flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.childhood"}}</label>
<input type="text" name="system.biodata.enfance" value="{{system.biodata.enfance}}" />
</li>
</ul>
</div>
</div>
<hr>
<span class="item-name-label-header items-title-bg">
<h3><label class="items-title-text">{{localize "ECRY.ui.background"}}</label></h3>
</span>
<div class="form-group editor">
{{formInput systemFields.biodata.fields.description enriched=enrichedDescription
value=system.biodata.description name="system.biodata.description" toggled=true}}
</div>
<hr>
<span class="item-name-label-header items-title-bg">
<h3><label class="items-title-text">{{localize "ECRY.ui.gmnotes"}}</label></h3>
</span>
<div class="form-group editor">
{{formInput systemFields.biodata.fields.gmnotes enriched=enrichedGmnotes
value=system.biodata.gmnotes name="system.biodata.gmnotes" toggled=true}}
</div>
<hr>
</section>

View File

@@ -0,0 +1,42 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="cephaly" data-group="primary">
<div class="grid grid-2col">
<div>
<h3>{{localize "ECRY.ui.cephaly"}}</h3>
<ul class="stat-list alternate-list item-list">
{{#each cephalySkills as |skill skillkey|}}
<li class="item flexrow list-item">
<span class="item-name-label-long">
<a data-action="rollCephaly" data-skill-key="{{skillkey}}">
<i class="fa-solid fa-dice-d6"></i>
{{localize skill.name}}
</a>
</span>
<select class="item-field-label-short"
name="system.cephaly.skilllist.{{skillkey}}.value">
{{selectOptions @root.config.skillLevel selected=skill.value}}
</select>
</li>
{{/each}}
</ul>
</div>
<div>
{{#if annency.id}}
<h3>{{localize "ECRY.ui.annency"}} :
<a data-action="openAnnency" data-annency-id="{{annency.id}}">
{{annency.name}}<i class="fas fa-edit"></i>
</a>
</h3>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item">
<span class="item-name-label-long">{{annency.system.base.description}}</span>
</li>
</ul>
{{/if}}
</div>
</div>
</section>

View File

@@ -0,0 +1,68 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="combat" data-group="primary">
{{!-- Impacts --}}
<div class="flexrow">
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs
impacts=system.impacts.physical impacttype="physical" impactMalus=impactsMalus.physical}}
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs
impacts=system.impacts.mental impacttype="mental" impactMalus=impactsMalus.mental}}
{{> systems/fvtt-ecryme/templates/actors/partial-impacts.hbs
impacts=system.impacts.social impacttype="social" impactMalus=impactsMalus.social}}
</div>
{{!-- Weapons --}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long2">
<h3><label class="item-name-label-header-long2">{{localize "ECRY.ui.weapons"}}</label></h3>
</span>
<span class="item-field-label-medium">
<label>{{localize "ECRY.ui.type"}}</label>
</span>
<span class="item-field-label-medium">
<label>{{localize "ECRY.ui.effect"}}</label>
</span>
</li>
{{#each weapons as |weapon key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
<a data-action="itemEdit" data-item-id="{{weapon._id}}" class="item-name-img" title="{{localize 'ECRY.ui.edit'}}">
<img class="sheet-competence-img" src="{{weapon.img}}" />
</a>
<span class="item-name-label-long2">
<a data-action="rollWeaponConfront" data-item-id="{{weapon._id}}">
<i class="fa-regular fa-swords"></i>
{{weapon.name}}
</a>
</span>
<span class="item-field-label-medium">{{localize (concat "ECRY.ui." weapon.system.weapontype)}}</span>
<span class="item-field-label-medium">{{weapon.system.effect}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="itemDelete" data-item-id="{{weapon._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
{{!-- Maneuvers --}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long2">
<h3><label class="item-name-label-header-long2">{{localize "ECRY.ui.maneuvers"}}</label></h3>
</span>
</li>
{{#each maneuvers as |maneuver key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}">
<a data-action="itemEdit" data-item-id="{{maneuver._id}}" class="item-name-img" title="{{localize 'ECRY.ui.edit'}}">
<img class="sheet-competence-img" src="{{maneuver.img}}" />
</a>
<span class="item-name-label-long2">{{maneuver.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="itemDelete" data-item-id="{{maneuver._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,40 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="equipements" data-group="primary">
{{!-- Free equipment (plain text area) --}}
<span class="item-name-label-header items-title-bg">
<h3><label class="items-title-text">{{localize "ECRY.ui.equipmentfree"}}</label></h3>
</span>
<div class="form-group small-editor">
<textarea name="system.equipmentfree" rows="4">{{system.equipmentfree}}</textarea>
</div>
{{!-- Equipment list --}}
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize "ECRY.ui.equipment"}}s</label></h3>
</span>
<span class="item-field-label-medium">
<label>{{localize "ECRY.ui.weight"}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="itemCreate" data-type="equipment" title="{{localize 'ECRY.ui.create'}}"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each equipments as |equip key|}}
<li class="item list-item flexrow list-item-shadow" data-item-id="{{equip._id}}">
<a data-action="itemEdit" data-item-id="{{equip._id}}" class="item-name-img" title="{{localize 'ECRY.ui.edit'}}">
<img class="sheet-competence-img" src="{{equip.img}}" />
</a>
<span class="item-name-label">{{equip.name}}</span>
<span class="item-field-label-medium">{{equip.system.weight}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="itemDelete" data-item-id="{{equip._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,70 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="skills" data-group="primary">
<div class="grid grid-3col">
{{#each skills as |category categkey|}}
<div>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header impact-title">
<h3>
{{#if (eq @root.type "npc")}}
<a data-action="rollSkillConfront" data-category-key="{{categkey}}" data-skill-key="rawnpc">
<i class="fa-regular fa-swords"></i>
</a>
<a data-action="rollSkill" data-category-key="{{categkey}}" data-skill-key="rawnpc">
<i class="fa-solid fa-dice-d6"></i>
{{/if}}
<label class="items-title-text">{{localize category.name}} ({{valueAtIndex @root.impactsMalus categkey}})</label>
{{#if (eq @root.type "npc")}}
</a>
<select class="item-field-label-short-header"
name="system.skills.{{categkey}}.pnjvalue">
{{selectOptions @root.config.skillLevel selected=category.pnjvalue}}
</select>
{{/if}}
</h3>
</span>
</li>
{{#each category.skilllist as |skill skillkey|}}
<li class="item flexrow list-item">
<span class="item-name-label-long">
<a data-action="rollSkillConfront" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}">
<i class="fa-regular fa-swords"></i>
</a>
<a data-action="rollSkill" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}">
<i class="fa-solid fa-dice-d6"></i>
{{localize skill.name}}
</a>
</span>
<select class="item-field-label-short"
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value">
{{selectOptions @root.config.skillLevel selected=skill.value}}
</select>
</li>
<li class="item flexrow list-item">
<ul class="ul-level1">
{{#each skill.spec as |spec idx|}}
<li class="item flexrow list-item" data-item-id="{{spec._id}}" data-item-type="specialization">
<a data-action="rollSpec" data-category-key="{{categkey}}" data-skill-key="{{skillkey}}" data-spec-id="{{spec._id}}">
<i class="fa-solid fa-dice-d6"></i>
{{spec.name}}
</a>
<div class="item-controls item-controls-fixed">
<a data-action="itemEdit" data-item-id="{{spec._id}}" title="{{localize 'ECRY.ui.edit'}}"><i class="fas fa-edit"></i></a>
<a data-action="itemDelete" data-item-id="{{spec._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
</div>
{{/each}}
</div>
</section>

View File

@@ -0,0 +1,30 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="traits" data-group="primary">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header-long2">
<h3><label class="item-name-label-header-long2">{{localize "ECRY.ui.traits"}}</label></h3>
</span>
<span class="item-field-label-short">
<label>{{localize "ECRY.ui.level"}}</label>
</span>
<div class="item-controls item-controls-fixed">
<a data-action="itemCreate" data-type="trait" title="{{localize 'ECRY.ui.create'}}"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each traits as |trait key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{trait._id}}">
<a data-action="itemEdit" data-item-id="{{trait._id}}" class="item-name-img" title="{{localize 'ECRY.ui.edit'}}">
<img class="sheet-competence-img" src="{{trait.img}}" />
</a>
<span class="item-name-label-long2">{{trait.name}}</span>
<span class="item-field-label-short"><label>{{trait.system.level}}</label></span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="itemDelete" data-item-id="{{trait._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,50 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="annency" data-group="primary">
<div class="grid grid-2col">
<div>
<h3>{{localize "ECRY.ui.annency"}}</h3>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item">
<span class="item-name-label-short">{{localize "ECRY.ui.iscollective"}}</span>
<input type="checkbox" name="system.base.iscollective" {{checked system.base.iscollective}} />
<span class="item-name-label-short">{{localize "ECRY.ui.ismultiple"}}</span>
<input type="checkbox" name="system.base.ismultiple" {{checked system.base.ismultiple}} />
</li>
</ul>
<h3>{{localize "ECRY.ui.characters"}}</h3>
<ul class="stat-list alternate-list item-list">
{{#each characters as |character id|}}
<li class="item flexrow" data-actor-id="{{character.id}}">
<img class="item-name-img" src="{{character.img}}" />
<span class="item-name-label">{{character.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="actorEdit" title="{{localize 'ECRY.ui.edit'}}"><i class="fas fa-edit"></i></a>
<a data-action="actorDelete" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div>
<h3>{{localize "ECRY.ui.location"}}</h3>
<ul class="stat-list alternate-list item-list">
{{#each system.base.location as |location index|}}
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.location"}} {{index}}</span>
<textarea rows="3" name="system.base.location.{{index}}">{{location}}</textarea>
</li>
{{/each}}
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.enhancements"}}</span>
<textarea rows="3" name="system.base.enhancements">{{system.base.enhancements}}</textarea>
</li>
</ul>
</div>
</div>
</section>

View File

@@ -0,0 +1,23 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="boheme" data-group="primary">
<h3>{{localize "ECRY.ui.oniricform"}}</h3>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.name"}}</span>
<input type="text" name="system.boheme.name" value="{{system.boheme.name}}" />
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.ideals"}}</span>
<input type="text" name="system.boheme.ideals" value="{{system.boheme.ideals}}" />
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.politic"}}</span>
<input type="text" name="system.boheme.politic" value="{{system.boheme.politic}}" />
</li>
<li class="item flexrow list-item">
<span class="item-name-label-medium">{{localize "ECRY.ui.description"}}</span>
<textarea rows="3" name="system.boheme.description">{{system.boheme.description}}</textarea>
</li>
</ul>
</section>

View File

@@ -8,9 +8,9 @@
{{#each impacts as |value key|}}
<li class="flexrow" data-impact-type="{{../impacttype}}">
<span class="item-field-label-medium"><label>{{localize (concat "ECRY.ui." key)}}</label></span>
<a class="impact-modify" data-impact-modifier="+1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-plus-square"></i></a>
<a data-action="impactModify" data-impact-modifier="+1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-plus-square"></i></a>
<span class="">{{value}}</span>
<a class="impact-modify" data-impact-modifier="-1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-minus-square"></i></a>
<a data-action="impactModify" data-impact-modifier="-1" data-impact-type="{{../impacttype}}" data-impact-level="{{key}}"><i class="fas fa-minus-square"></i></a>
</li>
{{/each}}
</ul>

View File

@@ -0,0 +1,51 @@
<header class="sheet-header flexrow">
<img class="profile-img" src="{{img}}" data-action="editImage" data-edit="img" title="{{name}}" />
<div class="header-fields flexcol">
<h1 class="charname">
<input name="name" type="text" value="{{name}}" placeholder="Name" />
</h1>
{{#if (eq type "annency")}}
{{!-- Annency header: description --}}
<div class="flexrow">
<label class="item-name-label-medium">{{localize "ECRY.ui.description"}} :</label>
<textarea rows="3" name="system.base.description">{{system.base.description}}</textarea>
</div>
{{else}}
{{!-- PC/NPC header: spleen, ideal, traits (rows always visible, controls conditional on item existence) --}}
<div class="flexrow actor-header-traits">
<ul>
<li class="flexrow item" data-item-id="{{spleen._id}}">
<label class="item-field-label-short">{{localize "ECRY.ui.spleen"}} :</label>
<label class="item-name-label-long">{{spleen.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if spleen}}
<div class="item-controls item-controls-fixed">
<a data-action="itemEdit" data-item-id="{{spleen._id}}" title="{{localize 'ECRY.ui.edit'}}"><i class="fas fa-edit"></i></a>
<a data-action="itemDelete" data-item-id="{{spleen._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
<li class="item flexrow" data-item-id="{{ideal._id}}">
<label class="item-field-label-short">{{localize "ECRY.ui.ideal"}} :</label>
<label class="item-name-label-long">{{ideal.name}}</label>
<div class="item-filler">&nbsp;</div>
{{#if ideal}}
<div class="item-controls item-controls-fixed">
<a data-action="itemEdit" data-item-id="{{ideal._id}}" title="{{localize 'ECRY.ui.edit'}}"><i class="fas fa-edit"></i></a>
<a data-action="itemDelete" data-item-id="{{ideal._id}}" title="{{localize 'ECRY.ui.delete'}}"><i class="fas fa-trash"></i></a>
</div>
{{/if}}
</li>
<li class="item flexrow flexrow-no-expand flexrow-start">
<label class="item-name-label-short">{{localize "ECRY.ui.traits"}} :</label>
{{#each traits as |trait key|}}
<label class="item-name-label-free">
<a data-action="itemEdit" data-item-id="{{trait._id}}">{{trait.name}}</a>{{#unless @last}},&nbsp;{{/unless}}
</label>
{{/each}}
</li>
</ul>
</div>
{{/if}}
</div>
</header>

View File

@@ -5,33 +5,30 @@
<h4 class="chat-actor-name">{{alias}}</h4>
</div>
<hr>
<div class="ecryme-chat-body">
{{#if img}}
<div>
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
</div>
{{/if}}
{{#if img}}
<div class="ecryme-chat-icon-row">
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
</div>
{{/if}}
<div>
<ul>
<li>{{localize "ECRY.ui.cephaly"}} : {{localize skill.name}}</li>
<li>{{localize "ECRY.ui.cephaly"}} : <strong>{{localize skill.name}}</strong></li>
{{#if annency}}
<li>{{localize "ECRY.ui.annencybonus"}} {{annency.name}}: {{annencyBonus}}</li>
<li>{{localize "ECRY.ui.annencybonus"}} {{annency.name}}: <strong>{{annencyBonus}}</strong></li>
{{/if}}
{{#if (gt marginExecution 0)}}
<li>{{localize "ECRY.ui.execution"}} {{executionTotal}} vs {{difficulty}} : {{marginExecution}}</li>
<li>{{localize cephalySuccess}}</li>
{{#if (gt marginExecution 0)}}
<li>{{localize "ECRY.ui.execution"}} {{executionTotal}} vs {{difficulty}} : <strong>{{marginExecution}}</strong></li>
<li class="ecryme-result-line"><label class="chat-result-text chat-result-success">{{localize cephalySuccess}}</label></li>
{{/if}}
{{#if (gt marginPreservation 0)}}
<li>{{localize "ECRY.ui.preservation"}} {{preservationTotal}} vs {{difficulty}} : {{marginPreservation}}</li>
<li>{{localize cephalyFailure}}</li>
{{#if (gt marginPreservation 0)}}
<li>{{localize "ECRY.ui.preservation"}} {{preservationTotal}} vs {{difficulty}} : <strong>{{marginPreservation}}</strong></li>
<li class="ecryme-result-line"><label class="chat-result-text chat-result-failure">{{localize cephalyFailure}}</label></li>
{{/if}}
</ul>
</div>
</div>

View File

@@ -5,52 +5,50 @@
<h4 class="chat-actor-name">{{alias}}</h4>
</div>
<hr>
<div class="ecryme-chat-body">
{{#if img}}
<div>
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
</div>
{{/if}}
{{#if img}}
<div class="ecryme-chat-icon-row">
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
</div>
{{/if}}
<div>
<ul>
{{#if (eq mode "cephaly")}}
<li>{{localize "ECRY.ui.cephaly"}} : {{localize skill.name}} </li>
<li>{{localize "ECRY.ui.cephaly"}} : <strong>{{localize skill.name}}</strong></li>
{{else}}
<li>Confrontation : {{alias}} </li>
<li>Confrontation : <strong>{{alias}}</strong></li>
{{/if}}
<li>{{localize skill.name}}: {{skill.value}} </li>
<li>{{localize skill.name}}: <strong>{{skill.value}}</strong></li>
{{#if spec}}
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}})</li>
{{/if}}
{{#each traitsBonus as |trait idx|}}
{{#if trait.activated}}
<li>{{localize "ECRY.chat.traitbonus"}}: {{trait.name}} ({{trait.system.level}}) </li>
<li>{{localize "ECRY.chat.traitbonus"}}: <strong>{{trait.name}}</strong> ({{trait.system.level}})</li>
{{/if}}
{{/each}}
{{#each traitsMalus as |trait idx|}}
{{#if trait.activated}}
<li>{{localize "ECRY.chat.traitmalus"}}: {{trait.name}} ({{trait.system.level}}) </li>
<li>{{localize "ECRY.chat.traitmalus"}}: <strong>{{trait.name}}</strong> ({{trait.system.level}})</li>
{{/if}}
{{/each}}
{{#if bonusMalusTraits}}
<li>{{localize "ECRY.chat.bonusmalustraits"}}: {{bonusMalusTraits}} </li>
<li>{{localize "ECRY.chat.bonusmalustraits"}}: <strong>{{bonusMalusTraits}}</strong></li>
{{/if}}
{{#if (isGM)}}
{{else}}
<li>{{localize "ECRY.ui.execution"}} : {{executionTotal}}</li>
<li>{{localize "ECRY.ui.preservation"}} : {{preservationTotal}}</li>
<li>{{localize "ECRY.ui.execution"}} : <strong>{{executionTotal}}</strong></li>
<li>{{localize "ECRY.ui.preservation"}} : <strong>{{preservationTotal}}</strong></li>
{{/if}}
</ul>
{{#if (isGM)}}
{{#if (eq mode "cephaly")}}
<div>
<div class="ecryme-chat-gm-row">
<span>{{localize "ECRY.chat.difficulty"}}</span>
<select id="{{rollId}}-cephaly-difficulty" name="cephaly-difficulty">
{{#for 1 20 1}}
@@ -58,15 +56,12 @@
{{/for}}
</select>
</div>
<button class="button-apply-cephaly-difficulty">{{localize "ECRY.ui.cephalydifficulty"}}</button>
<button class="chat-card-button button-apply-cephaly-difficulty">{{localize "ECRY.ui.cephalydifficulty"}}</button>
{{else}}
<button class="button-select-confront">{{localize "ECRY.ui.selectconfront"}}</button>
<button class="chat-card-button button-select-confront">{{localize "ECRY.ui.selectconfront"}}</button>
{{/if}}
{{else}}
<div>
{{localize "ECRY.chat.sentogm"}}
</div>
<p class="ecryme-chat-sent-gm">{{localize "ECRY.chat.sentogm"}}</p>
{{/if}}
</div>
</div>

View File

@@ -2,53 +2,60 @@
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<h4 class="chat-actor-name">{{alias}}</h4>
<div class="flexcol">
<h4 class="chat-actor-name">{{alias}}</h4>
<span class="chat-actor-subtitle">{{localize "ECRY.ui.confrontresult"}}</span>
</div>
</div>
<hr>
<div class="ecryme-chat-body">
{{#if img}}
<div>
<img class="chat-icon" src="{{img}}" alt="{{alias}}" />
</div>
{{/if}}
<div>
<ul>
<li><strong>Confrontation</strong> : {{rollData1.alias}} vs {{rollData2.alias}}</li>
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}}) </li>
<li>{{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} : {{marginExecution}}</li>
<li>{{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} : {{marginPreservation}}</li>
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}})</li>
<li>{{localize "ECRY.ui.execution"}} : {{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} → <strong>{{marginExecution}}</strong></li>
<li>{{localize "ECRY.ui.preservation"}} : {{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} → <strong>{{marginPreservation}}</strong></li>
{{#if rollData1.weapon}}
<li>{{rollData1.alias}} {{rollData1.weapon.name}} ({{rollData1.weapon.system.effect}})
</li>
<li>{{rollData1.alias}} {{rollData1.weapon.name}} ({{rollData1.weapon.system.effect}})</li>
{{/if}}
{{#if rollData2.weapon}}
<li>{{rollData2.alias}} {{rollData2.weapon.name}} ({{rollData2.weapon.system.effect}})</li>
<li>{{rollData2.alias}} {{rollData2.weapon.name}} ({{rollData2.weapon.system.effect}})</li>
{{/if}}
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : {{effectExecution}}</li>
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : <strong>{{effectExecution}}</strong></li>
{{#if impactExecution}}
<li>Impact {{rollData2.alias}} : 1 {{localize (concat "ECRY.ui." impactExecution)}}</li>
<button class="button-apply-impact" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="chat-card-button button-apply-impact"
data-token-id="{{rollData2.tokenId}}"
data-actor-id="{{rollData2.actorId}}"
data-impact-type={{rollData1.skill.categKey}}
data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus2}}
<li>Bonus {{rollData2.alias}} : {{bonus2}}</li>
<button class="button-apply-bonus" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
<li>Bonus {{rollData2.alias}} : <strong>{{bonus2}}</strong></li>
<button class="chat-card-button button-apply-bonus"
data-token-id="{{rollData2.tokenId}}"
data-actor-id="{{rollData2.actorId}}"
data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : {{effectPreservation}}</li>
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : <strong>{{effectPreservation}}</strong></li>
{{#if impactPreservation}}
<li>Impact {{rollData1.alias}} : 1 {{localize (concat "ECRY.ui." impactPreservation)}}</li>
<button class="button-apply-impact" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="chat-card-button button-apply-impact"
data-token-id="{{rollData1.tokenId}}"
data-actor-id="{{rollData1.actorId}}"
data-impact-type={{rollData1.skill.categKey}}
data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus1}}
<li>Bonus {{rollData1.alias}} : {{bonus1}}</li>
<button class="button-apply-bonus" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
<li>Bonus {{rollData1.alias}} : <strong>{{bonus1}}</strong></li>
<button class="chat-card-button button-apply-bonus"
data-token-id="{{rollData1.tokenId}}"
data-actor-id="{{rollData1.actorId}}"
data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
</ul>
</div>
</div>

View File

@@ -5,61 +5,55 @@
<h4 class="chat-actor-name">{{alias}}</h4>
</div>
<hr>
<div class="ecryme-chat-body">
{{#if img}}
<div >
<div class="ecryme-chat-icon-row">
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol">
</div>
<ul>
{{#if skill}}
<li>{{localize skill.name}}: <strong>{{skill.value}}</strong></li>
{{#if spec}}
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}})</li>
{{/if}}
{{/if}}
<div>
<ul>
{{#if skill}}
<li>{{localize skill.name}}: {{skill.value}} </li>
{{#if spec}}
<li>{{localize "ECRY.chat.specialization"}} {{spec.name}} (+{{spec.system.bonus}}) </li>
{{/if}}
{{/if}}
{{#if impactMalus}}
<li>{{localize "ECRY.ui.impactmalus"}}: <strong>{{impactMalus}}</strong></li>
{{/if}}
{{#if impactMalus}}
<li>{{localize "ECRY.ui.impactmalus"}}: {{impactMalus}} </li>
{{/if}}
{{#if skillTranscendence}}
<li>{{localize "ECRY.ui.skilltranscendence"}}: <strong>{{skillTranscendence}}</strong></li>
{{/if}}
{{#if skillTranscendence}}
<li>{{localize "ECRY.ui.skilltranscendence"}}: {{skillTranscendence}} </li>
{{/if}}
{{#if traitsBonusList}}
{{#each traitsBonusList as |trait idx|}}
<li>{{localize "ECRY.chat.traitbonus"}}: <strong>{{trait.name}}</strong> ({{trait.system.level}})</li>
{{/each}}
{{/if}}
{{#if traitsMalusList}}
{{#each traitsMalusList as |trait idx|}}
<li>{{localize "ECRY.chat.traitmalus"}}: <strong>{{trait.name}}</strong> ({{trait.system.level}})</li>
{{/each}}
{{/if}}
{{#if bonusMalusTraits}}
<li>{{localize "ECRY.chat.bonusmalustraits"}}: <strong>{{bonusMalusTraits}}</strong></li>
{{/if}}
{{#if traitsBonusList}}
{{#each traitsBonusList as |trait idx|}}
<li>{{localize "ECRY.chat.traitbonus"}}: {{trait.name}} ({{trait.system.level}}) </li>
{{/each}}
{{/if}}
{{#if traitsMalusList}}
{{#each traitsMalusList as |trait idx|}}
<li>{{localize "ECRY.chat.traitmalus"}}: {{trait.name}} ({{trait.system.level}}) </li>
{{/each}}
{{/if}}
{{#if bonusMalusTraits}}
<li>{{localize "ECRY.chat.bonusmalustraits"}}: {{bonusMalusTraits}} </li>
{{/if}}
<li>{{localize "ECRY.chat.formula"}}: <strong>{{diceFormula}}</strong></li>
<li>{{localize "ECRY.chat.dicesum"}}: <strong>{{diceSum}}</strong></li>
<li>{{localize "ECRY.chat.result"}}: <strong>{{total}}</strong></li>
{{#if difficulty}}
<li>{{localize "ECRY.chat.difficulty"}}: {{difficulty}}{{localize "ECRY.chat.margin"}}: <strong>{{margin}}</strong></li>
{{#if isSuccess}}
<li class="ecryme-result-line"><label class="chat-result-text chat-result-success">{{localize "ECRY.chat.success"}}</label></li>
{{else}}
<li class="ecryme-result-line"><label class="chat-result-text chat-result-failure">{{localize "ECRY.chat.failure"}}</label></li>
{{/if}}
{{/if}}
</ul>
<li>{{localize "ECRY.chat.formula"}}: {{diceFormula}} </li>
<li>{{localize "ECRY.chat.dicesum"}}: {{diceSum}} </li>
<li>{{localize "ECRY.chat.result"}}: {{total}} </li>
{{#if difficulty}}
<li>{{localize "ECRY.chat.difficulty"}}: {{difficulty}} - {{localize "ECRY.chat.margin"}}: {{margin}} </li>
{{#if isSuccess}}
<li><label class="chat-result-text chat-result-success ">{{localize "ECRY.chat.success"}}</label></li>
{{else}}
<li><label class="chat-result-text chat-result-failure">{{localize "ECRY.chat.failure"}}</label></li>
{{/if}}
{{/if}}
</ul>
</div>
</div>
</div>

View File

@@ -1,7 +1,7 @@
<form class="confrontation-roll-dialog">
<div class="confrontation-roll-dialog">
<header class="roll-dialog-header">
{{#if img}}
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<img class="actor-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h1 class="dialog-roll-title roll-dialog-header">{{title}} ({{skill.value}})</h1>
</header>
@@ -11,7 +11,7 @@
<div class="flexrow">
<div>
<h3>{{localize "ECRY.ui.execution"}} : <span id="execution-total">{{executionTotal}}</span> </h3>
<h3>{{localize "ECRY.ui.execution"}} : <span id="execution-total">{{executionTotal}}</span></h3>
<div id="confront-execution" class="flexrow confront-area confront-execution-area">
{{> systems/fvtt-ecryme/templates/dialogs/partial-confront-dice-area.hbs filter="execution"}}
{{> systems/fvtt-ecryme/templates/dialogs/partial-confront-bonus-area.hbs filter="execution"}}
@@ -54,13 +54,13 @@
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span>
<select class="" id="roll-select-transcendence" data-type="Number">
<select id="roll-select-transcendence" data-type="Number">
{{selectOptions config.skillLevel selected=skillTranscendence}}
</select>
</div>
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.transcendapply"}} : </span>
<select class="" id="roll-apply-transcendence" data-type="String">
<select id="roll-apply-transcendence" data-type="String">
{{selectOptions config.transcendanceOptions selected=applyTranscendence localize=true}}
</select>
</div>
@@ -68,9 +68,9 @@
{{#if skill.spec}}
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.spec"}} : </span>
<select class="" id="roll-specialization" data-type="String" multiple>
<select id="roll-specialization" data-type="String" multiple>
{{#each skill.spec as |spec idx|}}
<option value="{{spec.id}}" {{#if (eq spec.name @root.spec.name)}}selected{{/if}}>{{spec.name}}</option>
<option value="{{spec.id}}" {{#if (eq spec.name @root.spec.name)}}selected{{/if}}>{{spec.name}}</option>
{{/each}}
</select>
</div>
@@ -78,7 +78,7 @@
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.traitbonus"}} : </span>
<select class="" id="roll-trait-bonus" data-type="String" multiple>
<select id="roll-trait-bonus" data-type="String" multiple>
{{#each traitsBonus as |trait idx|}}
<option value="{{trait._id}}" {{#if trait.activated}}selected{{/if}}>{{trait.name}} ({{trait.system.level}})</option>
{{/each}}
@@ -87,13 +87,13 @@
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.traitmalus"}} : </span>
<select class="" id="roll-trait-malus" data-type="String" multiple>
<select id="roll-trait-malus" data-type="String" multiple>
{{#each traitsMalus as |trait idx|}}
<option value="{{trait._id}}" {{#if trait.activated}}selected{{/if}}>{{trait.name}} ({{trait.system.level}})</option>
{{/each}}
</select>
</div>
{{#if annency}}
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.annency"}} : {{annency.name}}</span>
@@ -101,25 +101,32 @@
</div>
<div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.annencybonus"}}</span>
<select class="" id="annency-bonus" name="annencyBonus" data-type="String">
<option value="0">0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<select id="annency-bonus" name="annencyBonus" data-type="String">
<option value="0">0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
</select>
</div>
{{/if}}
<div class="flexrow">
<span class="roll-dialog-label">Bonus/Malus : </span>
<select id="bonusMalusPerso" name="bonusMalusPerso" type="text" data-dtype="String">
<select id="bonusMalusPerso" name="bonusMalusPerso" data-dtype="String">
{{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso labelAttr="label"}}
</select>
</div>
</div>
</form>
<footer class="sheet-footer flexrow">
<button type="button" data-action="launchConfront" {{#if buttonDisabled}}disabled{{/if}}>
<i class="fas fa-check"></i> {{localize "ECRY.ui.launchconfront"}}
</button>
<button type="button" data-action="cancel">
<i class="fas fa-times"></i> {{localize "ECRY.ui.cancel"}}
</button>
</footer>
</div>

View File

@@ -1,13 +1,23 @@
<form class="confrontation-roll-dialog">
<header class="roll-dialog-header">
<div class="confrontation-start-dialog">
<div class="flexrow roll-dialog-header">
{{#if img}}
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<img class="actor-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
</header>
<div class="flexcol">
<span class="roll-dialog-actor-title">{{title}}</span>
</div>
</form>
<footer class="sheet-footer flexcol">
<button type="button" data-action="rollNormal">
<i class="fas fa-check"></i> {{localize "ECRY.ui.rollnormal"}}
</button>
<button type="button" data-action="rollSpleen">
<i class="fas fa-check"></i> {{localize "ECRY.ui.rollspleen"}}
</button>
<button type="button" data-action="rollIdeal">
<i class="fas fa-check"></i> {{localize "ECRY.ui.rollideal"}}
</button>
<button type="button" data-action="cancel">
<i class="fas fa-times"></i> {{localize "ECRY.ui.cancel"}}
</button>
</footer>
</div>

View File

@@ -1,9 +1,9 @@
<form class="skill-roll-dialog">
<div class="skill-roll-dialog">
<header class="roll-dialog-header">
{{#if img}}
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<img class="actor-icon" src="{{img}}" title="{{name}}" />
{{/if}}
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1>
<span class="roll-dialog-actor-title">{{title}}</span>
</header>
<div class="flexcol">
@@ -11,12 +11,20 @@
{{> systems/fvtt-ecryme/templates/dialogs/partial-common-roll-dialog.hbs}}
<div class="flexrow">
<span class="roll-dialog-label">Difficulté : </span>
<select class="" type="text" id="roll-difficulty" data-dtype="String">
<span class="roll-dialog-label">{{localize "ECRY.ui.difficulty"}} : </span>
<select id="roll-difficulty" data-dtype="String">
{{selectOptions config.difficulty selected=difficulty localize=true labelAttr="difficulty"}}
</select>
</div>
</div>
</form>
<footer class="sheet-footer flexrow">
<button type="button" data-action="roll">
<i class="fas fa-check"></i> {{localize "ECRY.ui.roll"}}
</button>
<button type="button" data-action="cancel">
<i class="fas fa-times"></i> {{localize "ECRY.ui.cancel"}}
</button>
</footer>
</div>

View File

@@ -0,0 +1,19 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="details" data-group="primary">
<ul>
<li class="flexrow">
<label class="item-field-label-long">{{localize "ECRY.ui.quantity"}}</label>
<input type="number" class="item-field-label-short" name="system.quantity" value="{{system.quantity}}" />
</li>
<li class="flexrow">
<label class="item-field-label-long">{{localize "ECRY.ui.weight"}}</label>
<input type="number" class="item-field-label-short" name="system.weight" value="{{system.weight}}" />
</li>
<li class="flexrow">
<label class="item-field-label-long">{{localize "ECRY.ui.cost"}}</label>
<input type="number" class="item-field-label-short" name="system.cost" value="{{system.cost}}" />
<select name="system.costunit">
{{selectOptions config.costUnits selected=system.costunit localize=true labelAttr="name"}}
</select>
</li>
</ul>
</section>

View File

@@ -0,0 +1,5 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="details" data-group="primary">
<ul>
{{!-- Maneuver has no additional details --}}
</ul>
</section>

View File

@@ -0,0 +1,14 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="details" data-group="primary">
<ul>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.skill"}}</label>
<select name="system.skillkey">
{{selectOptions config.skills selected=system.skillkey localize=true valueAttr="key" labelAttr="name"}}
</select>
</li>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.bonus"}}</label>
<input type="number" class="item-field-label-short" name="system.bonus" value="{{system.bonus}}" />
</li>
</ul>
</section>

View File

@@ -0,0 +1,16 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="details" data-group="primary">
<ul>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.traitType"}}</label>
<select name="system.traitype">
{{selectOptions config.traitTypes selected=system.traitype}}
</select>
</li>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.niveauTrait"}}</label>
<select name="system.level">
{{selectOptions config.traitLevel selected=system.level labelAttr="text"}}
</select>
</li>
</ul>
</section>

View File

@@ -0,0 +1,25 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="details" data-group="primary">
<ul>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.weapontype"}}</label>
<select name="system.weapontype">
{{selectOptions config.weaponTypes selected=system.weapontype localize=true}}
</select>
</li>
<li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.effect"}}</label>
<input type="number" class="item-field-label-short" name="system.effect" value="{{system.effect}}" />
</li>
<li class="flexrow">
<label class="item-field-label-long">{{localize "ECRY.ui.weight"}}</label>
<input type="number" class="item-field-label-short" name="system.weight" value="{{system.weight}}" />
</li>
<li class="flexrow">
<label class="item-field-label-long">{{localize "ECRY.ui.cost"}}</label>
<input type="number" class="item-field-label-short" name="system.cost" value="{{system.cost}}" />
<select name="system.costunit">
{{selectOptions config.costUnits selected=system.costunit localize=true labelAttr="name"}}
</select>
</li>
</ul>
</section>

View File

@@ -0,0 +1,5 @@
<section class="tab sheet-body {{tab.cssClass}}" data-tab="description" data-group="primary">
<div class="editor">
{{formInput systemFields.description enriched=enrichedDescription value=system.description name="system.description" toggled=true}}
</div>
</section>

View File

@@ -0,0 +1,6 @@
<header class="sheet-header flexrow">
<img class="item-sheet-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}" />
<div class="header-fields">
<h1 class="charname">{{formInput fields.name value=source.name}}</h1>
</div>
</header>