Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 45: Line 45:
   filterWrapper.style.marginBottom = "20px";
   filterWrapper.style.marginBottom = "20px";


   const filterTitle = document.createElement("h3");
   const title = document.createElement("h3");
   filterTitle.innerText = "🔍 Filter Runs";
   title.innerText = "🔍 Filter Runs";
   filterWrapper.appendChild(filterTitle);
   filterWrapper.appendChild(title);


   const dungeonSelect = document.createElement("select");
   const dungeonSelect = document.createElement("select");
   dungeonSelect.style.marginRight = "15px";
   dungeonSelect.style.marginRight = "10px";


   [
   [
Line 96: Line 96:


       return parseTime(a.cells[4].innerText) - parseTime(b.cells[4].innerText);
       return parseTime(a.cells[4].innerText) - parseTime(b.cells[4].innerText);
     });
     });


Line 149: Line 150:
       const rank = parseInt(row.cells[0]?.innerText);
       const rank = parseInt(row.cells[0]?.innerText);


       if (!dungeon || !player || !time || isNaN(rank)) return;
       if (!dungeon || !player || !time) return;
 
      /* ===========================
        POINTS
        =========================== */
 
      if (!isNaN(rank)) {
        playerPoints[player] = (playerPoints[player] || 0) + getPoints(rank);
      }


       /* POINTS */
       /* ===========================
       playerPoints[player] = (playerPoints[player] || 0) + getPoints(rank);
        WORLD RECORDS (FIXED)
        =========================== */
 
       const newTime = parseTime(time);


      /* WORLD RECORDS */
       if (!records[dungeon]) {
       if (!records[dungeon]) {
         records[dungeon] = { time, players: [player] };
         records[dungeon] = {
       } else if (time === records[dungeon].time) {
          time: time,
        records[dungeon].players.push(player);
          seconds: newTime,
          players: [player]
        };
       } else {
 
        if (newTime < records[dungeon].seconds) {
          records[dungeon] = {
            time: time,
            seconds: newTime,
            players: [player]
          };
        } else if (newTime === records[dungeon].seconds) {
          records[dungeon].players.push(player);
        }
 
       }
       }


Line 178: Line 203:


     /* ===========================
     /* ===========================
       COMPETITION
       COMPETITION TABLE
       =========================== */
       =========================== */


Line 227: Line 252:
       `;
       `;
       compTable.appendChild(row);
       compTable.appendChild(row);
     });
     });


Line 233: Line 259:


     /* ===========================
     /* ===========================
       WORLD RECORDS
       WORLD RECORD TABLE
       =========================== */
       =========================== */


Line 256: Line 282:


     Object.entries(records).forEach(([d, data]) => {
     Object.entries(records).forEach(([d, data]) => {
       const row = document.createElement("tr");
       const row = document.createElement("tr");
       row.innerHTML = `
       row.innerHTML = `
         <td>${d}</td>
         <td>${d}</td>
Line 262: Line 290:
         <td>${data.players.join(", ")}</td>
         <td>${data.players.join(", ")}</td>
       `;
       `;
       wrTable.appendChild(row);
       wrTable.appendChild(row);
     });
     });


Line 280: Line 310:


   /* ===========================
   /* ===========================
     FILTER LOGIC
     FILTER
     =========================== */
     =========================== */