b) {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/web/mhx/weaponlist.html b/web/mhx/weaponlist.html
index a7c4f2a..5bd85dc 100644
--- a/web/mhx/weaponlist.html
+++ b/web/mhx/weaponlist.html
@@ -184,12 +184,6 @@
var final_only = state["weapon_final"];
var weapon_names = state["weapon_name_text"].split("|");
- if (weapon_type == "Bow" || weapon_type == "Light Bowgun"
- || weapon_type == "Heavy Bowgun") {
- // we only support blademaster weapons for now
- return false;
- }
-
if (final_only && weapon_data["final"] != 1) {
return false;
}
@@ -235,13 +229,13 @@
function update_weapon_list(state) {
var match_count = 0;
console.log("updating weapon list: " + JSON.stringify(state));
- $("#weapon_table").empty();
var results = [];
$.each(WEAPON_LIST, function(i, weapon_data) {
if (weapon_predicate(state, weapon_data)) {
weapon_data["id"] = i;
match_count += 1;
set_sharpness_titles(weapon_data);
+ set_bow_values(weapon_data);
set_horn_melodies_title(weapon_data);
weapon_data["wtype_short"] =
WEAPON_TYPE_ABBR[weapon_data["wtype"]];
@@ -251,36 +245,17 @@
}
});
results.sort(function (a, b) {
- avals = get_sort_values(a[0]);
- bvals = get_sort_values(b[0]);
- if (avals > bvals) {
- return -1;
- }
- if (avals < bvals) {
- return 1;
- }
- return 0;
+ avals = get_weapon_sort_values(a[0]);
+ bvals = get_weapon_sort_values(b[0]);
+ return cmp_arrays(bvals, avals);
});
+ $("#weapon_table").empty();
$.each(results, function(i, pair) {
$("#weapon_table").append(pair[1]);
});
console.log("match count: " + match_count);
}
-
- function get_sort_values(weapon_data) {
- var sharp_reverse = Array.prototype.slice.call(
- weapon_data["sharpness"]);
- sharp_reverse.reverse();
- return [
- weapon_data["attack"],
- sharp_reverse,
- weapon_data["element_attack"],
- weapon_data["affinity"],
- weapon_data["num_slots"],
- weapon_data["defense"]
- ];
- }
@@ -303,8 +278,8 @@
-
-
+
+
|
<%= phial %> |
<%= shelling_type %> |
+<% if (arc_type) { %>
+ <%= arc_type %> |
+ <%= bow_shots_text %> |
+<% } %>
<%= horn_notes %> |
diff --git a/web/weaponlist.html b/web/weaponlist.html
index 5e741da..45bf1f8 100644
--- a/web/weaponlist.html
+++ b/web/weaponlist.html
@@ -119,7 +119,7 @@
});
function init_page() {
- load_qs();
+ var state = load_qs();
$(window).on("popstate", function(e) {
var oe = e.originalEvent;
if (oe.state !== null) {
@@ -132,12 +132,18 @@
save_state(state);
update_weapon_list(state);
});
+
+ if (state) {
+ update_weapon_list(state);
+ }
}
function load_qs() {
if ($.QueryString["weapon_type"]) {
load_state($.QueryString);
+ return $.QueryString;
}
+ return null;
}
function get_ui_state() {
@@ -171,12 +177,6 @@
var final_only = state["weapon_final"];
var weapon_names = state["weapon_name_text"].split("|");
- if (weapon_type == "Bow" || weapon_type == "Light Bowgun"
- || weapon_type == "Heavy Bowgun") {
- // we only support blademaster weapons for now
- return false;
- }
-
if (final_only && weapon_data["final"] != 1) {
return false;
}
@@ -223,42 +223,56 @@
var cp_setups = [];
var comps = state["weapon_component_text"].split("|");
console.log("updating weapon list: " + JSON.stringify(state));
- $("#weapon_table").empty();
+ var results = [];
$.each(WEAPON_ID_IDX, function(weapon_id, weapon_list) {
var weapon_data = weapon_list[0];
if (weapon_predicate(state, weapon_data)) {
- match_count += 1;
- $.getJSON(DATA_PATH + "weapon/" + weapon_id + ".json",
- function(data) {
- if (comps
- && !list_match(comps,
- Object.keys(data["create_components"]))
- && !list_match(comps,
- Object.keys(data["upgrade_components"])))
- {
- console.log("skipping '"
- + data["name"]
- + "', failed component match");
- return;
- }
- set_sharpness_titles(data);
- set_horn_melodies_title(data);
- data["wtype_short"] =
- WEAPON_TYPE_ABBR[data["wtype"]];
- data["ELEMENT_ABBR"] = ELEMENT_ABBR;
- data["url"] = null;
- var html = template_row.render(data);
- $("#weapon_table").append(html);
- var setup = get_calculating_palico_setup(data);
- console.log("setup for " + weapon_id + ": "
- + setup);
- if (setup.length) {
- cp_setups.push(setup);
- }
- update_cp_link(cp_setups);
- });
+ $.ajax({
+ url: DATA_PATH + "weapon/" + weapon_id + ".json",
+ dataType: "json",
+ async: false,
+ success: function(data) {
+ if (comps
+ && !list_match(comps,
+ Object.keys(data["create_components"]))
+ && !list_match(comps,
+ Object.keys(data["upgrade_components"])))
+ {
+ console.log("skipping '" + data["name"]
+ + "', failed component match");
+ return;
+ }
+ match_count += 1;
+ set_sharpness_titles(data);
+ data["arc_type"] = null;
+ set_bow_values(data);
+ set_horn_melodies_title(data);
+ data["wtype_short"] = WEAPON_TYPE_ABBR[data["wtype"]];
+ data["ELEMENT_ABBR"] = ELEMENT_ABBR;
+ data["url"] = null;
+ var html = template_row.render(data);
+ results.push([data, html]);
+ var setup = get_calculating_palico_setup(data);
+ //console.log("setup for " + weapon_id + ": " + setup);
+ if (setup.length) {
+ cp_setups.push(setup);
+ }
+ }
+ });
}
});
+ console.log("results len " + results.length);
+ results.sort(function (a, b) {
+ avals = get_weapon_sort_values(a[0]);
+ bvals = get_weapon_sort_values(b[0]);
+ return cmp_arrays(bvals, avals);
+ });
+ $("#weapon_table").empty();
+ $.each(results, function(i, pair) {
+ $("#weapon_table").append(pair[1]);
+ });
+ update_cp_link(cp_setups);
+
console.log("match count: " + match_count);
}
@@ -296,8 +310,8 @@
-
-
+
+
|