ApplicationV2 GM Toolbox and GM Monitor

This commit is contained in:
Litasa
2025-05-01 12:05:54 +00:00
committed by Vlyan
parent 79979acfc1
commit 9d8c1431be
18 changed files with 958 additions and 575 deletions

View File

@@ -0,0 +1,55 @@
<section class="tab standard-form scrollable {{tabs.army.cssClass}}"
data-tab="army" data-group="{{tabs.army.group}}">
<table>
<thead>
<th class="img"></th>
<th class="name">{{localize 'l5r5e.sheets.name'}}</th>
<th class="warlord">{{localize 'l5r5e.army.warlord'}}</th>
<th class="casualties"><i class="fas fa-user-injured" title="{{localize 'l5r5e.army.battle_readiness.casualties'}}"></i> / <i class="fas fa-fist-raised" title="{{localize 'l5r5e.army.battle_readiness.strength'}}"></i></th>
<th class="panic"><i class="fas fa-ghost" title="{{localize 'l5r5e.army.battle_readiness.panic'}}"></i> / <i class="fas fa-user-friends" title="{{localize 'l5r5e.army.battle_readiness.discipline'}}"></i></th>
<th class="commander">{{localize 'l5r5e.army.commander'}} {{localize 'l5r5e.gm.monitor.honor_glory_status'}}</th>
<th class=""></th>
<th class=""></th>
</thead>
<tbody>
{{#each armies as |army|}}
<tr>
<td><img data-actor-uuid="{{army.uuid}}" draggable="true" class="profile actor-profile dragndrop-actor-uuid pointer" title="{{army.name}}" src="{{army.img}}"></td>
<td><a data-uuid="{{army.uuid}}" class="open-sheet-from-uuid">{{army.name}}</a></td>
<td>
{{#if army.system.warlord_actor_id}}
<a data-actor-id="{{army.system.warlord_actor_id}}" class="open-sheet-from-uuid">{{army.system.warlord}}</a>
{{else}}
{{army.system.warlord}}
{{/if}}
</td>
<td>
<a title="{{localize 'l5r5e.gm.monitor.mouse_control'}}" data-actor-uuid="{{army.uuid}}" data-action="modify_casualties" class="actor-modify-control">
<span class="{{#ifCond army.system.battle_readiness.casualties_strength.value '>' army.system.battle_readiness.casualties_strength.max}}badvalue{{/ifCond}}">{{army.system.battle_readiness.casualties_strength.value}}</span>
/ {{army.system.battle_readiness.casualties_strength.max}}
</a>
</td>
<td>
<a title="{{localize 'l5r5e.gm.monitor.mouse_control'}}" data-actor-uuid="{{army.uuid}}" data-action="modify_panic" class="actor-modify-control">
<span class="{{#ifCond army.system.battle_readiness.panic_discipline.value '>' army.system.battle_readiness.panic_discipline.max}}badvalue{{/ifCond}}">{{army.system.battle_readiness.panic_discipline.value}}</span>
/ {{army.system.battle_readiness.panic_discipline.max}}
</a>
</td>
<td>
{{#if army.system.commander_actor_id}}
<a data-actor-id="{{army.system.commander_actor_id}}" class="open-sheet-from-uuid">{{army.system.commander}}</a>
{{else}}
{{army.system.commander}}
{{/if}}
<br>
<span class="{{#ifCond army.system.commander_standing.honor '>' 64}}goodvalue{{/ifCond}}{{#ifCond army.system.commander_standing.honor '<' 30}}badvalue{{/ifCond}}">{{army.system.commander_standing.honor}}</span>
/ <span class="{{#ifCond army.system.commander_standing.glory '>' 64}}goodvalue{{/ifCond}}{{#ifCond army.system.commander_standing.glory '<' 20}}badvalue{{/ifCond}}">{{army.system.commander_standing.glory}}</span>
/ {{army.system.commander_standing.status}}
</td>
<td><i data-actor-uuid="{{army.uuid}}" data-type="global" class="fas fa-question-circle actor-infos-control"></i></td>
<td><span data-actor-uuid="{{army.uuid}}" data-action="remove_actor" class="actor-remove-control pointer" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></span></td>
</tr>
{{/each}}
</tbody>
</table>
</section>

View File

@@ -0,0 +1,85 @@
<section class="tab standard-form scrollable {{tabs.character.cssClass}}"
data-tab="character" data-group="{{tabs.character.group}}">
<table>
<thead>
<th class="img"></th>
<th class="name">{{localize 'l5r5e.sheets.name'}}</th>
<th class="stance"><i class="i_earth"></i></th>
<th class="prepared"><i class="fas prepared-icon-true"></i></th>
<th class="weapon"><i class="fas fa-fan"></i></th>
<th class="armor"><i class="fas fa-user-shield"></i></th>
<th class="rank">{{localize 'l5r5e.sheets.rank'}}</th>
<th class="fatigue">{{localize 'l5r5e.attributes.fatigue'}}</th>
<th class="strife">{{localize 'l5r5e.attributes.strife'}}</th>
<th class="vigilance">{{localize 'l5r5e.gm.monitor.focus_vigilance'}}</th>
<th class="void"><i class="i_void"></i></th>
<th class=""></th>
<th class=""></th>
</thead>
<tbody>
{{#each characters as |actor|}}
<tr>
<td><img data-actor-uuid="{{actor.uuid}}" draggable="true" class="profile actor-profile dragndrop-actor-uuid pointer" title="{{actor.name}}" src="{{actor.img}}"></td>
<td>
<a data-uuid="{{actor.uuid}}" class="open-sheet-from-uuid">{{actor.name}}</a>
{{#if actor.system.attitude}}<p>({{actor.system.attitude}})</p>{{/if}}
</td>
<td>
<a data-actor-uuid="{{actor.uuid}}" class="actor-modify-control" data-action="change_stance">
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.stance'}} ({{localizeRing actor.system.stance}} - {{lookup actor.system.rings actor.system.stance}})</h2>{{localizeStanceTip actor.system.stance}}" class="i_{{actor.system.stance}} actor-infos-control"></i>
</a>
</td>
<td>
<a data-actor-uuid="{{actor.uuid}}" class="actor-modify-control" data-action="toggle_prepared">
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.initiative.title'}} : {{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=actor.isPrepared)}}</h2>" class="fa fas prepared-icon-{{actor.isPrepared}} {{#ifCond actor.isPrepared '==' 'false'}}badvalue{{/ifCond}} actor-infos-control"></i>
</a>
</td>
<td>{{#if actor.haveWeaponEquipped}}<i data-type="weapons" data-actor-uuid="{{actor.uuid}}" class="fas fa-fan actor-infos-control {{#if actor.haveWeaponReadied}}badvalue{{/if}}"></i>{{/if}}</td>
<td>{{#if actor.haveArmorEquipped}}<i data-type="armors" data-actor-uuid="{{actor.uuid}}" class="fas fa-user-shield actor-infos-control"></i>{{/if}}</td>
<td>
<p>
{{#if actor.system.identity.school_rank}}
{{actor.system.identity.school_rank}}
{{else}}
<i class="i_bushi" title="{{localize 'l5r5e.social.npc.combat'}}"></i> {{actor.system.conflict_rank.martial}} <i class="i_courtier" title="{{localize 'l5r5e.social.npc.intrigue'}}"></i> {{actor.system.conflict_rank.social}}
{{/if}}
</p>
<p>
{{#if actor.system.rings_affinities}}
{{#each actor.system.rings_affinities as |ringValue ringId|}}
{{#if ringValue}}
<i class="i_{{ringId}}" title="{{localizeRing ringId}}"></i> {{ringValue}}
{{/if}}
{{/each}}
{{/if}}
</p>
</td>
<td>
<a title="{{localize 'l5r5e.gm.monitor.mouse_control'}}" data-actor-uuid="{{actor.uuid}}" data-action="modify_fatigue" class="actor-modify-control">
<span class="{{#ifCond actor.system.fatigue.value '>' actor.system.fatigue.max}}badvalue{{/ifCond}}">{{actor.system.fatigue.value}}</span>
/ {{actor.system.fatigue.max}}
</a>
</td>
<td>
<a title="{{localize 'l5r5e.gm.monitor.mouse_control'}}" data-actor-uuid="{{actor.uuid}}" data-action="modify_strife" class="actor-modify-control">
<span class="{{#ifCond actor.system.strife.value '>' actor.system.strife.max}}badvalue{{/ifCond}}">{{actor.system.strife.value}}</span>
/ {{actor.system.strife.max}}
</a>
</td>
<td>
{{actor.system.focus}}
/ {{#if actor.system.is_compromised}}<span class="badvalue">1</span>{{else}}{{actor.system.vigilance}}{{/if}}
</td>
<td>
<a title="{{localize 'l5r5e.gm.monitor.mouse_control'}}" data-actor-uuid="{{actor.uuid}}" data-action="modify_voidPoint" class="actor-modify-control">
{{actor.system.void_points.value}}
/ {{actor.system.void_points.max}}
</a>
</td>
<td><i data-actor-uuid="{{actor.uuid}}" data-type="global" class="fas fa-question-circle actor-infos-control"></i></td>
<td><span data-actor-uuid="{{actor.uuid}}" class="actor-remove-control pointer" data-action="remove_actor" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></span></td>
</tr>
{{/each}}
</tbody>
</table>
</section>

View File

@@ -0,0 +1,9 @@
{{!-- Equipped Armors --}}
<h2>{{localize 'l5r5e.armors.title'}}</h2>
<section>
<ul>
{{#each armors as |armor|}}
<li>{{{armor}}}</li>
{{/each}}
</ul>
</section>

View File

@@ -0,0 +1,45 @@
<section>
<h2>{{localize 'TYPES.Actor.army'}}</h2>
<ul>
{{!-- warlord --}}
<li><b>{{localize 'l5r5e.army.allies_backers'}}</b> : {{actorData.system.allies_backers}}</li>
<li><b>{{localize 'l5r5e.army.purpose_mustering'}}</b> : {{actorData.system.purpose_mustering}}</li>
{{!-- commander --}}
<li><b>{{localize 'l5r5e.army.commander_abilities'}}</b> : {{actorData.system.commander_abilities}}</li>
<li><b>{{localize 'l5r5e.army.army_abilities'}}</b> : {{{actorData.enrichedHtml.army_abilities}}}</li>
</ul>
{{!-- description --}}
<p>{{{actorData.enrichedHtml.description}}}</p>
{{!-- Cohorts --}}
{{#if actorData.splitItemsList.army_cohort}}
<h2>{{localize 'l5r5e.army.cohort.tab'}}</h2>
<ul>
{{#each actorData.splitItemsList.army_cohort as |cohort|}}
<li>
<b>{{cohort.name}} {{#if cohort.system.leader}}({{cohort.system.leader}}){{/if}}</b>
<br>
<i class="fas fa-user-injured" title="{{localize 'l5r5e.army.battle_readiness.casualties'}}"> {{cohort.system.battle_readiness.casualties_strength.value}}</i>
<i class="fas fa-fist-raised" title="{{localize 'l5r5e.army.battle_readiness.strength'}}"> {{cohort.system.battle_readiness.casualties_strength.max}}</i>
<i class="fas fa-ghost" title="{{localize 'l5r5e.army.battle_readiness.panic'}}"> {{cohort.system.battle_readiness.panic_discipline.value}}</i>
<i class="fas fa-user-friends" title="{{localize 'l5r5e.army.battle_readiness.discipline'}}"> {{cohort.system.battle_readiness.panic_discipline.max}}</i>
</li>
{{/each}}
</ul>
{{/if}}
{{!-- Fortifications --}}
{{#if actorData.splitItemsList.army_fortification}}
<h2>{{localize 'l5r5e.army.fortification.tab'}}</h2>
<ul>
{{#each actorData.splitItemsList.army_fortification as |fortification|}}
<li>
<b>{{fortification.name}}</b>
<i class="fas fa-skull" title="{{localize 'l5r5e.army.fortification.difficulty'}}"> {{fortification.system.difficulty}}</i>
<i class="fas fa-dungeon" title="{{localize 'l5r5e.army.fortification.attrition_reduction'}}"> {{fortification.system.attrition_reduction}}</i>
</li>
{{/each}}
</ul>
{{/if}}
</section>

View File

@@ -0,0 +1,29 @@
<section>
<ul>
{{!-- Ninjo/Giri --}}
<li><b>{{localize 'l5r5e.social.ninjo'}}</b> : {{actorData.system.social.ninjo}}</li>
<li><b>{{localize 'l5r5e.social.giri'}}</b> : {{actorData.system.social.giri}}</li>
{{!-- Bushido Tenet --}}
<li><b>{{localize 'l5r5e.social.bushido_tenets.paramount'}}</b> : {{actorData.system.social.bushido_tenets.paramount}}</li>
<li><b>{{localize 'l5r5e.social.bushido_tenets.less_significant'}}</b> : {{actorData.system.social.bushido_tenets.less_significant}}</li>
{{!-- Peculiarities --}}
<li><b>{{localize 'l5r5e.social.npc.advantages'}}</b> : {{advantages}}</li>
<li><b>{{localize 'l5r5e.social.npc.disadvantages'}}</b> : {{disadvantages}}</li>
{{!-- Honor/Glory/Status --}}
<li><b>{{localize 'l5r5e.social.honor'}}</b> : <span class="{{#ifCond actorData.system.social.honor '>' 64}}goodvalue{{/ifCond}}{{#ifCond actorData.system.social.honor '<' 30}}badvalue{{/ifCond}}">{{actorData.system.social.honor}}</span></li>
<li><b>{{localize 'l5r5e.social.glory'}}</b> : <span class="{{#ifCond actorData.system.social.glory '>' 64}}goodvalue{{/ifCond}}{{#ifCond actorData.system.social.glory '<' 20}}badvalue{{/ifCond}}">{{actorData.system.social.glory}}</span></li>
<li><b>{{localize 'l5r5e.social.status'}}</b> : {{actorData.system.social.status}}</li>
</ul>
{{#ifCond actor_type "==" "character"}}
{{!-- 20Q --}}
<ul>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part5.q14{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step14.first_sight}}</li>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part5.q15{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step15.stress}}</li>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part7.q20{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step20.death}}</li>
</ul>
{{/ifCond}}
<p>{{{actorData.enrichedHtml.description}}}</p>
</section>

View File

@@ -0,0 +1,21 @@
{{#if readied}}
<h2>{{localize 'l5r5e.weapons.readied'}}</h2>
<section>
<ul>
{{#each readied as |weapon|}}
<li>{{{weapon}}}</li>
{{/each}}
</ul>
</section>
{{/if}}
{{#if sheathed}}
<h2>{{localize 'l5r5e.weapons.sheathed'}}</h2>
<section>
<ul>
{{#each sheathed as |weapon|}}
<li>{{{weapon}}}</li>
{{/each}}
</ul>
</section>
{{/if}}