Merge branch 'atree' into minefield-base-spell-fix
|
@ -1407,7 +1407,7 @@
|
||||||
<a id="saveLink">savelink</a>
|
<a id="saveLink">savelink</a>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://d3js.org/d3.v7.js"></script>
|
<script src="https://d3js.org/d3.v7.js"></script>
|
||||||
<script type="text/javascript" src="../js/render_compute_graph.js"></script>
|
<script type="text/javascript" src="../js/debug/render_compute_graph.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
1408
builder/index.html
1399
builder/index_full.html
Normal file
106
clean.json
|
@ -76329,8 +76329,8 @@
|
||||||
"sdPct": 14,
|
"sdPct": 14,
|
||||||
"mdPct": 14,
|
"mdPct": 14,
|
||||||
"jh": 1,
|
"jh": 1,
|
||||||
"mr": -1,
|
"mr": -5,
|
||||||
"ms": -1
|
"ms": -5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"hprRaw": 50,
|
"hprRaw": 50,
|
||||||
|
@ -76358,19 +76358,19 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"ms": 1,
|
"ms": 5,
|
||||||
"dex": 2,
|
"dex": 2,
|
||||||
"sdRaw": 15,
|
"sdRaw": 15,
|
||||||
"mdRaw": 5
|
"mdRaw": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ms": 1,
|
"ms": 5,
|
||||||
"dex": 6,
|
"dex": 6,
|
||||||
"sdRaw": 35,
|
"sdRaw": 35,
|
||||||
"mdRaw": 10
|
"mdRaw": 10
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ms": 3,
|
"ms": 15,
|
||||||
"dex": 20,
|
"dex": 20,
|
||||||
"sdRaw": 65,
|
"sdRaw": 65,
|
||||||
"mdRaw": 70
|
"mdRaw": 70
|
||||||
|
@ -76430,10 +76430,10 @@
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 5,
|
"mr": 25,
|
||||||
"sdPct": 75,
|
"sdPct": 75,
|
||||||
"mdPct": 75,
|
"mdPct": 75,
|
||||||
"ms": 5,
|
"ms": 25,
|
||||||
"ls": 400,
|
"ls": 400,
|
||||||
"hprRaw": 600
|
"hprRaw": 600
|
||||||
}
|
}
|
||||||
|
@ -76558,24 +76558,24 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": -1,
|
"mr": -5,
|
||||||
"ms": 2,
|
"ms": 10,
|
||||||
"sdRaw": 40,
|
"sdRaw": 40,
|
||||||
"wDamPct": 5,
|
"wDamPct": 5,
|
||||||
"tDamPct": 5,
|
"tDamPct": 5,
|
||||||
"eDamPct": -34
|
"eDamPct": -34
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": -2,
|
"mr": -10,
|
||||||
"ms": 4,
|
"ms": 20,
|
||||||
"sdRaw": 115,
|
"sdRaw": 115,
|
||||||
"wDamPct": 10,
|
"wDamPct": 10,
|
||||||
"tDamPct": 10,
|
"tDamPct": 10,
|
||||||
"eDamPct": -67
|
"eDamPct": -67
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": -3,
|
"mr": -15,
|
||||||
"ms": 6,
|
"ms": 30,
|
||||||
"sdRaw": 230,
|
"sdRaw": 230,
|
||||||
"wDamPct": 32,
|
"wDamPct": 32,
|
||||||
"tDamPct": 32,
|
"tDamPct": 32,
|
||||||
|
@ -76612,7 +76612,7 @@
|
||||||
"spRegen": 15
|
"spRegen": 15
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"sdPct": 25,
|
"sdPct": 25,
|
||||||
"mdPct": 25,
|
"mdPct": 25,
|
||||||
"xpb": 50,
|
"xpb": 50,
|
||||||
|
@ -76698,7 +76698,7 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"xpb": 40,
|
"xpb": 40,
|
||||||
"def": 25,
|
"def": 25,
|
||||||
"fDamPct": 20,
|
"fDamPct": 20,
|
||||||
|
@ -76842,21 +76842,21 @@
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"hprPct": -10,
|
"hprPct": -10,
|
||||||
"mr": 1,
|
"mr": 5,
|
||||||
"sdPct": 6,
|
"sdPct": 6,
|
||||||
"ref": 10,
|
"ref": 10,
|
||||||
"thorns": 8
|
"thorns": 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"hprPct": -20,
|
"hprPct": -20,
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"sdPct": 14,
|
"sdPct": 14,
|
||||||
"ref": 35,
|
"ref": 35,
|
||||||
"thorns": 24
|
"thorns": 24
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"hprPct": -30,
|
"hprPct": -30,
|
||||||
"mr": 4,
|
"mr": 20,
|
||||||
"sdPct": 30,
|
"sdPct": 30,
|
||||||
"ref": 75,
|
"ref": 75,
|
||||||
"thorns": 70
|
"thorns": 70
|
||||||
|
@ -76872,7 +76872,7 @@
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mdPct": 30,
|
"mdPct": 30,
|
||||||
"ms": 2,
|
"ms": 10,
|
||||||
"spd": 25,
|
"spd": 25,
|
||||||
"spPct2": -40
|
"spPct2": -40
|
||||||
}
|
}
|
||||||
|
@ -76896,46 +76896,46 @@
|
||||||
"lb": 5
|
"lb": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 1,
|
"mr": 5,
|
||||||
"xpb": 10,
|
"xpb": 10,
|
||||||
"lb": 10,
|
"lb": 10,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"hpBonus": 125
|
"hpBonus": 125
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 1,
|
"mr": 5,
|
||||||
"xpb": 15,
|
"xpb": 15,
|
||||||
"lb": 15,
|
"lb": 15,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"hpBonus": 425
|
"hpBonus": 425
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"xpb": 35,
|
"xpb": 35,
|
||||||
"lb": 35,
|
"lb": 35,
|
||||||
"hpBonus": 1325,
|
"hpBonus": 1325,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"spRaw4": -1
|
"spRaw4": -5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"xpb": 55,
|
"xpb": 55,
|
||||||
"lb": 55,
|
"lb": 55,
|
||||||
"hpBonus": 2575,
|
"hpBonus": 2575,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"spRaw4": -1
|
"spRaw4": -5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 3,
|
"mr": 15,
|
||||||
"xpb": 80,
|
"xpb": 80,
|
||||||
"lb": 80,
|
"lb": 80,
|
||||||
"hpBonus": 4450,
|
"hpBonus": 4450,
|
||||||
"spRaw1": -1,
|
"spRaw1": -5,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"spRaw4": -1
|
"spRaw4": -5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 4,
|
"mr": 20,
|
||||||
"xpb": 100,
|
"xpb": 100,
|
||||||
"lb": 100,
|
"lb": 100,
|
||||||
"str": 15,
|
"str": 15,
|
||||||
|
@ -76944,10 +76944,10 @@
|
||||||
"agi": 15,
|
"agi": 15,
|
||||||
"def": 15,
|
"def": 15,
|
||||||
"hpBonus": 8270,
|
"hpBonus": 8270,
|
||||||
"spRaw1": -1,
|
"spRaw1": -5,
|
||||||
"spRaw2": -1,
|
"spRaw2": -5,
|
||||||
"spRaw3": -1,
|
"spRaw3": -5,
|
||||||
"spRaw4": -1
|
"spRaw4": -5
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -77011,7 +77011,7 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"sdPct": 15,
|
"sdPct": 15,
|
||||||
"mdPct": -15,
|
"mdPct": -15,
|
||||||
"sdRaw": 30,
|
"sdRaw": 30,
|
||||||
|
@ -77279,7 +77279,7 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"mdPct": -24,
|
"mdPct": -24,
|
||||||
"int": 5,
|
"int": 5,
|
||||||
"wDamPct": 10,
|
"wDamPct": 10,
|
||||||
|
@ -77287,7 +77287,7 @@
|
||||||
"wDefPct": 16
|
"wDefPct": 16
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 5,
|
"mr": 25,
|
||||||
"mdPct": -54,
|
"mdPct": -54,
|
||||||
"int": 15,
|
"int": 15,
|
||||||
"wDamPct": 20,
|
"wDamPct": 20,
|
||||||
|
@ -77295,7 +77295,7 @@
|
||||||
"wDefPct": 36
|
"wDefPct": 36
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 8,
|
"mr": 40,
|
||||||
"mdPct": -90,
|
"mdPct": -90,
|
||||||
"int": 25,
|
"int": 25,
|
||||||
"wDamPct": 40,
|
"wDamPct": 40,
|
||||||
|
@ -77321,7 +77321,7 @@
|
||||||
"aDefPct": 20,
|
"aDefPct": 20,
|
||||||
"tDefPct": 20,
|
"tDefPct": 20,
|
||||||
"eDefPct": 20,
|
"eDefPct": 20,
|
||||||
"ms": 1
|
"ms": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"xpb": 50,
|
"xpb": 50,
|
||||||
|
@ -77331,7 +77331,7 @@
|
||||||
"aDefPct": 50,
|
"aDefPct": 50,
|
||||||
"tDefPct": 50,
|
"tDefPct": 50,
|
||||||
"eDefPct": 50,
|
"eDefPct": 50,
|
||||||
"ms": 2
|
"ms": 10
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"xpb": 75,
|
"xpb": 75,
|
||||||
|
@ -77342,7 +77342,7 @@
|
||||||
"tDefPct": 100,
|
"tDefPct": 100,
|
||||||
"eDefPct": 100,
|
"eDefPct": 100,
|
||||||
"sdPct": 40,
|
"sdPct": 40,
|
||||||
"ms": 6
|
"ms": 30
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -77356,7 +77356,7 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 1,
|
"mr": 5,
|
||||||
"sdPct": -10,
|
"sdPct": -10,
|
||||||
"mdPct": -15,
|
"mdPct": -15,
|
||||||
"def": 7,
|
"def": 7,
|
||||||
|
@ -77365,7 +77365,7 @@
|
||||||
"aDamPct": 15
|
"aDamPct": 15
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 3,
|
"mr": 15,
|
||||||
"sdPct": -20,
|
"sdPct": -20,
|
||||||
"mdPct": -40,
|
"mdPct": -40,
|
||||||
"def": 15,
|
"def": 15,
|
||||||
|
@ -77374,7 +77374,7 @@
|
||||||
"aDamPct": 40
|
"aDamPct": 40
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 6,
|
"mr": 30,
|
||||||
"sdPct": -40,
|
"sdPct": -40,
|
||||||
"mdPct": -85,
|
"mdPct": -85,
|
||||||
"def": 40,
|
"def": 40,
|
||||||
|
@ -77436,7 +77436,7 @@
|
||||||
"sdPct": -33,
|
"sdPct": -33,
|
||||||
"mdPct": -33,
|
"mdPct": -33,
|
||||||
"ls": 90,
|
"ls": 90,
|
||||||
"ms": 2,
|
"ms": 10,
|
||||||
"sdRaw": 160,
|
"sdRaw": 160,
|
||||||
"mdRaw": 105,
|
"mdRaw": 105,
|
||||||
"atkTier": 1
|
"atkTier": 1
|
||||||
|
@ -77457,7 +77457,7 @@
|
||||||
"hprRaw": 90
|
"hprRaw": 90
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 5,
|
"mr": 25,
|
||||||
"int": 20,
|
"int": 20,
|
||||||
"def": 20,
|
"def": 20,
|
||||||
"hpBonus": 1500,
|
"hpBonus": 1500,
|
||||||
|
@ -77477,19 +77477,19 @@
|
||||||
"bonuses": [
|
"bonuses": [
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
"mr": 1,
|
"mr": 5,
|
||||||
"xpb": 5,
|
"xpb": 5,
|
||||||
"lb": 10,
|
"lb": 10,
|
||||||
"hpBonus": 55
|
"hpBonus": 55
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 2,
|
"mr": 10,
|
||||||
"xpb": 10,
|
"xpb": 10,
|
||||||
"lb": 25,
|
"lb": 25,
|
||||||
"hpBonus": 170
|
"hpBonus": 170
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"mr": 4,
|
"mr": 20,
|
||||||
"xpb": 25,
|
"xpb": 25,
|
||||||
"lb": 50,
|
"lb": 50,
|
||||||
"int": 20,
|
"int": 20,
|
||||||
|
|
|
@ -7,7 +7,7 @@ The game, of course
|
||||||
|
|
||||||
Additional Contributors, in no particular order:
|
Additional Contributors, in no particular order:
|
||||||
- Kiocifer (Icons!)
|
- Kiocifer (Icons!)
|
||||||
- IncinerateMe (helping transition to 1.20.3 / CI helper)
|
- IncinerateMe (helping transition to 1.20.3 / atree / CI helper)
|
||||||
- puppy (dog)
|
- puppy (dog)
|
||||||
- SockMower (ability tree encode/decode optimization)
|
- SockMower (ability tree encode/decode optimization)
|
||||||
- ITechnically (coding emotional support / misc)
|
- ITechnically (coding emotional support / misc)
|
||||||
|
|
|
@ -67,6 +67,6 @@
|
||||||
<script type="text/javascript" src="/js/utils.js"></script>
|
<script type="text/javascript" src="/js/utils.js"></script>
|
||||||
<script type="text/javascript" src="/js/loadheader.js"></script>
|
<script type="text/javascript" src="/js/loadheader.js"></script>
|
||||||
<script type="text/javascript" src="/js/icons.js"></script>
|
<script type="text/javascript" src="/js/icons.js"></script>
|
||||||
<script type="text/javascript" src="/js/dps_vis.js"></script>
|
<script type="text/javascript" src="/js/debug/dps_vis.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -728,7 +728,7 @@ const atree_stats = new (class extends ComputeNode {
|
||||||
if (effect.slider) {
|
if (effect.slider) {
|
||||||
if ('output' in effect) { // sometimes nodes will modify slider without having effect.
|
if ('output' in effect) { // sometimes nodes will modify slider without having effect.
|
||||||
const slider_val = interactive_map.get(effect.slider_name).slider.value;
|
const slider_val = interactive_map.get(effect.slider_name).slider.value;
|
||||||
let total = parseInt(slider_val) * effect.scaling[0];
|
let total = Math.floor(round_near(parseInt(slider_val) * effect.scaling[0]));
|
||||||
if ('max' in effect && total > effect.max) { total = effect.max; }
|
if ('max' in effect && total > effect.max) { total = effect.max; }
|
||||||
if (Array.isArray(effect.output)) {
|
if (Array.isArray(effect.output)) {
|
||||||
for (const output of effect.output) {
|
for (const output of effect.output) {
|
||||||
|
|
|
@ -1953,7 +1953,7 @@ const atrees = {
|
||||||
"parents": ["Cheaper Arrow Shield", "Cheaper Escape (2)"],
|
"parents": ["Cheaper Arrow Shield", "Cheaper Escape (2)"],
|
||||||
"dependencies": ["Phantom Ray"],
|
"dependencies": ["Phantom Ray"],
|
||||||
"blockers": [],
|
"blockers": [],
|
||||||
"cost": 1,
|
"cost": 2,
|
||||||
"display": {
|
"display": {
|
||||||
"row": 34,
|
"row": 34,
|
||||||
"col": 5,
|
"col": 5,
|
||||||
|
|
|
@ -7,8 +7,6 @@ const url_tag = location.hash.slice(1);
|
||||||
|
|
||||||
const BUILD_VERSION = "7.0.19";
|
const BUILD_VERSION = "7.0.19";
|
||||||
|
|
||||||
let player_build;
|
|
||||||
|
|
||||||
|
|
||||||
// THIS IS SUPER DANGEROUS, WE SHOULD NOT BE KEEPING THIS IN SO MANY PLACES
|
// THIS IS SUPER DANGEROUS, WE SHOULD NOT BE KEEPING THIS IN SO MANY PLACES
|
||||||
let editable_item_fields = [ "sdPct", "sdRaw", "mdPct", "mdRaw", "poison",
|
let editable_item_fields = [ "sdPct", "sdRaw", "mdPct", "mdRaw", "poison",
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
let player_build;
|
||||||
|
let build_powders;
|
||||||
|
|
||||||
|
function getItemNameFromID(id) { return idMap.get(id); }
|
||||||
|
function getTomeNameFromID(id) { return tomeIDMap.get(id); }
|
||||||
|
|
||||||
function parsePowdering(powder_info) {
|
function parsePowdering(powder_info) {
|
||||||
// TODO: Make this run in linear instead of quadratic time... ew
|
// TODO: Make this run in linear instead of quadratic time... ew
|
||||||
let powdering = [];
|
let powdering = [];
|
||||||
|
@ -124,7 +130,6 @@ function decodeBuild(url_tag) {
|
||||||
for (let i in tomes) {
|
for (let i in tomes) {
|
||||||
let tome_str = info[1].charAt(i);
|
let tome_str = info[1].charAt(i);
|
||||||
let tome_name = getTomeNameFromID(Base64.toInt(tome_str));
|
let tome_name = getTomeNameFromID(Base64.toInt(tome_str));
|
||||||
console.log(tome_name);
|
|
||||||
setValue(tomeInputs[i], tome_name);
|
setValue(tomeInputs[i], tome_name);
|
||||||
}
|
}
|
||||||
info[1] = info[1].slice(7);
|
info[1] = info[1].slice(7);
|
||||||
|
|
|
@ -1,18 +1,3 @@
|
||||||
let build_powders;
|
|
||||||
|
|
||||||
function getItemNameFromID(id) {
|
|
||||||
if (redirectMap.has(id)) {
|
|
||||||
return getItemNameFromID(redirectMap.get(id));
|
|
||||||
}
|
|
||||||
return idMap.get(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getTomeNameFromID(id) {
|
|
||||||
if (tomeRedirectMap.has(id)) {
|
|
||||||
return getTomeNameFromID(tomeRedirectMap.get(id));
|
|
||||||
}
|
|
||||||
return tomeIDMap.get(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
function populateBuildList() {
|
function populateBuildList() {
|
||||||
const buildList = document.getElementById("build-choice");
|
const buildList = document.getElementById("build-choice");
|
||||||
|
@ -148,7 +133,6 @@ function toggle_tab(tab) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function toggle_boost_tab(tab) {
|
function toggle_boost_tab(tab) {
|
||||||
for (const i of skp_order) {
|
for (const i of skp_order) {
|
||||||
document.querySelector("#"+i+"-boost").style.display = "none";
|
document.querySelector("#"+i+"-boost").style.display = "none";
|
||||||
|
@ -156,13 +140,10 @@ function toggle_boost_tab(tab) {
|
||||||
}
|
}
|
||||||
document.querySelector("#"+tab+"-boost").style.display = "";
|
document.querySelector("#"+tab+"-boost").style.display = "";
|
||||||
document.getElementById(tab + "-boost-tab").classList.add("selected-btn");
|
document.getElementById(tab + "-boost-tab").classList.add("selected-btn");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let tabs = ['overall-stats', 'offensive-stats', 'defensive-stats'];
|
let tabs = ['overall-stats', 'offensive-stats', 'defensive-stats'];
|
||||||
function show_tab(tab) {
|
function show_tab(tab) {
|
||||||
//console.log(itemFilters)
|
|
||||||
|
|
||||||
//hide all tabs, then show the tab of the div clicked and highlight the correct button
|
//hide all tabs, then show the tab of the div clicked and highlight the correct button
|
||||||
for (const i in tabs) {
|
for (const i in tabs) {
|
||||||
document.querySelector("#" + tabs[i]).style.display = "none";
|
document.querySelector("#" + tabs[i]).style.display = "none";
|
||||||
|
@ -319,51 +300,6 @@ function init_autocomplete() {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
let filter_loc = ["filter1", "filter2", "filter3", "filter4"];
|
|
||||||
for (const i of filter_loc) {
|
|
||||||
dropdowns.set(i+"-choice", new autoComplete({
|
|
||||||
data: {
|
|
||||||
src: sq2ItemFilters,
|
|
||||||
},
|
|
||||||
selector: "#"+i+"-choice",
|
|
||||||
wrapper: false,
|
|
||||||
resultsList: {
|
|
||||||
tabSelect: true,
|
|
||||||
noResults: true,
|
|
||||||
class: "search-box dark-7 rounded-bottom px-2 fw-bold dark-shadow-sm",
|
|
||||||
element: (list, data) => {
|
|
||||||
// dynamic result loc
|
|
||||||
console.log(i);
|
|
||||||
list.style.zIndex = "100";
|
|
||||||
let position = document.getElementById(i+"-dropdown").getBoundingClientRect();
|
|
||||||
window_pos = document.getElementById("search-container").getBoundingClientRect();
|
|
||||||
list.style.top = position.bottom - window_pos.top + 5 +"px";
|
|
||||||
list.style.left = position.x - window_pos.x +"px";
|
|
||||||
list.style.width = position.width+"px";
|
|
||||||
|
|
||||||
if (!data.results.length) {
|
|
||||||
message = document.createElement('li');
|
|
||||||
message.classList.add('scaled-font');
|
|
||||||
message.textContent = "No filters found!";
|
|
||||||
list.prepend(message);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
resultItem: {
|
|
||||||
class: "scaled-font search-item",
|
|
||||||
selected: "dark-5",
|
|
||||||
},
|
|
||||||
events: {
|
|
||||||
input: {
|
|
||||||
selection: (event) => {
|
|
||||||
if (event.detail.selection.value) {
|
|
||||||
event.target.value = event.detail.selection.value;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function collapse_element(elmnt) {
|
function collapse_element(elmnt) {
|
||||||
|
@ -393,6 +329,7 @@ function init() {
|
||||||
for (const eq of equipment_keys) {
|
for (const eq of equipment_keys) {
|
||||||
document.querySelector("#"+eq+"-tooltip").addEventListener("click", () => collapse_element('#'+eq+'-tooltip'));
|
document.querySelector("#"+eq+"-tooltip").addEventListener("click", () => collapse_element('#'+eq+'-tooltip'));
|
||||||
}
|
}
|
||||||
|
// Armor Specials
|
||||||
for (let i = 0; i < 5; ++i) {
|
for (let i = 0; i < 5; ++i) {
|
||||||
const powder_special = powderSpecialStats[i];
|
const powder_special = powderSpecialStats[i];
|
||||||
const elem_name = damageClasses[i+1]; // skip neutral
|
const elem_name = damageClasses[i+1]; // skip neutral
|
||||||
|
@ -436,6 +373,15 @@ function init() {
|
||||||
});
|
});
|
||||||
decodeBuild(url_tag);
|
decodeBuild(url_tag);
|
||||||
builder_graph_init();
|
builder_graph_init();
|
||||||
|
for (const item_node of item_nodes) {
|
||||||
|
if (item_node.get_value() === null) {
|
||||||
|
// likely DB load failure...
|
||||||
|
if (confirm('One or more items failed to load correctly. This could be due to a corrupted build link, or (more likely) a database load failure. Would you like to reload?')) {
|
||||||
|
hardReload();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.onerror = function(message, source, lineno, colno, error) {
|
window.onerror = function(message, source, lineno, colno, error) {
|
||||||
|
|
|
@ -192,7 +192,13 @@ class ItemInputNode extends InputNode {
|
||||||
|
|
||||||
for (const [i, x] of zip2(equipment_inputs, replace_items)) { setValue(i, x); }
|
for (const [i, x] of zip2(equipment_inputs, replace_items)) { setValue(i, x); }
|
||||||
|
|
||||||
for (const node of item_nodes) { calcSchedule(node, 10); }
|
for (const node of item_nodes) {
|
||||||
|
if (node !== this) {
|
||||||
|
// save a tiny bit of compute
|
||||||
|
calcSchedule(node, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Needed to push the weapon node's updates forward
|
||||||
return this.compute_func(input_map);
|
return this.compute_func(input_map);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -1076,8 +1082,6 @@ function builder_graph_init() {
|
||||||
// These two are defined in `atree.js`
|
// These two are defined in `atree.js`
|
||||||
atree_node.link_to(class_node, 'player-class');
|
atree_node.link_to(class_node, 'player-class');
|
||||||
atree_merge.link_to(class_node, 'player-class');
|
atree_merge.link_to(class_node, 'player-class');
|
||||||
atree_graph_creator = new AbilityTreeEnsureNodesNode(build_node, stat_agg_node)
|
|
||||||
.link_to(atree_collect_spells, 'spells');
|
|
||||||
atree_stats.link_to(build_node, 'build');
|
atree_stats.link_to(build_node, 'build');
|
||||||
stat_agg_node.link_to(atree_stats, 'atree-stats');
|
stat_agg_node.link_to(atree_stats, 'atree-stats');
|
||||||
|
|
||||||
|
@ -1092,6 +1096,9 @@ function builder_graph_init() {
|
||||||
armor_powder_node.update();
|
armor_powder_node.update();
|
||||||
level_input.update();
|
level_input.update();
|
||||||
|
|
||||||
|
atree_graph_creator = new AbilityTreeEnsureNodesNode(build_node, stat_agg_node)
|
||||||
|
.link_to(atree_collect_spells, 'spells');
|
||||||
|
|
||||||
// kinda janky, manually set atree and update. Some wasted compute here
|
// kinda janky, manually set atree and update. Some wasted compute here
|
||||||
if (atree_data !== null && atree_node.value !== null) { // janky check if atree is valid
|
if (atree_data !== null && atree_node.value !== null) { // janky check if atree is valid
|
||||||
const atree_state = atree_state_node.value;
|
const atree_state = atree_state_node.value;
|
||||||
|
|
|
@ -619,8 +619,15 @@ function addClasses(elem, classes) {
|
||||||
*/
|
*/
|
||||||
async function hardReload() {
|
async function hardReload() {
|
||||||
//https://gist.github.com/rmehner/b9a41d9f659c9b1c3340
|
//https://gist.github.com/rmehner/b9a41d9f659c9b1c3340
|
||||||
|
try {
|
||||||
const dbs = await window.indexedDB.databases();
|
const dbs = await window.indexedDB.databases();
|
||||||
await dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) });
|
await dbs.forEach(db => { window.indexedDB.deleteDatabase(db.name) });
|
||||||
|
} catch (error) {
|
||||||
|
// Hacky patch for firefox...
|
||||||
|
console.log(error);
|
||||||
|
const db_names = ['item_db', 'ing_db', 'map_db', 'tome_db'];
|
||||||
|
await db_names.forEach(db => { window.indexedDB.deleteDatabase(db) });
|
||||||
|
}
|
||||||
|
|
||||||
location.reload(true);
|
location.reload(true);
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 595 B |
Before Width: | Height: | Size: 470 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 297 B |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 250 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 8 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 930 B After Width: | Height: | Size: 521 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 650 B After Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 705 B After Width: | Height: | Size: 324 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 345 B |