Initial release

This commit is contained in:
2026-05-08 23:05:29 +02:00
parent c0223977d2
commit 2953481a1c
157 changed files with 1940 additions and 392 deletions
+6
View File
@@ -46,6 +46,12 @@
</div>
</div>
<small class="resource-meta">{{localize "MGNE.Character.Remaining"}}: {{system.resonance.remaining}}</small>
{{#if source.system.resonance.blocked}}
<div class="resonation-blocked-banner">
<span>⚡ {{localize "MGNE.Character.ResonationBlocked"}}</span>
<button type="button" data-action="clearResonationBlock" class="btn-clear-block">{{localize "MGNE.Character.ClearResonationBlock"}}</button>
</div>
{{/if}}
<div class="resource-box-actions">
<button type="button" data-action="rollResonancePerDay">{{localize "MGNE.Character.ResonancePerDay"}}</button>
</div>
+11 -5
View File
@@ -9,13 +9,19 @@
</header>
<div class="chat-card-body">
{{#if subtitle}}<p class="chat-subtitle"><strong>{{subtitle}}</strong></p>{{/if}}
{{#if formula}}<p class="chat-formula">{{localize "MGNE.Chat.Formula"}}: <code>{{formula}}</code></p>{{/if}}
<div class="chat-result-line">
<span class="chat-result-label">{{localize "MGNE.Chat.Result"}}</span>
<strong class="chat-result-total">{{total}}</strong>
{{#if formula}}<p class="chat-formula"><code>{{formula}}</code></p>{{/if}}
{{#if outcome}}
<div class="chat-outcome">
<span class="chat-outcome-label">{{outcome}}</span>
<span class="chat-outcome-total">{{total}}</span>
</div>
<p class="chat-outcome">{{outcome}}</p>
{{else if total}}
<div class="chat-damage-total">{{total}}</div>
{{/if}}
{{#if specialText}}<p class="chat-special">{{specialText}}</p>{{/if}}
{{#if omenNeutralizeReminder}}<p class="chat-omen-remind chat-omen-neutralize">💡 {{omenNeutralizeReminder}}</p>{{/if}}
{{#if omenRerollReminder}}<p class="chat-omen-remind">💡 {{omenRerollReminder}}</p>{{/if}}
{{#if omenMaximized}}<p class="chat-omen-used">★ {{localize "MGNE.Roll.OmenMaximizedDamage"}}</p>{{/if}}
{{#if showDamageButton}}
<div class="chat-card-actions">
<button type="button" class="mgne-roll-damage-btn {{#if damageCritical}}is-critical{{/if}}"
+90 -58
View File
@@ -3,30 +3,40 @@
<img class="actor-portrait" src="{{actor.img}}" data-edit="img" data-action="editImage" alt="{{actor.name}}" />
<div class="header-fields">
<input type="text" name="name" value="{{source.name}}" />
<div class="resource-bar">
<div class="resource-box">
<label>{{localize "MGNE.Common.HP"}}</label>
<div class="resource-inline">
<input type="number" name="system.hp.value" value="{{source.system.hp.value}}" />
<span>/</span>
<input type="number" name="system.hp.max" value="{{source.system.hp.max}}" />
<div class="grid three">
<div class="resource-box resource-box-track resource-box-compact resource-box-inline resource-box-inline-track">
<label class="resource-label-accent">{{localize "MGNE.Common.HP"}}</label>
<div class="resource-track">
<div class="numeric-cluster">
<span class="numeric-caption numeric-caption-strong">{{localize "MGNE.Common.Current"}}</span>
<input class="numeric-input" type="number" name="system.hp.value" value="{{source.system.hp.value}}" />
</div>
<span class="track-separator">/</span>
<div class="numeric-cluster">
<span class="numeric-caption numeric-caption-strong">{{localize "MGNE.Common.Max"}}</span>
<input class="numeric-input" type="number" name="system.hp.max" value="{{source.system.hp.max}}" />
</div>
</div>
</div>
<div class="resource-box">
<div class="resource-box resource-box-compact">
<label>{{localize "MGNE.Common.Morale"}}</label>
<select name="system.morale">
{{#each selectOptions.moraleValues}}
<option value="{{value}}" {{#if (isEqual ../source.system.morale value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="numeric-pill">
<select class="compact-select" name="system.morale">
{{#each selectOptions.moraleValues}}
<option value="{{value}}" {{#if (isEqual ../source.system.morale value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
<div class="resource-box">
<div class="resource-box resource-box-compact">
<label>{{localize "MGNE.Common.ArmorDie"}}</label>
<select name="system.armor.die">
{{#each selectOptions.armorDice}}
<option value="{{value}}" {{#if (isEqual ../source.system.armor.die value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="numeric-pill">
<select class="compact-select" name="system.armor.die">
{{#each selectOptions.armorDice}}
<option value="{{value}}" {{#if (isEqual ../source.system.armor.die value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
@@ -35,34 +45,40 @@
<div class="ability-grid">
{{#each abilityList}}
<div class="ability-card">
<label class="rollable" data-roll-type="ability" data-ability-id="{{id}}">{{label}}</label>
<select name="system.abilities.{{id}}.value">
{{#each @root.selectOptions.abilityValues}}
<option value="{{value}}" {{#if (isEqual ../value value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<label class="rollable ability-label" data-roll-type="ability" data-ability-id="{{id}}">{{label}}</label>
<div class="ability-score">
<select class="numeric-input ability-input" name="system.abilities.{{id}}.value">
{{#each @root.selectOptions.abilityValues}}
<option value="{{value}}" {{#if (isEqual ../value value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
{{/each}}
</div>
<fieldset>
<legend>{{localize "MGNE.Common.Attack"}}</legend>
<div class="grid three">
<div>
<label>{{localize "MGNE.Common.Label"}}</label>
<input type="text" name="system.attack.label" value="{{source.system.attack.label}}" />
</div>
<div>
<label>{{localize "MGNE.Common.Damage"}}</label>
<input type="text" name="system.attack.damage" value="{{source.system.attack.damage}}" />
</div>
<div class="inline-buttons">
<button type="button" class="rollable" data-roll-type="profile-attack">{{localize "MGNE.Common.Attack"}}</button>
<button type="button" class="rollable" data-roll-type="profile-damage">{{localize "MGNE.Common.Damage"}}</button>
<button type="button" class="rollable" data-roll-type="morale">{{localize "MGNE.Common.Morale"}}</button>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Attack"}}</h3>
</div>
</fieldset>
<fieldset>
<div class="grid three">
<div>
<label>{{localize "MGNE.Common.Label"}}</label>
<input type="text" name="system.attack.label" value="{{source.system.attack.label}}" />
</div>
<div>
<label>{{localize "MGNE.Common.Damage"}}</label>
<input type="text" name="system.attack.damage" value="{{source.system.attack.damage}}" />
</div>
<div class="inline-buttons">
<button type="button" class="rollable" data-roll-type="profile-attack">{{localize "MGNE.Common.Attack"}}</button>
<button type="button" class="rollable" data-roll-type="profile-damage">{{localize "MGNE.Common.Damage"}}</button>
<button type="button" class="rollable" data-roll-type="morale">{{localize "MGNE.Common.Morale"}}</button>
</div>
</div>
</fieldset>
</div>
<div class="grid three">
<div>
@@ -80,24 +96,40 @@
</div>
<div class="grid two">
<fieldset>
<legend>{{localize "MGNE.Companion.AdventuringBehavior"}}</legend>
{{formInput systemFields.adventuringBehavior enriched=(lookup enrichedFields "adventuringBehavior") value=system.adventuringBehavior name="system.adventuringBehavior" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "MGNE.Companion.CombatBehavior"}}</legend>
{{formInput systemFields.combatBehavior enriched=(lookup enrichedFields "combatBehavior") value=system.combatBehavior name="system.combatBehavior" toggled=true}}
</fieldset>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Companion.AdventuringBehavior"}}</h3>
</div>
<fieldset>
{{formInput systemFields.adventuringBehavior enriched=(lookup enrichedFields "adventuringBehavior") value=system.adventuringBehavior name="system.adventuringBehavior" toggled=true}}
</fieldset>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Companion.CombatBehavior"}}</h3>
</div>
<fieldset>
{{formInput systemFields.combatBehavior enriched=(lookup enrichedFields "combatBehavior") value=system.combatBehavior name="system.combatBehavior" toggled=true}}
</fieldset>
</div>
</div>
<div class="grid two">
<fieldset>
<legend>{{localize "MGNE.Common.Description"}}</legend>
{{formInput systemFields.description enriched=(lookup enrichedFields "description") value=system.description name="system.description" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "MGNE.Common.Notes"}}</legend>
{{formInput systemFields.notes enriched=(lookup enrichedFields "notes") value=system.notes name="system.notes" toggled=true}}
</fieldset>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Description"}}</h3>
</div>
<fieldset>
{{formInput systemFields.description enriched=(lookup enrichedFields "description") value=system.description name="system.description" toggled=true}}
</fieldset>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Notes"}}</h3>
</div>
<fieldset>
{{formInput systemFields.notes enriched=(lookup enrichedFields "notes") value=system.notes name="system.notes" toggled=true}}
</fieldset>
</div>
</div>
</section>
+82 -54
View File
@@ -3,30 +3,40 @@
<img class="actor-portrait" src="{{actor.img}}" data-edit="img" data-action="editImage" alt="{{actor.name}}" />
<div class="header-fields">
<input type="text" name="name" value="{{source.name}}" />
<div class="resource-bar">
<div class="resource-box">
<label>{{localize "MGNE.Common.HP"}}</label>
<div class="resource-inline">
<input type="number" name="system.hp.value" value="{{source.system.hp.value}}" />
<span>/</span>
<input type="number" name="system.hp.max" value="{{source.system.hp.max}}" />
<div class="grid three">
<div class="resource-box resource-box-track resource-box-compact resource-box-inline resource-box-inline-track">
<label class="resource-label-accent">{{localize "MGNE.Common.HP"}}</label>
<div class="resource-track">
<div class="numeric-cluster">
<span class="numeric-caption numeric-caption-strong">{{localize "MGNE.Common.Current"}}</span>
<input class="numeric-input" type="number" name="system.hp.value" value="{{source.system.hp.value}}" />
</div>
<span class="track-separator">/</span>
<div class="numeric-cluster">
<span class="numeric-caption numeric-caption-strong">{{localize "MGNE.Common.Max"}}</span>
<input class="numeric-input" type="number" name="system.hp.max" value="{{source.system.hp.max}}" />
</div>
</div>
</div>
<div class="resource-box">
<div class="resource-box resource-box-compact">
<label>{{localize "MGNE.Common.Morale"}}</label>
<select name="system.morale">
{{#each selectOptions.moraleValues}}
<option value="{{value}}" {{#if (isEqual ../source.system.morale value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="numeric-pill">
<select class="compact-select" name="system.morale">
{{#each selectOptions.moraleValues}}
<option value="{{value}}" {{#if (isEqual ../source.system.morale value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
<div class="resource-box">
<div class="resource-box resource-box-compact">
<label>{{localize "MGNE.Common.ArmorDie"}}</label>
<select name="system.armor.die">
{{#each selectOptions.armorDice}}
<option value="{{value}}" {{#if (isEqual ../source.system.armor.die value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<div class="numeric-pill">
<select class="compact-select" name="system.armor.die">
{{#each selectOptions.armorDice}}
<option value="{{value}}" {{#if (isEqual ../source.system.armor.die value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
</div>
</div>
@@ -35,48 +45,66 @@
<div class="ability-grid">
{{#each abilityList}}
<div class="ability-card">
<label class="rollable" data-roll-type="ability" data-ability-id="{{id}}">{{label}}</label>
<select name="system.abilities.{{id}}.value">
{{#each @root.selectOptions.abilityValues}}
<option value="{{value}}" {{#if (isEqual ../value value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
<label class="rollable ability-label" data-roll-type="ability" data-ability-id="{{id}}">{{label}}</label>
<div class="ability-score">
<select class="numeric-input ability-input" name="system.abilities.{{id}}.value">
{{#each @root.selectOptions.abilityValues}}
<option value="{{value}}" {{#if (isEqual ../value value)}}selected{{/if}}>{{label}}</option>
{{/each}}
</select>
</div>
</div>
{{/each}}
</div>
<fieldset>
<legend>{{localize "MGNE.Common.Attack"}}</legend>
<div class="grid three">
<div>
<label>{{localize "MGNE.Common.Label"}}</label>
<input type="text" name="system.attack.label" value="{{source.system.attack.label}}" />
</div>
<div>
<label>{{localize "MGNE.Common.Damage"}}</label>
<input type="text" name="system.attack.damage" value="{{source.system.attack.damage}}" />
</div>
<div class="inline-buttons">
<button type="button" class="rollable" data-roll-type="profile-attack">{{localize "MGNE.Common.Attack"}}</button>
<button type="button" class="rollable" data-roll-type="profile-damage">{{localize "MGNE.Common.Damage"}}</button>
<button type="button" class="rollable" data-roll-type="morale">{{localize "MGNE.Common.Morale"}}</button>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Attack"}}</h3>
</div>
</fieldset>
<div class="grid two">
<fieldset>
<legend>{{localize "MGNE.Common.Description"}}</legend>
{{formInput systemFields.description enriched=(lookup enrichedFields "description") value=system.description name="system.description" toggled=true}}
</fieldset>
<fieldset>
<legend>{{localize "MGNE.Creature.Special"}}</legend>
{{formInput systemFields.special enriched=(lookup enrichedFields "special") value=system.special name="system.special" toggled=true}}
<div class="grid three">
<div>
<label>{{localize "MGNE.Common.Label"}}</label>
<input type="text" name="system.attack.label" value="{{source.system.attack.label}}" />
</div>
<div>
<label>{{localize "MGNE.Common.Damage"}}</label>
<input type="text" name="system.attack.damage" value="{{source.system.attack.damage}}" />
</div>
<div class="inline-buttons">
<button type="button" class="rollable" data-roll-type="profile-attack">{{localize "MGNE.Common.Attack"}}</button>
<button type="button" class="rollable" data-roll-type="profile-damage">{{localize "MGNE.Common.Damage"}}</button>
<button type="button" class="rollable" data-roll-type="morale">{{localize "MGNE.Common.Morale"}}</button>
</div>
</div>
</fieldset>
</div>
<fieldset>
<legend>{{localize "MGNE.Common.Notes"}}</legend>
{{formInput systemFields.notes enriched=(lookup enrichedFields "notes") value=system.notes name="system.notes" toggled=true}}
</fieldset>
<div class="grid two">
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Description"}}</h3>
</div>
<fieldset>
{{formInput systemFields.description enriched=(lookup enrichedFields "description") value=system.description name="system.description" toggled=true}}
</fieldset>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Creature.Special"}}</h3>
</div>
<fieldset>
{{formInput systemFields.special enriched=(lookup enrichedFields "special") value=system.special name="system.special" toggled=true}}
</fieldset>
</div>
</div>
<div class="inventory-section">
<div class="inventory-header">
<h3>{{localize "MGNE.Common.Notes"}}</h3>
</div>
<fieldset>
{{formInput systemFields.notes enriched=(lookup enrichedFields "notes") value=system.notes name="system.notes" toggled=true}}
</fieldset>
</div>
</section>