Compare commits

..

14 Commits
master ... dev

Author SHA1 Message Date
Litasa
8555138366 Merge branch 'v14update_varius_fixes' into 'dev'
V14 update with various fixes

See merge request teaml5r/l5r5e!66
2026-04-12 11:00:49 +00:00
Litasa
b14006a826 V14 update with various fixes
* Fixing so that chat messages now show list icon
* Fixed deprecation message from chat
* Adding our custom drop down icons to search compendium filter
* Fixing error when creating actors
2026-04-12 11:00:49 +00:00
Litasa
48a751b508 Merge branch 'fixing_autocomplete' into 'dev'
Re-add autocomplete-wrapper (was removed prematurely)

See merge request teaml5r/l5r5e!65
2026-04-10 05:26:46 +00:00
Litasa
8dcfbcfaf7 Re-add autocomplete-wrapper (was removed prematurely) 2026-04-10 07:16:04 +02:00
Vlyan
55f6dfaee7 Compat v14 : fix chat input 2026-04-06 16:39:28 +02:00
Vlyan
79b3290002 Compat v14 : rollMode -> messageMode 2026-04-06 14:56:46 +02:00
Vlyan
1cbe8af998 Compat v14 : CSS for Dice (Chat & RnK) 2026-04-06 12:54:26 +02:00
Vlyan
852703c4ef Compat v14 : replace broken localize² with new helper localizeEmbedded 2026-04-06 12:54:26 +02:00
Litasa
71f01b1c5c Merge branch 'issue_77_mark_dead_combat_tracker' into 'dev'
Adding the default status dead, used for marking combatants dead

See merge request teaml5r/l5r5e!64
2026-04-06 08:58:25 +00:00
litasa
4b3b7d86fd Adding the default status dead, used for marking combatants dead 2026-04-06 08:56:41 +00:00
Vlyan
1c27693dbe Fix black embedded links displays on Tooltips. 2026-03-11 09:18:07 +01:00
Vlyan
ff7be43861 Fix List without bullet on item sheets 2026-03-11 09:05:57 +01:00
Litasa
9927c40963 Merge branch 'update_package_json_adding_foundryvtt_cli' into 'dev'
Updated dev dependencies. Added foundryvtt cli to dev dependencies

See merge request teaml5r/l5r5e!63
2026-03-03 20:44:41 +00:00
litasa
236a0fd300 Updated dev dependencies. Added foundryvtt cli to dev dependencies 2026-03-03 06:57:29 +01:00
30 changed files with 3164 additions and 8385 deletions

View File

@@ -6,6 +6,12 @@ Date format : day/month/year
> - `foundry-version`: Stick to the major version of FoundryVTT.
> - `system-version`: System functionalities and Fixes.
## 1.14.0 - ??/04/2026 - Foundry v14 Compatibility
__! Be certain to carefully back up any critical user data before installing this update !__
- Updated the System to FoundryVTT v14.
- Fix List without bullet on item sheets.
- Fix black embedded links displays on Tooltips.
## 1.13.4 - 01/03/2026 - UI Polish, Compendium Upgrades
Welcoming Litasa as a maintainer for the system!

View File

