advancements now with tabs

This commit is contained in:
Vlyan
2020-12-31 12:18:25 +01:00
parent c9b60c1333
commit 267c77c78b
10 changed files with 67 additions and 30 deletions

View File

@@ -263,6 +263,7 @@
"title": "Advancements",
"title_new": "New advancement",
"school_rank": "School rank",
"school_rank_0": "Bg",
"total": "Total",
"cost": "Cost",
"spent": "Used",

View File

@@ -263,6 +263,7 @@
"title": "Advancements",
"title_new": "New advancement",
"school_rank": "School rank",
"school_rank_0": "Bg",
"total": "Total",
"cost": "Cost",
"spent": "Usada",

View File

@@ -263,6 +263,7 @@
"title": "Progressions",
"title_new": "Nouvelle progression",
"school_rank": "Rang d'école",
"school_rank_0": "Bg",
"total": "Totale",
"cost": "Coût",
"spent": "Dépensée",

View File

@@ -11,7 +11,7 @@ export class BaseSheetL5r5e extends ActorSheet {
// template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
width: 600,
height: 800,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
});
}
@@ -162,7 +162,7 @@ export class BaseSheetL5r5e extends ActorSheet {
tgt.hasClass("toggle-active") ? tgt.removeClass("toggle-active") : tgt.addClass("toggle-active");
});
// *** Items : add, edit, delete, curriculum ***
// *** Items : add, edit, delete ***
html.find(".item-add").on("click", (event) => {
this._addSubItem(event);
});
@@ -172,21 +172,6 @@ export class BaseSheetL5r5e extends ActorSheet {
html.find(`.item-delete`).on("click", (event) => {
this._deleteSubItem(event);
});
html.find(`.item-curriculum`).on("click", (event) => {
this._switchSubItemCurriculum(event);
});
html.find(`button[name=validate-curriculum]`).on("click", (event) => {
this.actor.data.data.identity.school_rank = this.actor.data.data.identity.school_rank + 1;
// Update actor
this.actor.update({
data: {
identity: {
school_rank: this.actor.data.data.identity.school_rank,
},
},
});
this.render(false);
});
}
/**

View File

@@ -9,6 +9,10 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
return mergeObject(super.defaultOptions, {
classes: ["l5r5e", "sheet", "actor"],
template: CONFIG.l5r5e.paths.templates + "actors/character-sheet.html",
tabs: [
{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" },
{ navSelector: ".advancements-tabs", contentSelector: ".advancements-body", initial: "last" },
],
});
}
@@ -57,6 +61,42 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
return sheetData;
}
/**
* Subscribe to events from the sheet.
* @param html HTML content of the sheet.
*/
activateListeners(html) {
super.activateListeners(html);
// *** Everything below here is only needed if the sheet is editable ***
if (!this.options.editable) {
return;
}
// *** Items : curriculum management ***
html.find(`.item-curriculum`).on("click", (event) => {
this._switchSubItemCurriculum(event);
});
html.find(`button[name=validate-curriculum]`).on("click", (event) => {
this.actor.data.data.identity.school_rank = this.actor.data.data.identity.school_rank + 1;
// Update actor
this.actor.update({
data: {
identity: {
school_rank: this.actor.data.data.identity.school_rank,
},
},
});
this.render(false);
});
// Advancements Tab to current rank onload
// TODO class "Active" Bug on load, dunno why :/
this._tabs
.find((e) => e._navSelector === ".advancements-tabs")
.activate("advancement_rank_" + (this.actor.data.data.identity.school_rank || 0));
}
/**
* Return the total xp spent and the current total xp spent for this rank
*/
@@ -77,10 +117,6 @@ export class CharacterSheetL5r5e extends BaseSheetL5r5e {
}
const rank = Math.max(0, item.data.bought_at_rank);
if (rank < 1) {
// Ignore starting comp/items
return;
}
if (!adv[rank]) {
adv[rank] = {
rank: rank,

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,7 @@
// -- Nav
nav {
&.sheet-tabs {
&.sheet-tabs,
&.advancements-tabs {
height: 3rem;
line-height: 3rem;
font-family: $font-tertiary;

View File

@@ -39,6 +39,9 @@
box-shadow: none;
}
}
.advancements-tab {
min-width: 60px;
}
}
&.item,
.technique,

View File

@@ -1,4 +1,4 @@
<tr class="flexrow row advancement">
<tr data-group="advancements" data-tab="advancement_rank_{{rank}}" class="flexrow row advancement tab">
<td class="curriculum" name="curriculum">{{#if advancement.data.in_curriculum}}<i class="fas fa-graduation-cap"></i> {{/if}}</td>
<td class="name" name="advancement.name"><img src="{{ advancement.img }}" title="{{ advancement.name }}"> {{ advancement.name }}</td>
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>

View File

@@ -13,8 +13,16 @@
<input class="centered-input select-on-focus" type="number" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" min="0" placeholder="0" disabled/>
</label>
</fieldset>
<fieldset class="advancement">
<fieldset class="advancement advancements-body">
<legend class="tools">{{ localize 'l5r5e.advancements.title'}} <a data-item-type="advancement" class="advancement-control item-add" title="{{ localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a></legend>
<nav class="advancements-tabs tabs" data-group="advancements">
<a class="item advancements-tab" data-tab="advancement_rank_0">{{localize 'l5r5e.advancements.school_rank_0'}}</a>
{{#each advancementsListByRank as |rankObject|}}
{{#ifCond rank '>' 0}}
<a class="item advancements-tab" data-tab="advancement_rank_{{rank}}" title="{{localize 'l5r5e.advancements.school_rank'}} {{rankObject.rank}}">{{rankObject.rank}}</a>
{{/ifCond}}
{{/each}}
</nav>
<table>
<thead class="flex">
<tr class="flexrow row">
@@ -29,19 +37,19 @@
</thead>
<tbody class="flex">
{{#each advancementsListByRank as |rankObject|}}
<tr class="flexrow row">
<th>{{localize 'l5r5e.advancements.school_rank'}} {{rankObject.rank}}</th>
</tr>
{{#each rankObject.list as |advancement advancementId|}}
{{> 'systems/l5r5e/templates/actors/character/advancement.html' advancement=advancement editable=../../editable }}
{{> 'systems/l5r5e/templates/actors/character/advancement.html' advancement=advancement rank=rankObject.rank editable=../../editable }}
{{/each}}
<tr class="flexrow row">
{{#ifCond rankObject.rank '>' 0}}
<tr data-group="advancements" data-tab="advancement_rank_{{rankObject.rank}}" class="flexrow row tab">
<th class="">
{{#ifCond ../data.identity.school_rank '<' 6}}
{{#ifCond (ifCond ../data.identity.school_rank '==' rankObject.rank) '&&' (ifCond rankObject.spent '>=' rankObject.goal)}}
<button type="button" name="validate-curriculum">
<i class='fas fa-check-square'></i> {{ localize 'l5r5e.advancements.curriculum_validate' }}
</button>
{{/ifCond}}
{{/ifCond}}
</th>
<th class="">
{{ localize 'l5r5e.advancements.total_xp_rank' }} :
@@ -49,6 +57,7 @@
{{#if rankObject.goal}}/{{rankObject.goal}}{{/if}}
</th>
</tr>
{{/ifCond}}
{{/each}}
</tbody>
</table>