Enter search criteria above and click "Search Items" to find inventory items.
diff --git a/static/inventory.js b/static/inventory.js
index 288b84b3..8d47e5dc 100644
--- a/static/inventory.js
+++ b/static/inventory.js
@@ -171,6 +171,12 @@ function clearAllFields() {
// Reset slot filter
document.getElementById('slotFilter').value = '';
+ // Clear item state checkboxes (not covered by form.reset for standalone checkboxes)
+ ['searchBonded', 'searchAttuned', 'searchIsRare'].forEach(id => {
+ const el = document.getElementById(id);
+ if (el) el.checked = false;
+ });
+
// Reset page
currentPage = 1;
@@ -250,6 +256,10 @@ function buildSearchParameters() {
params.append('shirt_only', 'true');
} else if (equipmentType === 'pants') {
params.append('pants_only', 'true');
+ } else if (equipmentType === 'weapon') {
+ params.append('weapon_only', 'true');
+ } else if (equipmentType === 'clothing') {
+ params.append('clothing_only', 'true');
}
// If 'all' is selected, don't add any type filter
@@ -294,7 +304,14 @@ function buildSearchParameters() {
addParam(params, 'min_vitality_rating', 'searchMinVitalityRating');
addParam(params, 'min_damage_resist_rating', 'searchMinDamageResistRating');
addParam(params, 'min_crit_damage_resist_rating', 'searchMinCritDamageResistRating');
-
+
+ // Weapon / combat stats
+ addParam(params, 'min_damage', 'searchMinDamage');
+ addParam(params, 'max_damage', 'searchMaxDamage');
+ addParam(params, 'min_attack_bonus', 'searchMinAttackBonus');
+ addParam(params, 'min_crit_resist_rating', 'searchMinCritResistRating');
+ addParam(params, 'min_tinks', 'searchMinTinks');
+
// Requirements parameters
addParam(params, 'min_level', 'searchMinLevel');
addParam(params, 'max_level', 'searchMaxLevel');
@@ -305,7 +322,21 @@ function buildSearchParameters() {
addParam(params, 'min_value', 'searchMinValue');
addParam(params, 'max_value', 'searchMaxValue');
addParam(params, 'max_burden', 'searchMaxBurden');
-
+
+ // Spell text search
+ addParam(params, 'spell_contains', 'searchSpellContains');
+
+ // Item state filters (only send when checked)
+ if (document.getElementById('searchBonded')?.checked) {
+ params.append('bonded', 'true');
+ }
+ if (document.getElementById('searchAttuned')?.checked) {
+ params.append('attuned', 'true');
+ }
+ if (document.getElementById('searchIsRare')?.checked) {
+ params.append('is_rare', 'true');
+ }
+
// Equipment set filters
const selectedEquipmentSets = getSelectedEquipmentSets();
if (selectedEquipmentSets.length === 1) {
@@ -418,6 +449,7 @@ function displayResults(data) {