@@ -3,7 +3,7 @@
![Banner Legend of the Five Rings](./l5rBan.jpg)
[![Buy Me a Coffee](./tags-bymecoffee.svg)](https://ko-fi.com/vlyan)
[![FoundryVTT version](https://img.shields.io/badge/FVTT-v13-informational)](https://foundryvtt.com/)
[![FoundryVTT version](https://img.shields.io/badge/FVTT-v14-informational)](https://foundryvtt.com/)
[![Forge Installs](https://img.shields.io/badge/dynamic/json?label=Forge%20Installs&query=package.installs&suffix=%25&url=https%3A%2F%2Fforge-vtt.com%2Fapi%2Fbazaar%2Fpackage%2Fl5r5e&colorB=4aa94a)](https://forge-vtt.com/bazaar#package=l5r5e)
[![Foundry Hub Endorsements](https://img.shields.io/endpoint?logoColor=white&url=https%3A%2F%2Fwww.foundryvtt-hub.com%2Fwp-json%2Fhubapi%2Fv1%2Fpackage%2Fl5r5e%2Fshield%2Fendorsements)](https://www.foundryvtt-hub.com/package/l5r5e/)
[![Foundry Hub Comments](https://img.shields.io/endpoint?logoColor=white&url=https%3A%2F%2Fwww.foundryvtt-hub.com%2Fwp-json%2Fhubapi%2Fv1%2Fpackage%2Fl5r5e%2Fshield%2Fcomments)](https://www.foundryvtt-hub.com/package/l5r5e/)

11252
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -19,17 +19,18 @@
},
"homepage": "https://gitlab.com/teaml5r/l5r5e#readme",
"devDependencies": {
"@foundryvtt/foundryvtt-cli": "^3.0.3",
"babel-eslint": "^10.1.0",
"browser-sync": "^2.27.10",
"browser-sync": "^3.0.4",
"eslint": "^8.27.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"gulp": "^4.0.2",
"gulp": "^5.0.1",
"gulp-autoprefixer": "^8.0.0",
"gulp-sass": "^5.1.0",
"lint-staged": "^10.5.1",
"sass": "^1.56.1",
"prettier": "^2.7.1"
"prettier": "^2.7.1",
"sass": "^1.56.1"
},
"lint-staged": {
"*.js": "eslint --cache --fix",

View File

@@ -73,7 +73,7 @@ export class ActorL5r5e extends Actor {
);
break;
}
await super.create(docData, options);
return super.create(docData, options);
}
/**

View File

@@ -111,7 +111,7 @@ export class CombatL5r5e extends Combat {
if (messageOptions.rnkRoll instanceof game.l5r5e.RollL5r5e && ids.length === 1) {
// Specific RnK
roll = messageOptions.rnkRoll;
rnkMessage = await roll.toMessage({ flavor }, { rollMode: messageOptions.rollMode || null });
rnkMessage = await roll.toMessage({ flavor }, { messageMode: messageOptions.messageMode || null });
} else {
// Regular
roll = new game.l5r5e.RollL5r5e(formula ?? createFormula.join("+"));

View File

@@ -180,6 +180,10 @@ export const L5R5E = {
name: "l5r5e.conditions.unconscious",
img: "systems/l5r5e/assets/icons/conditions/unconscious.webp",
system: { id: "L5RCoreCon000015" }
},{
id: "dead",
name: "EFFECT.StatusDead",
img: "icons/svg/skull.svg"
}],
regex: {
techniqueDifficulty: /^@([TS]):([^|]+?)(?:\|(min|max)(?:\(([^)]+?)\))?)?$/,

View File

@@ -1,3 +1,5 @@
import { HelpersL5r5e } from "../helpers.js";
/**
* L5R Dice Roll n Keep dialog
* @extends {FormApplication}
@@ -651,7 +653,7 @@ export class RollnKeepDialog extends FormApplication {
if (this.roll.l5r5e.isInitiativeRoll) {
let msgOptions = {
rnkRoll: this.roll,
rollMode: game.l5r5e.HelpersL5r5e.getRollMode(this._message),
messageMode: HelpersL5r5e.getMessageMode(this._message),
};
await this.roll.l5r5e.actor.rollInitiative({
@@ -667,7 +669,7 @@ export class RollnKeepDialog extends FormApplication {
// Send it to chat, switch to new message
this.message = await this.roll.toMessage(
{},
{ rollMode: game.l5r5e.HelpersL5r5e.getRollMode(this._message) }
{ messageMode: HelpersL5r5e.getMessageMode(this._message) }
);
}

View File

@@ -327,18 +327,12 @@ export class RollL5r5e extends Roll {
* This function can either create the ChatMessage directly, or return the data object that will be used to create.
* @override
*/
async toMessage(messageData = {}, { rollMode = null } = {}) {
async toMessage(messageData = {}, { messageMode = null } = {}) {
// Perform the roll, if it has not yet been rolled
if (!this._evaluated) {
await this.evaluate();
}
// RollMode
const rMode = rollMode || messageData.rollMode || game.settings.get("core", "rollMode");
if (rMode) {
messageData = ChatMessage.applyRollMode(messageData, rMode);
}
// Force the content to avoid weird foundry behaviour
const content = this.l5r5e.dicesTypes.l5r ? await this.render({}) : this.total;
@@ -358,9 +352,15 @@ export class RollL5r5e extends Roll {
);
messageData.rolls = [this];
// Message mode
const mMode = messageMode || messageData.messageMode || game.settings.get("core", "messageMode");
if (mMode) {
messageData = ChatMessage.applyMode(messageData, mMode);
}
// Either create the message or just return the chat data
return ChatMessage.implementation.create(messageData, {
rollMode: rMode,
messageMode: mMode,
});
}

View File

@@ -37,6 +37,14 @@ export const RegisterHandlebars = function () {
return sanitizeIfFail(game.i18n.localize(isYes ? "Yes" : "No"));
});
// Replace "localize (localize" for partial var (broken in v14)
Handlebars.registerHelper("localizeEmbedded", function (string, objects) {
Object.keys(objects.hash).forEach(key => {
string = string.replace("{" + key + "}", objects.hash[key]);
});
return sanitizeIfFail(game.i18n.localize(string));
});
/* ------------------------------------ */
/* Dice */
/* ------------------------------------ */

View File

@@ -629,21 +629,21 @@ export class HelpersL5r5e {
}
/**
* Return the RollMode for this ChatData
* Return the MessageMode for this ChatData
* @param {object} chatData
* @return {string}
*/
static getRollMode(chatData) {
static getMessageMode(chatData) {
if (chatData.whisper.length === 1 && chatData.whisper[0] === game.user.id) {
return "selfroll";
return "self";
}
if (chatData.blind) {
return "blindroll";
return "blind";
}
if (chatData.whisper.length > 1) {
return "gmroll";
return "gm";
}
return "roll";
return "public";
}
/**
@@ -690,7 +690,7 @@ export class HelpersL5r5e {
* @param {object} opt drawMany config option object
* @return {Promise<{RollTableDraw}>} The drawn results
*/
static async drawManyFromPack(pack, tableName, retrieve = 5, opt = { rollMode: "selfroll" }) {
static async drawManyFromPack(pack, tableName, retrieve = 5, opt = { messageMode: "self" }) {
const comp = await game.packs.get(pack);
if (!comp) {
console.log(`L5R5E | Helpers | Pack not found[${pack}]`);

File diff suppressed because one or more lines are too long

View File

@@ -6,6 +6,9 @@
position: relative;
padding: 0;
margin: 0;
height: 48px;
width: 48px;
&:after {
content: "";
position: absolute;
@@ -20,6 +23,7 @@
color: white;
background: transparent;
}
&:last-of-type,
&:nth-child(6),
&:nth-child(12),
@@ -28,10 +32,12 @@
padding: 0 0.175rem 0 0.15rem;
}
}
&.rerolled {
> img {
border-bottom: 0 none;
}
&:after {
content: "\f2f9";
background: orangered;
@@ -42,6 +48,7 @@
> img {
border-bottom: 0 none;
}
&:after {
content: "\f337";
background: fuchsia;
@@ -50,9 +57,9 @@
> img {
border: 1px solid transparent;
height: auto;
}
}
td {
.chat-dice {
}
@@ -72,6 +79,7 @@
margin: 0.25rem;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}
&-element {
flex-wrap: wrap;
flex-grow: 1;
@@ -79,11 +87,13 @@
&-skill {
flex-grow: 3;
}
&:last-child {
flex-grow: 2;
}
}
}
.dice-formula,
.dice-total {
background: rgba(255, 255, 255, 0.1);
@@ -91,44 +101,51 @@
text-align: center;
margin: 0.5rem 0;
padding: 0.25rem 0.5rem 0.25rem 0.25rem;
&-rnk {
line-height: 2rem;
i {
margin-left: 0.5rem;
}
}
}
button {
justify-self: center;
&.chat-dice-rnk {
cursor: url("../assets/cursors/pointer.webp"), pointer;
color: $white;
background: linear-gradient(
$l5r5e-linear-gradient-third,
$l5r5e-linear-gradient-third-dark,
$l5r5e-linear-gradient-third
$l5r5e-linear-gradient-third,
$l5r5e-linear-gradient-third-dark,
$l5r5e-linear-gradient-third
);
background-origin: padding-box;
border-image: url("../assets/ui/macro-button.webp") 10 repeat;
border-image-width: 0.5rem;
border-image-outset: 0px;
margin: 0.5rem 0 0;
&:hover {
background: linear-gradient(
$l5r5e-linear-gradient-first-dark,
$l5r5e-linear-gradient-first,
$l5r5e-linear-gradient-first-dark
$l5r5e-linear-gradient-first-dark,
$l5r5e-linear-gradient-first,
$l5r5e-linear-gradient-first-dark
);
}
}
&.chat-dice-rnk-ended {
background: linear-gradient(
$l5r5e-linear-gradient-second,
$l5r5e-linear-gradient-second-dark,
$l5r5e-linear-gradient-second
$l5r5e-linear-gradient-second,
$l5r5e-linear-gradient-second-dark,
$l5r5e-linear-gradient-second
);
}
}
.dice-result-rnk {
background: rgba(0, 0, 255, 0.1);
border: 1px solid rgba(55, 55, 155, 0.75);
@@ -137,25 +154,30 @@
text-align: center;
font-weight: bold;
text-shadow: 0 0 0 $black;
&.success {
background: rgba(0, 255, 0, 0.1);
border-color: rgba(55, 155, 55, 0.75);
color: rgba(55, 155, 55, 0.75);
i.i_success {
font-size: 1rem;
}
}
&.unknown {
background: rgba(121, 121, 121, 0.1);
border-color: rgba(124, 124, 124, 0.75);
color: rgba(91, 91, 91, 0.75);
}
&.fail {
background: rgba(255, 0, 0, 0.1);
border-color: rgba(155, 55, 55, 0.75);
color: rgba(155, 55, 55, 0.75);
}
}
.target,
.item-infos {
display: flex;
@@ -166,20 +188,25 @@
background: rgba(255, 255, 255, 0.1);
border: solid 1px rgba(100, 0, 0, 0.75);
border-radius: 3px;
.profile {
flex: 1;
margin: 0.25rem 0.25rem 0 0;
position: relative;
.profile-img {
position: relative;
border: none;
filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.66));
}
}
.name {
flex: 6;
font-family: "BrushtipTexe", sans-serif;
display: flex;
}
.content-link {
background: unset;
border: unset;
@@ -188,8 +215,10 @@
}
}
}
.item-infos {
border: solid 1px rgba(0, 78, 100, 0.75);
i {
font-size: var(--font-size-12);
}
@@ -199,3 +228,4 @@
display: flex;
}
}

View File

@@ -213,6 +213,7 @@
td {
margin: 0;
padding: 0;
text-align: center;
}
}
}
@@ -310,6 +311,7 @@
.dice-ct {
position: relative;
padding: 0.25rem;
width: 48px;
&:before {
content: "";
position: absolute;

View File

@@ -65,7 +65,8 @@ $l5r5e-custom-icons: (
$selectors: (
"#sidebar-tabs button.l5r5e",
"#sidebar-content .create-button.l5r5e",
"#sidebar-content i.l5r5e"
"#sidebar-content i.l5r5e",
"#context-menu i.l5r5e"
);
@each $selector in $selectors {
@@ -90,8 +91,8 @@ $selectors: (
&.#{$name}::before {
content: "";
position: absolute;
width: 95%;
height: 95%;
width: 85%;
height: 85%;
background-color: currentColor;
mask: url($url) no-repeat center / contain;
-webkit-mask: url($url) no-repeat center / contain;

View File

@@ -145,6 +145,11 @@ input[type="time"]:focus {
line-height: initial;
}
// Remove icon on link (bc specificity)
#sidebar-content .content-link i.l5r5e {
display: none;
}
button:hover {
box-shadow: 0 0 10px $red;
}
@@ -182,13 +187,13 @@ fieldset {
}
.editor {
height: 100%;
flex: 1;
}
}
// Editors
.editor,
.editor-container {
flex: 1;
height: 100%;
}
@@ -227,6 +232,7 @@ sup {
}
.editor-container,
.editor-content,
.item-description {
ul {
margin: 0.5rem 0;

View File

@@ -111,14 +111,6 @@ button {
}
}
.chat-message {
ul, li {
list-style: none;
margin: unset;
padding: unset;
}
}
#logo {
content: url("../assets/l5r-logo.webp");
height: 80px;
@@ -411,18 +403,25 @@ button {
top: -1px;
left: -1px;
}
.goodvalue {
color: #4e8c69;
}
.badvalue {
color: #ab2a00;
}
.reference {
display: flex;
.page {
margin-left: 1ch
}
}
.content-link {
background: initial;
}
}
}
@@ -606,6 +605,34 @@ form#settings-config {
}
}
.autocomplete-wrapper {
position: relative;
.autocomplete-list {
position: absolute;
border: 1px solid #6e7e6b;
border-bottom: none;
border-top: none;
z-index: 99;
top: 100%;
left: 0;
right: 0;
}
.autocomplete-list div {
padding: 10px;
cursor: pointer;
background-color: #fff;
border-bottom: 1px solid #6e7e6b;
text-align: left;
}
.autocomplete-list div:hover {
background-color: #e9e9e9;
}
.autocomplete-active {
background-color: DodgerBlue !important;
color: #ffffff;
}
}
l5r5e-multi-select,
l5r5e-combo-box {
display: block;

View File

@@ -7,12 +7,12 @@
"changelog": "https://gitlab.com/teaml5r/l5r5e/-/blob/master/CHANGELOG.md",
"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": "1.13.4",
"download": "https://gitlab.com/teaml5r/l5r5e/-/jobs/artifacts/v1.14.0/raw/l5r5e.zip?job=build",
"version": "1.14.0",
"compatibility": {
"minimum": "13",
"verified": "13",
"maximum": "13"
"maximum": "14"
},
"socket": true,
"authors": [

View File

@@ -65,7 +65,7 @@
<ul>
{{#each data.splitTechniquesList as |list techName|}}
<li>
<strong>{{localize (localize 'l5r5e.techniques.{techName}' techName=techName) }}</strong>
<strong>{{localizeEmbedded 'l5r5e.techniques.{techName}' techName=techName}}</strong>
<ul>
{{#each list as |technique|}}
<li>
@@ -130,7 +130,7 @@
<li>{{localize 'l5r5e.money.title'}} : {{data.system.money.koku}} {{localize 'l5r5e.money.koku'}} / {{data.system.money.bu}} {{localize 'l5r5e.money.bu'}} / {{data.system.money.zeni}} {{localize 'l5r5e.money.zeni'}}</li>
{{#each data.splitItemsList as |cat type|}}
<li>
<strong>{{localize (localize 'l5r5e.{type}s.title' type=type)}} ({{cat.length}})</strong>
<strong>{{localizeEmbedded 'l5r5e.{type}s.title' type=type}} ({{cat.length}})</strong>
<ul>
{{#each cat as |item|}}
<li>{{> 'systems/l5r5e/templates/items/item/item-text.html' data=item editable=../../options.editable}}</li>
@@ -209,20 +209,20 @@
{{/ifCond}}
<h2>{{localize 'l5r5e.twenty_questions.title'}}</h2>
<ul>
<li>{{localize (localize 'l5r5e.twenty_questions.part2.q4{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step4.stand_out}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part3.q7{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step7.clan_relations}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part3.q8{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step8.bushido}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part4.q9{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step9.success}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part4.q10{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step10.difficulty}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part4.q11{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step11.calms}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part4.q12{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step12.worries}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part4.q13{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step13.most_learn}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part5.q14{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step14.first_sight}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part5.q15{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step15.stress}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part5.q16{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step16.relations}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part6.q17{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step17.parents_pov}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part6.q18{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step18.heritage_name}}</li>
<li>{{localize (localize 'l5r5e.twenty_questions.part7.q20{suffix}' suffix=suffix)}} : {{data.system.twenty_questions.step20.death}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part2.q4{suffix}' suffix}} : {{data.system.twenty_questions.step4.stand_out}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q7{suffix}' suffix}} : {{data.system.twenty_questions.step7.clan_relations}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q8{suffix}' suffix}} : {{data.system.twenty_questions.step8.bushido}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q9{suffix}' suffix}} : {{data.system.twenty_questions.step9.success}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q10{suffix}' suffix}} : {{data.system.twenty_questions.step10.difficulty}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q11{suffix}' suffix}} : {{data.system.twenty_questions.step11.calms}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q12{suffix}' suffix}} : {{data.system.twenty_questions.step12.worries}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q13{suffix}' suffix}} : {{data.system.twenty_questions.step13.most_learn}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q14{suffix}' suffix}} : {{data.system.twenty_questions.step14.first_sight}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q15{suffix}' suffix}} : {{data.system.twenty_questions.step15.stress}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q16{suffix}' suffix}} : {{data.system.twenty_questions.step16.relations}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part6.q17{suffix}' suffix}} : {{data.system.twenty_questions.step17.parents_pov}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part6.q18{suffix}' suffix}} : {{data.system.twenty_questions.step18.heritage_name}}</li>
<li>{{localizeEmbedded 'l5r5e.twenty_questions.part7.q20{suffix}' suffix}} : {{data.system.twenty_questions.step20.death}}</li>
</ul>
</section>

View File

@@ -2,7 +2,7 @@
<legend class="section-header">
{{localize 'l5r5e.conflict.initiative.title'}}
<a class="encounter prepared-control" data-id="{{data.type}}">
<i class="fa fas prepared-icon prepared-icon-{{data.system.prepared}} prepared-{{data.type}}" title="{{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=data.system.prepared)}}"></i>
<i class="fa fas prepared-icon prepared-icon-{{data.system.prepared}} prepared-{{data.type}}" title="{{localizeEmbedded 'l5r5e.conflict.initiative.prepared_{value}' value=data.system.prepared}}"></i>
</a>
</legend>
<button class="initiative dice-picker" data-initiative="true" data-skill="sentiment">{{localize 'l5r5e.conflict.initiative.intrigue'}}</button>

View File

@@ -16,7 +16,7 @@
<fieldset class="section-header flexrow">
<legend class="technique-controls">
<span class="technique-controls toggle-on-click" data-toggle="toggle-technique-category-{{technique}}">
{{localize (localize 'l5r5e.techniques.{technique}' technique=technique)}}
{{localizeEmbedded 'l5r5e.techniques.{technique}' technique=technique}}
</span>
{{#ifCond ../data.editable_not_soft_locked '&&' (lookup ../data.system.techniques technique)}}
<a data-item-type="technique" class="technique-control item-add" data-tech-type="{{technique}}" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>

View File

@@ -2,7 +2,7 @@
<legend class="section-header">
{{localize 'l5r5e.conflict.initiative.title'}}
<a class="encounter prepared-control" data-id="{{data.type}}">
<i class="fa fas prepared-icon prepared-icon-{{data.system.prepared}} prepared-{{data.system.type}}" title="{{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=data.system.prepared)}}"></i>
<i class="fa fas prepared-icon prepared-icon-{{data.system.prepared}} prepared-{{data.system.type}}" title="{{localizeEmbedded 'l5r5e.conflict.initiative.prepared_{value}' value=data.system.prepared}}"></i>
</a>
</legend>
<button class="initiative dice-picker" data-initiative="true" data-skill="sentiment">{{localize 'l5r5e.conflict.initiative.intrigue'}}</button>

View File

@@ -19,7 +19,7 @@
<fieldset class="section-header flexrow">
<legend class="technique-controls">
<span class="technique-controls toggle-on-click" data-toggle="toggle-technique-category-{{technique}}">
{{localize (localize 'l5r5e.techniques.{technique}' technique=technique)}}
{{localizeEmbedded 'l5r5e.techniques.{technique}' technique=technique}}
</span>
{{#ifCond ../data.editable_not_soft_locked '&&' (lookup ../data.system.techniques technique)}}
<a data-item-type="technique" class="technique-control item-add" data-tech-type="{{technique}}" title="{{localize 'l5r5e.global.add'}}"><i class="fas fa-plus"></i></a>

View File

@@ -27,12 +27,12 @@
</label>
<br>
<br>
<i>{{localize (localize 'l5r5e.twenty_questions.part0.section{suffix}' suffix=suffix)}}</i>
<i>{{localizeEmbedded 'l5r5e.twenty_questions.part0.section{suffix}' suffix=suffix}}</i>
<button class="next" name="next" type="button">{{localize 'l5r5e.twenty_questions.bt_next'}} <i class='fas fa-arrow-right'></i></button>
</article>
<article class="tab parts part1" data-group="primary" data-tab="part1">
<h2>{{localize (localize 'l5r5e.twenty_questions.part1.title{suffix}' suffix=suffix)}}</h2>
<h3>{{localize (localize 'l5r5e.twenty_questions.part1.q1{suffix}' suffix=suffix)}}</h3>
<h2>{{localizeEmbedded 'l5r5e.twenty_questions.part1.title{suffix}' suffix=suffix}}</h2>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part1.q1{suffix}' suffix=suffix}}</h3>
<div>
<input type="text" name="step1.clan" value="{{data.step1.clan}}">
</div>
@@ -73,7 +73,7 @@
</td>
</tr>
</table>
<h3>{{localize (localize 'l5r5e.twenty_questions.part1.q2{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part1.q2{suffix}' suffix=suffix}}</h3>
<div>
<input type="text" name="step2.family" value="{{data.step2.family}}">
</div>
@@ -122,7 +122,7 @@
</article>
<article class="tab parts part2" data-group="primary" data-tab="part2">
<h2>{{localize 'l5r5e.twenty_questions.part2.title'}}</h2>
<h3>{{localize (localize 'l5r5e.twenty_questions.part2.q3{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part2.q3{suffix}' suffix=suffix}}</h3>
<label class="full">
{{localize 'l5r5e.twenty_questions.part2.school'}}
<input type="text" name="step3.school" value="{{data.step3.school}}">
@@ -214,7 +214,7 @@
</td>
</tr>
</table>
<h3>{{localize (localize 'l5r5e.twenty_questions.part2.q4{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part2.q4{suffix}' suffix=suffix}}</h3>
<textarea name="step4.stand_out">{{data.step4.stand_out}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.increase_ring1'}}
@@ -226,8 +226,8 @@
<button class="next" name="next" type="button">{{localize 'l5r5e.twenty_questions.bt_next'}} <i class='fas fa-arrow-right'></i></button>
</article>
<article class="tab parts part3" data-group="primary" data-tab="part3">
<h2>{{localize (localize 'l5r5e.twenty_questions.part3.title{suffix}' suffix=suffix)}}</h2>
<h3>{{localize (localize 'l5r5e.twenty_questions.part3.q5{suffix}' suffix=suffix)}}</h3>
<h2>{{localizeEmbedded 'l5r5e.twenty_questions.part3.title{suffix}' suffix=suffix}}</h2>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q5{suffix}' suffix=suffix}}</h3>
<label>
{{#ifCond data.template '==' 'core'}}
{{localize 'l5r5e.twenty_questions.part3.choose_giri'}}
@@ -236,12 +236,12 @@
{{/ifCond}}
<textarea name="step5.social_giri">{{data.step5.social_giri}}</textarea>
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part3.q6{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q6{suffix}' suffix=suffix}}</h3>
<label>
{{localize 'l5r5e.twenty_questions.part3.choose_ninjo'}}
<textarea name="step6.social_ninjo">{{data.step6.social_ninjo}}</textarea>
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part3.q7{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q7{suffix}' suffix=suffix}}</h3>
<textarea name="step7.clan_relations">{{data.step7.clan_relations}}</textarea>
<table>
<tr>
@@ -265,7 +265,7 @@
</td>
</tr>
</table>
<h3>{{localize (localize 'l5r5e.twenty_questions.part3.q8{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part3.q8{suffix}' suffix=suffix}}</h3>
<textarea name="step8.bushido">{{data.step8.bushido}}</textarea>
<table>
<tr>
@@ -315,31 +315,31 @@
</article>
<article class="tab parts part4" data-group="primary" data-tab="part4">
<h2>{{localize 'l5r5e.twenty_questions.part4.title'}}</h2>
<h3>{{localize (localize 'l5r5e.twenty_questions.part4.q9{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q9{suffix}' suffix=suffix}}</h3>
<textarea name="step9.success">{{data.step9.success}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part4.distinction'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step9.distinction stepName='step9.distinction' itemType='peculiarities' hideDndAt=1}}
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part4.q10{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q10{suffix}' suffix=suffix}}</h3>
<textarea name="step10.difficulty">{{data.step10.difficulty}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part4.adversity'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step10.adversity stepName='step10.adversity' itemType='peculiarities' hideDndAt=1}}
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part4.q11{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q11{suffix}' suffix=suffix}}</h3>
<textarea name="step11.calms">{{data.step11.calms}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part4.passion'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step11.passion stepName='step11.passion' itemType='peculiarities' hideDndAt=1}}
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part4.q12{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q12{suffix}' suffix=suffix}}</h3>
<textarea name="step12.worries">{{data.step12.worries}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part4.anxiety'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step12.anxiety stepName='step12.anxiety' itemType='peculiarities' hideDndAt=1}}
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part4.q13{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part4.q13{suffix}' suffix=suffix}}</h3>
<textarea name="step13.most_learn">{{data.step13.most_learn}}</textarea>
<table>
<tr>
@@ -376,13 +376,13 @@
</article>
<article class="tab parts part5" data-group="primary" data-tab="part5">
<h2>{{localize 'l5r5e.twenty_questions.part5.title'}}</h2>
<h3>{{localize (localize 'l5r5e.twenty_questions.part5.q14{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q14{suffix}' suffix=suffix}}</h3>
<textarea name="step14.first_sight">{{data.step14.first_sight}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part5.accoutrement'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step14.special_features stepName='step14.special_features' itemType='items' hideDndAt=1}}
</label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part5.q15{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q15{suffix}' suffix=suffix}}</h3>
<textarea name="step15.stress">{{data.step15.stress}}</textarea>
{{#ifCond data.template '==' 'core'}}
<h3>{{localize 'l5r5e.twenty_questions.part5.q16'}}</h3>
@@ -395,16 +395,16 @@
<button class="next" name="next" type="button">{{localize 'l5r5e.twenty_questions.bt_next'}} <i class='fas fa-arrow-right'></i></button>
</article>
<article class="tab parts part6" data-group="primary" data-tab="part6">
<h2>{{localize (localize 'l5r5e.twenty_questions.part6.title{suffix}' suffix=suffix)}}</h2>
<h2>{{localizeEmbedded 'l5r5e.twenty_questions.part6.title{suffix}' suffix=suffix}}</h2>
{{#ifCond data.template '==' 'pow'}}
<h3>{{localize (localize 'l5r5e.twenty_questions.part5.q16_pow' suffix=suffix)}}</h3>
<h3>{{localize 'l5r5e.twenty_questions.part5.q16_pow'}}</h3>
<textarea name="step16.relations">{{data.step16.relations}}</textarea>
<label>
{{localize 'l5r5e.twenty_questions.part5.object'}}
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step16.item stepName='step16.item' itemType='items' hideDndAt=1}}
</label>
{{/ifCond}}
<h3>{{localize (localize 'l5r5e.twenty_questions.part6.q17{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part6.q17{suffix}' suffix=suffix}}</h3>
<textarea name="step17.parents_pov">{{data.step17.parents_pov}}</textarea>
{{#ifCond data.template '==' 'core'}}
<label>
@@ -424,7 +424,7 @@
{{> 'systems/l5r5e/templates/actors/character/twenty-questions-item.html' itemsList=cache.step17.bond stepName='step17.bond' itemType='bonds' hideDndAt=1}}
</label>
{{/ifCond}}
<h3>{{localize (localize 'l5r5e.twenty_questions.part6.q18{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part6.q18{suffix}' suffix=suffix}}</h3>
<textarea name="step18.heritage_name">{{data.step18.heritage_name}}</textarea>
{{#ifCond data.template '==' 'core'}}
<table>
@@ -491,7 +491,7 @@
</select>
</label>
{{/ifCond}}
<h3>{{localize (localize 'l5r5e.twenty_questions.part6.q19{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part6.q19{suffix}' suffix=suffix}}</h3>
<textarea name="step19.firstname">{{data.step19.firstname}}</textarea>
<button class="next" name="next" type="button">{{localize 'l5r5e.twenty_questions.bt_next'}} <i class='fas fa-arrow-right'></i></button>
</article>
@@ -499,7 +499,7 @@
<h2>{{localize 'l5r5e.twenty_questions.part7.title'}}</h2>
<div>
<label>
<h3>{{localize (localize 'l5r5e.twenty_questions.part7.q20{suffix}' suffix=suffix)}}</h3>
<h3>{{localizeEmbedded 'l5r5e.twenty_questions.part7.q20{suffix}' suffix=suffix}}</h3>
<textarea name="step20.death">{{data.step20.death}}</textarea>
</label>
</div>

View File

@@ -2,14 +2,14 @@
<ul class="encounter">
{{#each encounterTypeList}}
<li class="encounter encounter-control" data-id="{{this}}">
<i class="fa fas encounter-icon-{{this}}{{#ifCond this '==' ../encounterType}} active{{/ifCond}}" title="{{localize (localize 'l5r5e.conflict.initiative.{id}' id=this)}}"></i>
<i class="fa fas encounter-icon-{{this}}{{#ifCond this '==' ../encounterType}} active{{/ifCond}}" title="{{localizeEmbedded 'l5r5e.conflict.initiative.{id}' id=this}}"></i>
</li>
{{/each}}
</ul>
<ul class="prepared">
{{#each prepared as |prepared charType|}}
<li class="encounter prepared-control" data-id="{{charType}}">
<i class="fa fas prepared-icon-{{prepared}} prepared-{{charType}}" title="{{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=prepared)}} ({{localize (localize 'l5r5e.character_types.{type}' type=charType)}})"></i>
<i class="fa fas prepared-icon-{{prepared}} prepared-{{charType}}" title="{{localizeEmbedded 'l5r5e.conflict.initiative.prepared_{value}' value=prepared}} ({{localizeEmbedded 'l5r5e.character_types.{type}' type=charType}})"></i>
</li>
{{/each}}
</ul>

View File

@@ -32,7 +32,7 @@
</td>
<td>
<a data-actor-uuid="{{actor.uuid}}" data-type="prepared" class="actor-modify-control">
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.initiative.title'}} : {{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=actor.isPrepared)}}</h2>" class="fa fas prepared-icon-{{actor.isPrepared}} {{#ifCond actor.isPrepared '==' 'false'}}badvalue{{/ifCond}} actor-infos-control"></i>
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.initiative.title'}} : {{localizeEmbedded 'l5r5e.conflict.initiative.prepared_{value}' value=actor.isPrepared}}</h2>" class="fa fas prepared-icon-{{actor.isPrepared}} {{#ifCond actor.isPrepared '==' 'false'}}badvalue{{/ifCond}} actor-infos-control"></i>
</a>
</td>
<td>{{#if actor.haveWeaponEquipped}}<i data-type="weapons" data-actor-uuid="{{actor.uuid}}" class="fas fa-fan actor-infos-control {{#if actor.haveWeaponReadied}}badvalue{{/if}}"></i>{{/if}}</td>

View File

@@ -31,7 +31,7 @@
</td>
<td>
<a data-actor-uuid="{{actor.uuid}}" class="actor-modify-control" data-action="toggle_prepared">
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.initiative.title'}} : {{localize (localize 'l5r5e.conflict.initiative.prepared_{value}' value=actor.isPrepared)}}</h2>" class="fa fas prepared-icon-{{actor.isPrepared}} {{#ifCond actor.isPrepared '==' 'false'}}badvalue{{/ifCond}} actor-infos-control"></i>
<i data-type="text" data-text="<h2>{{localize 'l5r5e.conflict.initiative.title'}} : {{localizeEmbedded 'l5r5e.conflict.initiative.prepared_{value}' value=actor.isPrepared}}</h2>" class="fa fas prepared-icon-{{actor.isPrepared}} {{#ifCond actor.isPrepared '==' 'false'}}badvalue{{/ifCond}} actor-infos-control"></i>
</a>
</td>
<td>{{#if actor.haveWeaponEquipped}}<i data-type="weapons" data-actor-uuid="{{actor.uuid}}" class="fas fa-fan actor-infos-control {{#if actor.haveWeaponReadied}}badvalue{{/if}}"></i>{{/if}}</td>

View File

@@ -20,9 +20,9 @@
{{#ifCond actor_type "==" "character"}}
{{!-- 20Q --}}
<ul>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part5.q14{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step14.first_sight}}</li>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part5.q15{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step15.stress}}</li>
<li><b>{{localize (localize 'l5r5e.twenty_questions.part7.q20{suffix}' suffix=suffix)}}</b> : {{actorData.system.twenty_questions.step20.death}}</li>
<li><b>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q14' suffix}}</b> : {{actorData.system.twenty_questions.step14.first_sight}}</li>
<li><b>{{localizeEmbedded 'l5r5e.twenty_questions.part5.q15' suffix}}</b> : {{actorData.system.twenty_questions.step15.stress}}</li>
<li><b>{{localizeEmbedded 'l5r5e.twenty_questions.part7.q20' suffix}}</b> : {{actorData.system.twenty_questions.step20.death}}</li>
</ul>
{{/ifCond}}
<p>{{{actorData.enrichedHtml.description}}}</p>

View File

@@ -1,6 +1,6 @@
{{#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}})
{{localizeEmbedded 'l5r5e.{type}s.title' type=type}} ({{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}}

View File

@@ -8,7 +8,7 @@
<strong>{{localize 'l5r5e.rings.label'}}</strong> : {{localizeRing data.system.ring}}
</li>
<li>
<strong>{{localize 'l5r5e.sheets.types'}}</strong> : {{localize (localize 'l5r5e.peculiarities.types.{type}' type=data.system.peculiarity_type)}}
<strong>{{localize 'l5r5e.sheets.types'}}</strong> : {{localizeEmbedded 'l5r5e.peculiarities.types.{type}' type=data.system.peculiarity_type}}
</li>
<li>
<strong>{{localize 'l5r5e.advancements.curriculum'}}</strong> : {{localizeYesNo data.system.in_curriculum}}