Jump to content

MediaWiki:Common.js

From Once Human Guide
Revision as of 18:34, 21 April 2026 by Bones (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.loader.using('mediawiki.util').then(function () {
  $(function () {

    let selectedLeft = null;
    let selectedRight = null;

    /* ================= TABS ================= */
    document.querySelectorAll('.mw-tab-buttons').forEach(group => {
      const buttons = group.querySelectorAll('.mw-tab-btn');

      buttons.forEach(btn => {
        btn.onclick = function () {
          const tabId = this.dataset.tab;
          const container = group.closest('.mw-tab-content') || document;

          container.querySelectorAll('.mw-tab-content').forEach(c => c.style.display = 'none');
          container.querySelectorAll('.mw-tab-btn').forEach(b => b.classList.remove('active'));

          this.classList.add('active');

          const target = container.querySelector('#' + tabId);
          if (target) target.style.display = 'block';
        };
      });

      if (buttons.length) buttons[0].click();
    });

    /* ================= DROPDOWNS (PURE CLEAN) ================= */
    function createDropdown(targetId, label, options, side) {
      const container = document.getElementById(targetId);

      const button = document.createElement('button');
      const list = document.createElement('div');

      button.textContent = label;
      list.style.display = 'none';

      Object.keys(options).forEach(key => {
        const item = document.createElement('div');
        item.textContent = options[key];

        item.onclick = function () {
          button.textContent = options[key];
          list.style.display = 'none';

          if (side === 'left') selectedLeft = key;
          if (side === 'right') selectedRight = key;

          updateResult();
        };

        list.appendChild(item);
      });

      button.onclick = function () {
        list.style.display = list.style.display === 'none' ? 'block' : 'none';
      };

      container.appendChild(button);
      container.appendChild(list);
    }

    createDropdown("dropdown-left", "Select Mod", {
      flame_resonance: "Flame Resonance",
      embers: "Embers",
      blaze_blessing: "Blaze Blessing",
      burning_wrath: "Burning Wrath"
    }, "left");

    createDropdown("dropdown-right", "Select Category", {
      burn: "Burn",
      deviant_energy: "Deviant Energy",
      survival: "Survival",
      violent: "Violent",
      general: "General"
    }, "right");

    /* ================= RESULT ================= */
    function updateResult() {
      const result = document.getElementById("combo-result");

      if (!selectedLeft || !selectedRight) {
        result.style.display = "none";
        return;
      }

      result.style.display = "block";

      if (selectedLeft === "flame_resonance" && selectedRight === "burn") {
        result.innerHTML = "Max Burn Stack +2, Burn Duration -20%. Flash Effect: Burn DMG +5%";
      } else {
        result.innerHTML = "No data for this combination.";
      }
    }

  });
});