diff --git a/static/filterWeapons.js b/static/filterWeapons.js index f932dee..9d57f59 100644 --- a/static/filterWeapons.js +++ b/static/filterWeapons.js @@ -167,10 +167,14 @@ function fetchModifiers() { // Function to dynamically populate modifiers into the HTML function populateModifiers(modifiers) { - const modifiersContainer = document.getElementById('modifiers'); + const modifiersContainer = document.getElementById('modifiers-container'); + modifiersContainer.innerHTML = ''; // Clear existing modifiers - const createModifierSection = (title, modifierList) => { + const createModifierSection = (title, modifierList, sectionId) => { const section = document.createElement('div'); + section.id = sectionId; // Set an ID for the section + section.className = sectionId === 'abilities' ? 'abilities' : ''; // Only for abilities + const header = document.createElement('h3'); header.textContent = title; section.appendChild(header); @@ -183,32 +187,37 @@ function populateModifiers(modifiers) { // Check if the modifier has multiple buffs if (mod.buffs) { - input.dataset.buffs = JSON.stringify(mod.buffs); // Store buffs data as a string in data-buffs + input.dataset.buffs = JSON.stringify(mod.buffs); } else { input.value = mod.value; - input.dataset.type = mod.type; // Store if it's additive or multiplicative + input.dataset.type = mod.type; } label.appendChild(input); label.appendChild(document.createTextNode(mod.label)); - section.appendChild(label); - section.appendChild(document.createElement('br')); + + // Create a container for each modifier item + const modifierItem = document.createElement('div'); + modifierItem.className = 'modifier-item'; // Add the class for styling + modifierItem.appendChild(label); + section.appendChild(modifierItem); // Append the modifier item to the section }); return section; }; - // Clear any existing modifiers - modifiersContainer.innerHTML = ''; + // Create a container for all modifiers + const container = document.createElement('div'); + container.id = 'modifiers'; - // Add Item Buffs - modifiersContainer.appendChild(createModifierSection('Item Buffs', modifiers.itemBuffs)); + // Populate sections + container.appendChild(createModifierSection('Item Buffs', modifiers.itemBuffs, 'items')); + container.appendChild(createModifierSection('Perks', modifiers.operativePerks, 'perks')); + modifiersContainer.appendChild(container); // Append item and perks container - // Add Operative Perks - modifiersContainer.appendChild(createModifierSection('Perks', modifiers.operativePerks)); - - // Add Ability Perks - modifiersContainer.appendChild(createModifierSection('Abilities', modifiers.abilityPerks)); + // Create and append abilities section + const abilitiesSection = createModifierSection('Abilities', modifiers.abilityPerks, 'abilities'); + modifiersContainer.appendChild(abilitiesSection); // Append abilities section // Add event listener to recalculate DPS/DPM when modifiers are toggled modifiersContainer.addEventListener('change', applyModifiers); diff --git a/static/style.css b/static/style.css index 09af742..c948074 100644 --- a/static/style.css +++ b/static/style.css @@ -6,6 +6,23 @@ input[type="text"] { font-size: 16px; } +#modifiers-container { + display: flex; + justify-content: space-between; /* Distribute space between the items */ + flex-wrap: wrap; /* Allow wrapping to avoid overflow */ +} + +/* Style for the modifiers section */ +#modifiers { + display: flex; /* Use flexbox for alignment */ + flex-direction: column; /* Stack items vertically */ + width: 50%; /* Adjust this percentage to control the width */ +} + +#abilities { + width: 42.5%; /* Adjust this value as needed */ +} + body { background-image: url("/static/img/trlbg1.jpg"); background-repeat: no-repeat; @@ -323,4 +340,26 @@ textarea { .suggestion-title { font-size: 1.2em; } + + #modifiers { + width: 100%; /* Adjust this percentage to control the width */ + } + + #abilities { + width: 100%; + } + + /* Adjust spacing between different ability modifiers */ + #abilities label { + display: block; /* Ensures each label takes up its own line */ + margin-bottom: 10px; /* Adds space between each ability checkbox */ + line-height: 1.2; /* Keeps the spacing between wrapped lines consistent */ + white-space: normal; /* Allows text to wrap normally */ + } + + /* Optional: Adjust margin between checkbox and text */ + #abilities input[type="checkbox"] { + margin-right: 5px; /* Adjust the spacing between the checkbox and the label */ + } + } diff --git a/templates/calculator.html b/templates/calculator.html index 087be33..74518f2 100644 --- a/templates/calculator.html +++ b/templates/calculator.html @@ -90,11 +90,15 @@
- -