ENhance and fix
This commit is contained in:
Binary file not shown.
Binary file not shown.
+12
-13
@@ -80,7 +80,6 @@
|
||||
"army_fortification": "Fortification",
|
||||
"army_cohort": "Régiment",
|
||||
"arcane": "Arcane",
|
||||
"etat": "État",
|
||||
"mystere": "Mystère",
|
||||
"technique_ecole": "Technique École",
|
||||
"mot_invocation": "Mot d'Invocation"
|
||||
@@ -222,7 +221,9 @@
|
||||
"inventory": "Inventaire",
|
||||
"equipment": "Équipement",
|
||||
"rank": "Rang",
|
||||
"name": "Nom"
|
||||
"name": "Nom",
|
||||
"attributes": "Attributs",
|
||||
"infos": "Infos"
|
||||
},
|
||||
"dice": {
|
||||
"chat": {
|
||||
@@ -480,7 +481,8 @@
|
||||
"school_curriculum_journal": "Déposer un journal de Cursus dans la feuille pour le lier",
|
||||
"warning": {
|
||||
"total_less_then_spent": "L'expérience totale est inférieure à l'expérience utilisée."
|
||||
}
|
||||
},
|
||||
"advancement": "Progression"
|
||||
},
|
||||
"character_types": {
|
||||
"character": "Personnage Joueur",
|
||||
@@ -886,6 +888,10 @@
|
||||
"assez_difficile": "Assez Difficile",
|
||||
"difficile": "Difficile"
|
||||
},
|
||||
"technique_ecole": {
|
||||
"title": "Techniques d'École",
|
||||
"label": "Technique d'École"
|
||||
},
|
||||
"arcane": {
|
||||
"title": "Arcanes",
|
||||
"label": "Arcane",
|
||||
@@ -893,15 +899,8 @@
|
||||
"application": "Compétences",
|
||||
"bonus": "Bonus",
|
||||
"progression": "Progression",
|
||||
"xp_cost": "Coût XP"
|
||||
},
|
||||
"etat": {
|
||||
"title": "États",
|
||||
"label": "État",
|
||||
"application": "Application",
|
||||
"mod": "Modificateur",
|
||||
"effect": "Effet",
|
||||
"elimination": "Condition d'élimination"
|
||||
"xp_cost": "Coût XP",
|
||||
"xp_used": "XP dépensé"
|
||||
},
|
||||
"mystere": {
|
||||
"title": "Mystères",
|
||||
@@ -996,4 +995,4 @@
|
||||
"failure": "Échec"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -92,11 +92,8 @@ export class CharacterSheetL5r5e extends BaseCharacterSheetL5r5e {
|
||||
gaugeColor: gauge > 0 ? "#d4a855" : gauge < 0 ? "#5588aa" : "#888888",
|
||||
};
|
||||
|
||||
// Chiaroscuro: État items active on the character
|
||||
sheetData.data.etatItems = sheetData.items.filter((i) => i.type === "etat");
|
||||
|
||||
// Chiaroscuro: Invocations split by type (from splitTechniquesList)
|
||||
const invocations = sheetData.data.splitTechniquesList["mot_invocation"] ?? [];
|
||||
// Chiaroscuro: Invocations split by type (direct from items)
|
||||
const invocations = sheetData.items.filter((i) => i.type === "mot_invocation");
|
||||
sheetData.data.splitInvocationsList = {
|
||||
general: invocations.filter((t) => !t.system.invocation_type || t.system.invocation_type === "general"),
|
||||
neutre: invocations.filter((t) => t.system.invocation_type === "neutre"),
|
||||
@@ -109,6 +106,9 @@ export class CharacterSheetL5r5e extends BaseCharacterSheetL5r5e {
|
||||
// Chiaroscuro: Mystere items
|
||||
sheetData.data.mystereItems = sheetData.items.filter((i) => i.type === "mystere");
|
||||
|
||||
// Chiaroscuro: Technique École items
|
||||
sheetData.data.techniqueEcoleItems = sheetData.items.filter((i) => i.type === "technique_ecole");
|
||||
|
||||
// Chiaroscuro: Identity tabs enriched HTML
|
||||
sheetData.data.enrichedHtml.identity_text1 = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
|
||||
this.actor.system.identity_text1 ?? "", { async: true }
|
||||
@@ -191,6 +191,34 @@ export class CharacterSheetL5r5e extends BaseCharacterSheetL5r5e {
|
||||
.activate("advancement_rank_" + (this.actor.system.identity.school_rank || 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to handle mot_invocation creation with invocation_type from the column.
|
||||
* @param {Event} event
|
||||
* @override
|
||||
*/
|
||||
async _addSubItem(event) {
|
||||
const type = $(event.currentTarget).data("item-type");
|
||||
if (type === "mot_invocation") {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
const invocationType = $(event.currentTarget).data("invocation-type") || "general";
|
||||
const created = await this.actor.createEmbeddedDocuments("Item", [
|
||||
{
|
||||
name: game.i18n.localize(`TYPES.Item.mot_invocation`),
|
||||
type: "mot_invocation",
|
||||
img: `${CONFIG.l5r5e.paths.assets}icons/items/mot_invocation.svg`,
|
||||
system: { invocation_type: invocationType },
|
||||
},
|
||||
]);
|
||||
if (created?.length > 0) {
|
||||
const item = this.actor.items.get(created[0].id);
|
||||
item?.sheet.render(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
return super._addSubItem(event);
|
||||
}
|
||||
|
||||
/**
|
||||
* Override base dice picker to open Chiaroscuro d6 dialog.
|
||||
* @param {Event} event
|
||||
@@ -198,9 +226,10 @@ export class CharacterSheetL5r5e extends BaseCharacterSheetL5r5e {
|
||||
_openDicePickerForSkill(event) {
|
||||
event.preventDefault();
|
||||
const el = $(event.currentTarget);
|
||||
const skillId = el.data("skill");
|
||||
const weapon = this._getWeaponInfos(el.data("weapon-id") || null);
|
||||
const skillId = weapon?.skill || el.data("skill");
|
||||
const ringId = el.data("ring") || this.actor.system?.default_ring || "void";
|
||||
new game.l5r5e.ChiaroscuroDiceDialog({ actor: this.actor, ringId, skillId }).render(true);
|
||||
new game.l5r5e.ChiaroscuroDiceDialog({ actor: this.actor, ringId, skillId, itemUuid: weapon?.uuid }).render(true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -124,8 +124,9 @@ export class NpcSheetL5r5e extends BaseCharacterSheetL5r5e {
|
||||
_openDicePickerForSkill(event) {
|
||||
event.preventDefault();
|
||||
const el = $(event.currentTarget);
|
||||
const skillId = el.data("skill");
|
||||
const weapon = this._getWeaponInfos(el.data("weapon-id") || null);
|
||||
const skillId = weapon?.skill || el.data("skill");
|
||||
const ringId = el.data("ring") || this.actor.system?.default_ring || "void";
|
||||
new game.l5r5e.ChiaroscuroDiceDialog({ actor: this.actor, ringId, skillId }).render(true);
|
||||
new game.l5r5e.ChiaroscuroDiceDialog({ actor: this.actor, ringId, skillId, itemUuid: weapon?.uuid }).render(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ export class ChiaroscuroDiceDialog extends FormApplication {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param options actor, actorId, ringId, skillId
|
||||
* @param options actor, actorId, ringId, skillId, itemUuid
|
||||
*/
|
||||
constructor(options = {}) {
|
||||
super({}, options);
|
||||
@@ -74,6 +74,9 @@ export class ChiaroscuroDiceDialog extends FormApplication {
|
||||
}
|
||||
});
|
||||
|
||||
// Resolve item from uuid (weapon, technique, etc.)
|
||||
this._item = options.itemUuid ? fromUuidSync(options.itemUuid) : null;
|
||||
|
||||
// Default ring: options > actor default_ring > void
|
||||
const ringId = options.ringId ?? this._actor?.system?.default_ring ?? "void";
|
||||
this.ringId = ringId;
|
||||
@@ -272,32 +275,8 @@ export class ChiaroscuroDiceDialog extends FormApplication {
|
||||
[`${aspectsPath}.solar`]: 0,
|
||||
[`${aspectsPath}.lunar`]: 0,
|
||||
});
|
||||
// Remove all desequilibre conditions
|
||||
const toRemove = this._actor.items
|
||||
.filter((i) => i.type === "etat" && ["desequilibre_solaire", "desequilibre_lunaire"].includes(i.system?.condition_type))
|
||||
.map((i) => i.id);
|
||||
if (toRemove.length) {
|
||||
await this._actor.deleteEmbeddedDocuments("Item", toRemove);
|
||||
}
|
||||
} else {
|
||||
await this._actor.update({ [`${aspectsPath}.gauge`]: newGauge });
|
||||
|
||||
if (Math.abs(newGauge) >= 5) {
|
||||
// Apply opposing desequilibre
|
||||
const condType = this.object.aspectType === "solar" ? "desequilibre_lunaire" : "desequilibre_solaire";
|
||||
const existing = this._actor.items.find(
|
||||
(i) => i.type === "etat" && i.system?.condition_type === condType
|
||||
);
|
||||
if (!existing) {
|
||||
await this._actor.createEmbeddedDocuments("Item", [
|
||||
{
|
||||
type: "etat",
|
||||
name: game.i18n.localize(`chiaroscuro.aspects.${condType}`),
|
||||
system: { condition_type: condType },
|
||||
},
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,6 +300,9 @@ export class ChiaroscuroDiceDialog extends FormApplication {
|
||||
useAssistance: this.object.useAssistance,
|
||||
modifier: this.object.modifier,
|
||||
quickInfo: this._actor?.system?.quick_info ?? "",
|
||||
l5r5e: {
|
||||
item: this._item ?? null,
|
||||
},
|
||||
...rollData,
|
||||
}
|
||||
);
|
||||
|
||||
@@ -21,7 +21,7 @@ export class ItemL5r5e extends Item {
|
||||
* @memberof ClientDocumentMixin#
|
||||
*/
|
||||
get uuid() {
|
||||
const parents = this.system.parent_id;
|
||||
const parents = this.system?.parent_id;
|
||||
if (!parents?.item_id) {
|
||||
return super.uuid;
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e {
|
||||
static types = [
|
||||
{ id: "ring", label: "l5r5e.rings.label" },
|
||||
{ id: "skill", label: "l5r5e.skills.label" },
|
||||
{ id: "arcane", label: "l5r5e.chiaroscuro.arcane.label" },
|
||||
{ id: "mot_invocation", label: "l5r5e.chiaroscuro.technique.mot_invocation" },
|
||||
{ id: "arcane", label: "chiaroscuro.arcane.label" },
|
||||
{ id: "mot_invocation", label: "chiaroscuro.technique.mot_invocation" },
|
||||
// others have theirs own xp count
|
||||
];
|
||||
|
||||
@@ -30,7 +30,7 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e {
|
||||
sheetData.data.skillsList = game.l5r5e.HelpersL5r5e.getSkillsList(true);
|
||||
|
||||
// Invocation sub-types (Général / Neutre / Précis)
|
||||
const invTypes = game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.chiaroscuro.technique.invocation_types") ?? {};
|
||||
const invTypes = game.l5r5e.HelpersL5r5e.getLocalizedRawObject("chiaroscuro.technique.invocation_types") ?? {};
|
||||
sheetData.data.invocationTypesList = [{ id: "", label: "—" }].concat(
|
||||
Object.entries(invTypes).map(([id, label]) => ({ id, label }))
|
||||
);
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
import { BaseItemSheetL5r5e } from "./base-item-sheet.js";
|
||||
|
||||
/**
|
||||
* Sheet for État items (Chiaroscuro).
|
||||
* @extends {BaseItemSheetL5r5e}
|
||||
*/
|
||||
export class EtatSheetL5r5e extends BaseItemSheetL5r5e {
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["l5r5e", "sheet", "etat"],
|
||||
template: CONFIG.l5r5e.paths.templates + "items/etat/etat-sheet.html",
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "attributes" }],
|
||||
});
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async getData(options = {}) {
|
||||
const sheetData = await super.getData(options);
|
||||
|
||||
sheetData.data.enrichedHtml = {
|
||||
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(
|
||||
sheetData.data.system.description ?? "",
|
||||
{ async: true }
|
||||
),
|
||||
};
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@ export class MotInvocationSheetL5r5e extends BaseItemSheetL5r5e {
|
||||
const sheetData = await super.getData(options);
|
||||
|
||||
// Build invocation types list from i18n
|
||||
const invTypes = game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.chiaroscuro.technique.invocation_types") ?? {};
|
||||
const invTypes = game.l5r5e.HelpersL5r5e.getLocalizedRawObject("chiaroscuro.technique.invocation_types") ?? {};
|
||||
sheetData.data.invocationTypesList = [{ id: "", label: "—" }].concat(
|
||||
Object.entries(invTypes).map(([id, label]) => ({ id, label }))
|
||||
);
|
||||
|
||||
@@ -28,7 +28,6 @@ import { WeaponSheetL5r5e } from "./items/weapon-sheet.js";
|
||||
import { AdvancementSheetL5r5e } from "./items/advancement-sheet.js";
|
||||
import { PeculiaritySheetL5r5e } from "./items/peculiarity-sheet.js";
|
||||
import { ArcaneSheetL5r5e } from "./items/arcane-sheet.js";
|
||||
import { EtatSheetL5r5e } from "./items/etat-sheet.js";
|
||||
import { MystereSheetL5r5e } from "./items/mystere-sheet.js";
|
||||
import { TechniqueEcoleSheetL5r5e } from "./items/technique-ecole-sheet.js";
|
||||
import { MotInvocationSheetL5r5e } from "./items/mot-invocation-sheet.js";
|
||||
@@ -177,11 +176,6 @@ Hooks.once("init", async () => {
|
||||
label: "TYPES.Item.arcane",
|
||||
makeDefault: true,
|
||||
});
|
||||
fdc.Items.registerSheet(L5R5E.namespace, EtatSheetL5r5e, {
|
||||
types: ["etat"],
|
||||
label: "TYPES.Item.etat",
|
||||
makeDefault: true,
|
||||
});
|
||||
fdc.Items.registerSheet(L5R5E.namespace, MystereSheetL5r5e, {
|
||||
types: ["mystere"],
|
||||
label: "TYPES.Item.mystere",
|
||||
|
||||
@@ -6,7 +6,7 @@ export class MigrationL5r5e {
|
||||
* Minimum Version needed for migration stuff to trigger
|
||||
* @type {string}
|
||||
*/
|
||||
static NEEDED_VERSION = "1.13.0";
|
||||
static NEEDED_VERSION = "14.0.1";
|
||||
|
||||
/**
|
||||
* Return true if the version need some updates
|
||||
@@ -56,6 +56,19 @@ export class MigrationL5r5e {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
// ***** 14.0.1: Remove obsolete etat items *****
|
||||
if (options?.force || MigrationL5r5e.needUpdate("14.0.1")) {
|
||||
try {
|
||||
const etatIds = actor.items.filter((i) => i.type === "etat").map((i) => i.id);
|
||||
if (etatIds.length) {
|
||||
console.log(`L5R5E | Migration | Removing ${etatIds.length} etat item(s) from Actor ${actor.name}`);
|
||||
await actor.deleteEmbeddedDocuments("Item", etatIds);
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`L5R5E | Migration | Failed to remove etat items from Actor ${actor.name}: ${err.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Migrate Actor's Items
|
||||
if (actor.items.size) {
|
||||
console.group(`Checking within ${actor.items.size} items`);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -31,7 +31,7 @@
|
||||
|
||||
.gauge-bar-wrapper {
|
||||
flex: 0 0 100%;
|
||||
height: 0.4rem;
|
||||
height: 1rem;
|
||||
background: linear-gradient(to right, $chi-lunar, rgba(128,128,128,0.3) 50%, $chi-solar);
|
||||
border-radius: 0.25rem;
|
||||
position: relative;
|
||||
@@ -47,34 +47,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
// ── État badges (character sheet header) ─────────────────────────────────
|
||||
.etat-summary {
|
||||
flex: 0 0 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 0.2rem;
|
||||
padding: 0.1rem 0;
|
||||
font-size: 0.8rem;
|
||||
.etat-summary-label {
|
||||
color: $l5r5e-label;
|
||||
font-style: italic;
|
||||
margin-right: 0.2rem;
|
||||
}
|
||||
.etat-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.2rem;
|
||||
padding: 0.1rem 0.35rem;
|
||||
border-radius: 0.2rem;
|
||||
background: rgba($chi-title, 0.18);
|
||||
border: 1px solid rgba($chi-title, 0.4);
|
||||
color: $chi-title;
|
||||
cursor: default;
|
||||
&:hover { background: rgba($chi-title, 0.32); }
|
||||
}
|
||||
}
|
||||
|
||||
// ── Identity text blocks ──────────────────────────────────────────────────
|
||||
|
||||
.identity-text-wrapper {
|
||||
@@ -478,16 +450,16 @@ article.tab.notes {
|
||||
box-shadow: inset 0 1px 0 rgba($white, 0.07), 0 1px 3px rgba($l5r5e-black, 0.4);
|
||||
|
||||
&.die-low {
|
||||
color: $l5r5e-red;
|
||||
background: rgba($l5r5e-red, 0.14);
|
||||
border-color: rgba($l5r5e-red, 0.5);
|
||||
box-shadow: inset 0 1px 0 rgba($white, 0.05), 0 0 6px rgba($l5r5e-red, 0.15);
|
||||
color: #ff6b6b;
|
||||
background: rgba($l5r5e-red, 0.25);
|
||||
border-color: rgba($l5r5e-red, 0.7);
|
||||
box-shadow: inset 0 1px 0 rgba($white, 0.05), 0 0 6px rgba($l5r5e-red, 0.2);
|
||||
}
|
||||
&.die-high {
|
||||
color: $chi-solar;
|
||||
background: rgba($chi-solar, 0.14);
|
||||
border-color: rgba($chi-solar, 0.5);
|
||||
box-shadow: inset 0 1px 0 rgba($white, 0.1), 0 0 8px rgba($chi-solar, 0.2);
|
||||
color: #ffd166;
|
||||
background: rgba($chi-solar, 0.25);
|
||||
border-color: rgba($chi-solar, 0.7);
|
||||
box-shadow: inset 0 1px 0 rgba($white, 0.1), 0 0 8px rgba($chi-solar, 0.3);
|
||||
}
|
||||
.die-adj-icon {
|
||||
position: absolute;
|
||||
@@ -599,6 +571,7 @@ article.tab.notes {
|
||||
.invocations-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
gap: 0.5rem;
|
||||
|
||||
.invocations-roll-header {
|
||||
@@ -612,6 +585,7 @@ article.tab.notes {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
padding: 0.3rem 1.5rem;
|
||||
width: fit-content;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+182
-38
@@ -150,6 +150,7 @@
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
}
|
||||
article {
|
||||
display: flex;
|
||||
@@ -239,13 +240,14 @@
|
||||
}
|
||||
&.infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-self: stretch;
|
||||
height: calc(100% - 7.5rem);
|
||||
width: 100%;
|
||||
padding-bottom: 1.25rem;
|
||||
.reference {
|
||||
display: flex;
|
||||
flex: 0 0 calc(100% - 0.5rem);
|
||||
flex: 0 0 auto;
|
||||
margin: 0.5rem 0.25rem;
|
||||
input[name="system.source_reference.source"] {
|
||||
text-align: center;
|
||||
@@ -256,9 +258,14 @@
|
||||
}
|
||||
}
|
||||
fieldset {
|
||||
align-self: stretch;
|
||||
height: calc(100% - 2rem);
|
||||
flex: 1 1 auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: content-box;
|
||||
.editor {
|
||||
flex: 1 1 auto;
|
||||
min-height: 6rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.properties {
|
||||
@@ -271,6 +278,7 @@
|
||||
&.advancement {
|
||||
article {
|
||||
&.attributes {
|
||||
height: auto;
|
||||
.attribute-value,
|
||||
.attribute,
|
||||
.value {
|
||||
@@ -286,6 +294,9 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
&.infos {
|
||||
height: calc(100% - 5.5rem);
|
||||
}
|
||||
}
|
||||
}
|
||||
&.technique {
|
||||
@@ -332,18 +343,15 @@
|
||||
&.item {
|
||||
article {
|
||||
&.attributes {
|
||||
height: 4.5rem;
|
||||
height: auto;
|
||||
.properties {
|
||||
flex: 100%;
|
||||
}
|
||||
}
|
||||
&.infos {
|
||||
flex: 0 0 60%;
|
||||
height: calc(100% - 5.5rem);
|
||||
}
|
||||
&.properties {
|
||||
flex: 0 0 40%;
|
||||
height: calc(100% - 5.5rem);
|
||||
flex: 1 1 100%;
|
||||
height: auto;
|
||||
min-height: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -360,56 +368,111 @@
|
||||
&.armor {
|
||||
article {
|
||||
&.attributes {
|
||||
height: 9.5rem;
|
||||
height: auto;
|
||||
align-content: flex-start;
|
||||
.attribute-value {
|
||||
flex: 0 0 calc(25% - 0.5rem);
|
||||
margin: 0.25rem 0.25rem 0;
|
||||
}
|
||||
.value {
|
||||
flex: 0 0 calc(25% - 0.5rem);
|
||||
margin: 0.25rem;
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.stat {
|
||||
flex: 0 0 calc(33.33% - 0.5rem);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0.25rem;
|
||||
span {
|
||||
font-size: 0.7rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.03em;
|
||||
color: $l5r5e-label;
|
||||
}
|
||||
input {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.category {
|
||||
flex: 0 0 calc(33.33% - 0.5rem);
|
||||
margin: 0.25rem;
|
||||
select {
|
||||
width: 100%;
|
||||
margin-top: 0.15rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.infos {
|
||||
flex: 0 0 60%;
|
||||
height: calc(100% - 10.5rem);
|
||||
}
|
||||
&.properties {
|
||||
flex: 0 0 40%;
|
||||
height: calc(100% - 10.5rem);
|
||||
flex: 1 1 100%;
|
||||
height: auto;
|
||||
min-height: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.weapon {
|
||||
article {
|
||||
&.attributes {
|
||||
height: 18.5rem;
|
||||
.stats,
|
||||
height: auto;
|
||||
align-content: flex-start;
|
||||
.attribute-value {
|
||||
flex: 0 0 calc(50% - 0.5rem);
|
||||
flex-wrap: wrap;
|
||||
flex: 0 0 calc(20% - 0.5rem);
|
||||
margin: 0.25rem 0.25rem 0;
|
||||
}
|
||||
.stat {
|
||||
flex: 0 0 calc(20% - 0.5rem);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin: 0.25rem;
|
||||
label {
|
||||
span {
|
||||
font-size: 0.7rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.03em;
|
||||
color: $l5r5e-label;
|
||||
}
|
||||
input {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.stats {
|
||||
input[type="text"] {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.value {
|
||||
flex: 0 0 calc(25% - 0.5rem);
|
||||
}
|
||||
.category,
|
||||
.skillType {
|
||||
flex: 0 0 calc(50% - 0.5rem);
|
||||
input,
|
||||
margin: 0.25rem;
|
||||
select,
|
||||
.attribute-dtype {
|
||||
width: 100%;
|
||||
margin: 0.25rem;
|
||||
margin-top: 0.15rem;
|
||||
}
|
||||
}
|
||||
.grip {
|
||||
flex: 0 0 calc(40% - 0.5rem);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
margin: 0.25rem;
|
||||
font-size: 0.8rem;
|
||||
input {
|
||||
flex: 1;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
.value {
|
||||
flex: 0 0 calc(20% - 0.5rem);
|
||||
margin: 0.25rem;
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.infos {
|
||||
flex: 0 0 60%;
|
||||
height: calc(100% - 19.5rem);
|
||||
}
|
||||
&.properties {
|
||||
flex: 0 0 40%;
|
||||
height: calc(100% - 19.5rem);
|
||||
flex: 1 1 100%;
|
||||
height: auto;
|
||||
min-height: 10rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -550,3 +613,84 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Chiaroscuro-specific item types
|
||||
&.arcane,
|
||||
&.mot-invocation,
|
||||
&.mystere,
|
||||
&.technique-ecole {
|
||||
.sheet-header {
|
||||
margin-bottom: 0.5rem;
|
||||
img {
|
||||
flex: 0 0 90px;
|
||||
height: 90px;
|
||||
width: 90px;
|
||||
background: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
h1 input {
|
||||
height: 5.5rem;
|
||||
}
|
||||
}
|
||||
.sheet-body {
|
||||
flex: 100%;
|
||||
height: calc(100% - 90px - 0.25rem);
|
||||
align-self: stretch;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
}
|
||||
article {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
label {
|
||||
color: $l5r5e-label;
|
||||
margin: 0.25rem;
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
&.attributes,
|
||||
&.tab.attributes {
|
||||
width: 100%;
|
||||
min-height: auto;
|
||||
align-self: flex-start;
|
||||
align-content: flex-start;
|
||||
align-items: flex-start;
|
||||
.attribute {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 0 0 calc(50% - 0.5rem);
|
||||
input, select {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.infos,
|
||||
&.tab.infos {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
flex: 1 1 100%;
|
||||
padding-bottom: 1.25rem;
|
||||
fieldset {
|
||||
flex: 1 1 auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.editor {
|
||||
flex: 1 1 auto;
|
||||
min-height: 8rem;
|
||||
}
|
||||
}
|
||||
.reference {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
margin: 0.5rem 0.25rem;
|
||||
input[name="system.source_reference.source"] {
|
||||
text-align: center;
|
||||
width: 70%;
|
||||
}
|
||||
input[name="system.source_reference.page"] {
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +1,66 @@
|
||||
/** Rings — disposition en pentagone **/
|
||||
/** Rings — disposition en grille 2×2 + Vide centré en bas **/
|
||||
|
||||
.rings {
|
||||
position: relative;
|
||||
min-height: 260px;
|
||||
color: $white-light;
|
||||
display: grid;
|
||||
grid-template-areas:
|
||||
"air water"
|
||||
"fire earth"
|
||||
"void void";
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 0.5rem;
|
||||
min-height: 0;
|
||||
padding: 0.25rem;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
color: $white-light;
|
||||
|
||||
// — Common rules for all ring items —
|
||||
#air { grid-area: air; }
|
||||
#water { grid-area: water; }
|
||||
#fire { grid-area: fire; }
|
||||
#earth { grid-area: earth; }
|
||||
#void { grid-area: void; justify-self: center; }
|
||||
|
||||
// — Common ring cell —
|
||||
#earth,
|
||||
#air,
|
||||
#water,
|
||||
#fire,
|
||||
#void {
|
||||
position: absolute;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 0.15rem;
|
||||
|
||||
label {
|
||||
position: relative;
|
||||
display: block;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
width: 5.5rem;
|
||||
line-height: normal;
|
||||
text-align: center;
|
||||
|
||||
&.stance-active strong {
|
||||
text-decoration: underline 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.ring-circle {
|
||||
position: relative;
|
||||
width: 4.5rem;
|
||||
height: 4.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
i.i_earth,
|
||||
i.i_water,
|
||||
i.i_fire,
|
||||
i.i_air,
|
||||
i.i_void {
|
||||
font-size: 5rem;
|
||||
line-height: 4.75rem;
|
||||
font-size: 4.5rem;
|
||||
line-height: 1;
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -43,20 +68,23 @@
|
||||
display: block;
|
||||
font-size: 0.78rem;
|
||||
line-height: 1.3;
|
||||
margin-top: 0.15rem;
|
||||
margin-top: 0.1rem;
|
||||
}
|
||||
|
||||
input {
|
||||
position: absolute;
|
||||
height: 1.9rem;
|
||||
width: 1.9rem;
|
||||
height: 2rem;
|
||||
width: 2rem;
|
||||
border-radius: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: -0.5rem;
|
||||
right: -0.5rem;
|
||||
text-align: center;
|
||||
font-size: 0.95rem;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
border: 2px solid $l5r5e-title;
|
||||
color: $white-light;
|
||||
background: rgba($l5r5e-black, 0.75);
|
||||
|
||||
&:hover {
|
||||
border: 2px solid $red-light;
|
||||
text-shadow: 0 0 3px $red;
|
||||
@@ -88,48 +116,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
// — Pentagone centré — rayon 4.5rem autour du centre x=50%, y≈6.875rem
|
||||
// (centre de l'icône à 2.375rem du haut de chaque li)
|
||||
// cos/sin calculés pour les 5 sommets d'un pentagone régulier (Vide au sommet)
|
||||
|
||||
// Pentagone ancré à gauche — centre du cercle à 8rem du bord gauche
|
||||
// Vide — sommet (−90°)
|
||||
#void {
|
||||
top: 0;
|
||||
left: 5.25rem;
|
||||
color: $l5r5e-void;
|
||||
input { background: $l5r5e-void; }
|
||||
}
|
||||
|
||||
// Air (Solaire) — haut gauche (−162° : cos=−0.951, sin=−0.309)
|
||||
#air {
|
||||
top: 3.1rem;
|
||||
left: 1rem;
|
||||
color: $l5r5e-air;
|
||||
input { background: $l5r5e-air; }
|
||||
}
|
||||
|
||||
// Eau (Lunaire) — haut droite (−18° : cos=0.951, sin=−0.309)
|
||||
#water {
|
||||
top: 3.1rem;
|
||||
left: 9.5rem;
|
||||
color: $l5r5e-water;
|
||||
input { background: $l5r5e-water; }
|
||||
}
|
||||
|
||||
// Feu (Solaire) — bas gauche (126° : cos=−0.588, sin=0.809)
|
||||
#fire {
|
||||
top: 8.1rem;
|
||||
left: 2.6rem;
|
||||
color: $l5r5e-fire;
|
||||
input { background: $l5r5e-fire; }
|
||||
}
|
||||
|
||||
// Terre (Lunaire) — bas droite (54° : cos=0.588, sin=0.809)
|
||||
#earth {
|
||||
top: 8.1rem;
|
||||
left: 7.9rem;
|
||||
color: $l5r5e-earth;
|
||||
input { background: $l5r5e-earth; }
|
||||
}
|
||||
// — Ring colors —
|
||||
#void { color: $l5r5e-void; input { background: rgba($l5r5e-void, 0.7); } }
|
||||
#air { color: $l5r5e-air; input { background: rgba($l5r5e-air, 0.7); } }
|
||||
#water { color: $l5r5e-water; input { background: rgba($l5r5e-water, 0.7); } }
|
||||
#fire { color: $l5r5e-fire; input { background: rgba($l5r5e-fire, 0.7); } }
|
||||
#earth { color: $l5r5e-earth; input { background: rgba($l5r5e-earth, 0.7); } }
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
"license": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/LICENSE.md",
|
||||
"manifest": "https://gitlab.com/teaml5r/l5r5e/-/raw/master/system/system.json",
|
||||
"download": "https://gitlab.com/teaml5r/l5r5e/-/jobs/artifacts/v1.13.4/raw/l5r5e.zip?job=build",
|
||||
"version": "14.0.0",
|
||||
"version": "14.0.1",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
"verified": "14"
|
||||
|
||||
+10
-16
@@ -129,8 +129,8 @@
|
||||
},
|
||||
"aspects": {
|
||||
"aspects": {
|
||||
"solar": 0,
|
||||
"lunar": 0,
|
||||
"solar": 2,
|
||||
"lunar": 2,
|
||||
"gauge": 0
|
||||
}
|
||||
}
|
||||
@@ -199,7 +199,6 @@
|
||||
"peculiarity",
|
||||
"advancement",
|
||||
"arcane",
|
||||
"etat",
|
||||
"mystere",
|
||||
"technique_ecole",
|
||||
"mot_invocation"
|
||||
@@ -289,16 +288,8 @@
|
||||
"application": [],
|
||||
"bonus": 2,
|
||||
"progression": "",
|
||||
"xp_cost": 1
|
||||
},
|
||||
"etat": {
|
||||
"templates": [
|
||||
"basics"
|
||||
],
|
||||
"application": "",
|
||||
"mod": 0,
|
||||
"effect": "",
|
||||
"elimination": ""
|
||||
"xp_cost": 1,
|
||||
"xp_used": 0
|
||||
},
|
||||
"mystere": {
|
||||
"templates": [
|
||||
@@ -306,21 +297,24 @@
|
||||
],
|
||||
"mystere_type": "mineur",
|
||||
"prerequisite_skill": "",
|
||||
"prerequisite_condition": ""
|
||||
"prerequisite_condition": "",
|
||||
"xp_used": 0
|
||||
},
|
||||
"technique_ecole": {
|
||||
"templates": [
|
||||
"basics"
|
||||
],
|
||||
"application": "",
|
||||
"bonus": 3
|
||||
"bonus": 3,
|
||||
"xp_used": 0
|
||||
},
|
||||
"mot_invocation": {
|
||||
"templates": [
|
||||
"basics"
|
||||
],
|
||||
"invocation_type": "",
|
||||
"mode_invocation": 0
|
||||
"mode_invocation": 0,
|
||||
"xp_used": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
<li>{{#ifCond data.system.template '==' 'pow'}}{{localize 'l5r5e.sheets.upbringing'}}{{else}}{{localize 'l5r5e.sheets.family'}}{{/ifCond}} : {{data.system.identity.family}}</li>
|
||||
<li>{{localize 'l5r5e.sheets.rank'}} : {{data.system.identity.school_rank}}</li>
|
||||
<li>{{localize 'l5r5e.sheets.school'}} : {{data.system.identity.school}}</li>
|
||||
<li>{{localize 'l5r5e.roles'}} : {{data.system.identity.roles}}</li>
|
||||
<li>{{localize 'l5r5e.roles.title'}} : {{data.system.identity.roles}}</li>
|
||||
|
||||
{{!-- Social --}}
|
||||
<li>{{localize 'l5r5e.social.honor'}} : {{data.system.social.honor}}</li>
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
<tr data-group="advancements" data-tab="advancement_rank_{{rank}}" class="flexrow row advancement tab">
|
||||
<td class="name l5r5e-tooltip" data-item-id="{{advancement._id}}" name="advancement.name"><img src="{{advancement.img}}" title="{{advancement.name}}"> {{advancement.name}}</td>
|
||||
<td class="curriculum" name="curriculum">{{#if advancement.system.in_curriculum}}<i class="fas fa-graduation-cap"></i> {{/if}}</td>
|
||||
<td class="xp" name="advancement.xp">{{advancement.system.xp_used}}</td>
|
||||
<td class="rank" name="advancement.rank">{{advancement.system.rank}}</td>
|
||||
{{#if editable}}
|
||||
<td class="actions">
|
||||
<ul>
|
||||
<li data-item-id="{{advancement._id}}" class="item-control item-curriculum" title="{{localize 'l5r5e.advancements.curriculum'}}"><i class="fas fa-graduation-cap"></i></li>
|
||||
<li data-item-id="{{advancement._id}}" class="item-control item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li data-item-id="{{advancement._id}}" class="item-control item-delete" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></li>
|
||||
</ul>
|
||||
|
||||
@@ -16,15 +16,4 @@
|
||||
<div class="gauge-bar" style="width: {{data.aspectsData.gaugePercent}}%; background-color: {{data.aspectsData.gaugeColor}};"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{#if data.etatItems.length}}
|
||||
<div class="etat-summary">
|
||||
<span class="etat-summary-label">{{localize 'chiaroscuro.etat.title'}}</span>
|
||||
{{#each data.etatItems as |etat|}}
|
||||
<span class="etat-badge l5r5e-tooltip" title="{{etat.system.effect}}">
|
||||
<img src="{{etat.img}}" width="16" height="16" />
|
||||
{{etat.name}}
|
||||
</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
{{#if data.system.identity.school_curriculum_journal.id}}
|
||||
<a class="school-journal-link"><i class="fas fa-file-alt"></i></a> {{data.system.identity.school_curriculum_journal.name}}
|
||||
{{else}}
|
||||
<i class="fas fa-question-circle" title="{{localize 'l5r5e.advancements.school_curriculum_journal'}}"></i> {{localize 'l5r5e.sheets.school'}}
|
||||
<i class="fas fa-question-circle" title="{{localize 'l5r5e.advancements.school_curriculum_journal'}}"></i> {{localize 'l5r5e.advancements.advancement'}}
|
||||
{{/if}}
|
||||
{{#if data.editable_not_soft_locked}}
|
||||
<a data-item-type="advancement" class="advancement-control item-add" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
@@ -22,9 +22,7 @@
|
||||
<thead class="flex">
|
||||
<tr class="flexrow row">
|
||||
<th class="name">{{localize 'l5r5e.sheets.name'}}</th>
|
||||
<th class="curriculum"><i class="fas fa-graduation-cap"></i></th>
|
||||
<th class="xp">{{localize 'l5r5e.advancements.spent'}}</th>
|
||||
<th class="rank">{{localize 'l5r5e.sheets.rank'}}</th>
|
||||
{{#if data.editable_not_soft_locked}}
|
||||
<th class="actions"></th>
|
||||
{{/if}}
|
||||
@@ -36,10 +34,6 @@
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/actors/character/advancement-school.html' advancement=advancement rank=rankObject.rank editable=../../data.editable_not_soft_locked}}
|
||||
{{/each}}
|
||||
{{#ifCond rankObject.rank '>' 0}}
|
||||
<tr class="tfoot flexrow row tab" data-group="advancements" data-tab="advancement_rank_{{rankObject.rank}}">
|
||||
<th>{{localize 'l5r5e.advancements.total_xp_curriculum'}} : {{rankObject.spent.curriculum}}{{#if rankObject.goal}} / {{rankObject.goal}}{{/if}}</th>
|
||||
<th>{{localize 'l5r5e.advancements.total_xp_spent'}} : {{rankObject.spent.total}}</th>
|
||||
</tr>
|
||||
{{#if ../data.editable_not_soft_locked}}
|
||||
{{#ifCond ../data.system.identity.school_rank '<' 6}}
|
||||
{{#ifCond (ifCond ../data.system.identity.school_rank '==' rankObject.rank) '&&' (ifCond rankObject.spent.curriculum '>=' rankObject.goal)}}
|
||||
@@ -58,36 +52,3 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
{{!-- Others progression (does not count in school xp) --}}
|
||||
<fieldset class="xp-spent xp-spent-body">
|
||||
<legend class="tools">
|
||||
{{localize 'l5r5e.advancements.title'}}
|
||||
{{#if data.editable_not_soft_locked}}
|
||||
<a class="advancement-others-control item-advancement-choose" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</legend>
|
||||
<table>
|
||||
<thead class="flex">
|
||||
<tr class="flexrow row">
|
||||
<th class="name">{{localize 'l5r5e.sheets.name'}}</th>
|
||||
<th class="xp">{{localize 'l5r5e.advancements.spent'}}</th>
|
||||
<th class="rank">{{localize 'l5r5e.sheets.rank'}}</th>
|
||||
{{#if data.editable_not_soft_locked}}
|
||||
<th class="actions"></th>
|
||||
{{/if}}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="flex">
|
||||
{{#each data.advancementsOthers as |advancement advancementId|}}
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/actors/character/advancement-others.html' advancement=advancement show_curriculum_toggle=false editable=../data.editable_not_soft_locked}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
<tfoot class="flex">
|
||||
<tr class="tfoot flexrow">
|
||||
<th>
|
||||
{{localize 'l5r5e.advancements.total_xp_spent'}} : {{data.advancementsOthersTotalXp}}
|
||||
</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="invocations-wrapper">
|
||||
<div class="invocations-roll-header">
|
||||
<button class="dice-picker invocation-roll-btn" data-skill="invocation">{{localize 'l5r5e.skills.social.invocation'}}</button>
|
||||
<button type="button" class="dice-picker invocation-roll-btn" data-skill="invocation">{{localize 'l5r5e.skills.social.invocation'}}</button>
|
||||
</div>
|
||||
<div class="invocations-columns">
|
||||
{{#each data.splitInvocationsList as |list type|}}
|
||||
@@ -8,12 +8,21 @@
|
||||
<legend class="technique-controls">
|
||||
<span>{{localize (concat 'chiaroscuro.technique.invocation_types.' type)}}</span>
|
||||
{{#if ../data.editable_not_soft_locked}}
|
||||
<a data-item-type="technique" class="technique-control item-add" data-tech-type="mot_invocation" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
<a data-item-type="mot_invocation" class="technique-control item-add" data-invocation-type="{{type}}" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</legend>
|
||||
<ul class="item-list">
|
||||
{{#each list as |item|}}
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/technique/technique-entry.html' technique=item editable=../../data.editable_not_soft_locked}}
|
||||
<li class="item technique flexcol" data-item-id="{{item._id}}">
|
||||
<ul class="item-header technique-controls">
|
||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||
<li class="item-name l5r5e-tooltip" data-item-id="{{item._id}}">{{item.name}}</li>
|
||||
{{#if ../../data.editable_not_soft_locked}}
|
||||
<li data-item-id="{{item._id}}" class="item-control item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li data-item-id="{{item._id}}" class="item-control item-delete" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</fieldset>
|
||||
|
||||
@@ -1,41 +1,51 @@
|
||||
<ul class="rings">
|
||||
<li id="air">
|
||||
<label class="air {{#ifCond 'air' '==' data.system.stance}}stance-active{{/ifCond}}">
|
||||
<i class="i_air dice-picker rollable" data-ring="air"></i>
|
||||
<div class="ring-circle">
|
||||
<i class="i_air dice-picker rollable" data-ring="air"></i>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.air" value="{{data.system.rings.air}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</div>
|
||||
<strong class="ring-set-default {{#ifCond 'air' '==' data.system.default_ring}}default-ring{{/ifCond}}" data-ring="air" title="{{localize 'chiaroscuro.character.default_ring'}}">{{localizeRing 'air'}}</strong>
|
||||
<span class="ring-type solaire">☀ Solaire</span>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.air" value="{{data.system.rings.air}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="water">
|
||||
<label class="water {{#ifCond 'water' '==' data.system.stance}}stance-active{{/ifCond}}">
|
||||
<i class="i_water dice-picker rollable" data-ring="water"></i>
|
||||
<div class="ring-circle">
|
||||
<i class="i_water dice-picker rollable" data-ring="water"></i>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.water" value="{{data.system.rings.water}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</div>
|
||||
<strong class="ring-set-default {{#ifCond 'water' '==' data.system.default_ring}}default-ring{{/ifCond}}" data-ring="water" title="{{localize 'chiaroscuro.character.default_ring'}}">{{localizeRing 'water'}}</strong>
|
||||
<span class="ring-type lunaire">☽ Lunaire</span>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.water" value="{{data.system.rings.water}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="fire">
|
||||
<label class="fire {{#ifCond 'fire' '==' data.system.stance}}stance-active{{/ifCond}}">
|
||||
<i class="i_fire dice-picker rollable" data-ring="fire"></i>
|
||||
<div class="ring-circle">
|
||||
<i class="i_fire dice-picker rollable" data-ring="fire"></i>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.fire" value="{{data.system.rings.fire}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</div>
|
||||
<strong class="ring-set-default {{#ifCond 'fire' '==' data.system.default_ring}}default-ring{{/ifCond}}" data-ring="fire" title="{{localize 'chiaroscuro.character.default_ring'}}">{{localizeRing 'fire'}}</strong>
|
||||
<span class="ring-type solaire">☀ Solaire</span>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.fire" value="{{data.system.rings.fire}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="earth">
|
||||
<label class="earth {{#ifCond 'earth' '==' data.system.stance}}stance-active{{/ifCond}}">
|
||||
<i class="i_earth dice-picker rollable" data-ring="earth"></i>
|
||||
<div class="ring-circle">
|
||||
<i class="i_earth dice-picker rollable" data-ring="earth"></i>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.earth" value="{{data.system.rings.earth}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</div>
|
||||
<strong class="ring-set-default {{#ifCond 'earth' '==' data.system.default_ring}}default-ring{{/ifCond}}" data-ring="earth" title="{{localize 'chiaroscuro.character.default_ring'}}">{{localizeRing 'earth'}}</strong>
|
||||
<span class="ring-type lunaire">☽ Lunaire</span>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.earth" value="{{data.system.rings.earth}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="void">
|
||||
<label class="void {{#ifCond 'void' '==' data.system.stance}}stance-active{{/ifCond}}">
|
||||
<i class="i_void dice-picker rollable" data-ring="void"></i>
|
||||
<div class="ring-circle">
|
||||
<i class="i_void dice-picker rollable" data-ring="void"></i>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.void" value="{{data.system.rings.void}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</div>
|
||||
<strong class="ring-set-default {{#ifCond 'void' '==' data.system.default_ring}}default-ring{{/ifCond}}" data-ring="void" title="{{localize 'chiaroscuro.character.default_ring'}}">{{localizeRing 'void'}}</strong>
|
||||
<input class="centered-input select-on-focus" type="number" name="system.rings.void" value="{{data.system.rings.void}}" data-dtype="Number" min="1" max="9" placeholder="0" {{^if data.editable_not_soft_locked}}disabled{{/if}}/>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1,4 +1,27 @@
|
||||
<div class="techniques-wrapper">
|
||||
{{!-- Technique d'École items list --}}
|
||||
<fieldset class="section-header flexrow">
|
||||
<legend class="text-block-header">
|
||||
{{localize 'chiaroscuro.technique_ecole.title'}}
|
||||
{{#if data.editable_not_soft_locked}}
|
||||
<a data-item-type="technique_ecole" class="technique-ecole-control item-add" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</legend>
|
||||
<ul class="item-list">
|
||||
{{#each data.techniqueEcoleItems as |item|}}
|
||||
<li class="item technique flexcol" data-item-id="{{item._id}}">
|
||||
<ul class="item-header technique-controls">
|
||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||
<li class="item-name l5r5e-tooltip" data-item-id="{{item._id}}">{{item.name}}</li>
|
||||
{{#if ../data.editable_not_soft_locked}}
|
||||
<li data-item-id="{{item._id}}" class="item-control item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li data-item-id="{{item._id}}" class="item-control item-delete" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</fieldset>
|
||||
{{!-- Arcane items list --}}
|
||||
<fieldset class="section-header flexrow">
|
||||
<legend class="text-block-header">
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
{{!-- Ring accent bar --}}
|
||||
<div class="chi-ring-bar {{ring.id}}"></div>
|
||||
|
||||
{{!-- Header: portrait + actor + ring badge --}}
|
||||
{{!-- Header: portrait + ring badge --}}
|
||||
<div class="chi-chat-header">
|
||||
<img class="profile-img" src="{{profileImg}}" alt="{{actor.name}}" />
|
||||
<div class="chi-chat-actor">
|
||||
<strong>{{actor.name}}</strong>
|
||||
{{#if quickInfo}}<div class="chi-chat-quick-info">{{quickInfo}}</div>{{/if}}
|
||||
</div>
|
||||
<div class="chi-chat-badges">
|
||||
<span class="chi-ring-badge {{ring.id}}" title="{{ring.label}}">
|
||||
<i class="i_{{ring.id}}"></i>
|
||||
@@ -101,4 +97,12 @@
|
||||
{{/if}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Item link (arcane, weapon, etc.) --}}
|
||||
{{#if l5r5e.item.uuid}}
|
||||
<div class="l5r5e item-infos">
|
||||
<div class="profile"><img class="profile-img" src="{{l5r5e.item.img}}" alt="{{l5r5e.item.name}}" /></div>
|
||||
<div class="name">@UUID[{{l5r5e.item.uuid}}]</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
@@ -4,10 +4,17 @@
|
||||
<img class="profile-img" src="{{#if actor.img}}{{actor.img}}{{else}}icons/svg/mystery-man.svg{{/if}}" alt="{{actor.name}}" />
|
||||
<div class="chi-dice-actor-info">
|
||||
<strong>{{actor.name}}</strong>
|
||||
{{#if quickInfo}}<div class="chi-dice-quick-info">{{quickInfo}}</div>{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Quick Info --}}
|
||||
{{#if quickInfo}}
|
||||
<fieldset class="chi-dice-section">
|
||||
<legend>{{localize 'chiaroscuro.character.quick_info'}}</legend>
|
||||
<div class="chi-dice-quick-info">{{quickInfo}}</div>
|
||||
</fieldset>
|
||||
{{/if}}
|
||||
|
||||
{{!-- Ring selector --}}
|
||||
<fieldset class="chi-dice-section">
|
||||
<legend>{{localize 'l5r5e.rings.title'}}</legend>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<div id="l5r5e_gm_combat_tracker_bar" class="l5r5e-combat-bar">
|
||||
<div class="encounter-types">
|
||||
{{#each encounterTypeList as |type|}}
|
||||
<a class="encounter-control {{#ifCond type '==' ../encounterType}}active{{/ifCond}}" data-id="{{type}}" title="{{localize (concat 'l5r5e.conflict.initiative.' type)}}">
|
||||
{{localize (concat 'l5r5e.conflict.initiative.' type)}}
|
||||
</a>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="prepared-controls">
|
||||
<a class="prepared-control prepared-{{prepared.character}}" data-id="character" title="{{localize (concat 'l5r5e.conflict.initiative.prepared_' prepared.character)}}">
|
||||
<i class="fas {{#ifCond prepared.character '==' 'true'}}fa-shield-alt{{else}}{{#ifCond prepared.character '==' 'actor'}}fa-user{{else}}fa-skull{{/ifCond}}{{/ifCond}}"></i>
|
||||
{{localize 'l5r5e.character_types.character'}}
|
||||
</a>
|
||||
<a class="prepared-control prepared-{{prepared.adversary}}" data-id="adversary" title="{{localize (concat 'l5r5e.conflict.initiative.prepared_' prepared.adversary)}}">
|
||||
<i class="fas {{#ifCond prepared.adversary '==' 'true'}}fa-shield-alt{{else}}{{#ifCond prepared.adversary '==' 'actor'}}fa-user{{else}}fa-skull{{/ifCond}}{{/ifCond}}"></i>
|
||||
{{localize 'l5r5e.character_types.adversary'}}
|
||||
</a>
|
||||
<a class="prepared-control prepared-{{prepared.minion}}" data-id="minion" title="{{localize (concat 'l5r5e.conflict.initiative.prepared_' prepared.minion)}}">
|
||||
<i class="fas {{#ifCond prepared.minion '==' 'true'}}fa-shield-alt{{else}}{{#ifCond prepared.minion '==' 'actor'}}fa-user{{else}}fa-skull{{/ifCond}}{{/ifCond}}"></i>
|
||||
{{localize 'l5r5e.character_types.minion'}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -11,6 +11,10 @@
|
||||
{{localize 'chiaroscuro.arcane.arcane_type'}}
|
||||
<input type="text" name="system.arcane_type" value="{{data.system.arcane_type}}" />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.arcane.xp_used'}}
|
||||
<input class="select-on-focus" type="number" name="system.xp_used" value="{{data.system.xp_used}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.arcane.application'}}
|
||||
<input type="text" name="system.applicationDisplay" value="{{data.system.applicationDisplay}}" placeholder="compétence1, compétence2" />
|
||||
@@ -25,7 +29,7 @@
|
||||
</label>
|
||||
</article>
|
||||
{{!-- Description --}}
|
||||
<article class="infos">
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
{{editor data.enrichedHtml.description target="system.description" button=true owner=owner editable=editable engine="prosemirror" collaborate=false}}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
<div class="{{cssClass}}" data-actor-id="{{actor._id}}" data-item-id="{{data._id}}">
|
||||
<header class="card-header">
|
||||
<h2 class="item-name"><img src="{{data.img}}" title="{{data.name}}" /> {{data.name}}</h2>
|
||||
</header>
|
||||
<section class="sheet-body">
|
||||
<ul>
|
||||
{{#if data.system.arcane_type}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.arcane_type'}}</strong> : {{data.system.arcane_type}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.applicationDisplay}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.application'}}</strong> : {{data.system.applicationDisplay}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.bonus}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.bonus'}}</strong> : {{data.system.bonus}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.progression}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.progression'}}</strong> : {{data.system.progression}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.xp_used}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.xp_used'}}</strong> : {{data.system.xp_used}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-text-partial-reference.html'}}
|
||||
</section>
|
||||
</div>
|
||||
@@ -5,13 +5,34 @@
|
||||
</header>
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
{{!-- attributes --}}
|
||||
<article class="attributes" data-group="primary" data-tab="description">
|
||||
<label class="equipped checkbox">
|
||||
<input type="checkbox" name="system.equipped" {{checked data.system.equipped}} />
|
||||
{{ localize 'l5r5e.armors.equipped' }}
|
||||
{{!-- Row 1 : quantité / rareté / coût / équipé --}}
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.sheets.quantity'}}
|
||||
<input class="select-on-focus" type="number" name="system.quantity" value="{{data.system.quantity}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.sheets.rarity'}}
|
||||
<input class="select-on-focus" type="text" name="system.rarity" value="{{data.system.rarity}}" data-dtype="String" placeholder="—"/>
|
||||
</label>
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.money.zeni'}}
|
||||
<input class="select-on-focus" type="text" name="system.zeni" value="{{data.system.zeni}}" data-dtype="String" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="system.equipped" {{checked data.system.equipped}} />
|
||||
{{localize 'l5r5e.armors.equipped'}}
|
||||
</label>
|
||||
{{!-- Row 2 : défenses + catégorie --}}
|
||||
<label class="stat">
|
||||
<span>{{localize 'l5r5e.armors.physical'}}</span>
|
||||
<input class="select-on-focus" type="number" name="system.armor.physical" value="{{data.system.armor.physical}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="stat">
|
||||
<span>{{localize 'l5r5e.armors.supernatural'}}</span>
|
||||
<input class="select-on-focus" type="number" name="system.armor.supernatural" value="{{data.system.armor.supernatural}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="category">
|
||||
{{localize 'l5r5e.armors.type'}}
|
||||
<select name="system.armor_category">
|
||||
<option value="">—</option>
|
||||
@@ -19,6 +40,7 @@
|
||||
</select>
|
||||
</label>
|
||||
</article>
|
||||
{{!-- Description pleine largeur --}}
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{data.img}}" data-edit="img" title="{{data.name}}"/>
|
||||
<h1 class="charname"><input name="name" type="text" value="{{data.name}}" placeholder="Name"/></h1>
|
||||
</header>
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item active" data-group="primary" data-tab="attributes">{{localize 'l5r5e.sheets.attributes'}}</a>
|
||||
<a class="item" data-group="primary" data-tab="description">{{localize 'l5r5e.sheets.infos'}}</a>
|
||||
</nav>
|
||||
<section class="sheet-body">
|
||||
<article class="attributes" data-group="primary" data-tab="attributes">
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.etat.application'}}
|
||||
<input type="text" name="system.application" value="{{data.system.application}}" />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.etat.mod'}}
|
||||
<input class="select-on-focus" type="number" name="system.mod" value="{{data.system.mod}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.etat.effect'}}
|
||||
<input type="text" name="system.effect" value="{{data.system.effect}}" />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.etat.elimination'}}
|
||||
<input type="text" name="system.elimination" value="{{data.system.elimination}}" />
|
||||
</label>
|
||||
</article>
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-infos.html'}}
|
||||
</section>
|
||||
</form>
|
||||
@@ -19,7 +19,7 @@
|
||||
<input class="select-on-focus" type="text" name="system.rarity" value="{{data.system.rarity}}" data-dtype="String" placeholder="0"/>
|
||||
</label>
|
||||
<label class="value">
|
||||
<i class="fas fa-coins"></i>
|
||||
{{localize 'l5r5e.money.zeni'}}
|
||||
<input class="select-on-focus" type="text" name="system.zeni" value="{{data.system.zeni}}" data-dtype="String" placeholder="0"/>
|
||||
</label>
|
||||
</article>
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
{{#each data.splitItemsList as |cat type|}}
|
||||
<h3 class="toggle-on-click" data-toggle="inventory-item-list-{{type}}">
|
||||
{{localize (localize 'l5r5e.{type}s.title' type=type)}} ({{cat.length}})
|
||||
{{localize (concat 'l5r5e.' type 's.title')}} ({{cat.length}})
|
||||
{{#if ../data.editable_not_soft_locked}}
|
||||
<a data-item-type="{{type}}" class="item-control item-add" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>
|
||||
{{/if}}
|
||||
</h3>
|
||||
<ul class="item-list inventory-item-list-{{type}} {{#ifCond ../data.storeInfos 'includes' (concat 'inventory-item-list-' type)}}toggle-hidden{{/ifCond}}">
|
||||
{{#each cat as |item id|}}
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-entry.html' item=item id=id editable=../../options.editable soft_locked=../../data.system.soft_locked}}
|
||||
{{#ifCond item.type '==' 'weapon'}}
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/weapon/weapon-entry.html' weapon=item id=id editable=../../data.editable_not_soft_locked}}
|
||||
{{else}}
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-entry.html' item=item id=id editable=../../options.editable soft_locked=../../data.system.soft_locked}}
|
||||
{{/ifCond}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
{{/each}}
|
||||
@@ -0,0 +1,22 @@
|
||||
<div class="{{cssClass}}" data-actor-id="{{actor._id}}" data-item-id="{{data._id}}">
|
||||
<header class="card-header">
|
||||
<h2 class="item-name"><img src="{{data.img}}" title="{{data.name}}" /> {{data.name}}</h2>
|
||||
</header>
|
||||
<section class="sheet-body">
|
||||
<ul>
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.technique.invocation_type'}}</strong> : {{localize (concat 'chiaroscuro.technique.invocation_types.' data.system.invocation_type)}}
|
||||
</li>
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.technique.mode_invocation'}}</strong> : {{data.system.mode_invocation}}
|
||||
</li>
|
||||
{{#if data.system.xp_used}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.xp_used'}}</strong> : {{data.system.xp_used}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-text-partial-reference.html'}}
|
||||
</section>
|
||||
</div>
|
||||
@@ -17,9 +17,13 @@
|
||||
{{localize 'chiaroscuro.technique.mode_invocation'}}
|
||||
<input class="select-on-focus" type="number" id="mot_invocation_mode" name="system.mode_invocation" value="{{data.system.mode_invocation}}" data-dtype="Number" placeholder="0" readonly />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.arcane.xp_used'}}
|
||||
<input class="select-on-focus" type="number" name="system.xp_used" value="{{data.system.xp_used}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
</article>
|
||||
{{!-- Description --}}
|
||||
<article class="infos">
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
{{editor data.enrichedHtml.description target="system.description" button=true owner=owner editable=editable engine="prosemirror" collaborate=false}}
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
{{selectOptions data.mystereTypes selected=data.system.mystere_type valueAttr='id' labelAttr='label'}}
|
||||
</select>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.arcane.xp_used'}}
|
||||
<input class="select-on-focus" type="number" name="system.xp_used" value="{{data.system.xp_used}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.mystere.prerequisite_skill'}}
|
||||
<input type="text" name="system.prerequisite_skill" value="{{data.system.prerequisite_skill}}" />
|
||||
@@ -20,7 +24,7 @@
|
||||
<input type="text" name="system.prerequisite_condition" value="{{data.system.prerequisite_condition}}" />
|
||||
</label>
|
||||
</article>
|
||||
<article class="infos">
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
{{editor data.enrichedHtml.description target="system.description" button=true owner=owner editable=editable engine="prosemirror" collaborate=false}}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<div class="{{cssClass}}" data-actor-id="{{actor._id}}" data-item-id="{{data._id}}">
|
||||
<header class="card-header">
|
||||
<h2 class="item-name"><img src="{{data.img}}" title="{{data.name}}" /> {{data.name}}</h2>
|
||||
</header>
|
||||
<section class="sheet-body">
|
||||
<ul>
|
||||
{{#if data.system.mystere_type}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.mystere.mystere_type'}}</strong> : {{data.system.mystere_type}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.prerequisite_skill}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.mystere.prerequisite_skill'}}</strong> : {{data.system.prerequisite_skill}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.prerequisite_condition}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.mystere.prerequisite_condition'}}</strong> : {{data.system.prerequisite_condition}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.xp_used}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.xp_used'}}</strong> : {{data.system.xp_used}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-text-partial-reference.html'}}
|
||||
</section>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<div class="{{cssClass}}" data-actor-id="{{actor._id}}" data-item-id="{{data._id}}">
|
||||
<header class="card-header">
|
||||
<h2 class="item-name"><img src="{{data.img}}" title="{{data.name}}" /> {{data.name}}</h2>
|
||||
</header>
|
||||
<section class="sheet-body">
|
||||
<ul>
|
||||
{{#if data.system.application}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.application'}}</strong> : {{data.system.application}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.bonus}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.bonus'}}</strong> : {{data.system.bonus}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if data.system.xp_used}}
|
||||
<li>
|
||||
<strong>{{localize 'chiaroscuro.arcane.xp_used'}}</strong> : {{data.system.xp_used}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
|
||||
{{> 'systems/l5rx-chiaroscuro/templates/items/item/item-text-partial-reference.html'}}
|
||||
</section>
|
||||
</div>
|
||||
@@ -15,9 +15,13 @@
|
||||
{{localize 'chiaroscuro.arcane.bonus'}}
|
||||
<input class="select-on-focus" type="number" name="system.bonus" value="{{data.system.bonus}}" data-dtype="Number" min="0" placeholder="3" readonly />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.arcane.xp_used'}}
|
||||
<input class="select-on-focus" type="number" name="system.xp_used" value="{{data.system.xp_used}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
</article>
|
||||
{{!-- Description --}}
|
||||
<article class="infos">
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
{{editor data.enrichedHtml.description target="system.description" button=true owner=owner editable=editable engine="prosemirror" collaborate=false}}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<li class="item weapon flexcol">
|
||||
<ul class="item-header item-control">
|
||||
<li class="item-img"><img src="{{weapon.img}}" title="{{weapon.name}}" width="32px" height="32px"/></li>
|
||||
<li class="item-name dice-picker l5r5e-tooltip" data-item-id="{{weapon.id}}" data-weapon-id="{{weapon.id}}">{{weapon.name}}</li>
|
||||
<li class="item-name dice-picker l5r5e-tooltip" data-item-id="{{weapon._id}}" data-weapon-id="{{weapon._id}}">{{weapon.name}}</li>
|
||||
<li class="icon-stat-container">
|
||||
<i class="fas fa-arrows-alt-h" title="{{localize 'l5r5e.weapons.range'}}"> {{weapon.system.range}}</i>
|
||||
<i class="fas fa-tint" title="{{localize 'l5r5e.weapons.damage'}}"> {{weapon.system.damage}}</i>
|
||||
<i class="fas fa-skull" title="{{localize 'l5r5e.weapons.deadliness'}}"> {{weapon.system.deadliness}}</i>
|
||||
</li>
|
||||
{{#if editable}}
|
||||
<li data-item-id="{{weapon.id}}" class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li data-item-id="{{weapon.id}}" class="item-delete" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></li>
|
||||
<li data-item-id="{{weapon._id}}" class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li data-item-id="{{weapon._id}}" class="item-delete" title="{{localize 'Delete'}}"><i class="fas fa-trash"></i></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<ul class="item-properties">
|
||||
<li class="equip-readied-control" data-item-id="{{weapon.id}}" data-type="readied">
|
||||
<li class="equip-readied-control" data-item-id="{{weapon._id}}" data-type="readied">
|
||||
<i class="i_readied fa{{^if weapon.system.readied}}r{{/if}} fa-check-circle" title="{{#if weapon.system.readied}}{{localize 'l5r5e.weapons.readied'}}{{else}}{{localize 'l5r5e.weapons.sheathed'}}{{/if}}"></i>
|
||||
</li>
|
||||
{{#each weapon.system.properties as |property|}}
|
||||
|
||||
@@ -5,48 +5,57 @@
|
||||
</header>
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
{{!-- attributes--}}
|
||||
{{!-- Attributes --}}
|
||||
<article class="attributes" data-group="primary" data-tab="description">
|
||||
{{!-- Row 1 : quantité / rareté / coût / équipé --}}
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.sheets.quantity'}}
|
||||
<input class="select-on-focus" type="number" name="system.quantity" value="{{data.system.quantity}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.sheets.rarity'}}
|
||||
<input class="select-on-focus" type="text" name="system.rarity" value="{{data.system.rarity}}" data-dtype="String" placeholder="—"/>
|
||||
</label>
|
||||
<label class="value">
|
||||
{{localize 'l5r5e.money.zeni'}}
|
||||
<input class="select-on-focus" type="text" name="system.zeni" value="{{data.system.zeni}}" data-dtype="String" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="system.equipped" {{checked data.system.equipped}} />
|
||||
{{localize 'l5r5e.weapons.sheathed'}}
|
||||
</label>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="system.readied" {{checked data.system.readied}} />
|
||||
{{localize 'l5r5e.weapons.readied'}}
|
||||
<label class="value">
|
||||
<span>{{localize 'chiaroscuro.weapon.bonus'}}</span>
|
||||
<input class="select-on-focus" type="number" name="system.bonus" value="{{data.system.bonus}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
{{!-- Row 3 : catégorie + compétence --}}
|
||||
<label class="category">
|
||||
{{localize 'l5r5e.weapons.category'}}
|
||||
<select name="system.category">
|
||||
{{selectOptions data.weaponCategories selected=data.system.category valueAttr='id' labelAttr='label'}}
|
||||
</select>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{localize 'chiaroscuro.weapon.bonus'}}
|
||||
<input class="select-on-focus" type="number" name="system.bonus" value="{{data.system.bonus}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="skillType">
|
||||
{{localize 'l5r5e.skills.label'}}
|
||||
<select class="attribute-dtype" name="system.skill">
|
||||
{{selectOptions data.skills selected=data.system.skill valueAttr='id' labelAttr='label' localize=true}}
|
||||
</select>
|
||||
</label>
|
||||
<fieldset class="stats">
|
||||
<legend class="text-block-header">{{localize 'l5r5e.weapons.stats'}}</legend>
|
||||
<label>
|
||||
{{localize 'l5r5e.weapons.range'}}
|
||||
<input class="select-on-focus" type="text" name="system.range" value="{{data.system.range}}" data-dtype="String" placeholder="0"/>
|
||||
</label>
|
||||
<label>
|
||||
{{localize 'l5r5e.weapons.damage'}}
|
||||
<input class="select-on-focus" type="number" name="system.damage" value="{{data.system.damage}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
<label>
|
||||
{{localize 'l5r5e.weapons.deadliness'}}
|
||||
<input class="select-on-focus" type="number" name="system.deadliness" value="{{data.system.deadliness}}" data-dtype="Number" min="0" placeholder="0"/>
|
||||
</label>
|
||||
</fieldset>
|
||||
{{!-- Row 4 : apprêté + prises --}}
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="system.readied" {{checked data.system.readied}} />
|
||||
{{localize 'l5r5e.weapons.readied'}}
|
||||
</label>
|
||||
<label class="grip">
|
||||
{{localize 'l5r5e.weapons.1hand'}}
|
||||
<input class="select-on-focus" type="text" name="system.grip_1" value="{{data.system.grip_1}}" data-dtype="String" placeholder="—"/>
|
||||
</label>
|
||||
<label class="grip">
|
||||
{{localize 'l5r5e.weapons.2hand'}}
|
||||
<input class="select-on-focus" type="text" name="system.grip_2" value="{{data.system.grip_2}}" data-dtype="String" placeholder="—"/>
|
||||
</label>
|
||||
</article>
|
||||
{{!-- Description pleine largeur --}}
|
||||
<article class="tab infos active" data-group="primary" data-tab="infos">
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{localize 'l5r5e.sheets.description'}}</legend>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{localize 'l5r5e.logo.drivethrurpg.link'}}" target="_blank" title="{{localize 'l5r5e.logo.drivethrurpg.info"'}}">
|
||||
<a href="{{localize 'l5r5e.logo.drivethrurpg.link'}}" target="_blank" title="{{localize 'l5r5e.logo.drivethrurpg.info'}}">
|
||||
{{localize 'l5r5e.logo.drivethrurpg.title'}}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
Reference in New Issue
Block a user