973 lines
No EOL
40 KiB
HTML
973 lines
No EOL
40 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Inventory Search - Dereth Tracker</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
<style>
|
|
/* Override main app styles to enable scrolling */
|
|
html, body {
|
|
overflow: auto !important;
|
|
height: auto !important;
|
|
display: block !important;
|
|
margin: 0;
|
|
padding: 0;
|
|
font-size: 11px;
|
|
font-family: Arial, sans-serif;
|
|
background: #f0f0f0;
|
|
}
|
|
|
|
/* Inventory-specific styles */
|
|
.inventory-container {
|
|
display: flex;
|
|
gap: 5px;
|
|
padding: 5px;
|
|
}
|
|
|
|
.character-sidebar {
|
|
width: 120px;
|
|
background: white;
|
|
border: 1px solid #999;
|
|
padding: 3px;
|
|
height: fit-content;
|
|
}
|
|
|
|
.character-sidebar h4 {
|
|
margin: 0 0 3px 0;
|
|
font-size: 10px;
|
|
font-weight: bold;
|
|
color: #000;
|
|
}
|
|
|
|
.character-list {
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.character-item {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 1px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.character-item input[type="checkbox"] {
|
|
margin: 0 2px 0 0;
|
|
width: 9px;
|
|
height: 9px;
|
|
}
|
|
|
|
.character-item label {
|
|
cursor: pointer;
|
|
color: #000;
|
|
flex: 1;
|
|
}
|
|
|
|
.main-content {
|
|
flex: 1;
|
|
}
|
|
|
|
.inventory-header {
|
|
background: #333;
|
|
color: white;
|
|
padding: 4px 8px;
|
|
margin-bottom: 5px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.inventory-header h1 {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
font-weight: normal;
|
|
}
|
|
|
|
.search-form {
|
|
background: white;
|
|
padding: 5px;
|
|
border: 1px solid #ccc;
|
|
}
|
|
|
|
.filter-row {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-bottom: 5px;
|
|
align-items: center;
|
|
}
|
|
|
|
.filter-group {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
}
|
|
|
|
.filter-group label {
|
|
font-weight: bold;
|
|
font-size: 10px;
|
|
color: #000;
|
|
}
|
|
|
|
input[type="text"],
|
|
input[type="number"],
|
|
select {
|
|
border: 1px solid #999;
|
|
padding: 1px 3px;
|
|
font-size: 11px;
|
|
height: 18px;
|
|
}
|
|
|
|
input[type="text"] {
|
|
width: 120px;
|
|
}
|
|
|
|
input[type="number"] {
|
|
width: 40px;
|
|
}
|
|
|
|
select {
|
|
width: 100px;
|
|
}
|
|
|
|
.filter-section {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 5px;
|
|
margin-bottom: 3px;
|
|
}
|
|
|
|
.section-label {
|
|
font-weight: bold;
|
|
font-size: 10px;
|
|
min-width: 50px;
|
|
padding-top: 2px;
|
|
color: #000;
|
|
}
|
|
|
|
.checkbox-container {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
flex: 1;
|
|
}
|
|
|
|
.checkbox-item {
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 9px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.checkbox-item input[type="checkbox"] {
|
|
margin: 0 1px 0 0;
|
|
width: 9px;
|
|
height: 9px;
|
|
}
|
|
|
|
.checkbox-item label {
|
|
cursor: pointer;
|
|
color: #000;
|
|
}
|
|
|
|
.subsection-label {
|
|
font-weight: bold;
|
|
margin-bottom: 2px;
|
|
display: block;
|
|
font-size: 9px;
|
|
color: #333;
|
|
}
|
|
|
|
.search-actions {
|
|
display: flex;
|
|
gap: 5px;
|
|
margin-top: 3px;
|
|
}
|
|
|
|
.btn {
|
|
padding: 2px 8px;
|
|
border: 1px solid #999;
|
|
background: #e0e0e0;
|
|
font-size: 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: #4a80c0;
|
|
color: white;
|
|
border-color: #336699;
|
|
}
|
|
|
|
.btn:hover {
|
|
background: #d0d0d0;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background: #336699;
|
|
}
|
|
|
|
.results-container {
|
|
background: white;
|
|
border: 1px solid #999;
|
|
margin-top: 5px;
|
|
max-height: calc(100vh - 150px);
|
|
overflow: auto;
|
|
}
|
|
|
|
.results-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 10px;
|
|
color: #000;
|
|
}
|
|
|
|
.results-table th {
|
|
background: #d0d0d0;
|
|
padding: 1px 3px;
|
|
text-align: left;
|
|
font-weight: bold;
|
|
border: 1px solid #999;
|
|
position: sticky;
|
|
top: 0;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.results-table td {
|
|
padding: 1px 3px;
|
|
border: 1px solid #ddd;
|
|
}
|
|
|
|
.results-table tbody tr:hover {
|
|
background-color: #f0f0f0;
|
|
}
|
|
|
|
.item-name {
|
|
color: #0066cc;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.status-equipped {
|
|
color: #008800;
|
|
}
|
|
|
|
.status-inventory {
|
|
color: #5f6368;
|
|
}
|
|
|
|
.loading {
|
|
text-align: center;
|
|
padding: 20px;
|
|
color: #5f6368;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.no-results {
|
|
text-align: center;
|
|
padding: 20px;
|
|
color: #5f6368;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.error {
|
|
text-align: center;
|
|
padding: 10px;
|
|
color: #d93025;
|
|
background: #fef7e0;
|
|
margin: 5px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.results-info {
|
|
padding: 3px 5px;
|
|
background: #f0f0f0;
|
|
border-bottom: 1px solid #999;
|
|
font-weight: normal;
|
|
color: #333;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.back-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
color: #1a73e8;
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
margin-bottom: 16px;
|
|
transition: color 0.2s;
|
|
}
|
|
|
|
.back-link:hover {
|
|
color: #1557b0;
|
|
}
|
|
|
|
.back-link::before {
|
|
content: "←";
|
|
margin-right: 8px;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
/* Set Analysis specific styles */
|
|
.set-analysis-section {
|
|
background: white;
|
|
border: 1px solid #999;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.set-analysis-form {
|
|
background: #f8f8f8;
|
|
padding: 8px;
|
|
border-bottom: 1px solid #ddd;
|
|
}
|
|
|
|
.set-analysis-form h3 {
|
|
margin: 0 0 8px 0;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
color: #333;
|
|
}
|
|
|
|
.set-analysis-form select {
|
|
width: 140px;
|
|
}
|
|
|
|
.text-right {
|
|
text-align: right;
|
|
}
|
|
|
|
/* Column width control */
|
|
.narrow-col {
|
|
width: 120px;
|
|
max-width: 120px;
|
|
font-size: 9px;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.medium-col {
|
|
width: 150px;
|
|
max-width: 150px;
|
|
}
|
|
|
|
.set-col {
|
|
width: 100px;
|
|
max-width: 100px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.spells-cell {
|
|
font-size: 9px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.legendary-cantrip {
|
|
color: #ffd700;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.regular-spell {
|
|
color: #88ccff;
|
|
}
|
|
|
|
/* Pagination controls */
|
|
.pagination-controls {
|
|
padding: 12px 16px;
|
|
text-align: center;
|
|
background: #f8f8f8;
|
|
border-top: 1px solid #ddd;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.pagination-controls button {
|
|
padding: 4px 8px;
|
|
border: 1px solid #999;
|
|
background: #e0e0e0;
|
|
font-size: 10px;
|
|
cursor: pointer;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.pagination-controls button:hover:not(:disabled) {
|
|
background: #d0d0d0;
|
|
}
|
|
|
|
.pagination-controls button:disabled {
|
|
background: #f0f0f0;
|
|
color: #999;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.pagination-info {
|
|
font-weight: bold;
|
|
color: #333;
|
|
margin: 0 15px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="inventory-header">
|
|
<h1>Inventory Search</h1>
|
|
<a href="/" style="color: white; text-decoration: none; font-size: 11px;">← Back</a>
|
|
</div>
|
|
|
|
<div class="inventory-container">
|
|
<!-- Character Selection Sidebar -->
|
|
<div class="character-sidebar">
|
|
<h4>Characters</h4>
|
|
<div class="character-item">
|
|
<input type="checkbox" id="char_all" checked>
|
|
<label for="char_all">All Characters</label>
|
|
</div>
|
|
<div class="character-list" id="characterList">
|
|
<!-- Character checkboxes will be populated by JavaScript -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="main-content">
|
|
<form class="search-form" id="inventorySearchForm">
|
|
<!-- Row 0: Equipment Type Selection -->
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Type:</label>
|
|
<div style="display: flex; gap: 10px;">
|
|
<label style="display: flex; align-items: center; font-weight: normal;">
|
|
<input type="radio" name="equipmentType" id="armorOnly" value="armor" checked style="margin-right: 3px;">
|
|
Armor Only
|
|
</label>
|
|
<label style="display: flex; align-items: center; font-weight: normal;">
|
|
<input type="radio" name="equipmentType" id="jewelryOnly" value="jewelry" style="margin-right: 3px;">
|
|
Jewelry Only
|
|
</label>
|
|
<label style="display: flex; align-items: center; font-weight: normal;">
|
|
<input type="radio" name="equipmentType" id="allItems" value="all" style="margin-right: 3px;">
|
|
All Items
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Row 0.5: Slot Selection -->
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Slot:</label>
|
|
<select id="slotFilter">
|
|
<option value="">All Slots</option>
|
|
<optgroup label="Armor Slots">
|
|
<option value="Head">Head</option>
|
|
<option value="Chest">Chest</option>
|
|
<option value="Upper Arms">Upper Arms</option>
|
|
<option value="Lower Arms">Lower Arms</option>
|
|
<option value="Hands">Hands</option>
|
|
<option value="Abdomen">Abdomen</option>
|
|
<option value="Upper Legs">Upper Legs</option>
|
|
<option value="Lower Legs">Lower Legs</option>
|
|
<option value="Feet">Feet</option>
|
|
<option value="Shield">Shield</option>
|
|
</optgroup>
|
|
<optgroup label="Jewelry Slots">
|
|
<option value="Neck">Neck</option>
|
|
<option value="Left Ring">Left Ring</option>
|
|
<option value="Right Ring">Right Ring</option>
|
|
<option value="Left Wrist">Left Wrist</option>
|
|
<option value="Right Wrist">Right Wrist</option>
|
|
<option value="Trinket">Trinket</option>
|
|
</optgroup>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Row 1: Basic filters -->
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Name:</label>
|
|
<input type="text" id="searchText" placeholder="Item name">
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Status:</label>
|
|
<select id="searchEquipStatus">
|
|
<option value="all">All</option>
|
|
<option value="equipped">Equipped</option>
|
|
<option value="unequipped">Inventory</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Row 2: Stats -->
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Armor:</label>
|
|
<input type="number" id="searchMinArmor" placeholder="Min">
|
|
<span>-</span>
|
|
<input type="number" id="searchMaxArmor" placeholder="Max">
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Crit:</label>
|
|
<input type="number" id="searchMinCritDamage" placeholder="Min">
|
|
<span>-</span>
|
|
<input type="number" id="searchMaxCritDamage" placeholder="Max">
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Dmg:</label>
|
|
<input type="number" id="searchMinDamageRating" placeholder="Min">
|
|
<span>-</span>
|
|
<input type="number" id="searchMaxDamageRating" placeholder="Max">
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Heal:</label>
|
|
<input type="number" id="searchMinHealBoost" placeholder="Min">
|
|
<span>-</span>
|
|
<input type="number" id="searchMaxHealBoost" placeholder="Max">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- New Rating Filters -->
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Vitality:</label>
|
|
<input type="number" id="searchMinVitalityRating" placeholder="Min">
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Dmg Resist:</label>
|
|
<input type="number" id="searchMinDamageResistRating" placeholder="Min">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Equipment Sets -->
|
|
<div class="filter-section">
|
|
<label class="section-label">Set:</label>
|
|
<div class="checkbox-container" id="equipmentSets">
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_14" value="14">
|
|
<label for="set_14">Adept's</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_16" value="16">
|
|
<label for="set_16">Defender's</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_13" value="13">
|
|
<label for="set_13">Soldier's</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_21" value="21">
|
|
<label for="set_21">Wise</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_40" value="40">
|
|
<label for="set_40">Heroic Protector</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_41" value="41">
|
|
<label for="set_41">Heroic Destroyer</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_46" value="46">
|
|
<label for="set_46">Relic Alduressa</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_47" value="47">
|
|
<label for="set_47">Ancient Relic</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_48" value="48">
|
|
<label for="set_48">Noble Relic</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_15" value="15">
|
|
<label for="set_15">Archer's</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_19" value="19">
|
|
<label for="set_19">Hearty</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_20" value="20">
|
|
<label for="set_20">Dexterous</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_22" value="22">
|
|
<label for="set_22">Swift</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_24" value="24">
|
|
<label for="set_24">Reinforced</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_26" value="26">
|
|
<label for="set_26">Flame Proof</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="set_29" value="29">
|
|
<label for="set_29">Lightning Proof</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Legendary Cantrips -->
|
|
<div class="filter-section">
|
|
<label class="section-label">Cantrips:</label>
|
|
<div class="checkbox-container" id="cantrips">
|
|
<!-- Legendary Attributes -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_strength" value="Legendary Strength">
|
|
<label for="cantrip_legendary_strength">Strength</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_endurance" value="Legendary Endurance">
|
|
<label for="cantrip_legendary_endurance">Endurance</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_quickness" value="Legendary Quickness">
|
|
<label for="cantrip_legendary_quickness">Quickness</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_coordination" value="Legendary Coordination">
|
|
<label for="cantrip_legendary_coordination">Coordination</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_willpower" value="Legendary Willpower">
|
|
<label for="cantrip_legendary_willpower">Willpower</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_focus" value="Legendary Focus">
|
|
<label for="cantrip_legendary_focus">Focus</label>
|
|
</div>
|
|
<!-- Legendary Weapon Skills -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_finesse" value="Legendary Finesse Weapon Aptitude">
|
|
<label for="cantrip_legendary_finesse">Finesse</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_heavy" value="Legendary Heavy Weapon Aptitude">
|
|
<label for="cantrip_legendary_heavy">Heavy</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_light" value="Legendary Light Weapon Aptitude">
|
|
<label for="cantrip_legendary_light">Light</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_missile" value="Legendary Missile Weapon Aptitude">
|
|
<label for="cantrip_legendary_missile">Missile</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_twohanded" value="Legendary Two Handed Combat Aptitude">
|
|
<label for="cantrip_legendary_twohanded">Two-handed</label>
|
|
</div>
|
|
<!-- Legendary Magic Skills -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_war" value="Legendary War Magic Aptitude">
|
|
<label for="cantrip_legendary_war">War Magic</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_void" value="Legendary Void Magic Aptitude">
|
|
<label for="cantrip_legendary_void">Void Magic</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_creature" value="Legendary Creature Enchantment Aptitude">
|
|
<label for="cantrip_legendary_creature">Creature</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_item" value="Legendary Item Enchantment Aptitude">
|
|
<label for="cantrip_legendary_item">Item</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_life" value="Legendary Life Magic Aptitude">
|
|
<label for="cantrip_legendary_life">Life Magic</label>
|
|
</div>
|
|
<!-- Legendary Defense -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_magic_defense" value="Legendary Magic Resistance">
|
|
<label for="cantrip_legendary_magic_defense">Magic Def</label>
|
|
</div>
|
|
|
|
<!-- Combat Skills -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_blood_thirst" value="Legendary Blood Thirst">
|
|
<label for="cantrip_legendary_blood_thirst">Blood Thirst</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_sneak_attack" value="Legendary Sneak Attack Prowess">
|
|
<label for="cantrip_legendary_sneak_attack">Sneak Attack</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_defender" value="Legendary Defender">
|
|
<label for="cantrip_legendary_defender">Defender</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_recklessness" value="Legendary Recklessness Prowess">
|
|
<label for="cantrip_legendary_recklessness">Recklessness</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_shield" value="Legendary Shield Aptitude">
|
|
<label for="cantrip_legendary_shield">Shield</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_dual_wield" value="Legendary Dual Wield Aptitude">
|
|
<label for="cantrip_legendary_dual_wield">Dual Wield</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_dirty_fighting" value="Legendary Dirty Fighting Prowess">
|
|
<label for="cantrip_legendary_dirty_fighting">Dirty Fighting</label>
|
|
</div>
|
|
|
|
<!-- Magic/Utility Skills -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_summoning" value="Legendary Summoning Prowess">
|
|
<label for="cantrip_legendary_summoning">Summoning</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_healing" value="Legendary Healing Prowess">
|
|
<label for="cantrip_legendary_healing">Healing</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_arcane" value="Legendary Arcane Prowess">
|
|
<label for="cantrip_legendary_arcane">Arcane</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_tinkering" value="Legendary Magic Item Tinkering Expertise">
|
|
<label for="cantrip_legendary_tinkering">Tinkering</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_mana_conversion" value="Legendary Mana Conversion Prowess">
|
|
<label for="cantrip_legendary_mana_conversion">Mana Convert</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_leadership" value="Legendary Leadership">
|
|
<label for="cantrip_legendary_leadership">Leadership</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_deception" value="Legendary Deception Prowess">
|
|
<label for="cantrip_legendary_deception">Deception</label>
|
|
</div>
|
|
|
|
<!-- Defensive Spells -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_impenetrability" value="Legendary Impenetrability">
|
|
<label for="cantrip_legendary_impenetrability">Impenetrability</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_impregnability" value="Legendary Impregnability">
|
|
<label for="cantrip_legendary_impregnability">Impregnability</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_invulnerability" value="Legendary Invulnerability">
|
|
<label for="cantrip_legendary_invulnerability">Invulnerability</label>
|
|
</div>
|
|
|
|
<!-- Specialized/Rare -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_hermetic_link" value="Legendary Hermetic Link">
|
|
<label for="cantrip_legendary_hermetic_link">Hermetic Link</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_person_attunement" value="Legendary Person Attunement">
|
|
<label for="cantrip_legendary_person_attunement">Person Attune</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_spirit_thirst" value="Legendary Spirit Thirst">
|
|
<label for="cantrip_legendary_spirit_thirst">Spirit Thirst</label>
|
|
</div>
|
|
|
|
<!-- Bane Spells -->
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_piercing_bane" value="Legendary Piercing Bane">
|
|
<label for="cantrip_legendary_piercing_bane">Piercing Bane</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="cantrip_legendary_storm_bane" value="Legendary Storm Bane">
|
|
<label for="cantrip_legendary_storm_bane">Storm Bane</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Legendary Wards -->
|
|
<div class="filter-section">
|
|
<label class="section-label">Wards:</label>
|
|
<div class="checkbox-container" id="protections">
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_flame" value="Legendary Flame Ward">
|
|
<label for="protection_flame">Flame</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_frost" value="Legendary Frost Ward">
|
|
<label for="protection_frost">Frost</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_acid" value="Legendary Acid Ward">
|
|
<label for="protection_acid">Acid</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_storm" value="Legendary Storm Ward">
|
|
<label for="protection_storm">Storm</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_slashing" value="Legendary Slashing Ward">
|
|
<label for="protection_slashing">Slashing</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_piercing" value="Legendary Piercing Ward">
|
|
<label for="protection_piercing">Piercing</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_bludgeoning" value="Legendary Bludgeoning Ward">
|
|
<label for="protection_bludgeoning">Bludgeoning</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="protection_armor" value="Legendary Armor">
|
|
<label for="protection_armor">Armor</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Equipment Slots -->
|
|
<div class="filter-section">
|
|
<label class="section-label">Equipment Slots:</label>
|
|
|
|
<!-- Armor Slots -->
|
|
<div class="checkbox-container" id="armor-slots">
|
|
<label class="subsection-label">Armor:</label>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_head" value="Head">
|
|
<label for="slot_head">Head</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_chest" value="Chest">
|
|
<label for="slot_chest">Chest</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_abdomen" value="Abdomen">
|
|
<label for="slot_abdomen">Abdomen</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_upper_arms" value="Upper Arms">
|
|
<label for="slot_upper_arms">Upper Arms</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_lower_arms" value="Lower Arms">
|
|
<label for="slot_lower_arms">Lower Arms</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_hands" value="Hands">
|
|
<label for="slot_hands">Hands</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_upper_legs" value="Upper Legs">
|
|
<label for="slot_upper_legs">Upper Legs</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_lower_legs" value="Lower Legs">
|
|
<label for="slot_lower_legs">Lower Legs</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_feet" value="Feet">
|
|
<label for="slot_feet">Feet</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_shield" value="Shield">
|
|
<label for="slot_shield">Shield</label>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Jewelry Slots -->
|
|
<div class="checkbox-container" id="jewelry-slots">
|
|
<label class="subsection-label">Jewelry:</label>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_neck" value="Neck">
|
|
<label for="slot_neck">Neck</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_ring" value="Ring">
|
|
<label for="slot_ring">Ring</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_bracelet" value="Bracelet">
|
|
<label for="slot_bracelet">Bracelet</label>
|
|
</div>
|
|
<div class="checkbox-item">
|
|
<input type="checkbox" id="slot_trinket" value="Trinket">
|
|
<label for="slot_trinket">Trinket</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="search-actions">
|
|
<button type="button" class="btn btn-secondary" id="clearBtn">Clear All</button>
|
|
<button type="submit" class="btn btn-primary">Search Items</button>
|
|
<button type="button" class="btn btn-secondary" id="setAnalysisBtn">Analyze Sets</button>
|
|
<button type="button" class="btn btn-secondary" id="slotViewBtn">Slot View</button>
|
|
</div>
|
|
</form>
|
|
|
|
<!-- Set Analysis Section -->
|
|
<div class="set-analysis-section" id="setAnalysisSection" style="display: none;">
|
|
<div class="set-analysis-form">
|
|
<h3>Equipment Set Combination Analysis</h3>
|
|
<div class="filter-row">
|
|
<div class="filter-group">
|
|
<label>Primary Set (5 pieces):</label>
|
|
<select id="primarySetSelect">
|
|
<option value="14">Adept's Set</option>
|
|
<option value="16">Defender's Set</option>
|
|
<option value="13">Soldier's Set</option>
|
|
<option value="21">Wise Set</option>
|
|
<option value="40">Heroic Protector</option>
|
|
<option value="41">Heroic Destroyer</option>
|
|
<option value="46">Relic Alduressa</option>
|
|
<option value="47">Ancient Relic</option>
|
|
<option value="48">Noble Relic</option>
|
|
</select>
|
|
</div>
|
|
<div class="filter-group">
|
|
<label>Secondary Set (4 pieces):</label>
|
|
<select id="secondarySetSelect">
|
|
<option value="13">Soldier's Set</option>
|
|
<option value="14">Adept's Set</option>
|
|
<option value="16">Defender's Set</option>
|
|
<option value="21">Wise Set</option>
|
|
<option value="40">Heroic Protector</option>
|
|
<option value="41">Heroic Destroyer</option>
|
|
<option value="46">Relic Alduressa</option>
|
|
<option value="47">Ancient Relic</option>
|
|
<option value="48">Noble Relic</option>
|
|
</select>
|
|
</div>
|
|
<div class="filter-group">
|
|
<button type="button" class="btn btn-primary" id="runSetAnalysis">Analyze</button>
|
|
<button type="button" class="btn btn-secondary" id="backToSearch">Back to Search</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="results-container" id="setAnalysisResults">
|
|
<div class="no-results">Select primary and secondary sets above and click "Analyze" to find valid combinations.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Slot View Section -->
|
|
<div class="slot-view-section" id="slotViewSection" style="display: none;">
|
|
<div class="slot-view-header">
|
|
<h3>Equipment Slot View</h3>
|
|
<div class="filter-row">
|
|
<button type="button" class="btn btn-primary" id="loadSlotView">Load Items</button>
|
|
<button type="button" class="btn btn-secondary" id="backToSearchFromSlots">Back to Search</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="slots-grid" id="slotsGrid">
|
|
<!-- Slots will be populated by JavaScript -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="results-container" id="searchResults">
|
|
<div class="no-results">Enter search criteria above and click "Search Items" to find inventory items.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="inventory.js"></script>
|
|
</body>
|
|
</html> |