some change on items
This commit is contained in:
@@ -211,11 +211,12 @@
|
||||
"voidtip": "You do not receive strife from Strife symbols on checks."
|
||||
}
|
||||
},
|
||||
"xp": {
|
||||
"advancements": {
|
||||
"title": "Advancements",
|
||||
"title_new": "New advancement",
|
||||
"total": "Total",
|
||||
"spent": "Used",
|
||||
"saved": "Saved",
|
||||
"advancements": "Advancements"
|
||||
"saved": "Saved"
|
||||
},
|
||||
"twenty_questions": {
|
||||
"title": "Twenty questions",
|
||||
|
||||
@@ -210,11 +210,12 @@
|
||||
"voidtip": "No acumulas Conflicto de los símbolos de Conflicto de tus tiradas."
|
||||
}
|
||||
},
|
||||
"xp": {
|
||||
"advancements": {
|
||||
"title": "Advancements",
|
||||
"title_new": "New advancement",
|
||||
"total": "Total",
|
||||
"spent": "Usada",
|
||||
"saved": "Restante",
|
||||
"advancements": "Advancements"
|
||||
"saved": "Restante"
|
||||
},
|
||||
"twenty_questions": {
|
||||
"title": "Twenty questions",
|
||||
|
||||
@@ -215,11 +215,12 @@
|
||||
"voidtip": "Tant que vous êtes dans cette posture, vous ne subissez aucun point de Conflit en cas de Conflit."
|
||||
}
|
||||
},
|
||||
"xp": {
|
||||
"advancements": {
|
||||
"title": "Progressions",
|
||||
"title_new": "Nouvelle progression",
|
||||
"total": "Totale",
|
||||
"spent": "Dépensée",
|
||||
"saved": "Restante",
|
||||
"advancements": "Progressions"
|
||||
"saved": "Restante"
|
||||
},
|
||||
"twenty_questions": {
|
||||
"title": "Vingt questions",
|
||||
|
||||
@@ -4,6 +4,11 @@ import { ItemSheetL5r5e } from "./item-sheet.js";
|
||||
* @extends {ItemSheet}
|
||||
*/
|
||||
export class AdvancementSheetL5r5e extends ItemSheetL5r5e {
|
||||
/**
|
||||
* Sub Types of advancements
|
||||
*/
|
||||
static types = ["ring", "skill", "advantage"]; // "technique" has it's own type
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
@@ -14,4 +19,13 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e {
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||
});
|
||||
}
|
||||
|
||||
getData() {
|
||||
const sheetData = super.getData();
|
||||
|
||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||
sheetData.data.subTypesList = AdvancementSheetL5r5e.types;
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,20 @@ export class ItemSheetL5r5e extends ItemSheet {
|
||||
|
||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
sheetData.data.ringsList = CONFIG.L5r5e.stances.map((e) => {
|
||||
return {
|
||||
id: e,
|
||||
label: game.i18n.localize(`l5r5e.rings.${e}`),
|
||||
};
|
||||
});
|
||||
|
||||
sheetData.data.techniquesList = CONFIG.L5r5e.techniques.map((e) => {
|
||||
return {
|
||||
id: e,
|
||||
label: game.i18n.localize(`l5r5e.techniques.${e}`),
|
||||
};
|
||||
});
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ export class PeculiaritySheetL5r5e extends ItemSheetL5r5e {
|
||||
/**
|
||||
* Sub Types of Advantage/Disadvantage
|
||||
*/
|
||||
static SUB_TYPES = ["distinction", "passion", "adversity", "anxiety"];
|
||||
static types = ["distinction", "passion", "adversity", "anxiety"];
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
@@ -23,7 +23,10 @@ export class PeculiaritySheetL5r5e extends ItemSheetL5r5e {
|
||||
|
||||
getData() {
|
||||
const sheetData = super.getData();
|
||||
|
||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||
sheetData.data.subTypesList = PeculiaritySheetL5r5e.types;
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import { WeaponSheetL5r5e } from "./items/weapon-sheet.js";
|
||||
import { TechniqueSheetL5r5e } from "./items/technique-sheet.js";
|
||||
import { QualitySheetL5r5e } from "./items/quality-sheet.js";
|
||||
import { AdvancementSheetL5r5e } from "./items/advancement-sheet.js";
|
||||
import { PeculiaritySheetL5r5e } from "./items/peculiarity-sheet.js";
|
||||
|
||||
// Import Dice Types
|
||||
|
||||
@@ -70,6 +71,7 @@ Hooks.once("init", async function () {
|
||||
Items.registerSheet("l5r5e", WeaponSheetL5r5e, { types: ["weapon"], makeDefault: true });
|
||||
Items.registerSheet("l5r5e", TechniqueSheetL5r5e, { types: ["technique"], makeDefault: true });
|
||||
Items.registerSheet("l5r5e", QualitySheetL5r5e, { types: ["quality"], makeDefault: true });
|
||||
Items.registerSheet("l5r5e", PeculiaritySheetL5r5e, { types: ["peculiarity"], makeDefault: true });
|
||||
Items.registerSheet("l5r5e", AdvancementSheetL5r5e, { types: ["advancement"], makeDefault: true });
|
||||
|
||||
// for debug
|
||||
|
||||
@@ -38,6 +38,9 @@ export const PreloadTemplates = async function () {
|
||||
"systems/l5r5e/templates/item/advancements.html",
|
||||
"systems/l5r5e/templates/item/advancement-sheet.html",
|
||||
"systems/l5r5e/templates/item/advancement-entry.html",
|
||||
"systems/l5r5e/templates/item/peculiarities.html",
|
||||
"systems/l5r5e/templates/item/peculiarity-sheet.html",
|
||||
"systems/l5r5e/templates/item/peculiarity-entry.html",
|
||||
];
|
||||
|
||||
return loadTemplates(templatePaths);
|
||||
|
||||
@@ -31,7 +31,44 @@ export class ActorSheetL5r5e extends BaseSheetL5r5e {
|
||||
await new TwentyQuestionsDialog({}, this.actor).render(true);
|
||||
},
|
||||
});
|
||||
|
||||
return buttons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Commons datas
|
||||
*/
|
||||
getData() {
|
||||
const sheetData = super.getData();
|
||||
|
||||
// Sort Items by rank 0->6 for advancements tab
|
||||
sheetData.items.sort((a, b) => {
|
||||
return (a.data.bought_at_rank || 0) - (b.data.bought_at_rank || 0);
|
||||
});
|
||||
|
||||
// Xp spent only in current rank
|
||||
sheetData.data.advancement.xp_spent_rank = this.getXpSpentInThisRank();
|
||||
|
||||
return sheetData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the current total xp spent for this rank
|
||||
*/
|
||||
getXpSpentInThisRank() {
|
||||
const currentRank = this.actor.data.data.identity.school_rank || 0;
|
||||
const spent = this.actor.items.reduce((tot, item) => {
|
||||
// TODO c'est bien par rang actuel +1 ?
|
||||
if (currentRank + 1 === item.data.data.rank) {
|
||||
let xp = item.data.data.xp_used || 0;
|
||||
|
||||
// if not in curriculum, xp spent /2 for this item
|
||||
if (!item.data.data.in_curriculum && xp > 0) {
|
||||
xp = Math.floor(xp / 2);
|
||||
}
|
||||
return tot + xp;
|
||||
}
|
||||
return tot;
|
||||
}, 0);
|
||||
return spent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ export class BaseSheetL5r5e extends ActorSheet {
|
||||
getData() {
|
||||
const sheetData = super.getData();
|
||||
|
||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||
sheetData.data.stances = CONFIG.L5r5e.stances;
|
||||
|
||||
return sheetData;
|
||||
@@ -48,41 +49,35 @@ export class BaseSheetL5r5e extends ActorSheet {
|
||||
return;
|
||||
}
|
||||
|
||||
// *** Items / Inventory ***
|
||||
html.find(".item-edit").on("click", (ev) => {
|
||||
this._editSubItem(ev, "item");
|
||||
});
|
||||
html.find(".item-delete").on("click", (ev) => {
|
||||
this._deleteSubItem(ev, "item");
|
||||
// *** Items : edit, delete ***
|
||||
["item", "peculiarity", "technique", "advancement"].forEach((type) => {
|
||||
html.find(`.${type}-edit`).on("click", (ev) => {
|
||||
this._editSubItem(ev, type);
|
||||
});
|
||||
html.find(`.${type}-delete`).on("click", (ev) => {
|
||||
this._deleteSubItem(ev, type);
|
||||
});
|
||||
|
||||
if (type !== "item") {
|
||||
html.find(`.${type}-curriculum`).on("click", (ev) => {
|
||||
this._switchSubItemCurriculum(ev, type);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// *** Techniques ***
|
||||
// *** Items : add ***
|
||||
html.find(".technique-add").on("click", (ev) => {
|
||||
this._addSubItem({
|
||||
name: game.i18n.localize("l5r5e.techniques.title_new"),
|
||||
type: "technique",
|
||||
});
|
||||
});
|
||||
html.find(".technique-edit").on("click", (ev) => {
|
||||
this._editSubItem(ev, "technique");
|
||||
});
|
||||
html.find(".technique-delete").on("click", (ev) => {
|
||||
this._deleteSubItem(ev, "technique");
|
||||
});
|
||||
|
||||
// *** Advancement ***
|
||||
html.find(".advancement-add").on("click", (ev) => {
|
||||
this._addSubItem({
|
||||
name: game.i18n.localize("l5r5e.xp.advancements"),
|
||||
name: game.i18n.localize("l5r5e.advancements.title_new"),
|
||||
type: "advancement",
|
||||
});
|
||||
});
|
||||
html.find(".advancement-edit").on("click", (ev) => {
|
||||
this._editSubItem(ev, "advancement");
|
||||
});
|
||||
html.find(".advancement-delete").on("click", (ev) => {
|
||||
this._deleteSubItem(ev, "advancement");
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -115,4 +110,19 @@ export class BaseSheetL5r5e extends ActorSheet {
|
||||
const li = $(ev.currentTarget).parents("." + type);
|
||||
return this.actor.deleteOwnedItem(li.data(type + "Id"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch "in_curriculum"
|
||||
* @private
|
||||
*/
|
||||
_switchSubItemCurriculum(ev, type) {
|
||||
const li = $(ev.currentTarget).parents("." + type);
|
||||
const itemId = li.data(type + "Id");
|
||||
const item = this.actor.getOwnedItem(itemId);
|
||||
return item.update({
|
||||
data: {
|
||||
in_curriculum: !item.data.data.in_curriculum,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,21 +128,21 @@ export class TwentyQuestionsDialog extends FormApplication {
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(event.dataTransfer.getData("text/plain"));
|
||||
if (data.type !== "Item") return;
|
||||
|
||||
const item = game.items.get(data.id);
|
||||
|
||||
if (item.data.type !== type) {
|
||||
if (data.type !== "Item") {
|
||||
return;
|
||||
}
|
||||
|
||||
const item = game.items.get(data.id);
|
||||
if (item || item.data.type !== type) {
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO
|
||||
console.log("** OK ", item);
|
||||
// sub_type === 'peculiarity'
|
||||
} catch (err) {
|
||||
return false;
|
||||
console.warn(err);
|
||||
}
|
||||
|
||||
// TODO
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
"strife": 0,
|
||||
"stance": "void"
|
||||
},
|
||||
"xp": {
|
||||
"advancement": {
|
||||
"xp_total": 0,
|
||||
"xp_spent": 0,
|
||||
"xp_saved": 0
|
||||
@@ -134,10 +134,10 @@
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"types": ["item", "armor", "weapon", "technique", "quality", "advantage", "disadvantage", "advancement"],
|
||||
"types": ["item", "armor", "weapon", "technique", "quality", "peculiarity", "advancement"],
|
||||
"item": {
|
||||
"description": "",
|
||||
"properties": "",
|
||||
"properties": [],
|
||||
"quantity": 1,
|
||||
"rarity": 0,
|
||||
"weight": 0,
|
||||
@@ -152,7 +152,7 @@
|
||||
"physical": 0,
|
||||
"supernatural": 0
|
||||
},
|
||||
"properties": "",
|
||||
"properties": [],
|
||||
"rarity": 0,
|
||||
"zeni": 0,
|
||||
"equipped": false
|
||||
@@ -165,7 +165,7 @@
|
||||
"deadliness": 0,
|
||||
"grip_1": "",
|
||||
"grip_2": "",
|
||||
"properties": "",
|
||||
"properties": [],
|
||||
"quantity": 1,
|
||||
"rarity": 0,
|
||||
"weight": 0,
|
||||
@@ -175,8 +175,10 @@
|
||||
},
|
||||
"technique": {
|
||||
"technique_type": "",
|
||||
"in_curriculum": false,
|
||||
"xp_used": 0,
|
||||
"rank": 0,
|
||||
"rank": 1,
|
||||
"bought_at_rank": 1,
|
||||
"ring": "",
|
||||
"effects": "",
|
||||
"description": ""
|
||||
@@ -184,15 +186,22 @@
|
||||
"quality": {
|
||||
"description": ""
|
||||
},
|
||||
"advantage": {
|
||||
"description": ""
|
||||
},
|
||||
"disadvantage": {
|
||||
"peculiarity": {
|
||||
"peculiarity_type": "distinction",
|
||||
"in_curriculum": false,
|
||||
"xp_used": 0,
|
||||
"rank": 1,
|
||||
"bought_at_rank": 1,
|
||||
"ring": "void",
|
||||
"types": "",
|
||||
"description": ""
|
||||
},
|
||||
"advancement": {
|
||||
"advancement_type": "",
|
||||
"in_curriculum": false,
|
||||
"xp_used": 0,
|
||||
"rank": "",
|
||||
"rank": 1,
|
||||
"bought_at_rank": 1,
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,14 +18,32 @@
|
||||
</article>
|
||||
{{!-- Attributes Tab --}}
|
||||
<article class="tab attributes" data-group="primary" data-tab="attributes">
|
||||
<!-- TODO j'ai mis tous les attributs en vrac, à réorganiser -->
|
||||
<select name="data.advancement_type">
|
||||
{{#select item.data.advancement_type}}
|
||||
{{#each item.data.subTypesList as |type|}}
|
||||
<option value="{{type}}">{{type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<!-- TODO drag n drop de l'item sélectionné ? -->
|
||||
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.in_curriculum" {{checked item.data.in_curriculum}} />
|
||||
in curriculum
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.xp.spent' }}
|
||||
{{ localize 'l5r5e.advancements.spent' }}
|
||||
<input type="text" name="data.xp_used" value="{{data.xp_used}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.rank' }}
|
||||
<input type="text" name="data.rank" value="{{data.rank}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.bought_at_rank' }}
|
||||
<input type="text" name="data.bought_at_rank" value="{{data.bought_at_rank}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
</article>
|
||||
</section>
|
||||
</form>
|
||||
@@ -1,5 +1,5 @@
|
||||
<fieldset class="weapons-content">
|
||||
<legend class="section-header">{{ localize 'l5r5e.xp.advancements' }}</legend>
|
||||
<legend class="section-header">{{ localize 'l5r5e.advancements.title' }}</legend>
|
||||
<ul class="item-list">
|
||||
{{#each actor.items as |item id|}}
|
||||
{{#ifCond item.type '==' 'advancement'}}
|
||||
|
||||
@@ -22,7 +22,12 @@
|
||||
<label>{{ localize 'l5r5e.zeni' }}</label>
|
||||
<input type="text" name="data.zeni" value="{{data.zeni}}" data-dtype="Number"/>
|
||||
</div>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.equipped" {{checked item.data.equipped}} />
|
||||
equipped
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
@@ -51,7 +56,7 @@
|
||||
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.properties' }}</legend>
|
||||
{{editor content=data.properties target="data.properties" button=true owner=owner editable=editable}}
|
||||
<!-- TODO data.properties a faire en dnd avec les items de type "quality" -->
|
||||
</fieldset>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
<input type="text" name="data.zeni" value="{{data.zeni}}" data-dtype="Number"/>
|
||||
</div>
|
||||
</div>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.equipped" {{checked item.data.equipped}} />
|
||||
equipped
|
||||
</label>
|
||||
</header>
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
@@ -45,25 +49,11 @@
|
||||
<li class="attribute-control" data-action="create" title="{{ localize 'l5r5e.add' }}"><i class="fas fa-plus"></i></li>
|
||||
</ul>
|
||||
<ol class="attributes-list">
|
||||
{{#each data.attributes as |attr key|}}
|
||||
<li class="attribute flexrow" data-attribute="{{key}}">
|
||||
<input class="attribute-key" type="text" name="data.attributes.{{key}}.key" value="{{key}}"/>
|
||||
{{#if attr.isCheckbox}}
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.attributes.{{key}}.value" {{checked attr.value}}/></label>
|
||||
{{else}}
|
||||
<input class="attribute-value" type="text" name="data.attributes.{{key}}.value" value="{{attr.value}}" data-dtype="{{attr.dtype}}"/>
|
||||
{{/if}}
|
||||
<input class="attribute-label" type="text" name="data.attributes.{{key}}.label" value="{{attr.label}}"/>
|
||||
<select class="attribute-dtype" name="data.attributes.{{key}}.dtype">
|
||||
{{#select attr.dtype}}
|
||||
{{#each ../dtypes as |t|}}
|
||||
<option value="{{t}}">{{t}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<a class="attribute-control" data-action="delete"><i class="fas fa-trash"></i></a>
|
||||
</li>
|
||||
{{/each}}
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.properties' }}</legend>
|
||||
<!-- TODO data.properties a faire en dnd avec les items de type "quality" -->
|
||||
</fieldset>
|
||||
<!--{{#each data.attributes as |attr key|}} {{/each}}-->
|
||||
</ol>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
10
system/templates/item/peculiarities.html
Normal file
10
system/templates/item/peculiarities.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<fieldset class="weapons-content">
|
||||
<legend class="section-header">{{ localize 'l5r5e.advancements.title' }}</legend>
|
||||
<ul class="item-list">
|
||||
{{#each actor.items as |item id|}}
|
||||
{{#ifCond item.type '==' 'advancement'}}
|
||||
{{> 'systems/l5r5e/templates/item/advancement-entry.html' advancement=item id=id }}
|
||||
{{/ifCond}}
|
||||
{{/each}}
|
||||
</ul>
|
||||
</fieldset>
|
||||
9
system/templates/item/peculiarity-entry.html
Normal file
9
system/templates/item/peculiarity-entry.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<li class="item advancement flexcol" data-advancement-id="{{advancement._id}}">
|
||||
<ul class="item-header advancement-controls">
|
||||
<li class="item-img"><img src="{{advancement.img}}" title="{{advancement.name}}" width="32px" height="32px"/></li>
|
||||
<li class="item-name">{{ advancement.name }}</li>
|
||||
<li class="item-control advancement-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li class="item-control advancement-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||
</ul>
|
||||
<div class="item-description">{{{ advancement.data.description }}}</div>
|
||||
</li>
|
||||
64
system/templates/item/peculiarity-sheet.html
Normal file
64
system/templates/item/peculiarity-sheet.html
Normal file
@@ -0,0 +1,64 @@
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{item.img}}" data-edit="img" title="{{item.name}}" />
|
||||
<div class="header-fields">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="description">Description</a>
|
||||
<a class="item" data-tab="attributes">Attributes</a>
|
||||
</nav>
|
||||
{{!-- Description Tab --}}
|
||||
<article class="tab flexcol" data-group="primary" data-tab="description">
|
||||
{{editor content=item.data.description target="item.data.description" button=true owner=owner editable=editable}}
|
||||
</article>
|
||||
{{!-- Attributes Tab --}}
|
||||
<article class="tab attributes" data-group="primary" data-tab="attributes">
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.in_curriculum" {{checked item.data.in_curriculum}} />
|
||||
in curriculum
|
||||
</label>
|
||||
|
||||
<!-- TODO j'ai mis tous les attributs en vrac, à réorganiser -->
|
||||
<select name="data.ring">
|
||||
{{#select item.data.ringsList}}
|
||||
{{#each item.data.rings as |obj|}}
|
||||
<option value="{{obj.id}}">{{obj.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
<select class="attribute" name="data.peculiarity_type">
|
||||
{{#select item.data.peculiarity_type}}
|
||||
{{#each item.data.subTypesList as |type|}}
|
||||
<option value="{{type}}">{{type}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.data.types' }}
|
||||
<input type="text" name="data.types" value="{{item.data.types}}" />
|
||||
</label>
|
||||
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.advancements.spent' }}
|
||||
<input type="text" name="data.xp_used" value="{{item.data.xp_used}}" data-dtype="Number" placeholder="0" />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.rank' }}
|
||||
<input type="text" name="data.rank" value="{{data.rank}}" data-dtype="Number" placeholder="0" />
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.bought_at_rank' }}
|
||||
<input type="text" name="data.bought_at_rank" value="{{data.bought_at_rank}}" data-dtype="Number"
|
||||
placeholder="0" />
|
||||
</label>
|
||||
</article>
|
||||
</section>
|
||||
</form>
|
||||
@@ -18,14 +18,46 @@
|
||||
</article>
|
||||
{{!-- Attributes Tab --}}
|
||||
<article class="tab attributes" data-group="primary" data-tab="attributes">
|
||||
<!-- TODO j'ai mis tous les attributs en vrac, à réorganiser -->
|
||||
<select name="data.ring">
|
||||
{{#select item.data.ring}}
|
||||
{{#each item.data.ringsList as |obj|}}
|
||||
<option value="{{obj.id}}">{{obj.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<select name="data.technique_type">
|
||||
{{#select item.data.technique_type}}
|
||||
{{#each item.data.techniquesList as |obj|}}
|
||||
<option value="{{obj.id}}">{{obj.label}}</option>
|
||||
{{/each}}
|
||||
{{/select}}
|
||||
</select>
|
||||
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.in_curriculum" {{checked item.data.in_curriculum}} />
|
||||
in curriculum
|
||||
</label>
|
||||
|
||||
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.xp.spent' }}
|
||||
<input type="text" name="data.xp_used" value="{{data.xp_used}}" data-dtype="Number" placeholder="0"/>
|
||||
{{ localize 'l5r5e.advancements.spent' }}
|
||||
<input type="text" name="data.xp_used" value="{{item.data.xp_used}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.rank' }}
|
||||
<input type="text" name="data.rank" value="{{data.rank}}" data-dtype="Number" placeholder="0"/>
|
||||
<input type="text" name="data.rank" value="{{item.data.rank}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.bought_at_rank' }}
|
||||
<input type="text" name="data.bought_at_rank" value="{{item.data.bought_at_rank}}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute">
|
||||
{{ localize 'l5r5e.effects' }}
|
||||
<input type="text" name="data.effects" value="{{item.data.effects}}"/>
|
||||
</label>
|
||||
|
||||
</article>
|
||||
</section>
|
||||
</form>
|
||||
@@ -28,6 +28,10 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
<label class="attribute-value checkbox">
|
||||
<input type="checkbox" name="data.equipped" {{checked item.data.equipped}} />
|
||||
equipped
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="header-fields">
|
||||
@@ -72,7 +76,7 @@
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.properties' }}</legend>
|
||||
{{editor content=data.properties target="data.properties" button=true owner=owner editable=editable}}
|
||||
<!-- TODO data.properties a faire en dnd avec les items de type "quality" -->
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend class="text-block-header">{{ localize 'l5r5e.description' }}</legend>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<tr class="flexrow row advancement" data-advancement-id="{{advancement._id}}">
|
||||
<td class="name" name="advancement.name">{{ advancement.name }}</td>
|
||||
<td class="name" name="advancement.name">{{#if advancement.data.in_curriculum}}<i class="fas fa-graduation-cap"></i> {{/if}}{{ advancement.name }}</td>
|
||||
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>
|
||||
<td class="rank" name="advancement.rank">{{ advancement.data.rank }}</td>
|
||||
<td class="actions">
|
||||
<li class="item-control advancement-curriculum" title="{{localize 'l5r5e.global.curriculum'}}"><i class="fas fa-graduation-cap"></i></li>
|
||||
<li class="item-control advancement-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||
<li class="item-control advancement-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||
</td>
|
||||
|
||||
@@ -1,32 +1,38 @@
|
||||
<fieldset class="xp">
|
||||
<legend>{{ localize 'l5r5e.experience'}}</legend>
|
||||
<label class="attribute-label">
|
||||
{{ localize 'l5r5e.xp.total' }}
|
||||
<input type="text" name="data.xp_total" value="{{ data.xp_total }}" data-dtype="Number" placeholder="0"/>
|
||||
{{ localize 'l5r5e.advancements.total' }}
|
||||
<input type="text" name="data.advancement.xp_total" value="{{ data.advancement.xp_total }}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute-label">
|
||||
{{ localize 'l5r5e.xp.spent' }}
|
||||
{{ localize 'l5r5e.advancements.spent' }}
|
||||
<input type="text" name="data.xp_spent" value="{{ data.xp_spent }}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
<label class="attribute-label">
|
||||
{{ localize 'l5r5e.xp.saved' }}
|
||||
<input type="text" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" placeholder="0"/>
|
||||
{{ localize 'l5r5e.advancements.saved' }}
|
||||
<input type="text" name="data.advancement.xp_saved" value="{{ data.advancement.xp_saved }}" data-dtype="Number" placeholder="0"/>
|
||||
</label>
|
||||
|
||||
<label class="attribute-label">
|
||||
Total dépensé dans ce rang:
|
||||
{{ data.advancement.xp_spent_rank }}
|
||||
</label>
|
||||
|
||||
</fieldset>
|
||||
<fieldset class="advancement">
|
||||
<legend class="tools">{{ localize 'l5r5e.xp.advancements'}} <a class="advancement-control advancement-add" title="{{ localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a></legend>
|
||||
<legend class="tools">{{ localize 'l5r5e.advancements.title'}} <a class="advancement-control advancement-add" title="{{ localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a></legend>
|
||||
<table>
|
||||
<thead class="flex">
|
||||
<tr class="flexrow row">
|
||||
<th class="name">{{ localize 'l5r5e.name' }}</th>
|
||||
<th class="xp">{{ localize 'l5r5e.xp.spent' }}</th>
|
||||
<th class="xp">{{ localize 'l5r5e.advancements.spent' }}</th>
|
||||
<th class="rank">{{ localize 'l5r5e.rank' }}</th>
|
||||
<th class="actions"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="flex">
|
||||
{{#each actor.items as |advancement advancementId|}}
|
||||
{{#ifCond (ifCond advancement.type '==' 'technique') '||' (ifCond advancement.type '==' 'advancement')}}
|
||||
{{#ifCond '["peculiarity", "technique","advancement"]' 'includes' advancement.type}}
|
||||
{{> 'systems/l5r5e/templates/sheets/actor/advancement.html' advancement=advancement }}
|
||||
{{/ifCond}}
|
||||
{{/each}}
|
||||
|
||||
@@ -3,35 +3,35 @@
|
||||
<label class="attribute-label earth centered-input">
|
||||
<i class="i_earth"></i>
|
||||
<strong>{{ localizeRing 'earth' }}</strong>
|
||||
<input class="centered-input" type="text" name="data.rings.earth" value="{{data.rings.earth}}" data-dtype="Number" placeholder="0"/>
|
||||
<input class="centered-input" type="text" name="data.rings.earth" value="{{data.rings.earth}}" data-dtype="Number" min="0" max="9" placeholder="0"/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="air">
|
||||
<label class="attribute-label air centered-input">
|
||||
<i class="i_air"></i>
|
||||
<strong>{{ localizeRing 'air' }}</strong>
|
||||
<input class="centered-input" type="text" name="data.rings.air" value="{{data.rings.air}}" data-dtype="Number" placeholder="0"/>
|
||||
<input class="centered-input" type="text" name="data.rings.air" value="{{data.rings.air}}" data-dtype="Number" min="0" max="9" placeholder="0"/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="water">
|
||||
<label class="attribute-label water centered-input">
|
||||
<i class="i_water"></i>
|
||||
<strong>{{ localizeRing 'water' }}</strong>
|
||||
<input class="centered-input" type="text" name="data.rings.water" value="{{data.rings.water}}" data-dtype="Number" placeholder="0"/>
|
||||
<input class="centered-input" type="text" name="data.rings.water" value="{{data.rings.water}}" data-dtype="Number" min="0" max="9" placeholder="0"/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="fire">
|
||||
<label class="attribute-label fire centered-input">
|
||||
<i class="i_fire"></i>
|
||||
<strong>{{ localizeRing 'fire' }}</strong>
|
||||
<input class="centered-input" type="text" name="data.rings.fire" value="{{data.rings.fire}}" data-dtype="Number" placeholder="0"/>
|
||||
<input class="centered-input" type="text" name="data.rings.fire" value="{{data.rings.fire}}" data-dtype="Number" min="0" max="9" placeholder="0"/>
|
||||
</label>
|
||||
</li>
|
||||
<li id="void">
|
||||
<label class="attribute-label void centered-input">
|
||||
<i class="i_void"></i>
|
||||
<strong>{{ localizeRing 'void' }}</strong>
|
||||
<input class="centered-input" type="text" name="data.rings.void" value="{{data.rings.void}}" data-dtype="Number" placeholder="0"/>
|
||||
<input class="centered-input" type="text" name="data.rings.void" value="{{data.rings.void}}" data-dtype="Number" min="0" max="9" placeholder="0"/>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
Reference in New Issue
Block a user