state sync
This commit is contained in:
100
pak/static/js/dlg-charsheet.mjs
Normal file
100
pak/static/js/dlg-charsheet.mjs
Normal file
@@ -0,0 +1,100 @@
|
||||
import mermaid from "/static/js/mermaid/mermaid.esm.min.mjs";
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: "base",
|
||||
useMaxWidth: true,
|
||||
securityLevel: "loose"
|
||||
});
|
||||
|
||||
var charsheet_elements = {}
|
||||
charsheet_elements["lbl_agility"] = document.getElementById("lbl-attr-agility");
|
||||
charsheet_elements["lbl_instinct"] = document.getElementById("lbl-attr-instinct");
|
||||
charsheet_elements["lbl_leadership"] = document.getElementById("lbl-attr-leadership");
|
||||
charsheet_elements["lbl_instinct_txt"] = document.getElementById("lbl-attr-instinct-txt");
|
||||
charsheet_elements["btn_upgrade_agility"] = document.getElementById("btn-upgrade-agility");
|
||||
charsheet_elements["btn_upgrade_instinct"] = document.getElementById("btn-upgrade-instinct");
|
||||
charsheet_elements["btn_upgrade_leadership"] = document.getElementById("btn-upgrade-leadership");
|
||||
charsheet_elements["blk_tree"] = document.getElementById("charsheet-upgrade-tree");
|
||||
charsheet_elements["blk_details"] = document.getElementById("charsheet-upgrade-details");
|
||||
charsheet_elements["lbl_upgrade_name"] = document.getElementById("lbl-upgrade-name");
|
||||
charsheet_elements["txt_upgrade_desc"] = document.getElementById("txt-upgrade-desc");
|
||||
charsheet_elements["lst_upgrade_reqs"] = document.getElementById("lst-upgrade-requires");
|
||||
|
||||
function update_charsheet() {
|
||||
charsheet_elements["lbl_agility"].innerHTML = gamestate["agility"];
|
||||
charsheet_elements["lbl_instinct"].innerHTML = gamestate["instinct"];
|
||||
charsheet_elements["lbl_leadership"].innerHTML = gamestate["leadership"];
|
||||
|
||||
if (gamestate["story_beat"] >= 3) {
|
||||
charsheet_elements["lbl_instinct_txt"].innerHTML = "Intelligence";
|
||||
charsheet_elements["btn_upgrade_instinct"].innerHTML = "Intelligence Upgrades";
|
||||
}
|
||||
}
|
||||
|
||||
globalThis.purchase_upgrade = async function (tree, upgrade) {
|
||||
charsheet_elements["blk_details"].style.visibility = "visible";
|
||||
charsheet_elements["blk_details"].style.display = "flex";
|
||||
charsheet_elements["blk_tree"].style.visibility = "hidden";
|
||||
charsheet_elements["blk_tree"].style.display = "none";
|
||||
var upgrade_data = await fetch(`/upgrades/${tree}/${upgrade}`)
|
||||
.then(res => res.text())
|
||||
console.log(upgrade_data)
|
||||
var upgrade = JSON.parse(upgrade_data);
|
||||
|
||||
charsheet_elements["lbl_upgrade_name"].innerHTML = upgrade["name"];
|
||||
charsheet_elements["txt_upgrade_desc"].innerHTML = upgrade["desc"];
|
||||
charsheet_elements["lst_upgrade_reqs"].innerHTML = "";
|
||||
|
||||
if (upgrade["food"] > 0) {
|
||||
var foodli = document.createElement("li");
|
||||
foodli.innerHTML = `🍏 ${upgrade["food"]} food`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(foodli);
|
||||
}
|
||||
if (upgrade["shinies"] > 0) {
|
||||
var shiniesli = document.createElement("li");
|
||||
shiniesli.innerHTML = `🪙 ${upgrade["shinies"]} shinies`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(shiniesli);
|
||||
}
|
||||
if (upgrade["agility"] > 0) {
|
||||
var agilityli = document.createElement("li");
|
||||
agilityli.innerHTML = `An agility score of ${upgrade["agility"]}`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(agilityli);
|
||||
}
|
||||
if (upgrade["instinct"] > 0) {
|
||||
var instinctli = document.createElement("li");
|
||||
instinctli.innerHTML = `An instinct score of ${upgrade["instinct"]}`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(instinctli);
|
||||
}
|
||||
if (upgrade["leadership"] > 0) {
|
||||
var leadershipli = document.createElement("li");
|
||||
leadershipli.innerHTML = `A leadership score of ${upgrade["leadership"]}`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(leadershipli);
|
||||
}
|
||||
|
||||
for (item in upgrade["requires"]) {
|
||||
var itemli = document.createElement("li");
|
||||
itemli.innerHTML = `The upgrade ${item}`;
|
||||
charsheet_elements["lst_upgrade_reqs"].appendChild(itemli);
|
||||
}
|
||||
}
|
||||
|
||||
async function display_tree(tree) {
|
||||
charsheet_elements["blk_details"].style.visibility = "hidden";
|
||||
charsheet_elements["blk_details"].style.display = "none";
|
||||
charsheet_elements["blk_tree"].style.visibility = "visible";
|
||||
charsheet_elements["blk_tree"].style.display = "flex";
|
||||
|
||||
var upgrade_tree = await fetch(`/upgrades/${tree}`)
|
||||
.then(res => res.text())
|
||||
//console.log(upgrade_tree)
|
||||
var data_block = document.getElementById("upgrade-tree-data");
|
||||
data_block.removeAttribute("data-processed");
|
||||
|
||||
//charsheet_elements["blk_tree"].innerHTML = upgrade_tree
|
||||
data_block.innerHTML = upgrade_tree;
|
||||
await mermaid.run({nodes: [data_block]})
|
||||
}
|
||||
|
||||
charsheet_elements["btn_upgrade_agility"].addEventListener("click", (ev) => {display_tree("agility")});
|
||||
charsheet_elements["btn_upgrade_instinct"].addEventListener("click", (ev) => {display_tree("instinct")});
|
||||
charsheet_elements["btn_upgrade_leadership"].addEventListener("click", (ev) => {display_tree("leadership")});
|
||||
Reference in New Issue
Block a user