Update actor sheet

This commit is contained in:
2025-12-20 00:09:42 +01:00
parent 65dfb3ddff
commit 189b03ca91
24 changed files with 4669 additions and 1791 deletions
+287 -450
View File
@@ -1,461 +1,298 @@
<section
class="character-main character-main-{{ifThen isPlayMode 'play' 'edit'}}"
>
{{log "character-main" this}}
<fieldset>
<legend>{{localize "PRISMRPG.Label.pc"}}</legend>
<div class="character-pc character-pc-{{ifThen isPlayMode 'play' 'edit'}}">
<div class="character-left">
<div class="character-left-image">
<img
class="character-img"
src="{{actor.img}}"
data-edit="img"
data-action="editImage"
data-tooltip="{{actor.name}}"
/>
</div>
<fieldset class="">
<div class="flexrow character-hp">
<span class="name">{{localize "PRISMRPG.Label.HP"}}</span>
{{formInput
systemFields.hp.fields.value
value=system.hp.value
disabled=isPlayMode
classes="character-hp-value"
}}
&nbsp;/&nbsp;
{{formInput
systemFields.hp.fields.max
value=system.hp.max
disabled=isPlayMode
classes="character-hp-value"
}}
</div>
<div class="flexrow character-hp">
<span class="name">{{localize "PRISMRPG.Label.grit"}}</span>
{{formInput
systemFields.grit.fields.current
value=system.grit.current
disabled=isPlayMode
classes="character-hp"
}}
<span class="name">{{localize "PRISMRPG.Label.earned"}}</span>
{{formInput
systemFields.grit.fields.earned
value=system.grit.earned
disabled=isPlayMode
classes="character-hp"
}}
</div>
<div class="flexrow character-hp">
<span class="name">{{localize "PRISMRPG.Label.luck"}}</span>
{{formInput
systemFields.luck.fields.current
value=system.luck.current
disabled=isPlayMode
classes="character-hp"
}}
<span class="name">{{localize "PRISMRPG.Label.earned"}}</span>
{{formInput
systemFields.luck.fields.earned
value=system.luck.earned
disabled=isPlayMode
classes="character-hp"
}}
</div>
<div class="flexrow">
<span class="">{{localize
"PRISMRPG.Label.damageResistanceShort"
}}</span>
{{formInput
systemFields.hp.fields.damageResistance
value=system.hp.fields.damageResistance
disabled=isPlayMode
classes="character-hp"
}}
</div>
</fieldset>
<section class="character-main-v2">
{{log "character-main-v2" this}}
<div class="character-sheet-wrapper">
{{! Character Header with Name }}
<div class="character-header">
<div class="character-name-banner">
{{formInput
fields.name
value=source.name
rootId=partId
disabled=isPlayMode
placeholder="Character Name"
}}
</div>
<div class="character-right">
<div class="character-name">
{{formInput
fields.name
value=source.name
rootId=partId
disabled=isPlayMode
}}
<a
class="control"
data-action="toggleSheet"
data-tooltip="PRISMRPG.ToggleSheet"
data-tooltip-direction="UP"
>
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
</a>
</div>
<fieldset
class="character-characteristics character-characteristics-{{ifThen
isPlayMode
'play'
'edit'
}}"
<div class="character-toggle-controls">
<a
class="control"
data-action="toggleSheet"
data-tooltip="PRISMRPG.ToggleSheet"
data-tooltip-direction="UP"
>
<legend>{{localize "PRISMRPG.Label.Saves"}}</legend>
<div class="character-saves">
<div class="character-save">
<span class="name"><a
class="rollable"
data-roll-type="save"
data-roll-key="will"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.will"}}
</a></span>
{{formField
systemFields.saves.fields.will.fields.value
value=system.saves.will.value
disabled=true
}}
<span class="name">
<a
class="rollable"
data-roll-type="save"
data-roll-key="dodge"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.dodge"}}
</a>
</span>
{{formField
systemFields.saves.fields.dodge.fields.value
value=system.saves.dodge.value
disabled=true
}}
<span class="name">
<a
class="rollable"
data-roll-type="save"
data-roll-key="toughness"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.toughness"}}
</a>
</span>
{{formField
systemFields.saves.fields.toughness.fields.value
value=system.saves.toughness.value
disabled=true
}}
</div>
<div class="character-save">
<span class="name">
<a
class="rollable"
data-roll-type="save"
data-roll-key="contagion"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.contagion"}}
</a>
</span>
{{formField
systemFields.saves.fields.contagion.fields.value
value=system.saves.contagion.value
disabled=true
}}
<span class="name">
<a
class="rollable"
data-roll-type="save"
data-roll-key="poison"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.poison"}}
</a>
</span>
{{formField
systemFields.saves.fields.poison.fields.value
value=system.saves.poison.value
disabled=true
}}
<!--
<span class="name-pain">
<a class="rollable" data-roll-type="save" data-roll-key="pain" data-roll-dice="D12"><i
class="lf-roll-small fa-solid fa-dice-d12"></i>
{{localize "PRISMRPG.Label.saves.pain"}}
</a>
</span>
<span class="name-pain">
<a class="rollable" data-roll-type="save" data-roll-key="pain" data-roll-dice="D20"><i
class="lf-roll-small fa-solid fa-dice-d20"></i>
{{localize "PRISMRPG.Label.saves.pain"}}
</a>
</span>
{{formField systemFields.saves.fields.pain.fields.value value=system.saves.pain.value disabled=true}}
<span data-tooltip="Pain save if wound exceeds">
{{formField systemFields.hp.fields.painDamage value=system.hp.painDamage disabled=isPlayMode
tooltip="Pain Damage"}}
</span>
-->
</div>
</div>
</fieldset>
<fieldset
class="character-characteristics character-characteristics-{{ifThen
isPlayMode
'play'
'edit'
}}"
>
<legend>{{localize "PRISMRPG.Label.Challenges"}}</legend>
<div class="character-challenges">
<div class="character-challenge">
<span class="name"><a
class="rollable"
data-roll-type="challenge"
data-roll-key="str"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>{{localize
"PRISMRPG.Label.challenges.strength"
}}</a></span>
{{formField
systemFields.challenges.fields.str.fields.value
value=system.challenges.str.value
disabled=true
}}
<span class="name"><a
class="rollable"
data-roll-type="challenge"
data-roll-key="agility"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>{{localize
"PRISMRPG.Label.challenges.agility"
}}</a></span>
{{formField
systemFields.challenges.fields.agility.fields.value
value=system.challenges.agility.value
disabled=true
}}
<span class="name"><a
class="rollable"
data-roll-type="challenge"
data-roll-key="dying"
><i class="lf-roll-small fa-solid fa-dice-d20"></i>{{localize
"PRISMRPG.Label.challenges.dying"
}}</a></span>
{{formField
systemFields.challenges.fields.dying.fields.value
value=system.challenges.dying.value
disabled=true
}}
</div>
</div>
</fieldset>
<fieldset
class="character-characteristics character-characteristics-{{ifThen
isPlayMode
'play'
'edit'
}}"
>
<legend>{{localize "PRISMRPG.Label.Movement"}}</legend>
<div class="character-movements">
<div class="character-movement">
<span class="name">{{localize
"PRISMRPG.Label.movement.walk"
}}</span>
{{formField
systemFields.movement.fields.walk
value=system.movement.walk
disabled=isPlayMode
}}
<span class="name">{{localize
"PRISMRPG.Label.movement.jog"
}}</span>
{{formField
systemFields.movement.fields.jog
value=system.movement.jog
disabled=isPlayMode
}}
<span class="name">{{localize
"PRISMRPG.Label.movement.run"
}}</span>
{{formField
systemFields.movement.fields.run
value=system.movement.run
disabled=isPlayMode
}}
<span class="name">{{localize
"PRISMRPG.Label.movement.sprint"
}}</span>
{{formField
systemFields.movement.fields.sprint
value=system.movement.sprint
disabled=isPlayMode
}}
</div>
<div class="character-movement">
<span class="name">{{localize
"PRISMRPG.Label.movement.jumpBroad"
}}</span>
{{formField
systemFields.jump.fields.broad
value=system.jump.broad
disabled=isPlayMode
}}
<span class="name">{{localize
"PRISMRPG.Label.movement.jumpRunning"
}}</span>
{{formField
systemFields.jump.fields.running
value=system.jump.running
disabled=isPlayMode
}}
<span class="name">{{localize
"PRISMRPG.Label.movement.jumpVertical"
}}</span>
{{formField
systemFields.jump.fields.vertical
value=system.jump.vertical
disabled=isPlayMode
}}
</div>
</div>
</fieldset>
<i class="fa-solid fa-user-{{ifThen isPlayMode 'lock' 'pen'}}"></i>
</a>
</div>
</div>
</fieldset>
<fieldset
class="character-characteristics character-characteristics-{{ifThen
isPlayMode
'play'
'edit'
}}"
>
<legend>{{localize "PRISMRPG.Label.characteristics"}}</legend>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.str"}}</span>
{{formField
systemFields.characteristics.fields.str.fields.value
value=system.characteristics.str.value
disabled=isPlayMode
data-char-id="str"
}}
{{formField
systemFields.characteristics.fields.str.fields.percent
value=system.characteristics.str.percent
disabled=isPlayMode
type="number"
}}
</div>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.int"}}</span>
{{formField
systemFields.characteristics.fields.int.fields.value
value=system.characteristics.int.value
disabled=isPlayMode
data-char-id="int"
}}
<div class="character-main-grid">
{{! Left Column - Portrait, Attributes & HP }}
<div class="character-left-column">
{{! Portrait + HP column }}
<div class="portrait-hp-column">
{{! Portrait }}
<div class="character-portrait">
<img
class="character-img"
src="{{actor.img}}"
data-edit="img"
data-action="editImage"
data-tooltip="{{actor.name}}"
/>
</div>
{{formField
systemFields.characteristics.fields.int.fields.percent
value=system.characteristics.int.percent
disabled=isPlayMode
type="number"
}}
</div>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.wis"}}</span>
{{formField
systemFields.characteristics.fields.wis.fields.value
value=system.characteristics.wis.value
disabled=isPlayMode
data-char-id="wis"
}}
{{formField
systemFields.characteristics.fields.wis.fields.percent
value=system.characteristics.wis.percent
disabled=isPlayMode
type="number"
}}
</div>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.dex"}}</span>
{{formField
systemFields.characteristics.fields.dex.fields.value
value=system.characteristics.dex.value
disabled=isPlayMode
data-char-id="wis"
}}
{{formField
systemFields.characteristics.fields.dex.fields.percent
value=system.characteristics.dex.percent
disabled=isPlayMode
type="number"
}}
</div>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.con"}}</span>
{{formField
systemFields.characteristics.fields.con.fields.value
value=system.characteristics.con.value
disabled=isPlayMode
data-char-id="con"
}}
{{formField
systemFields.characteristics.fields.con.fields.percent
value=system.characteristics.con.percent
disabled=isPlayMode
type="number"
}}
</div>
<div class="character-characteristic">
<span>{{localize "PRISMRPG.Label.cha"}}</span>
{{formField
systemFields.characteristics.fields.cha.fields.value
value=system.characteristics.cha.value
disabled=isPlayMode
data-char-id="cha"
}}
{{formField
systemFields.characteristics.fields.cha.fields.percent
value=system.characteristics.cha.percent
disabled=isPlayMode
type="number"
}}
</div>
</fieldset>
{{!-- Sub-Attributes (Prism RPG) --}}
<fieldset
class="character-subattributes character-subattributes-{{ifThen
isPlayMode
'play'
'edit'
}}"
>
<legend>{{localize "PRISMRPG.Label.subAttributes"}}</legend>
<div class="subattributes-grid">
{{#each config.SUB_ATTRIBUTES as |subAttr|}}
<div class="character-subattribute" data-tooltip="{{localize subAttr.description}}">
<span class="subattr-label">{{localize subAttr.label}}</span>
<span class="subattr-value">{{lookup (lookup ../system.subAttributes subAttr.id) 'value'}}</span>
<span class="subattr-parents">({{#each subAttr.parents}}{{localize (concat "PRISMRPG.Label." this)}}{{#unless @last}}/{{/unless}}{{/each}})</span>
{{! HP Shields (3 shields) - Below portrait }}
<div class="hp-shields-section">
<div class="hp-shields">
<div class="hp-item">
<div class="hp-label">HP</div>
<div class="hp-value">
{{formInput
systemFields.hp.fields.value
value=system.hp.value
disabled=isPlayMode
}}
</div>
<div class="hp-separator">/</div>
<div class="hp-max">
{{formInput
systemFields.hp.fields.max
value=system.hp.max
disabled=isPlayMode
}}
</div>
</div>
<div class="hp-item">
<div class="hp-label">MAGIC</div>
<div class="hp-value">
{{formInput
systemFields.magicPoints.fields.value
value=system.magicPoints.value
disabled=isPlayMode
}}
</div>
<div class="hp-separator">/</div>
<div class="hp-max">
{{formInput
systemFields.magicPoints.fields.max
value=system.magicPoints.max
disabled=isPlayMode
}}
</div>
</div>
<div class="hp-item">
<div class="hp-label">ARMOR</div>
<div class="hp-value">
{{formInput
systemFields.armorPoints.fields.value
value=system.armorPoints.value
disabled=isPlayMode
}}
</div>
<div class="hp-separator">/</div>
<div class="hp-max">
{{formInput
systemFields.armorPoints.fields.max
value=system.armorPoints.max
disabled=isPlayMode
}}
</div>
</div>
</div>
</div>
</div>
{{/each}}
{{! Core Attributes (STR, DEX, CON, INT, WIS, CHA) }}
<div class="character-attributes">
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="str">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
STR
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.str.fields.value
value=system.characteristics.str.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.str.fields.value
value=system.saves.str.value
disabled=true
}}
</div>
</div>
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="dex">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
DEX
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.dex.fields.value
value=system.characteristics.dex.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.dex.fields.value
value=system.saves.dex.value
disabled=true
}}
</div>
</div>
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="con">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
CON
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.con.fields.value
value=system.characteristics.con.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.con.fields.value
value=system.saves.con.value
disabled=true
}}
</div>
</div>
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="int">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
INT
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.int.fields.value
value=system.characteristics.int.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.int.fields.value
value=system.saves.int.value
disabled=true
}}
</div>
</div>
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="wis">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
WIS
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.wis.fields.value
value=system.characteristics.wis.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.wis.fields.value
value=system.saves.wis.value
disabled=true
}}
</div>
</div>
<div class="attribute-shield">
<div class="attribute-label">
<a class="rollable" data-roll-type="characteristic" data-roll-key="cha">
<i class="fa-duotone fa-solid fa-dice-d20"></i>
CHA
</a>
</div>
<div class="attribute-value">
{{formInput
systemFields.characteristics.fields.cha.fields.value
value=system.characteristics.cha.value
disabled=isPlayMode
}}
</div>
<div class="attribute-save" data-tooltip="Saving">
{{formInput
systemFields.saves.fields.cha.fields.value
value=system.saves.cha.value
disabled=true
}}
</div>
</div>
</div>
</div>
{{! Right Column - Race, Classes }}
<div class="character-right-column">
{{! Race }}
<div class="race-section">
<div class="race-box">
<h3 class="section-title">Race</h3>
{{#if race}}
<div class="race-item" data-item-id="{{race.id}}" data-item-uuid="{{race.uuid}}">
<img class="item-img" src="{{race.img}}" data-tooltip="{{race.name}}" />
<div class="race-name">{{race.name}}</div>
<div class="controls">
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{race.id}}"
data-item-uuid="{{race.uuid}}"><i class="fas fa-edit"></i></a>
<a data-tooltip="{{localize 'PRISMRPG.Delete'}}" data-action="delete" data-item-id="{{race.id}}"
data-item-uuid="{{race.uuid}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{else}}
<div class="no-race">
<p>{{localize "PRISMRPG.Message.dropRace"}}</p>
</div>
{{/if}}
</div>
</div>
{{! Classes (Three boxes) }}
<div class="classes-section">
{{#each classSlots as |classItem index|}}
<div class="class-box">
<h4 class="class-label">Class {{add index 1}}</h4>
<div class="class-content">
{{#if classItem}}
<div class="class-item" data-item-id="{{classItem.id}}" data-item-uuid="{{classItem.uuid}}">
<img class="item-img" src="{{classItem.img}}" data-tooltip="{{classItem.name}}" />
<div class="class-name">{{classItem.name}}</div>
<div class="controls">
<a data-tooltip="{{localize 'PRISMRPG.Edit'}}" data-action="edit" data-item-id="{{classItem.id}}"
data-item-uuid="{{classItem.uuid}}"><i class="fas fa-edit"></i></a>
<a data-tooltip="{{localize 'PRISMRPG.Delete'}}" data-action="delete" data-item-id="{{classItem.id}}"
data-item-uuid="{{classItem.uuid}}"><i class="fas fa-trash"></i></a>
</div>
</div>
{{else}}
<div class="no-class">
<p>{{localize "PRISMRPG.Message.dropClass"}}</p>
</div>
{{/if}}
</div>
</div>
{{/each}}
</div>
</div>
</div>
</fieldset>
</div>
</div>
</section>