some factorisation
This commit is contained in:
@@ -219,31 +219,51 @@
|
|||||||
"total": "Total",
|
"total": "Total",
|
||||||
"spent": "Used",
|
"spent": "Used",
|
||||||
"saved": "Saved",
|
"saved": "Saved",
|
||||||
"acquisitions": "Acquisitions"
|
"advancements": "Advancements"
|
||||||
},
|
},
|
||||||
"twenty_questions": {
|
"twenty_questions": {
|
||||||
"title": "Twenty questions",
|
"title": "Twenty questions",
|
||||||
"bt_abrev": "20Q",
|
"bt_abrev": "20Q",
|
||||||
"part1": {
|
"part1": {
|
||||||
"title": "Partie I: Core Identity (Clan and Family)"
|
"title": "Part I: Core Identity (Clan and Family)",
|
||||||
|
"q1": "1. What clan does your character belong to? (p. 41)",
|
||||||
|
"q2": "2. What family does your character belong to? (p. 49)"
|
||||||
},
|
},
|
||||||
"part2": {
|
"part2": {
|
||||||
"title": "Partie II: Role and School"
|
"title": "Part II: Role and School",
|
||||||
|
"q3": "3. What is your character’s school, and what roles does that school fall into?(p. 56)",
|
||||||
|
"q4": "4. How does your character stand out within their school?(p. 88)"
|
||||||
},
|
},
|
||||||
"part3": {
|
"part3": {
|
||||||
"title": "Partie III: Honor and Glory"
|
"title": "Part III: Honor and Glory",
|
||||||
|
"q5": "5. Who is your lord and what is your character’s duty to them? (p. 88)",
|
||||||
|
"q6": "6. What does your character long for, and how might this impede their duty? (p. 90)",
|
||||||
|
"q7": "7. What is your character’s relationship with their clan?(p. 91)",
|
||||||
|
"q8": "8. What does your character think of Bushidō? (p. 91)"
|
||||||
},
|
},
|
||||||
"part4": {
|
"part4": {
|
||||||
"title": "Partie IV: Strengths and Weaknesses"
|
"title": "Part IV: Strengths and Weaknesses",
|
||||||
|
"q9": "9. What is your character’s greatest accomplishment so far?(p. 92)",
|
||||||
|
"q10": "10. What holds your character back the most in life?(p. 92)",
|
||||||
|
"q11": "11. What activity Most makes your character feel at peace? (p. 92)",
|
||||||
|
"q12": "12. What concern, fear, or foible troubles your character the most? (p. 93)",
|
||||||
|
"q13": "13. Who has your character learned the most from during their life (p. 93)"
|
||||||
},
|
},
|
||||||
"part5": {
|
"part5": {
|
||||||
"title": "Partie V: Personality and Behavior"
|
"title": "Part V: Personality and Behavior",
|
||||||
|
"q14": "14. What do people notice first upon encountering your character? (p. 93)",
|
||||||
|
"q15": "15. How does your character react to stressful situations? (p. 94)",
|
||||||
|
"q16": "16. What are your character’s preexisting relationships with other clans, families, organizations, and traditions? (p. 94)"
|
||||||
},
|
},
|
||||||
"part6": {
|
"part6": {
|
||||||
"title": "Partie VI: Ancestry and Family"
|
"title": "Part VI: Ancestry and Family",
|
||||||
|
"q17": "17. How would your character’s parents describe them? (p. 95)",
|
||||||
|
"q18": "18. Who was your character named to honor? (p. 95)",
|
||||||
|
"q19": "19. What is your character’s personal name? (p. 95)"
|
||||||
},
|
},
|
||||||
"part7": {
|
"part7": {
|
||||||
"title": "Partie VII: Death"
|
"title": "Part VII: Death",
|
||||||
|
"q20": "20. How should your character die? (p. 95)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -218,31 +218,51 @@
|
|||||||
"total": "Total",
|
"total": "Total",
|
||||||
"spent": "Usada",
|
"spent": "Usada",
|
||||||
"saved": "Restante",
|
"saved": "Restante",
|
||||||
"acquisitions": "Adquisiciones"
|
"advancements": "Advancements"
|
||||||
},
|
},
|
||||||
"twenty_questions": {
|
"twenty_questions": {
|
||||||
"title": "Twenty questions",
|
"title": "Twenty questions",
|
||||||
"bt_abrev": "20Q",
|
"bt_abrev": "20Q",
|
||||||
"part1": {
|
"part1": {
|
||||||
"title": "Partie I: Core Identity (Clan and Family)"
|
"title": "Partie I: Core Identity (Clan and Family)",
|
||||||
|
"q1": "1. What clan does your character belong to? (p. 41)",
|
||||||
|
"q2": "2. What family does your character belong to? (p. 49)"
|
||||||
},
|
},
|
||||||
"part2": {
|
"part2": {
|
||||||
"title": "Partie II: Role and School"
|
"title": "Partie II: Role and School",
|
||||||
|
"q3": "3. 3. What is your character’s school, and what roles does that school fall into?(p. 56)",
|
||||||
|
"q4": "4. How does your character stand out within their school?(p. 88)"
|
||||||
},
|
},
|
||||||
"part3": {
|
"part3": {
|
||||||
"title": "Partie III: Honor and Glory"
|
"title": "Partie III: Honor and Glory",
|
||||||
|
"q5": "5. Who is your lord and what is your character’s duty to them? (p. 88)",
|
||||||
|
"q6": "6. What does your character long for, and how might this impede their duty? (p. 90)",
|
||||||
|
"q7": "7. What is your character’s relationship with their clan?(p. 91)",
|
||||||
|
"q8": "8. What does your character think of Bushidō? (p. 91)"
|
||||||
},
|
},
|
||||||
"part4": {
|
"part4": {
|
||||||
"title": "Partie IV: Strengths and Weaknesses"
|
"title": "Partie IV: Strengths and Weaknesses",
|
||||||
|
"q9": "9. What is your character’s greatest accomplishment so far?(p. 92)",
|
||||||
|
"q10": "10. What holds your character back the most in life?(p. 92)",
|
||||||
|
"q11": "11. What activity Most makes your character feel at peace? (p. 93)",
|
||||||
|
"q12": "12. What concern, fear, or foible troubles your character the most? (p. 93)",
|
||||||
|
"q13": "12. Who has your character learned the most from during their life(p. 93)"
|
||||||
},
|
},
|
||||||
"part5": {
|
"part5": {
|
||||||
"title": "Partie V: Personality and Behavior"
|
"title": "Partie V: Personality and Behavior",
|
||||||
|
"q14": "14. What do people notice first upon encountering your character? (p. 93)",
|
||||||
|
"q15": "15. How does your character react to stressful situations? (p. 94)",
|
||||||
|
"q16": "16. What are your character’s preexisting relationships with other clans, families, organizations, and traditions? (p. 94)"
|
||||||
},
|
},
|
||||||
"part6": {
|
"part6": {
|
||||||
"title": "Partie VI: Ancestry and Family"
|
"title": "Partie VI: Ancestry and Family",
|
||||||
|
"q17": "17. How would your character’s parents describe them? (p. 95)",
|
||||||
|
"q18": "18. Who was your character named to honor? (p. 95)",
|
||||||
|
"q19": "19. What is your character’s personal name? (p. 95)"
|
||||||
},
|
},
|
||||||
"part7": {
|
"part7": {
|
||||||
"title": "Partie VII: Death"
|
"title": "Partie VII: Death",
|
||||||
|
"q20": "20. How should your character die? (p. 95)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,11 @@
|
|||||||
"spe.chat.pref": "Si renseignée, la chaîne sera préfixée pour tous les messages de chat qui ne sont pas déjà des commandes (comme /emote.)",
|
"spe.chat.pref": "Si renseignée, la chaîne sera préfixée pour tous les messages de chat qui ne sont pas déjà des commandes (comme /emote.)",
|
||||||
|
|
||||||
"l5r5e": {
|
"l5r5e": {
|
||||||
|
"global": {
|
||||||
|
"add": "Ajouter",
|
||||||
|
"edit": "Modifier",
|
||||||
|
"delete": "Supprimer"
|
||||||
|
},
|
||||||
"logo": {
|
"logo": {
|
||||||
"title": "Besoin d'aide ?",
|
"title": "Besoin d'aide ?",
|
||||||
"content": "Suivez le guide :",
|
"content": "Suivez le guide :",
|
||||||
@@ -90,7 +95,6 @@
|
|||||||
"physical": "Physique",
|
"physical": "Physique",
|
||||||
"supernatural": "Spirituelle"
|
"supernatural": "Spirituelle"
|
||||||
},
|
},
|
||||||
"add": "Ajouter",
|
|
||||||
"items": "Objets",
|
"items": "Objets",
|
||||||
"feats": "Prouesses",
|
"feats": "Prouesses",
|
||||||
"techniques": {
|
"techniques": {
|
||||||
@@ -219,31 +223,51 @@
|
|||||||
"total": "Totale",
|
"total": "Totale",
|
||||||
"spent": "Dépensée",
|
"spent": "Dépensée",
|
||||||
"saved": "Restante",
|
"saved": "Restante",
|
||||||
"acquisitions": "Acquisitions"
|
"advancements": "Progressions"
|
||||||
},
|
},
|
||||||
"twenty_questions": {
|
"twenty_questions": {
|
||||||
"title": "Vingt questions",
|
"title": "Vingt questions",
|
||||||
"bt_abrev": "20Q",
|
"bt_abrev": "20Q",
|
||||||
"part1": {
|
"part1": {
|
||||||
"title": "Partie I: Identité (clan et famille)"
|
"title": "Partie I: Identité (clan et famille)",
|
||||||
|
"q1": "1. A quel clan appartient votre personnage ? (p. 41)",
|
||||||
|
"q2": "2. A quelle famille appartient votre personnage ? (p. 49)"
|
||||||
},
|
},
|
||||||
"part2": {
|
"part2": {
|
||||||
"title": "Partie II: Rôle et École"
|
"title": "Partie II: Rôle et École",
|
||||||
|
"q3": "3. Quelle est l'École votre personnage, et quel rôle remplit-elle ? (p. 56)",
|
||||||
|
"q4": "4. De quelle manière votre personnage se démarque-t-il au sein de son école ? (p. 88)"
|
||||||
},
|
},
|
||||||
"part3": {
|
"part3": {
|
||||||
"title": "Partie III: Honneur et Gloire"
|
"title": "Partie III: Honneur et Gloire",
|
||||||
|
"q5": "5. Qui est le seigneur de votre personnage et quel est le devoir de votre personnage envers lui ? (p. 88)",
|
||||||
|
"q6": "6. Que désire votre personnage, et en quoi ce désir risque-t-il de l’empêcher d’accomplir son devoir ? (p. 90)",
|
||||||
|
"q7": "7. Quelle relation votre personnage entretient-il avec son clan ? (p. 91)",
|
||||||
|
"q8": "8. Que pense votre personnage du bushido ? (p. 91)"
|
||||||
},
|
},
|
||||||
"part4": {
|
"part4": {
|
||||||
"title": "Partie IV: Forces et Faiblesses"
|
"title": "Partie IV: Forces et Faiblesses",
|
||||||
|
"q9": "9. Quelle est à ce jour la plus belle réussite de votre personnage ? (p. 92)",
|
||||||
|
"q10": "10. Quel est le frein principal dans la vie de votre personnage ? (p. 92)",
|
||||||
|
"q11": "11. Quelle activité apaise le plus votre personnage ? (p. 93)",
|
||||||
|
"q12": "12. Quelle inquiétude, crainte ou manie tracasse le plus votre personnage ? (p. 93)",
|
||||||
|
"q13": "13. De qui votre personnage a-t-il le plus appris au cours de sa vie ? (p. 93)"
|
||||||
},
|
},
|
||||||
"part5": {
|
"part5": {
|
||||||
"title": "Partie V: Personnalité et Comportement"
|
"title": "Partie V: Personnalité et Comportement",
|
||||||
|
"q14": "14. Que remarque-t-on en premier chez votre personnage ? (p. 93)",
|
||||||
|
"q15": "15. Comment votre personnage réagit-il aux situations stressantes ? (p. 94)",
|
||||||
|
"q16": "16. Quelles relations votre personnage entretient-il avec des familles, des organisations, des traditions et des clans différents ? (p. 94)"
|
||||||
},
|
},
|
||||||
"part6": {
|
"part6": {
|
||||||
"title": "Partie VI: Lignée et Famille"
|
"title": "Partie VI: Lignée et Famille",
|
||||||
|
"q17": "17. Comment les parents de votre personnage le décriraient-ils ? (p. 95)",
|
||||||
|
"q18": "18. En l’honneur de qui votre personnage a-t-il été prénommé ? (p. 95)",
|
||||||
|
"q19": "19. Quel est le prénom de votre personnage ? (p. 95)"
|
||||||
},
|
},
|
||||||
"part7": {
|
"part7": {
|
||||||
"title": "Partie VII: Mort"
|
"title": "Partie VII: Mort",
|
||||||
|
"q20": "20. Comment envisagez-vous la mort de votre personnage ? (p. 95)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,35 +14,4 @@ export class AdvancementSheetL5r5e extends ItemSheetL5r5e {
|
|||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getData() {
|
|
||||||
const sheetData = super.getData();
|
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
|
||||||
|
|
||||||
sheetData.data.isAdvancement = true;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update item with values from the sheet.
|
|
||||||
* @param event
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
_updateObject(event, formData) {
|
|
||||||
return this.object.update(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,34 +14,4 @@ export class ArmorSheetL5r5e extends ItemSheetL5r5e {
|
|||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getData() {
|
|
||||||
const sheetData = super.getData();
|
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
|
||||||
|
|
||||||
sheetData.data.isArmor = true;
|
|
||||||
sheetData.data.isEquipment = true;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update item with values from the sheet.
|
|
||||||
* @param event
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
_updateObject(event, formData) {
|
|
||||||
return this.object.update(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ export class ItemSheetL5r5e extends ItemSheet {
|
|||||||
|
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||||
|
|
||||||
sheetData.data.isEquipment = true;
|
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +30,9 @@ export class ItemSheetL5r5e extends ItemSheet {
|
|||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
// Everything below here is only needed if the sheet is editable
|
||||||
if (!this.options.editable) return;
|
// if (!this.options.editable) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -14,35 +14,4 @@ export class QualitySheetL5r5e extends ItemSheetL5r5e {
|
|||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getData() {
|
|
||||||
const sheetData = super.getData();
|
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
|
||||||
|
|
||||||
sheetData.data.isQuality = true;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update item with values from the sheet.
|
|
||||||
* @param event
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
_updateObject(event, formData) {
|
|
||||||
return this.object.update(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,36 +14,4 @@ export class TechniqueSheetL5r5e extends ItemSheetL5r5e {
|
|||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @override */
|
|
||||||
getData() {
|
|
||||||
const sheetData = super.getData();
|
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
|
||||||
|
|
||||||
sheetData.data.isTechnique = true;
|
|
||||||
// sheetData.data.isEquipment = false;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update feat with the data from the sheet.
|
|
||||||
* @param event
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
_updateObject(event, formData) {
|
|
||||||
// Update the Item
|
|
||||||
return this.object.update(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,32 +20,11 @@ export class WeaponSheetL5r5e extends ItemSheetL5r5e {
|
|||||||
const sheetData = super.getData();
|
const sheetData = super.getData();
|
||||||
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
sheetData.data.dtypes = ["String", "Number", "Boolean"];
|
||||||
|
|
||||||
sheetData.data.isWeapon = true;
|
// Martial skills only
|
||||||
sheetData.data.isEquipment = true;
|
|
||||||
sheetData.data.skills = Array.from(L5R5E.skills)
|
sheetData.data.skills = Array.from(L5R5E.skills)
|
||||||
.filter(([id, cat]) => cat === "martial")
|
.filter(([id, cat]) => cat === "martial")
|
||||||
.map(([id, cat]) => id);
|
.map(([id, cat]) => id);
|
||||||
|
|
||||||
return sheetData;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update item with values from the sheet.
|
|
||||||
* @param event
|
|
||||||
* @param formData
|
|
||||||
*/
|
|
||||||
_updateObject(event, formData) {
|
|
||||||
return this.object.update(formData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,39 +83,75 @@ Hooks.once("init", async function () {
|
|||||||
return a === b ? new Handlebars.SafeString('checked="checked"') : "";
|
return a === b ? new Handlebars.SafeString('checked="checked"') : "";
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeSkillCategory", function (skillName) {
|
Handlebars.registerHelper("localizeSkill", function (categoryId, skillId) {
|
||||||
const key = "l5r5e.skills." + skillName.toLowerCase() + ".title";
|
const key = "l5r5e.skills." + categoryId.toLowerCase() + "." + skillId.toLowerCase();
|
||||||
|
return game.i18n.localize(key);
|
||||||
|
});
|
||||||
|
Handlebars.registerHelper("localizeSkillId", function (skillId) {
|
||||||
|
const key = "l5r5e.skills." + L5R5E.skills.get(skillId.toLowerCase()) + "." + skillId.toLowerCase();
|
||||||
return game.i18n.localize(key);
|
return game.i18n.localize(key);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeSkill", function (skillCategory, skillName) {
|
Handlebars.registerHelper("localizeRing", function (ringId) {
|
||||||
const key = "l5r5e.skills." + skillCategory.toLowerCase() + "." + skillName.toLowerCase();
|
const key = "l5r5e.rings." + ringId.toLowerCase();
|
||||||
return game.i18n.localize(key);
|
return game.i18n.localize(key);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeSkillId", function (skillName) {
|
Handlebars.registerHelper("localizeStanceTip", function (ringId) {
|
||||||
const key = "l5r5e.skills." + L5R5E.skills.get(skillName.toLowerCase()) + "." + skillName.toLowerCase();
|
const key = "l5r5e.conflict.stances." + ringId.toLowerCase() + "tip";
|
||||||
return game.i18n.localize(key);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeRing", function (ringName) {
|
|
||||||
const key = "l5r5e.rings." + ringName.toLowerCase();
|
|
||||||
return game.i18n.localize(key);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeRingTip", function (ringName) {
|
|
||||||
const key = "l5r5e.rings." + ringName.toLowerCase() + "tip";
|
|
||||||
return game.i18n.localize(key);
|
|
||||||
});
|
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeStanceTip", function (ringName) {
|
|
||||||
const key = "l5r5e.conflict.stances." + ringName.toLowerCase() + "tip";
|
|
||||||
return game.i18n.localize(key);
|
return game.i18n.localize(key);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper("localizeTechnique", function (techniqueName) {
|
Handlebars.registerHelper("localizeTechnique", function (techniqueName) {
|
||||||
return game.i18n.localize("l5r5e.techniques." + techniqueName.toLowerCase());
|
return game.i18n.localize("l5r5e.techniques." + techniqueName.toLowerCase());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Utility conditional, usable in nested expression
|
||||||
|
// ex: {{#ifCond (ifCond advancement.type '==' 'technique') '||' (ifCond advancement.type '==' 'advancement')}}
|
||||||
|
Handlebars.registerHelper("ifCond", function (a, operator, b, options) {
|
||||||
|
let result = false;
|
||||||
|
switch (operator) {
|
||||||
|
case "==":
|
||||||
|
result = a == b;
|
||||||
|
break;
|
||||||
|
case "===":
|
||||||
|
result = a === b;
|
||||||
|
break;
|
||||||
|
case "!=":
|
||||||
|
result = a != b;
|
||||||
|
break;
|
||||||
|
case "!==":
|
||||||
|
result = a !== b;
|
||||||
|
break;
|
||||||
|
case "<":
|
||||||
|
result = a < b;
|
||||||
|
break;
|
||||||
|
case "<=":
|
||||||
|
result = a <= b;
|
||||||
|
break;
|
||||||
|
case ">":
|
||||||
|
result = a > b;
|
||||||
|
break;
|
||||||
|
case ">=":
|
||||||
|
result = a >= b;
|
||||||
|
break;
|
||||||
|
case "&&":
|
||||||
|
result = a && b;
|
||||||
|
break;
|
||||||
|
case "||":
|
||||||
|
result = a || b;
|
||||||
|
break;
|
||||||
|
case "includes":
|
||||||
|
result = a && b && a.includes(b);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (typeof options.fn === "function") {
|
||||||
|
return result ? options.fn(this) : options.inverse(this);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ------------------------------------ */
|
/* ------------------------------------ */
|
||||||
|
|||||||
@@ -8,11 +8,6 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
getData() {
|
getData() {
|
||||||
const sheetData = super.getData();
|
const sheetData = super.getData();
|
||||||
|
|
||||||
this._prepareItems(sheetData);
|
|
||||||
|
|
||||||
const techniques = sheetData.items.filter((item) => item.type === "technique");
|
|
||||||
|
|
||||||
sheetData.data.techniques.list = techniques;
|
|
||||||
sheetData.data.stances = CONFIG.L5r5e.stances;
|
sheetData.data.stances = CONFIG.L5r5e.stances;
|
||||||
|
|
||||||
return sheetData;
|
return sheetData;
|
||||||
@@ -27,55 +22,6 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
return this.object.update(formData);
|
return this.object.update(formData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prepare item data to be displayed in the actor sheet.
|
|
||||||
* @param sheetData Data of the actor been displayed in the sheet.
|
|
||||||
*/
|
|
||||||
_prepareItems(sheetData) {
|
|
||||||
for (let item of sheetData.items) {
|
|
||||||
switch (item.type) {
|
|
||||||
case "weapon":
|
|
||||||
item.isWeapon = true;
|
|
||||||
item.isEquipment = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "armor":
|
|
||||||
item.isArmor = true;
|
|
||||||
item.isEquipment = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "technique":
|
|
||||||
item.isTechnique = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "quality":
|
|
||||||
item.isQuality = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "advancement":
|
|
||||||
item.isAdvancement = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "advantage":
|
|
||||||
item.isAdvantage = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "disadvantage":
|
|
||||||
item.isDisadvantage = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
item.isEquipment = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
_prepareTechniques() {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Subscribe to events from the sheet.
|
* Subscribe to events from the sheet.
|
||||||
* @param html HTML content of the sheet.
|
* @param html HTML content of the sheet.
|
||||||
@@ -83,107 +29,82 @@ export class BaseSheetL5r5e extends ActorSheet {
|
|||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
// Everything below here is only needed if the sheet is editable
|
|
||||||
if (!this.options.editable) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// *** Items ***
|
|
||||||
// Update Inventory Item
|
|
||||||
html.find(".item-edit").on("click", (ev) => {
|
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
|
||||||
const itemId = li.data("itemId");
|
|
||||||
const item = this.actor.getOwnedItem(itemId);
|
|
||||||
item.sheet.render(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Delete Inventory Item
|
|
||||||
html.find(".item-delete").on("click", (ev) => {
|
|
||||||
const li = $(ev.currentTarget).parents(".item");
|
|
||||||
this.actor.deleteOwnedItem(li.data("itemId"));
|
|
||||||
});
|
|
||||||
|
|
||||||
// *** Techniques ***
|
|
||||||
html.find(".technique-add").on("click", (ev) => {
|
|
||||||
this._createTechnique();
|
|
||||||
});
|
|
||||||
|
|
||||||
html.find(".technique-delete").on("click", (ev) => {
|
|
||||||
const li = $(ev.currentTarget).parents(".technique");
|
|
||||||
const techniqueId = li.data("techniqueId");
|
|
||||||
console.log("Remove technique" + techniqueId + " clicked");
|
|
||||||
|
|
||||||
this.actor.deleteOwnedItem(techniqueId);
|
|
||||||
});
|
|
||||||
|
|
||||||
html.find(".technique-edit").on("click", (ev) => {
|
|
||||||
const li = $(ev.currentTarget).parents(".technique");
|
|
||||||
const techniqueId = li.data("techniqueId");
|
|
||||||
const technique = this.actor.getOwnedItem(techniqueId);
|
|
||||||
technique.sheet.render(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
// *** Skills ***
|
// *** Skills ***
|
||||||
html.find(".skill-name").on("click", (ev) => {
|
html.find(".skill-name").on("click", (ev) => {
|
||||||
const li = $(ev.currentTarget).parents(".skill");
|
const li = $(ev.currentTarget).parents(".skill");
|
||||||
new game.l5r5e.DicePickerDialog({ skillId: li.data("skill"), actor: this.actor }).render(true);
|
new game.l5r5e.DicePickerDialog({ skillId: li.data("skill"), actor: this.actor }).render(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// *** Everything below here is only needed if the sheet is editable ***
|
||||||
|
if (!this.options.editable) {
|
||||||
|
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");
|
||||||
|
});
|
||||||
|
|
||||||
|
// *** Techniques ***
|
||||||
|
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 ***
|
// *** Advancement ***
|
||||||
html.find(".advancement-add").on("click", (ev) => {
|
html.find(".advancement-add").on("click", (ev) => {
|
||||||
this._createAdvancement();
|
this._addSubItem({
|
||||||
|
name: game.i18n.localize("l5r5e.xp.advancements"),
|
||||||
|
type: "advancement",
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".advancement-edit").on("click", (ev) => {
|
html.find(".advancement-edit").on("click", (ev) => {
|
||||||
const li = $(ev.currentTarget).parents(".advancement");
|
this._editSubItem(ev, "advancement");
|
||||||
const advancementId = li.data("advancementId");
|
|
||||||
const advancement = this.actor.getOwnedItem(advancementId);
|
|
||||||
advancement.sheet.render(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
html.find(".advancement-delete").on("click", (ev) => {
|
html.find(".advancement-delete").on("click", (ev) => {
|
||||||
const li = $(ev.currentTarget).parents(".advancement");
|
this._deleteSubItem(ev, "advancement");
|
||||||
this.actor.deleteOwnedItem(li.data("advancementId"));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new feat for the character and shows a window to edit it.
|
* Add a generic item with sub type
|
||||||
|
* @private
|
||||||
*/
|
*/
|
||||||
async _createTechnique() {
|
async _addSubItem(data) {
|
||||||
const data = {
|
|
||||||
name: game.i18n.localize("l5r5e.techniques.title_new"),
|
|
||||||
type: "technique",
|
|
||||||
};
|
|
||||||
const created = await this.actor.createEmbeddedEntity("OwnedItem", data);
|
const created = await this.actor.createEmbeddedEntity("OwnedItem", data);
|
||||||
const technique = this.actor.getOwnedItem(created._id);
|
const item = this.actor.getOwnedItem(created._id);
|
||||||
|
item.sheet.render(true);
|
||||||
// Default values
|
return item;
|
||||||
//technique.rank = 1;
|
|
||||||
//technique.xp_used = 0;
|
|
||||||
|
|
||||||
technique.sheet.render(true);
|
|
||||||
|
|
||||||
return technique;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new feat for the character and shows a window to edit it.
|
* Edit a generic item with sub type
|
||||||
|
* @private
|
||||||
*/
|
*/
|
||||||
async _createAdvancement() {
|
async _editSubItem(ev, type) {
|
||||||
const data = {
|
const li = $(ev.currentTarget).parents("." + type);
|
||||||
name: game.i18n.localize("l5r5e.xp.acquisitions"),
|
const itemId = li.data(type + "Id");
|
||||||
type: "advancement",
|
const item = this.actor.getOwnedItem(itemId);
|
||||||
};
|
item.sheet.render(true);
|
||||||
const created = await this.actor.createEmbeddedEntity("OwnedItem", data);
|
}
|
||||||
const acquisition = this.actor.getOwnedItem(created._id);
|
|
||||||
|
|
||||||
acquisition.sheet.render(true);
|
/**
|
||||||
|
* Delete a generic item with sub type
|
||||||
// Default values
|
* @private
|
||||||
//acquisition.rank = 1;
|
*/
|
||||||
//acquisition.xp_used = 0;
|
async _deleteSubItem(ev, type) {
|
||||||
|
const li = $(ev.currentTarget).parents("." + type);
|
||||||
return acquisition;
|
return this.actor.deleteOwnedItem(li.data(type + "Id"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<ul class="item-header advancement-controls">
|
<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-img"><img src="{{advancement.img}}" title="{{advancement.name}}" width="32px" height="32px"/></li>
|
||||||
<li class="item-name">{{ advancement.name }}</li>
|
<li class="item-name">{{ advancement.name }}</li>
|
||||||
<li class="item-control advancement-edit" title="Edit advancement"><i class="fas fa-edit"></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="Delete advancement"><i class="fas fa-trash"></i></li>
|
<li class="item-control advancement-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ advancement.data.description }}}</div>
|
<div class="item-description">{{{ advancement.data.description }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<fieldset class="weapons-content">
|
<fieldset class="weapons-content">
|
||||||
<legend class="section-header">{{ localize 'l5r5e.xp.Acquisitions' }}</legend>
|
<legend class="section-header">{{ localize 'l5r5e.xp.advancements' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isAdvancement }}
|
{{#ifCond item.type '==' 'advancement'}}
|
||||||
{{> 'systems/l5r5e/templates/item/advancement-entry.html' advancement=item id=id }}
|
{{> 'systems/l5r5e/templates/item/advancement-entry.html' advancement=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
<li class="icon-stat-container">{{item.data.weight}}</li>
|
<li class="icon-stat-container">{{item.data.weight}}</li>
|
||||||
<li class="icon-stat-container">{{item.data.armor.physical}} <i class="fas fa-certificate"></i></li>
|
<li class="icon-stat-container">{{item.data.armor.physical}} <i class="fas fa-certificate"></i></li>
|
||||||
<li class="icon-stat-container">{{item.data.armor.supernatural}} <i class="fas fa-arrows-alt-h"></i></li>
|
<li class="icon-stat-container">{{item.data.armor.supernatural}} <i class="fas fa-arrows-alt-h"></i></li>
|
||||||
<li class="item-edit" title="Edit Technique"><i class="fas fa-edit"></i></li>
|
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||||
<li class="item-delete" title="Delete Technique"><i class="fas fa-trash"></i></li>
|
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ item.data.properties }}}</div>
|
<div class="item-description">{{{ item.data.properties }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
<legend class="section-header">{{ localize 'l5r5e.armors.title' }}</legend>
|
<legend class="section-header">{{ localize 'l5r5e.armors.title' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isArmor }}
|
{{#ifCond item.type '==' 'armor'}}
|
||||||
{{> 'systems/l5r5e/templates/item/armor-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/armor-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
<ul class="item-header item-control">
|
<ul class="item-header item-control">
|
||||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||||
<li class="item-name">{{ item.name }} x{{ item.data.quantity }}</li>
|
<li class="item-name">{{ item.name }} x{{ item.data.quantity }}</li>
|
||||||
<li class="item-edit" title="Edit Item"><i class="fas fa-edit"></i></li>
|
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||||
<li class="item-delete" title="Delete Item"><i class="fas fa-trash"></i></li>
|
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ item.data.description }}}</div>
|
<div class="item-description">{{{ item.data.description }}}</div>
|
||||||
<div class="item-properties">{{{ item.data.properties }}}</div>
|
<div class="item-properties">{{{ item.data.properties }}}</div>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<legend>{{ localize 'l5r5e.equipment' }}</legend>
|
<legend>{{ localize 'l5r5e.equipment' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isEquipment }}
|
{{#ifCond item.type '==' 'item'}}
|
||||||
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
<legend class="section-header">{{ localize 'l5r5e.quality' }}</legend>
|
<legend class="section-header">{{ localize 'l5r5e.quality' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isQuality }}
|
{{#ifCond item.type '==' 'quality'}}
|
||||||
{{> 'systems/l5r5e/templates/item/quality-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/quality-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
<ul class="item-header item-control">
|
<ul class="item-header item-control">
|
||||||
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
<li class="item-img"><img src="{{item.img}}" title="{{item.name}}" width="32px" height="32px"/></li>
|
||||||
<li class="item-name">{{ item.name }}</li>
|
<li class="item-name">{{ item.name }}</li>
|
||||||
<li class="item-edit" title="Edit technique"><i class="fas fa-edit"></i></li>
|
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||||
<li class="item-delete" title="Delete technique"><i class="fas fa-trash"></i></li>
|
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ item.data.description }}}</div>
|
<div class="item-description">{{{ item.data.description }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
<ul class="item-header technique-controls">
|
<ul class="item-header technique-controls">
|
||||||
<li class="item-img"><img src="{{technique.img}}" title="{{technique.name}}" width="32px" height="32px"/></li>
|
<li class="item-img"><img src="{{technique.img}}" title="{{technique.name}}" width="32px" height="32px"/></li>
|
||||||
<li class="item-name">{{ technique.name }}</li>
|
<li class="item-name">{{ technique.name }}</li>
|
||||||
<li class="item-control technique-edit" title="Edit technique"><i class="fas fa-edit"></i></li>
|
<li class="item-control technique-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||||
<li class="item-control technique-delete" title="Delete technique"><i class="fas fa-trash"></i></li>
|
<li class="item-control technique-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ technique.data.description }}}</div>
|
<div class="item-description">{{{ technique.data.description }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
<li class="item-name">{{ item.name }}</li>
|
<li class="item-name">{{ item.name }}</li>
|
||||||
<li class="icon-stat-container">{{item.data.damage}} <i class="fas fa-certificate"></i></li>
|
<li class="icon-stat-container">{{item.data.damage}} <i class="fas fa-certificate"></i></li>
|
||||||
<li class="icon-stat-container">{{item.data.range}} <i class="fas fa-arrows-alt-h"></i></li>
|
<li class="icon-stat-container">{{item.data.range}} <i class="fas fa-arrows-alt-h"></i></li>
|
||||||
<li class="item-edit" title="Edit technique"><i class="fas fa-edit"></i></li>
|
<li class="item-edit" title="{{localize 'l5r5e.global.edit'}}"><i class="fas fa-edit"></i></li>
|
||||||
<li class="item-delete" title="Delete technique"><i class="fas fa-trash"></i></li>
|
<li class="item-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="item-description">{{{ item.data.properties }}}</div>
|
<div class="item-description">{{{ item.data.properties }}}</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
<legend class="section-header">{{ localize 'l5r5e.weapons' }}</legend>
|
<legend class="section-header">{{ localize 'l5r5e.weapons' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isWeapon }}
|
{{#ifCond item.type '==' 'weapon'}}
|
||||||
{{> 'systems/l5r5e/templates/item/weapon-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/weapon-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>
|
<td class="xp" name="advancement.xp">{{ advancement.data.xp_used }}</td>
|
||||||
<td class="rank" name="advancement.rank">{{ advancement.data.rank }}</td>
|
<td class="rank" name="advancement.rank">{{ advancement.data.rank }}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
<li class="item-control advancement-edit" title="Edit advancement"><i class="fas fa-edit"></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="Delete advancement"><i class="fas fa-trash"></i></li>
|
<li class="item-control advancement-delete" title="{{localize 'l5r5e.global.delete'}}"><i class="fas fa-trash"></i></li>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<li class="skill-category-wrapper skill-category-content">
|
<li class="skill-category-wrapper skill-category-content">
|
||||||
<h4 class="section-header">{{ localizeSkillCategory categoryId }}</h4>
|
<h4 class="section-header">{{ localizeSkill categoryId 'title' }}</h4>
|
||||||
<ul class="skill-category-skills-list">
|
<ul class="skill-category-skills-list">
|
||||||
{{#each category as |skill id| }}
|
{{#each category as |skill id| }}
|
||||||
{{> 'systems/l5r5e/templates/sheets/actor/skill.html' categoryId=../categoryId skill=skill skillId=id }}
|
{{> 'systems/l5r5e/templates/sheets/actor/skill.html' categoryId=../categoryId skill=skill skillId=id }}
|
||||||
|
|||||||
@@ -13,8 +13,8 @@
|
|||||||
<input type="text" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" placeholder="0"/>
|
<input type="text" name="data.xp_saved" value="{{ data.xp_saved }}" data-dtype="Number" placeholder="0"/>
|
||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset class="acquisitions">
|
<fieldset class="advancement">
|
||||||
<legend class="tools">{{ localize 'l5r5e.xp.acquisitions'}} <a class="acquisition-control acquisition-add" title="{{ localize 'l5r5e.add'}}"><i class="fas fa-plus"></i></a></legend>
|
<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>
|
||||||
<table>
|
<table>
|
||||||
<thead class="flex">
|
<thead class="flex">
|
||||||
<tr class="flexrow row">
|
<tr class="flexrow row">
|
||||||
@@ -26,9 +26,9 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody class="flex">
|
<tbody class="flex">
|
||||||
{{#each actor.items as |advancement advancementId|}}
|
{{#each actor.items as |advancement advancementId|}}
|
||||||
{{#if advancement.isAdvancement }}
|
{{#ifCond (ifCond advancement.type '==' 'technique') '||' (ifCond advancement.type '==' 'advancement')}}
|
||||||
{{> 'systems/l5r5e/templates/sheets/actor/advancement.html' advancement=advancement }}
|
{{> 'systems/l5r5e/templates/sheets/actor/advancement.html' advancement=advancement }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -16,9 +16,9 @@
|
|||||||
<legend class="text-block-header">{{ localize 'l5r5e.social.advantages' }}</legend>
|
<legend class="text-block-header">{{ localize 'l5r5e.social.advantages' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.item as |item id|}}
|
{{#each actor.item as |item id|}}
|
||||||
{{#if item.isEquipment }}
|
{{#ifCond item.type '==' 'advantage'}}
|
||||||
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
<legend class="text-block-header">{{ localize 'l5r5e.social.disadvantages' }}</legend>
|
<legend class="text-block-header">{{ localize 'l5r5e.social.disadvantages' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.item as |item id|}}
|
{{#each actor.item as |item id|}}
|
||||||
{{#if item.isEquipment }}
|
{{#ifCond item.type '==' 'disadvantage'}}
|
||||||
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
<fieldset class="section-header flexrow">
|
<fieldset class="section-header flexrow">
|
||||||
<legend class="technique-controls">
|
<legend class="technique-controls">
|
||||||
{{ localize 'l5r5e.techniques.title' }}
|
{{ localize 'l5r5e.techniques.title' }}
|
||||||
<a class="technique-control technique-add" title="{{ localize 'l5r5e.add' }}"><i class="fas fa-plus"></i></a>
|
<a class="technique-control technique-add" title="{{ localize 'l5r5e.global.add' }}"><i class="fas fa-plus"></i></a>
|
||||||
</legend>
|
</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isTechnique }}
|
{{#ifCond item.type '==' 'technique'}}
|
||||||
{{> 'systems/l5r5e/templates/item/technique-entry.html' technique=item }}
|
{{> 'systems/l5r5e/templates/item/technique-entry.html' technique=item }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<legend class="text-block-header">{{ localize 'l5r5e.social.advantages' }}</legend>
|
<legend class="text-block-header">{{ localize 'l5r5e.social.advantages' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.item as |item id|}}
|
{{#each actor.item as |item id|}}
|
||||||
{{#if item.isEquipment }}
|
{{#ifCond item.type '==' 'advantage'}}
|
||||||
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -12,9 +12,9 @@
|
|||||||
<legend class="text-block-header">{{ localize 'l5r5e.social.disadvantages' }}</legend>
|
<legend class="text-block-header">{{ localize 'l5r5e.social.disadvantages' }}</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.item as |item id|}}
|
{{#each actor.item as |item id|}}
|
||||||
{{#if item.isEquipment }}
|
{{#ifCond item.type '==' 'disadvantage'}}
|
||||||
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
{{> 'systems/l5r5e/templates/item/item-entry.html' item=item id=id }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
<fieldset class="section-header flexrow">
|
<fieldset class="section-header flexrow">
|
||||||
<legend class="technique-controls">
|
<legend class="technique-controls">
|
||||||
{{ localize 'l5r5e.techniques.title' }}
|
{{ localize 'l5r5e.techniques.title' }}
|
||||||
<a class="technique-control technique-add" title="{{ localize 'l5r5e.add' }}"><i class="fas fa-plus"></i></a>
|
<a class="technique-control technique-add" title="{{ localize 'l5r5e.global.add' }}"><i class="fas fa-plus"></i></a>
|
||||||
</legend>
|
</legend>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
{{#each actor.items as |item id|}}
|
{{#each actor.items as |item id|}}
|
||||||
{{#if item.isTechnique }}
|
{{#ifCond item.type '==' 'technique'}}
|
||||||
{{> 'systems/l5r5e/templates/item/technique-entry.html' technique=item }}
|
{{> 'systems/l5r5e/templates/item/technique-entry.html' technique=item }}
|
||||||
{{/if}}
|
{{/ifCond}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part1.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part1.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
1. A quel clan appartient votre personnage ? (p. 41)
|
{{localize 'l5r5e.twenty_questions.part1.q1'}}
|
||||||
<input type="text" name="step1_clan" value="{{datas.step1_clan}}">
|
<input type="text" name="step1_clan" value="{{datas.step1_clan}}">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
2. A quelle famille appartient votre personnage ? (p. 49)
|
{{localize 'l5r5e.twenty_questions.part1.q2'}}
|
||||||
<input type="text" name="step2_family" value="{{datas.step2_family}}">
|
<input type="text" name="step2_family" value="{{datas.step2_family}}">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part2.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part2.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
3. Quelle est l'École votre personnage, et quel rôle remplit-elle ? (p. 56)
|
{{localize 'l5r5e.twenty_questions.part2.q3'}}
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
École
|
École
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
4. De quelle manière votre personnage se démarque-t-il au sein de son école ? (p. 88)
|
{{localize 'l5r5e.twenty_questions.part2.q4'}}
|
||||||
<textarea name="step4_stand_out">{{datas.step4_stand_out}}</textarea>
|
<textarea name="step4_stand_out">{{datas.step4_stand_out}}</textarea>
|
||||||
|
|
||||||
Augmentation d'Anneau (1)
|
Augmentation d'Anneau (1)
|
||||||
@@ -230,17 +230,17 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part3.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part3.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
5. Qui est le seigneur de votre personnage et quel est le devoir de votre personnage envers lui ? (p. 88)
|
{{localize 'l5r5e.twenty_questions.part3.q5'}}
|
||||||
Choisissez un giri:
|
Choisissez un giri:
|
||||||
<textarea name="step5_social_giri">{{datas.step5_social_giri}}</textarea>
|
<textarea name="step5_social_giri">{{datas.step5_social_giri}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
6. Que désire votre personnage, et en quoi ce désir risque-t-il de l’empêcher d’accomplir son devoir ? (p. 90)
|
{{localize 'l5r5e.twenty_questions.part3.q6'}}
|
||||||
Choisissez un ninjō:
|
Choisissez un ninjō:
|
||||||
<textarea name="step6_social_ninjo">{{datas.step6_social_ninjo}}</textarea>
|
<textarea name="step6_social_ninjo">{{datas.step6_social_ninjo}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
7. Quelle relation votre personnage entretient-il avec son clan ? (p. 91)
|
{{localize 'l5r5e.twenty_questions.part3.q7'}}
|
||||||
<textarea name="step7_clan_relations">{{datas.step7_clan_relations}}</textarea>
|
<textarea name="step7_clan_relations">{{datas.step7_clan_relations}}</textarea>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
8. Que pense votre personnage du bushido ? (p. 91)
|
{{localize 'l5r5e.twenty_questions.part3.q8'}}
|
||||||
<textarea name="step8_bushido">{{datas.step8_bushido}}</textarea>
|
<textarea name="step8_bushido">{{datas.step8_bushido}}</textarea>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -293,35 +293,35 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part4.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part4.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
9. Quelle est à ce jour la plus belle réussite de votre personnage ? (p. 92)
|
{{localize 'l5r5e.twenty_questions.part4.q9'}}
|
||||||
<textarea name="step9_success">{{datas.step9_success}}</textarea>
|
<textarea name="step9_success">{{datas.step9_success}}</textarea>
|
||||||
|
|
||||||
Aptitude (1)
|
Aptitude (1)
|
||||||
<textarea name="step9_distinction">{{datas.step9_distinction}}</textarea>
|
<textarea name="step9_distinction">{{datas.step9_distinction}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
10. Quel est le frein principal dans la vie de votre personnage ? (p. 92)
|
{{localize 'l5r5e.twenty_questions.part4.q10'}}
|
||||||
<textarea name="step10_difficulty">{{datas.step10_difficulty}}</textarea>
|
<textarea name="step10_difficulty">{{datas.step10_difficulty}}</textarea>
|
||||||
|
|
||||||
Coup du sort (1)
|
Coup du sort (1)
|
||||||
<textarea name="step10_adversity">{{datas.step10_adversity}}</textarea>
|
<textarea name="step10_adversity">{{datas.step10_adversity}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
11. Quelle activité apaise le plus votre personnage ? (p. 93)
|
{{localize 'l5r5e.twenty_questions.part4.q11'}}
|
||||||
<textarea name="step11_calms">{{datas.step11_calms}}</textarea>
|
<textarea name="step11_calms">{{datas.step11_calms}}</textarea>
|
||||||
|
|
||||||
Passion (1)
|
Passion (1)
|
||||||
<textarea name="step11_passion">{{datas.step11_passion}}</textarea>
|
<textarea name="step11_passion">{{datas.step11_passion}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
12. Quelle inquiétude, crainte ou manie tracasse le plus votre personnage ? (p. 93)
|
{{localize 'l5r5e.twenty_questions.part4.q12'}}
|
||||||
<textarea name="step12_worries">{{datas.step12_worries}}</textarea>
|
<textarea name="step12_worries">{{datas.step12_worries}}</textarea>
|
||||||
|
|
||||||
Défaillance (1)
|
Défaillance (1)
|
||||||
<textarea name="step12_failure">{{datas.step12_failure}}</textarea>
|
<textarea name="step12_failure">{{datas.step12_failure}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
13. De qui votre personnage a-t-il le plus appris au cours de sa vie ? (p. 93)
|
{{localize 'l5r5e.twenty_questions.part4.q13'}}
|
||||||
<textarea name="step13_most_learn">{{datas.step13_most_learn}}</textarea>
|
<textarea name="step13_most_learn">{{datas.step13_most_learn}}</textarea>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -350,19 +350,19 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part5.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part5.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
14. Que remarque-t-on en premier chez votre personnage ? (p. 93)
|
{{localize 'l5r5e.twenty_questions.part5.q14'}}
|
||||||
<textarea name="step14_first_sight">{{datas.step14_first_sight}}</textarea>
|
<textarea name="step14_first_sight">{{datas.step14_first_sight}}</textarea>
|
||||||
|
|
||||||
Particularités
|
Particularités
|
||||||
<textarea name="step14_special_features">{{datas.step14_special_features}}</textarea>
|
<textarea name="step14_special_features">{{datas.step14_special_features}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
15. Comment votre personnage réagit-il aux situations stressantes ? (p. 94)
|
{{localize 'l5r5e.twenty_questions.part5.q15'}}
|
||||||
<textarea name="step15_stress">{{datas.step15_stress}}</textarea>
|
<textarea name="step15_stress">{{datas.step15_stress}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
16. Quelles relations votre personnage entretient-il avec des familles, des organisations, des traditions et des
|
{{localize 'l5r5e.twenty_questions.part5.q16'}}
|
||||||
clans différents ? (p. 94)
|
|
||||||
<textarea name="step16_relations">{{datas.step16_relations}}</textarea>
|
<textarea name="step16_relations">{{datas.step16_relations}}</textarea>
|
||||||
|
|
||||||
Objet (Rareté inférieur ou égale à 7)
|
Objet (Rareté inférieur ou égale à 7)
|
||||||
@@ -372,7 +372,7 @@
|
|||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part6.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part6.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
17. Comment les parents de votre personnage le décriraient-ils ? (p. 95)
|
{{localize 'l5r5e.twenty_questions.part6.q17'}}
|
||||||
<textarea name="step17_parents_pov">{{datas.step17_parents_pov}}</textarea>
|
<textarea name="step17_parents_pov">{{datas.step17_parents_pov}}</textarea>
|
||||||
|
|
||||||
Augmentation de compétence (1)
|
Augmentation de compétence (1)
|
||||||
@@ -388,7 +388,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
18. En l’honneur de qui votre personnage a-t-il été prénommé ? (p. 95)
|
{{localize 'l5r5e.twenty_questions.part6.q18'}}
|
||||||
<textarea name="step18_heritage_name">{{datas.step18_heritage_name}}</textarea>
|
<textarea name="step18_heritage_name">{{datas.step18_heritage_name}}</textarea>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@@ -402,13 +402,13 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
19. Quel est le prénom de votre personnage ? (p. 95)
|
{{localize 'l5r5e.twenty_questions.part6.q19'}}
|
||||||
<textarea name="step19_firstname">{{datas.step19_firstname}}</textarea>
|
<textarea name="step19_firstname">{{datas.step19_firstname}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>{{localize 'l5r5e.twenty_questions.part7.title'}}</h2>
|
<h2>{{localize 'l5r5e.twenty_questions.part7.title'}}</h2>
|
||||||
<div>
|
<div>
|
||||||
20. Comment envisagez-vous la mort de votre personnage ? (p. 95)
|
{{localize 'l5r5e.twenty_questions.part7.q20'}}
|
||||||
<textarea name="step20_death">{{datas.step20_death}}</textarea>
|
<textarea name="step20_death">{{datas.step20_death}}</textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user