Fix creature sheet: complete TECHNIQUE tab + copper theme
- Fix tabGroups 'stats'→'principal' (tab content was invisible)
- Add 'creature' CSS class to distinguish from personnage sheet
- New header layout: stat cards (Ressources, Vigueur, Combat)
- Rewrite creature template with full TECHNIQUE tab content:
* Attributes with icons and level dropdowns (0-35)
* Vitesse input
* Santé section (Vigueur seuil)
* Actions de combat (Initiative, Monté/Déf. totale, Assommer,
Coup bas, Immobiliser, Repousser, Désengager)
* Adversités section (reuses personnage CSS classes)
- Copper/orange CSS theme for .creature class overrides
- Add .stat-derived-value CSS for non-editable derived stats
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -298,6 +298,22 @@
|
|||||||
border-top: 1px solid rgba(255,255,255,0.06);
|
border-top: 1px solid rgba(255,255,255,0.06);
|
||||||
margin-top: 1px;
|
margin-top: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Valeur dérivée affichée comme texte (non-éditable)
|
||||||
|
.stat-derived-value {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 0.82rem;
|
||||||
|
font-weight: 700;
|
||||||
|
font-family: "Signika", "Arial Narrow", sans-serif;
|
||||||
|
font-variant-numeric: lining-nums tabular-nums;
|
||||||
|
color: #f0dfc0;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1334,16 +1350,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PNJ Sheet - Orange/Copper theme for visual distinction
|
// Creature Sheet - Orange/Copper theme for visual distinction
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet {
|
.fvtt-mournblade-cyd-2-0.actor.creature {
|
||||||
|
|
||||||
// Variant background pour PNJs - teinte orange/cuivre
|
|
||||||
.background-sheet-header-creature {
|
|
||||||
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
|
||||||
border: 2px solid rgba(205, 127, 50, 0.5);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Légère teinte orange/cuivre pour les sections
|
// Légère teinte orange/cuivre pour les sections
|
||||||
.sheet-box {
|
.sheet-box {
|
||||||
@@ -1352,40 +1360,49 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header simplifié pour PNJs
|
// Header stat cards - copper accent
|
||||||
.sheet-header {
|
.stat-card {
|
||||||
flex: 0 0 auto !important;
|
border-color: rgba(180, 100, 20, 0.5);
|
||||||
padding: 0;
|
border-top-color: rgba(205, 127, 50, 0.8);
|
||||||
}
|
|
||||||
|
|
||||||
.profile-img {
|
.stat-card-title {
|
||||||
width: 80px;
|
color: #cd7f32;
|
||||||
height: 80px;
|
border-bottom-color: rgba(180, 100, 20, 0.3);
|
||||||
border-radius: 8px;
|
}
|
||||||
border: 2px solid rgba(205, 127, 50, 0.6);
|
|
||||||
object-fit: cover;
|
|
||||||
cursor: pointer;
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tabs avec teinte orange/cuivre
|
// Tabs avec teinte orange/cuivre
|
||||||
nav.tabs {
|
nav.tabs .item {
|
||||||
.item.active {
|
&.active {
|
||||||
border-bottom-color: rgba(205, 127, 50, 0.8);
|
border-bottom-color: rgba(205, 127, 50, 0.8);
|
||||||
color: #cd7f32;
|
color: #cd7f32;
|
||||||
}
|
}
|
||||||
|
&:hover:not(.active) {
|
||||||
|
color: #d4a060;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Section titles avec teinte orange/cuivre
|
// Section titles avec teinte orange/cuivre
|
||||||
.section-title {
|
.section-title {
|
||||||
color: #b8734d;
|
color: #b8734d;
|
||||||
border-bottom-color: rgba(205, 127, 50, 0.3);
|
border-left-color: rgba(205, 127, 50, 0.8);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Items headers
|
// Items headers
|
||||||
.items-title-bg {
|
.items-title-bg {
|
||||||
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
||||||
border-bottom: 1px solid rgba(205, 127, 50, 0.3);
|
border-bottom: 1px solid rgba(205, 127, 50, 0.3);
|
||||||
|
|
||||||
|
.items-title-text {
|
||||||
|
color: #cd7f32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adversité — copper accent overrides
|
||||||
|
.adversite-section {
|
||||||
|
.adversite-section-title {
|
||||||
|
color: #cd7f32;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export default class MournbladeCYD2CreatureSheet extends MournbladeCYD2ActorShee
|
|||||||
/** @override */
|
/** @override */
|
||||||
static DEFAULT_OPTIONS = {
|
static DEFAULT_OPTIONS = {
|
||||||
...super.DEFAULT_OPTIONS,
|
...super.DEFAULT_OPTIONS,
|
||||||
classes: [...super.DEFAULT_OPTIONS.classes],
|
classes: [...super.DEFAULT_OPTIONS.classes, "creature"],
|
||||||
window: {
|
window: {
|
||||||
...super.DEFAULT_OPTIONS.window,
|
...super.DEFAULT_OPTIONS.window,
|
||||||
title: "SHEETS.Actor.creature",
|
title: "SHEETS.Actor.creature",
|
||||||
@@ -21,7 +21,7 @@ export default class MournbladeCYD2CreatureSheet extends MournbladeCYD2ActorShee
|
|||||||
};
|
};
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
tabGroups = { primary: "stats" };
|
tabGroups = { primary: "principal" };
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
async _prepareContext() {
|
async _prepareContext() {
|
||||||
@@ -39,6 +39,7 @@ export default class MournbladeCYD2CreatureSheet extends MournbladeCYD2ActorShee
|
|||||||
context.talents = foundry.utils.duplicate(actor.getTalents?.() ?? []);
|
context.talents = foundry.utils.duplicate(actor.getTalents?.() ?? []);
|
||||||
context.protectionTotal = actor.getProtectionTotal?.() ?? 0;
|
context.protectionTotal = actor.getProtectionTotal?.() ?? 0;
|
||||||
context.adversiteTotal = (actor.system.adversite?.bleue || 0) + (actor.system.adversite?.rouge || 0) + (actor.system.adversite?.noire || 0);
|
context.adversiteTotal = (actor.system.adversite?.bleue || 0) + (actor.system.adversite?.rouge || 0) + (actor.system.adversite?.noire || 0);
|
||||||
|
context.initiative = context.combat?.initTotal ?? 0;
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2669,6 +2669,20 @@ li {
|
|||||||
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
||||||
margin-top: 1px;
|
margin-top: 1px;
|
||||||
}
|
}
|
||||||
|
.fvtt-mournblade-cyd-2-0.actor .sheet-header .header-stat-cards .stat-card .stat-derived-value {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 0.82rem;
|
||||||
|
font-weight: 700;
|
||||||
|
font-family: "Signika", "Arial Narrow", sans-serif;
|
||||||
|
font-variant-numeric: lining-nums tabular-nums;
|
||||||
|
color: #f0dfc0;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor .sheet-tabs {
|
.fvtt-mournblade-cyd-2-0.actor .sheet-tabs {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 0.5rem;
|
padding: 0 0.5rem;
|
||||||
@@ -3548,40 +3562,38 @@ li {
|
|||||||
background: linear-gradient(135deg, rgba(0, 60, 0, 0.15) 0%, rgba(20, 80, 20, 0.1) 100%);
|
background: linear-gradient(135deg, rgba(0, 60, 0, 0.15) 0%, rgba(20, 80, 20, 0.1) 100%);
|
||||||
border-bottom: 1px solid rgba(34, 139, 34, 0.3);
|
border-bottom: 1px solid rgba(34, 139, 34, 0.3);
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .background-sheet-header-creature {
|
.fvtt-mournblade-cyd-2-0.actor.creature .sheet-box.color-bg-archetype {
|
||||||
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
|
||||||
border: 2px solid rgba(205, 127, 50, 0.5);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .sheet-box.color-bg-archetype {
|
|
||||||
background: linear-gradient(135deg, rgba(60, 30, 0, 0.08) 0%, rgba(80, 40, 0, 0.05) 100%);
|
background: linear-gradient(135deg, rgba(60, 30, 0, 0.08) 0%, rgba(80, 40, 0, 0.05) 100%);
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .sheet-header {
|
.fvtt-mournblade-cyd-2-0.actor.creature .stat-card {
|
||||||
flex: 0 0 auto !important;
|
border-color: rgba(180, 100, 20, 0.5);
|
||||||
padding: 0;
|
border-top-color: rgba(205, 127, 50, 0.8);
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .profile-img {
|
.fvtt-mournblade-cyd-2-0.actor.creature .stat-card .stat-card-title {
|
||||||
width: 80px;
|
color: #cd7f32;
|
||||||
height: 80px;
|
border-bottom-color: rgba(180, 100, 20, 0.3);
|
||||||
border-radius: 8px;
|
|
||||||
border: 2px solid rgba(205, 127, 50, 0.6);
|
|
||||||
object-fit: cover;
|
|
||||||
cursor: pointer;
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet nav.tabs .item.active {
|
.fvtt-mournblade-cyd-2-0.actor.creature nav.tabs .item.active {
|
||||||
border-bottom-color: rgba(205, 127, 50, 0.8);
|
border-bottom-color: rgba(205, 127, 50, 0.8);
|
||||||
color: #cd7f32;
|
color: #cd7f32;
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .section-title {
|
.fvtt-mournblade-cyd-2-0.actor.creature nav.tabs .item:hover:not(.active) {
|
||||||
color: #b8734d;
|
color: #d4a060;
|
||||||
border-bottom-color: rgba(205, 127, 50, 0.3);
|
|
||||||
}
|
}
|
||||||
.fvtt-mournblade-cyd-2-0.actor.pnj-sheet .items-title-bg {
|
.fvtt-mournblade-cyd-2-0.actor.creature .section-title {
|
||||||
|
color: #b8734d;
|
||||||
|
border-left-color: rgba(205, 127, 50, 0.8);
|
||||||
|
}
|
||||||
|
.fvtt-mournblade-cyd-2-0.actor.creature .items-title-bg {
|
||||||
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
background: linear-gradient(135deg, rgba(80, 40, 0, 0.15) 0%, rgba(100, 50, 0, 0.1) 100%);
|
||||||
border-bottom: 1px solid rgba(205, 127, 50, 0.3);
|
border-bottom: 1px solid rgba(205, 127, 50, 0.3);
|
||||||
}
|
}
|
||||||
|
.fvtt-mournblade-cyd-2-0.actor.creature .items-title-bg .items-title-text {
|
||||||
|
color: #cd7f32;
|
||||||
|
}
|
||||||
|
.fvtt-mournblade-cyd-2-0.actor.creature .adversite-section .adversite-section-title {
|
||||||
|
color: #cd7f32;
|
||||||
|
}
|
||||||
.gm-tools-section .grid .item-list .flexrow.item .label-name {
|
.gm-tools-section .grid .item-list .flexrow.item .label-name {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
|
|||||||
@@ -2,27 +2,65 @@
|
|||||||
|
|
||||||
{{!-- Sheet Header --}}
|
{{!-- Sheet Header --}}
|
||||||
<header class="sheet-header">
|
<header class="sheet-header">
|
||||||
<div class="header-fields background-sheet-header">
|
|
||||||
<div class="flexrow">
|
<div class="header-banner">
|
||||||
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
<img class="profile-img" src="{{actor.img}}" data-action="editImage" title="{{actor.name}}" />
|
||||||
<div class="flexcol">
|
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Nom de la créature" /></h1>
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{actor.name}}" placeholder="Name" /></h1>
|
</div>
|
||||||
<div class="flexrow">
|
|
||||||
|
|
||||||
<ul class="item-list alternate-list">
|
<div class="header-stat-cards">
|
||||||
|
|
||||||
<li class="item flexrow ">
|
{{!-- RESSOURCES --}}
|
||||||
<h4 class="item-name-label competence-name">Ressources</h4>
|
<div class="stat-card card-ba">
|
||||||
<input type="text" class="padd-right status-small-label color-class-common item-field-label-short"
|
<div class="stat-card-title">★ Ressources</div>
|
||||||
name="system.ressources.value" value="{{system.ressources.value}}" data-dtype="Number" />
|
<div class="stat-card-content">
|
||||||
</li>
|
<div class="stat-field">
|
||||||
</ul>
|
<label>Valeur</label>
|
||||||
|
<input type="text" name="system.ressources.value" value="{{system.ressources.value}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{!-- VIGUEUR --}}
|
||||||
|
<div class="stat-card card-vigueur">
|
||||||
|
<div class="stat-card-title">♥ Vigueur <span class="stat-sub">({{system.sante.vigueur}})</span></div>
|
||||||
|
<div class="stat-card-content">
|
||||||
|
<div class="stat-field">
|
||||||
|
<label>État</label>
|
||||||
|
<select name="system.sante.etat">
|
||||||
|
{{selectOptions combativiteList selected=system.sante.etat valueAttr="value" nameAttr="value" labelAttr="label"}}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="stat-field">
|
||||||
|
<label>Niveaux</label>
|
||||||
|
<input type="text" name="system.sante.nbcombativite" value="{{system.sante.nbcombativite}}" data-dtype="Number" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- COMBAT --}}
|
||||||
|
<div class="stat-card card-ame">
|
||||||
|
<div class="stat-card-title">⚡ Combat</div>
|
||||||
|
<div class="stat-card-content">
|
||||||
|
<div class="stat-field">
|
||||||
|
<label>Init.</label>
|
||||||
|
<span class="stat-derived-value">{{initiative}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-field">
|
||||||
|
<label>Déf.</label>
|
||||||
|
<span class="stat-derived-value">{{combat.defenseTotal}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="stat-field">
|
||||||
|
<label>Prot.</label>
|
||||||
|
<span class="stat-derived-value">{{protectionTotal}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{!-- Sheet Tab Navigation --}}
|
|
||||||
<hr>
|
<hr>
|
||||||
<nav class="sheet-tabs tabs" data-group="primary">
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
<a class="item" data-tab="principal">Technique</a>
|
<a class="item" data-tab="principal">Technique</a>
|
||||||
@@ -33,23 +71,25 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{{!-- Sheet Body --}}
|
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
|
|
||||||
{{!-- Main Tab --}}
|
{{!-- Technique Tab --}}
|
||||||
<div class="tab principal" data-group="primary" data-tab="principal">
|
<div class="tab principal" data-group="primary" data-tab="principal">
|
||||||
|
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
|
|
||||||
|
{{!-- Colonne gauche : Attributs + Santé + Actions --}}
|
||||||
<div class="sheet-box color-bg-archetype">
|
<div class="sheet-box color-bg-archetype">
|
||||||
|
|
||||||
|
<div class="section-title">Attributs</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
{{#each system.attributs as |attr key|}}
|
{{#each system.attributs as |attr key|}}
|
||||||
<li class="item flexrow " data-attr-key="{{key}}">
|
<li class="item flexrow" data-attr-key="{{key}}">
|
||||||
<img class="item-name-img" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/{{attr.labelnorm}}.webp">
|
<img class="item-name-img" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/{{attr.labelnorm}}.webp">
|
||||||
<span class="item-name-label competence-name item-field-label-medium"><a
|
<span class="item-name-label competence-name item-field-label-medium">
|
||||||
class="roll-attribut">{{attr.label}}</a></span>
|
<a data-action="rollAttribut" data-attr-key="{{key}}" data-tooltip="Jet {{attr.label}}">{{attr.label}}</a>
|
||||||
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
|
</span>
|
||||||
name="system.attributs.{{key}}.value" value="{{attr.value}}" data-dtype="Number">
|
<select class="status-small-label color-class-common competence-niveau"
|
||||||
|
name="system.attributs.{{key}}.value" data-dtype="Number">
|
||||||
{{selectOptions @root.config.listeNiveauCreature selected=attr.value}}
|
{{selectOptions @root.config.listeNiveauCreature selected=attr.value}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
@@ -61,194 +101,157 @@
|
|||||||
value="{{system.vitesse.value}}" data-dtype="Number" />
|
value="{{system.vitesse.value}}" data-dtype="Number" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4 class="item-name-label competence-name">Santé</h4>
|
|
||||||
|
<div class="section-title">Santé</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="label-name item-field-label-medium">Vigueur</label>
|
<label class="label-name item-field-label-medium">Vigueur (seuil)</label>
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short" data-dtype="Number"
|
<input type="text" class="padd-right numeric-input item-field-label-short" data-dtype="Number"
|
||||||
name="system.sante.vigueur" value="{{system.sante.vigueur}}">
|
name="system.sante.vigueur" value="{{system.sante.vigueur}}">
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
|
||||||
<label class="label-name item-field-label-medium">Etat</label>
|
|
||||||
<select class="label-name item-field-label-medium" type="text" name="system.sante.etat"
|
|
||||||
value="{{system.sante.etat}}" data-dtype="Number">
|
|
||||||
{{selectOptions combativiteList selected=system.sante.etat valueAttr="value" nameAttr="value" labelAttr="label"}}
|
|
||||||
</select>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h4 class="item-name-label competence-name">Combat</h4>
|
<div class="section-title">Actions de combat</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<button class="chat-card-button roll-initiative">Initiative (actuelle : {{initiative}} )</button>
|
<button type="button" class="chat-card-button" data-action="rollInitiative">⚡ Initiative ({{initiative}})</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="sheet-box color-bg-archetype">
|
|
||||||
<h4 class="item-name-label competence-name">Adversité</h4>
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
{{#each system.adversite as |adv key|}}
|
|
||||||
<li class="item flexrow" data-adversite="{{key}}">
|
|
||||||
<a class="adversite-modify plus-minus-button" data-adversite-value="-1">-</a>
|
|
||||||
<div class="icon-adversite-container">
|
|
||||||
<img class="icon-adversite" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/gemme_{{key}}.webp">
|
|
||||||
<div class="adversite-text">{{adv}}</div>
|
|
||||||
</div>
|
|
||||||
<a class="adversite-modify plus-minus-button" data-adversite-value="1">+</a>
|
|
||||||
<div class=""> </div>
|
|
||||||
<div class=""> </div>
|
|
||||||
<div class=""> </div>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<label class="label-name item-field-label-long1">Niveaux de combativité</label>
|
|
||||||
<input type="text" class="padd-right numeric-input item-field-label-short" data-dtype="Number"
|
|
||||||
name="system.sante.nbcombativite" value="{{system.sante.nbcombativite}}">
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
|
|
||||||
<li class="item flexrow">
|
|
||||||
<label class="item-field-label-short">Monté?</label>
|
|
||||||
<input type="checkbox" name="system.combat.monte" {{checked system.combat.monte}} />
|
<input type="checkbox" name="system.combat.monte" {{checked system.combat.monte}} />
|
||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-medium">Monté</label>
|
||||||
<label class="item-field-label-medium">Défense totale?</label>
|
|
||||||
<input type="checkbox" name="system.combat.defensetotale" {{checked system.combat.defensetotale}} />
|
<input type="checkbox" name="system.combat.defensetotale" {{checked system.combat.defensetotale}} />
|
||||||
|
<label class="item-field-label-medium">Déf. totale</label>
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<button class="chat-card-button roll-assommer">Assommer</button>
|
<button type="button" class="chat-card-button" data-action="rollAssommer">Assommer</button>
|
||||||
<button class="chat-card-button roll-coup-bas">Coup bas</button>
|
<button type="button" class="chat-card-button" data-action="rollCoupBas">Coup bas</button>
|
||||||
<button class="chat-card-button roll-immobiliser">Immobiliser</button>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="item flexrow">
|
<li class="item flexrow">
|
||||||
<button class="chat-card-button roll-repousser">Repousser</button>
|
<button type="button" class="chat-card-button" data-action="rollImmobiliser">Immobiliser</button>
|
||||||
<button class="chat-card-button roll-desengager">Se désengager</button>
|
<button type="button" class="chat-card-button" data-action="rollRepousser">Repousser</button>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow">
|
||||||
|
<button type="button" class="chat-card-button" data-action="rollDesengager">Se désengager</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{!-- Colonne droite : Adversité --}}
|
||||||
|
<div class="sheet-box color-bg-archetype adversite-section">
|
||||||
|
|
||||||
|
<h4 class="adversite-section-title">Adversités</h4>
|
||||||
|
<div class="adversite-cards">
|
||||||
|
{{#each system.adversite as |adv key|}}
|
||||||
|
<div class="adversite-card adversite-{{key}}" data-adversite="{{key}}">
|
||||||
|
<div class="adversite-card-title">{{upperFirst key}}</div>
|
||||||
|
<img class="adversite-gem" src="systems/fvtt-mournblade-cyd-2-0/assets/icons/gemme_{{key}}.webp">
|
||||||
|
<div class="adversite-value">{{adv}}</div>
|
||||||
|
<div class="adversite-controls">
|
||||||
|
<a data-action="modifyAdversite" class="adv-btn adv-minus" data-adversite-value="-1">−</a>
|
||||||
|
<a data-action="modifyAdversite" class="adv-btn adv-plus" data-adversite-value="1">+</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="adversite-total {{#if adversiteTotal}}adversite-total-nonzero{{/if}}"
|
||||||
|
data-tooltip="Malus soustrait à tous les jets de dés">
|
||||||
|
<span class="adversite-total-label">Malus jets</span>
|
||||||
|
<span class="adversite-total-value">−{{adversiteTotal}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{!-- Competence Tab --}}
|
{{!-- Compétences Tab --}}
|
||||||
<div class="tab competences" data-group="primary" data-tab="competences">
|
<div class="tab competences" data-group="primary" data-tab="competences">
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
|
|
||||||
<div class="sheet-box color-bg-archetype">
|
<div class="sheet-box color-bg-archetype">
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
<h3><label class="items-title-text">Compétences</label></h3>
|
<h3><label class="items-title-text">Compétences</label></h3>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short"><label class="short-label">Niveau</label></span>
|
||||||
<label class="short-label">Niveau</label>
|
|
||||||
</span>
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
</li>
|
</li>
|
||||||
{{#each skills as |skill key|}}
|
{{#each skills as |skill key|}}
|
||||||
<li class="item flexrow " data-item-id="{{skill._id}}" data-item-type="competence">
|
<li class="item flexrow" data-item-id="{{skill._id}}" data-item-type="competence">
|
||||||
<img class="item-name-img" src="{{skill.img}}" />
|
<img class="item-name-img" src="{{skill.img}}" />
|
||||||
|
|
||||||
<div class="flexcol item-name-label">
|
<div class="flexcol item-name-label">
|
||||||
|
<span class="item-name-label competence-name">
|
||||||
<span class="item-name-label competence-name"><a class="roll-competence item-field-label-short"
|
<a data-action="rollCompetence" data-attr-key="tochoose">{{skill.name}}</a>
|
||||||
data-attr-key="tochoose">{{skill.name}}</a></span>
|
</span>
|
||||||
|
|
||||||
<span class="predilection-text">
|
<span class="predilection-text">
|
||||||
{{#each skill.system.predilections as |pred key|}}
|
{{#each skill.system.predilections as |pred key|}}
|
||||||
{{#if (and pred.acquise (not pred.used))}}
|
{{#if (and pred.acquise (not pred.used))}}{{pred.name}}, {{/if}}
|
||||||
{{pred.name}},
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select class="status-small-label color-class-common edit-item-data competence-niveau"
|
||||||
<select class="status-small-label color-class-common edit-item-data competence-niveau" type="text"
|
data-item-field="niveau" data-dtype="Number">
|
||||||
data-item-field="niveau" value="{{skill.system.niveau}}" data-dtype="Number">
|
|
||||||
{{selectOptions @root.config.listeNiveauCreature selected=skill.system.niveau}}
|
{{selectOptions @root.config.listeNiveauCreature selected=skill.system.niveau}}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
{{#if (ne skill.system.attribut1 "none")}}
|
{{#if (ne skill.system.attribut1 "none")}}
|
||||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut1}}">{{upper
|
<button data-action="rollCompetence" class="button-sheet-roll" data-attr-key="{{skill.system.attribut1}}">{{upper skill.system.attribut1}} : {{skill.system.attribut1total}}</button>
|
||||||
skill.system.attribut1}} : {{skill.system.attribut1total}}</button>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (ne skill.system.attribut2 "none")}}
|
{{#if (ne skill.system.attribut2 "none")}}
|
||||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut2}}">{{upper
|
<button data-action="rollCompetence" class="button-sheet-roll" data-attr-key="{{skill.system.attribut2}}">{{upper skill.system.attribut2}} : {{skill.system.attribut2total}}</button>
|
||||||
skill.system.attribut2}} : {{skill.system.attribut2total}}</button>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (ne skill.system.attribut3 "none")}}
|
{{#if (ne skill.system.attribut3 "none")}}
|
||||||
<button class="roll-competence button-sheet-roll" data-attr-key="{{skill.system.attribut3}}">{{upper
|
<button data-action="rollCompetence" class="button-sheet-roll" data-attr-key="{{skill.system.attribut3}}">{{upper skill.system.attribut3}} : {{skill.system.attribut3total}}</button>
|
||||||
skill.system.attribut3}} : {{skill.system.attribut3total}}</button>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
<a class="item-control" data-action="editItem" title="Éditer"><i class="fas fa-edit"></i></a>
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control" data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Talents Tab --}}
|
{{!-- Talents Tab --}}
|
||||||
<div class="tab talents" data-group="primary" data-tab="talents">
|
<div class="tab talents" data-group="primary" data-tab="talents">
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
|
|
||||||
<div class="sheet-box color-bg-archetype">
|
<div class="sheet-box color-bg-archetype">
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow">
|
<li class="item flexrow list-item items-title-bg">
|
||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
<h3><label class="items-title-text">Talents</label></h3>
|
<h3><label class="items-title-text">Talents</label></h3>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-long2"><label class="short-label">Résumé</label></span>
|
||||||
<label class="short-label">Résumé</label>
|
|
||||||
</span>
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-add" data-type="talent" title="Ajouter un Talent"><i
|
<a class="item-control" data-action="createItem" data-type="talent" title="Ajouter un Talent">
|
||||||
class="fas fa-plus"></i></a>
|
<i class="fas fa-plus"></i>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each talents as |talent key|}}
|
{{#each talents as |talent key|}}
|
||||||
<li class="item flexrow " data-item-id="{{talent._id}}" data-item-type="talent">
|
<li class="item flexrow" data-item-id="{{talent._id}}" data-item-type="talent">
|
||||||
<img class="item-name-img" src="{{talent.img}}" />
|
<img class="item-name-img" src="{{talent.img}}" />
|
||||||
<span class="item-name-label competence-name">{{talent.name}}</span>
|
<span class="item-name-label competence-name">{{talent.name}}</span>
|
||||||
<span class="item-name-label item-field-label-long2">{{talent.system.resumebonus}}</span>
|
<span class="item-name-label item-field-label-long2">{{talent.system.resumebonus}}</span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
<a class="item-control" data-action="editItem" title="Éditer"><i class="fas fa-edit"></i></a>
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control" data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flexrow">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Equipement Tab --}}
|
{{!-- Armes Tab --}}
|
||||||
<div class="tab armes" data-group="primary" data-tab="armes">
|
<div class="tab armes" data-group="primary" data-tab="armes">
|
||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
|
|
||||||
<div class="sheet-box color-bg-archetype">
|
<div class="sheet-box color-bg-archetype">
|
||||||
@@ -257,56 +260,46 @@
|
|||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
<h3><label class="items-title-text">Armes</label></h3>
|
<h3><label class="items-title-text">Armes</label></h3>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short"><label class="short-label">Attaque</label></span>
|
||||||
<label class="short-label">Attaque</label>
|
<span class="item-field-label-short"><label class="short-label">Défense</label></span>
|
||||||
</span>
|
<span class="item-field-label-short"><label class="short-label">Dégâts</label></span>
|
||||||
<span class="item-field-label-short">
|
|
||||||
<label class="short-label">Défense</label>
|
|
||||||
</span>
|
|
||||||
<span class="item-field-label-short">
|
|
||||||
<label class="short-label">Dégats</label>
|
|
||||||
</span>
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-add" data-type="arme" title="Ajouter une arme"><i
|
<a class="item-control" data-action="createItem" data-type="arme" title="Ajouter une arme">
|
||||||
class="fas fa-plus"></i></a>
|
<i class="fas fa-plus"></i>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each armes as |arme key|}}
|
{{#each armes as |arme key|}}
|
||||||
<li class="item flexrow " data-item-id="{{arme._id}}" data-item-type="arme">
|
<li class="item flexrow" data-item-id="{{arme._id}}" data-item-type="arme">
|
||||||
<img class="item-name-img" src="{{arme.img}}" />
|
<img class="item-name-img" src="{{arme.img}}" />
|
||||||
<span class="item-name-label competence-name">{{arme.name}}</span>
|
<span class="item-name-label competence-name">{{arme.name}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
{{#if arme.system.equipped}}
|
{{#if arme.system.equipped}}
|
||||||
<button class="roll-arme-offensif button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
<button data-action="rollArmeOffensif" class="button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<button disabled class="roll-arme-offensif button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
<button disabled class="button-sheet-roll">{{arme.system.totalOffensif}}</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
{{#if arme.system.isdefense}}
|
{{#if arme.system.isdefense}}
|
||||||
<span class="item-field-label-short arme-defensif item-field-label-short"><label
|
<span class="item-field-label-short arme-defensif"><label class="defense-sheet">{{arme.system.totalDefensif}}</label></span>
|
||||||
class="arme-defensif item-field-label-short defense-sheet">{{arme.system.totalDefensif}}</label></span>
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="item-field-label-short arme-defensif item-field-label-short"><label
|
<span class="item-field-label-short arme-defensif"><label class="defense-sheet">N/A</label></span>
|
||||||
class="arme-defensif item-field-label-short defense-sheet">N/A</label></span>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short">
|
||||||
{{#if arme.system.equipped}}
|
{{#if arme.system.equipped}}
|
||||||
<button class="roll-arme-degats button-sheet-roll">{{arme.system.totalDegats}}</button>
|
<button data-action="rollArmeDegats" class="button-sheet-roll">{{arme.system.totalDegats}}</button>
|
||||||
{{else}}
|
{{else}}
|
||||||
<button disabled class="roll-arme-degats button-sheet-roll">{{arme.system.totalDegats}}</button>
|
<button disabled class="button-sheet-roll">{{arme.system.totalDegats}}</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-equip" title="Equipé">{{#if arme.system.equipped}}<i
|
<a class="item-control" data-action="equipItem" title="Équiper">
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
{{#if arme.system.equipped}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}
|
||||||
<a class="item-control item-edit" title="Editer l'Item"><i class="fas fa-edit"></i></a>
|
</a>
|
||||||
<a class="item-control item-delete" title="Supprimer l'Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control" data-action="editItem" title="Éditer"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control" data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -319,28 +312,28 @@
|
|||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
<h3><label class="items-title-text">Protections</label></h3>
|
<h3><label class="items-title-text">Protections</label></h3>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-short">
|
<span class="item-field-label-short"><label class="short-label">Protection</label></span>
|
||||||
<label class="short-label">Protection</label>
|
|
||||||
</span>
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-add" data-type="protection" title="Ajouter une arme"><i
|
<a class="item-control" data-action="createItem" data-type="protection" title="Ajouter une protection">
|
||||||
class="fas fa-plus"></i></a>
|
<i class="fas fa-plus"></i>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each protections as |protection key|}}
|
{{#each protections as |protection key|}}
|
||||||
<li class="item flexrow " data-item-id="{{protection._id}}" data-item-type="protection">
|
<li class="item flexrow" data-item-id="{{protection._id}}" data-item-type="protection">
|
||||||
<img class="item-name-img" src="{{protection.img}}" />
|
<img class="item-name-img" src="{{protection.img}}" />
|
||||||
<span class="item-name-label competence-name">{{protection.name}}</span>
|
<span class="item-name-label competence-name">{{protection.name}}</span>
|
||||||
<span class="item-field-label-short arme-defensif"><label
|
<span class="item-field-label-short arme-defensif">
|
||||||
class="arme-defensif">{{protection.system.protection}}</label>
|
<label class="arme-defensif">{{protection.system.protection}}</label>
|
||||||
</span>
|
</span>
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </div>
|
||||||
<div class="item-controls item-controls-fixed">
|
<div class="item-controls item-controls-fixed">
|
||||||
<a class="item-control item-equip" title="Equipé">{{#if protection.system.equipped}}<i
|
<a class="item-control" data-action="equipItem" title="Équiper">
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
{{#if protection.system.equipped}}<i class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}
|
||||||
<a class="item-control item-edit" title="Editer l'Item"><i class="fas fa-edit"></i></a>
|
</a>
|
||||||
<a class="item-control item-delete" title="Supprimer l'Item"><i class="fas fa-trash"></i></a>
|
<a class="item-control" data-action="editItem" title="Éditer"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control" data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -348,27 +341,22 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{!-- Bio&Notes Tab --}}
|
||||||
{{!-- Biography Tab --}}
|
|
||||||
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
<div class="tab biodata" data-group="primary" data-tab="biodata">
|
||||||
|
<div class="sheet-box color-bg-archetype">
|
||||||
<span>
|
<div class="section-title">Description</div>
|
||||||
<h3>Description</h3>
|
|
||||||
</span>
|
|
||||||
<div class="medium-editor item-text-long-line">
|
<div class="medium-editor item-text-long-line">
|
||||||
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
{{editor description target="system.biodata.description" button=true owner=owner editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<span>
|
<div class="sheet-box color-bg-archetype">
|
||||||
<h3>Habitat</h3>
|
<div class="section-title">Habitat</div>
|
||||||
</span>
|
|
||||||
<div class="medium-editor item-text-long-line">
|
<div class="medium-editor item-text-long-line">
|
||||||
{{editor habitat target="system.biodata.habitat" button=true owner=owner editable=editable}}
|
{{editor habitat target="system.biodata.habitat" button=true owner=owner editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user