Redo Skill button, fixes and translations. (css missing)
This commit is contained in:
+9
-2
@@ -27,8 +27,15 @@
|
||||
"Mosh.CharacterGenerator.StatOption": "Stats & Saves",
|
||||
"Mosh.CharacterGenerator.StatOptionPopupTitle": "Class Attribute and Saves option",
|
||||
"Mosh.CharacterGenerator.StatOptionPopupText": "Choose where to apply the bonus of:",
|
||||
"Mosh.CharacterGenerator.SkillOptionPopupTitle": "Choose your skills",
|
||||
"Mosh.CharacterGenerator.SkillOptionChoice": "Option",
|
||||
"Mosh.CharacterGenerator.SkillOption.Classerror": "You need to select a class first.",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupTitle": "Choose your skills",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupTrainedDescription": "Choose 1 Trained skill",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupExpertDescription": "Choose 1 Expert skill",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupMasterDescription": "Choose 1 Master skill",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupFullMasterDescription": "Choose 1 Master skill, and an Expert and Trained Skill prerequisite.",
|
||||
"Mosh.CharacterGenerator.SkillOption.PopupFullExperDescription": "Choose 1 Expert skill, and Trained Skill prerequisite.",
|
||||
"Mosh.CharacterGenerator.SkillOption.ChoiceWord": "Option",
|
||||
"Mosh.CharacterGenerator.SkillOption.ChoiceText":"Choose 1 from these skill bonus options",
|
||||
"Mosh.CharacterGenerator.Tables": "Tables",
|
||||
"Mosh.CharacterGenerator.Table.Loadout": "Loadout Table",
|
||||
"Mosh.CharacterGenerator.Table.Patch": "Patch Table",
|
||||
|
||||
@@ -136,7 +136,7 @@ export class MothershipClassSheet extends MothershipItemSheet {
|
||||
DialogContent+=`<option value='speed'>${game.i18n.localize("Mosh.Speed")}</option>`
|
||||
}
|
||||
if ( ! stats.includes("intellect")){
|
||||
DialogContent+=`<option value='intellect'>${game.i18n.localize("Mosh.Intelect")}</option>`
|
||||
DialogContent+=`<option value='intellect'>${game.i18n.localize("Mosh.Intellect")}</option>`
|
||||
}
|
||||
if ( ! stats.includes("combat")){
|
||||
DialogContent+=`<option value='combat'>${game.i18n.localize("Mosh.Combat")}</option>`
|
||||
|
||||
@@ -172,7 +172,7 @@ export class DLActorGenerator extends FormApplication {
|
||||
let li_html = `<li><img src="${skill.img}" title="${skill.name}" width="24" height="24"/> ${await TextEditor.enrichHTML(skill.name, { async: true })}</li>`;
|
||||
html.find(`ul[id="system.class.skils.text"]`).append(li_html);
|
||||
}
|
||||
let old_skills = html.find(`input[id="system.class.skills.uuid"]`).prop("value").split(",").filter(Boolean);
|
||||
let old_skills = await html.find(`input[id="system.class.skills.uuid"]`).prop("value").split(",").filter(Boolean);
|
||||
html.find(`input[id="system.class.skills.uuid"]`).prop("value", old_skills.concat(skillsUuid).join(","));
|
||||
}
|
||||
|
||||
@@ -187,15 +187,15 @@ export class DLActorGenerator extends FormApplication {
|
||||
|
||||
}
|
||||
for (let i = 0; i < skillPopupOptions.trained; i++) {
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "trained");
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "Trained");
|
||||
|
||||
}
|
||||
for (let i = 0; i < skillPopupOptions.expert; i++) {
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "expert");
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "Expert");
|
||||
|
||||
}
|
||||
for (let i = 0; i < skillPopupOptions.master; i++) {
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "master");
|
||||
await this.showSkillDialog('systems/mosh/templates/dialogs/actor-generator/actor-generator-skill-option-single-dialog.html', "Master");
|
||||
|
||||
}
|
||||
//console.log(existingSkills);
|
||||
@@ -213,7 +213,7 @@ export class DLActorGenerator extends FormApplication {
|
||||
|
||||
|
||||
let skillPopupData = {
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOptionPopupTitle"),
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOption.PopupTitle"),
|
||||
existingSkills: skillsUuid,
|
||||
skills: {
|
||||
trained: all_skills.filter(i => i.system.rank == "Trained"),
|
||||
@@ -222,15 +222,15 @@ export class DLActorGenerator extends FormApplication {
|
||||
}
|
||||
};
|
||||
if (exclusive) {
|
||||
skillPopupData.description = game.i18n.localize("Mosh.CharacterGenerator.SkillOptionPopup" + exclusive + "Description");
|
||||
skillPopupData.description = game.i18n.localize("Mosh.CharacterGenerator.SkillOption.Popup" + exclusive + "Description");
|
||||
switch (exclusive) {
|
||||
case "master":
|
||||
case "Master":
|
||||
skillPopupData.skills = all_skills.filter(i => i.system.rank == "Master" && i.system.prerequisite_ids.filter(item => skillsUuid.includes(item)).length > 0);
|
||||
break;
|
||||
case "expert":
|
||||
case "Expert":
|
||||
skillPopupData.skills = all_skills.filter(i => i.system.rank == "Expert" && i.system.prerequisite_ids.filter(item => skillsUuid.includes(item)).length > 0);
|
||||
break;
|
||||
case "trained":
|
||||
case "Trained":
|
||||
skillPopupData.skills = all_skills.filter(i => i.system.rank == "Trained");
|
||||
break;
|
||||
}
|
||||
@@ -240,7 +240,7 @@ export class DLActorGenerator extends FormApplication {
|
||||
|
||||
return new Promise((resolve) => {
|
||||
let d = new Dialog({
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOptionPopupTitle"),
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOption.PopupTitle"),
|
||||
content: popUpContent,
|
||||
buttons: {
|
||||
"1": {
|
||||
@@ -277,20 +277,20 @@ export class DLActorGenerator extends FormApplication {
|
||||
|
||||
return new Promise((resolve) => {
|
||||
let d = new Dialog({
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOptionPopupTitle"),
|
||||
title: game.i18n.localize("Mosh.CharacterGenerator.SkillOption.PopupTitle"),
|
||||
content: popUpContent,
|
||||
width: 450,
|
||||
window:{width: 500,},
|
||||
buttons: {
|
||||
"1": {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: game.i18n.localize("Mosh.CharacterGenerator.SkillOptionChoice") + " 1",
|
||||
label: game.i18n.localize("Mosh.CharacterGenerator.SkillOption.ChoiceWord") + " 1",
|
||||
callback: () => {
|
||||
resolve(option_1);
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: game.i18n.localize("Mosh.CharacterGenerator.SkillOptionChoice") + " 2",
|
||||
label: game.i18n.localize("Mosh.CharacterGenerator.SkillOption.ChoiceWord") + " 2",
|
||||
callback: () => {
|
||||
resolve(option_2);
|
||||
}
|
||||
@@ -301,6 +301,38 @@ export class DLActorGenerator extends FormApplication {
|
||||
});
|
||||
}
|
||||
|
||||
async applyClassSkills(html) {
|
||||
let class_uuid = html.find(`input[id="system.class.uuid"]`).prop("value");
|
||||
if (class_uuid == "") {
|
||||
ui.notifications.error(game.i18n.localize("Mosh.CharacterGenerator.SkillOption.Classerror"));
|
||||
}
|
||||
let classObject = await fromUuid(class_uuid);
|
||||
await html.find(`ul[id="system.class.skils.text"]`).empty();
|
||||
await html.find(`input[id="system.class.skills.uuid"]`).prop("value", "");
|
||||
|
||||
this.skillsUuid = classObject.system.base_adjustment.skills_granted.slice();
|
||||
await this.updateSkillHtmlUl(html, this.skillsUuid);
|
||||
|
||||
|
||||
let option_skills_1 = classObject.system.selected_adjustment.choose_skill_and;
|
||||
await this.popUpSkillOptions(option_skills_1);
|
||||
let option_skills_2 = classObject.system.selected_adjustment.choose_skill_or;
|
||||
const isEmptyOption1 = Object.values(option_skills_2.option_1).every(x => x === null || x === '' || x === 0);
|
||||
const isEmptyOption2 = Object.values(option_skills_2.option_2).every(x => x === null || x === '' || x === 0);
|
||||
let option_skills_2_choosed = {}
|
||||
if (isEmptyOption1 == false && isEmptyOption2 == false) {
|
||||
//we need to choose-> render popup with both options
|
||||
option_skills_2_choosed = await this.showOptionsDialog(option_skills_2.option_1,option_skills_2.option_2);
|
||||
} else if (isEmptyOption1 == false) {
|
||||
//there is only option 1 (edge case) but we go with it.
|
||||
option_skills_2_choosed = option_skills_2.option_1;
|
||||
} else if (isEmptyOption2 == false) {
|
||||
//there is only option 2 (edge case) but we go with it.
|
||||
option_skills_2_choosed = option_skills_2.option_2;
|
||||
}
|
||||
await this.popUpSkillOptions(option_skills_2_choosed);
|
||||
}
|
||||
|
||||
async updateClass(classUuid, randomCharacter = false) {
|
||||
|
||||
const droppedObject = await fromUuid(classUuid);
|
||||
@@ -329,31 +361,7 @@ export class DLActorGenerator extends FormApplication {
|
||||
* Skills
|
||||
* */
|
||||
|
||||
this._element.find(`ul[id="system.class.skils.text"]`).empty();
|
||||
|
||||
this.skillsUuid = droppedObject.system.base_adjustment.skills_granted.slice();
|
||||
await this.updateSkillHtmlUl(this._element, this.skillsUuid);
|
||||
|
||||
|
||||
let option_skills_1 = droppedObject.system.selected_adjustment.choose_skill_and;
|
||||
await this.popUpSkillOptions(option_skills_1);
|
||||
let option_skills_2 = droppedObject.system.selected_adjustment.choose_skill_or;
|
||||
const isEmptyOption1 = Object.values(option_skills_2.option_1).every(x => x === null || x === '' || x === 0);
|
||||
const isEmptyOption2 = Object.values(option_skills_2.option_2).every(x => x === null || x === '' || x === 0);
|
||||
let option_skills_2_choosed = {}
|
||||
if (isEmptyOption1 == false && isEmptyOption2 == false) {
|
||||
//we need to choose-> render popup with both options
|
||||
option_skills_2_choosed = await this.showOptionsDialog(option_skills_2.option_1,option_skills_2.option_2);
|
||||
} else if (isEmptyOption1 == false) {
|
||||
//there is only option 1 (edge case) but we go with it.
|
||||
option_skills_2_choosed = option_skills_2.option_1;
|
||||
} else if (isEmptyOption2 == false) {
|
||||
//there is only option 2 (edge case) but we go with it.
|
||||
option_skills_2_choosed = option_skills_2.option_2;
|
||||
}
|
||||
await this.popUpSkillOptions(option_skills_2_choosed);
|
||||
|
||||
|
||||
await this.applyClassSkills(this._element);
|
||||
|
||||
/**
|
||||
* Stats
|
||||
@@ -391,38 +399,6 @@ export class DLActorGenerator extends FormApplication {
|
||||
});
|
||||
d.render(true);
|
||||
}
|
||||
/*
|
||||
for(let i = 0; i < statsandsaves.length; i++) {
|
||||
let obj = statsandsaves[i];
|
||||
|
||||
if (obj.options.length == 1){
|
||||
//only 1 option, then its forced
|
||||
this._element.find(`input[name="${obj.options[0]}"]`).prop("value",obj.value);
|
||||
}else{
|
||||
|
||||
let buttons_options = {};
|
||||
for(let j = 0; j < obj.options.length; j++) {
|
||||
buttons_options[j] = {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: obj.options[j].replace(/\.bonus/i,"").replace(/(.*)\.+/i,""),
|
||||
callback: () => this._element.find(`input[name="${obj.options[j]}"]`).prop("value",obj.value)
|
||||
};
|
||||
}
|
||||
let d = new Dialog({
|
||||
title: "Class Attribute and Saves option",
|
||||
content: `<p>You must choose where to apply the bonus of (${obj.value})</p>`,
|
||||
buttons: buttons_options,
|
||||
default: "1",
|
||||
//render: html => console.log("Register interactivity in the rendered dialog"),
|
||||
//close: html => console.log("This always is logged no matter which option is chosen")
|
||||
});
|
||||
d.render(true);
|
||||
}
|
||||
}*/
|
||||
//}catch{
|
||||
// ui.notifications.error("Class has invalid stats and saves configuration.");
|
||||
//}
|
||||
//todo: add robotic flag.
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -513,6 +489,12 @@ export class DLActorGenerator extends FormApplication {
|
||||
html.find(`img[id="system.credits.value"]`).click(ev => {
|
||||
this.rollCredits(html)
|
||||
});
|
||||
|
||||
/** Redo Skills */
|
||||
html.find(`i[id="system.class.skills.redo"]`).click(ev => {
|
||||
this.applyClassSkills(html)
|
||||
});
|
||||
|
||||
/** Roll everything button */
|
||||
html.find(`div[id="roll.everything"]`).click(ev => {
|
||||
this.rollEverything(html)
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<div class="resource mainstat">
|
||||
<div class="mainstatlabel">
|
||||
<span class=" mainstattext" data-key="intellect" data-roll="d100"
|
||||
data-label="{{ localize 'Mosh.Intelect' }}">{{ localize 'Mosh.Intelect' }}</span>
|
||||
data-label="{{ localize 'Mosh.Intellect' }}">{{ localize 'Mosh.Intellect' }}</span>
|
||||
</div>
|
||||
<img class="clicable-item circle-input" id="system.stats.intellect.value" src="icons/svg/d20-black.svg"
|
||||
alt="roll">
|
||||
@@ -243,6 +243,10 @@
|
||||
<div class="fulllabel mainstatlabel">
|
||||
<span class=" mainstattext" data-key="skills" data-label="skills">{{ localize 'Mosh.Skills' }}</span>
|
||||
</div>
|
||||
<i class="clicable-item circle-input fa fa-undo" id="system.class.skills.redo" alt="restart" style="
|
||||
font-size: 37px;
|
||||
text-align: center;
|
||||
"></i>
|
||||
</div>
|
||||
<div class="headerinputfield ulinputfield">
|
||||
<input type="hidden" id="system.class.skills.uuid" name="system.class.skills.uuid" class="noborder">
|
||||
|
||||
@@ -1,70 +1,79 @@
|
||||
<div class="grid grid-2col widegap">
|
||||
<div class="mosh">
|
||||
|
||||
<div style="border:3px solid #111;border-radius: 1em;padding: 0.5em;">
|
||||
<div class="{{cssClass}} characterGeneratorSkillPopup">
|
||||
<div>
|
||||
<p class="skillpopupDescription">{{localize 'Mosh.CharacterGenerator.SkillOption.ChoiceText'}}</p>
|
||||
</div>
|
||||
<div class="grid grid-2col widegap">
|
||||
<div style="border:3px solid #111;border-radius: 1em;padding: 0.5em;">
|
||||
|
||||
<p style="text-decoration: underline;">{{localize 'Mosh.CharacterGenerator.SkillOptionChoice'}} 1</p>
|
||||
<p style="text-decoration: underline;">{{localize 'Mosh.CharacterGenerator.SkillOption.ChoiceWord'}}: 1
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
{{#if option_1.master}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} : {{option_1.master}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.expert}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} : {{option_1.expert}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.trained}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankTrained'}} : {{option_1.trained}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.master_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_1.master_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.expert_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_1.expert_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
<ul>
|
||||
{{#if option_1.master}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} : {{option_1.master}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.expert}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} : {{option_1.expert}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.trained}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankTrained'}} : {{option_1.trained}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.master_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_1.master_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_1.expert_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_1.expert_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
<div style="border:3px solid #111;border-radius: 1em;padding: 0.5em;">
|
||||
<p style="text-decoration: underline;">{{localize 'Mosh.CharacterGenerator.SkillOption.ChoiceWord'}}: 2
|
||||
</p>
|
||||
<ul>
|
||||
{{#if option_2.master}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} : {{option_2.master}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.expert}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} : {{option_2.expert}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.trained}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankTrained'}} : {{option_2.trained}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.master_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_2.master_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.expert_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_2.expert_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div style="border:3px solid #111;border-radius: 1em;padding: 0.5em;">
|
||||
<p style="text-decoration: underline;">{{localize 'Mosh.CharacterGenerator.SkillOptionChoice'}} 2</p>
|
||||
<ul>
|
||||
{{#if option_2.master}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} : {{option_2.master}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.expert}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} : {{option_2.expert}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.trained}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankTrained'}} : {{option_2.trained}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.master_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankMaster'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_2.master_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{#if option_2.expert_full_set}}
|
||||
<li>
|
||||
{{localize 'Mosh.SkillRankExpert'}} & {{localize 'Mosh.SkillsPrerequisite'}} :
|
||||
{{option_2.expert_full_set}}
|
||||
</li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
+28
-35
@@ -1,17 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<div class="mosh">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{title}}</title>
|
||||
</head>
|
||||
<form id="skillForm" class="{{cssClass}} characterGeneratorSkillPopup">
|
||||
<div>
|
||||
<p class="skillpopupDescription">{{localize
|
||||
'Mosh.CharacterGenerator.SkillOption.PopupFullExpertDescription'}}</p>
|
||||
</div>
|
||||
<div class="grid grid-1col widegap center">
|
||||
|
||||
<body>
|
||||
<form id="skillForm">
|
||||
<div class="grid grid-1col widegap">
|
||||
|
||||
<div>
|
||||
<div class="dropdownSkill">
|
||||
<label for="dropdownExpert">{{localize 'Mosh.SkillRankExpert'}}:</label>
|
||||
<select id="dropdownExpert" name="dropdownExpert" onchange="updateDropdownExpert()">
|
||||
<option selected id="dropdownExpertDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
@@ -25,7 +21,7 @@
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div class="dropdownSkill">
|
||||
<label for="dropdownTrained">{{localize 'Mosh.SkillRankTrained'}}:</label>
|
||||
<select id="dropdownTrained" name="dropdownTrained">
|
||||
<option selected id="dropdownTrainedDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
@@ -41,32 +37,29 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
<script>
|
||||
function updateDropdownExpert() {
|
||||
// Logic to update dropdownTrained based on the selection of dropdownExpert
|
||||
|
||||
function updateDropdownExpert() {
|
||||
// Logic to update dropdownTrained based on the selection of dropdownExpert
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
let selectedValue = dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid');
|
||||
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
let selectedValue = dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid');
|
||||
let prerequisiteIds = JSON.parse(dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
|
||||
let prerequisiteIds = JSON.parse(dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
|
||||
for (let i = 0; i < dropdownTrained.options.length; i++) {
|
||||
let option = dropdownTrained.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownTrained.options[dropdownTrained.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
for (let i = 0; i < dropdownTrained.options.length; i++) {
|
||||
let option = dropdownTrained.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownTrained.options[dropdownTrained.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
}
|
||||
</script>
|
||||
+47
-54
@@ -1,17 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<div class="mosh">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{title}}</title>
|
||||
</head>
|
||||
<form id="skillForm" class="{{cssClass}} characterGeneratorSkillPopup">
|
||||
<div>
|
||||
<p class="skillpopupDescription">{{localize
|
||||
'Mosh.CharacterGenerator.SkillOption.PopupFullMasterDescription'}}</p>
|
||||
</div>
|
||||
<div class="grid grid-1col widegap center">
|
||||
|
||||
<body>
|
||||
<form id="skillForm">
|
||||
<div class="grid grid-1col widegap">
|
||||
|
||||
<div>
|
||||
<div class="dropdownSkill">
|
||||
<label for="dropdownMaster">{{localize 'Mosh.SkillRankMaster'}}:</label>
|
||||
<select id="dropdownMaster" name="dropdownMaster" onchange="updateDropdownMaster()">
|
||||
<option selected id="dropdownMasterDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
@@ -24,7 +20,7 @@
|
||||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<div class="dropdownSkill">
|
||||
<label for="dropdownExpert">{{localize 'Mosh.SkillRankExpert'}}:</label>
|
||||
<select id="dropdownExpert" name="dropdownExpert" onchange="updateDropdownExpert()">
|
||||
<option selected id="dropdownExpertDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
@@ -38,7 +34,7 @@
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div class="dropdownSkill">
|
||||
<label for="dropdownTrained">{{localize 'Mosh.SkillRankTrained'}}:</label>
|
||||
<select id="dropdownTrained" name="dropdownTrained">
|
||||
<option selected id="dropdownTrainedDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
@@ -54,57 +50,54 @@
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
function updateDropdownMaster() {
|
||||
// Logic to update dropdownExpert based on the selection of dropdownMaster
|
||||
|
||||
<script>
|
||||
function updateDropdownMaster() {
|
||||
// Logic to update dropdownExpert based on the selection of dropdownMaster
|
||||
let dropdownMaster = document.getElementById('dropdownMaster');
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let selectedValue = dropdownMaster.options[dropdownMaster.selectedIndex].getAttribute('data-uuid');
|
||||
|
||||
let dropdownMaster = document.getElementById('dropdownMaster');
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let selectedValue = dropdownMaster.options[dropdownMaster.selectedIndex].getAttribute('data-uuid');
|
||||
let prerequisiteIds = JSON.parse(dropdownMaster.options[dropdownMaster.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
|
||||
let prerequisiteIds = JSON.parse(dropdownMaster.options[dropdownMaster.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
|
||||
for (let i = 0; i < dropdownExpert.options.length; i++) {
|
||||
let option = dropdownExpert.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownExpert.selectedIndex = 0;
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
for (let i = 0; i < dropdownExpert.options.length; i++) {
|
||||
let option = dropdownExpert.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownExpert.selectedIndex = 0;
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function updateDropdownExpert() {
|
||||
// Logic to update dropdownTrained based on the selection of dropdownExpert
|
||||
function updateDropdownExpert() {
|
||||
// Logic to update dropdownTrained based on the selection of dropdownExpert
|
||||
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
let selectedValue = dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid');
|
||||
let dropdownExpert = document.getElementById('dropdownExpert');
|
||||
let dropdownTrained = document.getElementById('dropdownTrained');
|
||||
let selectedValue = dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-uuid');
|
||||
|
||||
let prerequisiteIds = JSON.parse(dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
let prerequisiteIds = JSON.parse(dropdownExpert.options[dropdownExpert.selectedIndex].getAttribute('data-prerequisite_ids'));
|
||||
|
||||
for (let i = 0; i < dropdownTrained.options.length; i++) {
|
||||
let option = dropdownTrained.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownTrained.options[dropdownTrained.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
for (let i = 0; i < dropdownTrained.options.length; i++) {
|
||||
let option = dropdownTrained.options[i];
|
||||
let optionUuid = option.getAttribute('data-uuid');
|
||||
if (prerequisiteIds.includes(optionUuid)) {
|
||||
option.hidden = false;
|
||||
} else {
|
||||
option.hidden = true;
|
||||
if (dropdownTrained.options[dropdownTrained.selectedIndex].getAttribute('data-uuid') == optionUuid) {
|
||||
dropdownTrained.selectedIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
}
|
||||
</script>
|
||||
@@ -1,18 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<div class="mosh">
|
||||
<form id="skillForm" class="{{cssClass}} characterGeneratorSkillPopup">
|
||||
<div>
|
||||
<p class="skillpopupDescription">{{description}}:</p>
|
||||
</div>
|
||||
<div class="grid grid-1col widegap center">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{title}}</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form id="skillForm">
|
||||
<div class="grid grid-1col widegap">
|
||||
|
||||
<div>
|
||||
<label for="dropdownSkill">{{description}}:</label>
|
||||
<div class="dropdownSkill">
|
||||
<select id="dropdownSkill" name="dropdownSkill">
|
||||
<option selected id="dropdownSkillDefault" value="" data-uuid="" data-prerequisite_ids='[]'>---
|
||||
</option>
|
||||
@@ -28,6 +21,4 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</div>
|
||||
@@ -49,8 +49,8 @@
|
||||
<div class="mainstatwrapper">
|
||||
<div class="resource mainstat">
|
||||
<div class="mainstatlabel">
|
||||
<span class=" mainstattext" data-key="intellect" data-label="{{ localize 'Mosh.Intelect' }}">{{ localize
|
||||
'Mosh.Intelect' }}</span>
|
||||
<span class=" mainstattext" data-key="intellect" data-label="{{ localize 'Mosh.Intellect' }}">{{ localize
|
||||
'Mosh.Intellect' }}</span>
|
||||
</div>
|
||||
<input class="circle-input" id="system.base_adjustment.intellect" type="text"
|
||||
name="system.base_adjustment.intellect" value="{{system.base_adjustment.intellect}}" data-dtype="Number" />
|
||||
|
||||
Reference in New Issue
Block a user