OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      d23906806ab9
DATE      2025-07-21
SUBJECT   nix: fix death knight not being passed to simulation
FILES     3 CHANGED
HASH      d23906806ab9
DATE      2025-07-21
SUBJECT   nix: fix death knight not being passed
          to simulation
FILES     3 CHANGED
 

diff --git a/nix/classes/default.nix b/nix/classes/default.nix
index ccddf08..4da8c9c 100644
--- a/nix/classes/default.nix
+++ b/nix/classes/default.nix
@@ -16,7 +16,7 @@
     shaman = import ./shaman {inherit lib consumables;};
     warlock = import ./warlock {inherit lib consumables;};
     druid = import ./druid {inherit lib consumables;};
-    deathknight = import ./death_knight {inherit lib consumables;};
+    death_knight = import ./death_knight {inherit lib consumables;};
   };
 in {
   flake.classes = classes;

diff --git a/nix/classes/default.nix b/nix/c
lasses/default.nix
index ccddf08..4da8c9c 100644
--- a/nix/classes/default.nix
+++ b/nix/classes/default.nix
@@ -16,7 +16,7 @@
     shaman = import ./shaman {inherit lib c
onsumables;};
     warlock = import ./warlock {inherit lib
 consumables;};
     druid = import ./druid {inherit lib con
sumables;};
-    deathknight = import ./death_knight {in
herit lib consumables;};
+    death_knight = import ./death_knight {i
nherit lib consumables;};
   };
 in {
   flake.classes = classes;
 

diff --git a/web/src/components/HorizontalBarChart.astro b/web/src/components/Hori
zontalBarChart.astro
index 0a03aa1..8037429 100644
--- a/web/src/components/HorizontalBarChart.astro
+++ b/web/src/components/HorizontalBarChart.astro
@@ -23,6 +23,7 @@ const {
 // Sort items by value descending
 const sortedItems = [...items].sort((a, b) => b.value - a.value);
 const maxValue = sortedItems[0]?.value || 1;
+const maxSqrt = Math.sqrt(maxValue);
 
 // Default WoW class colors
 const defaultColors = {
@@ -46,7 +47,9 @@ const colors = { ...defaultColors, ...categoryColors };
   {title && <h2 class="chart-title">{title}</h2>}
   <div class="chart">
     {sortedItems.map((item, index) => {
-      const barWidth = (item.value / maxValue) * 100;
+      // Use power scaling to amplify visual differences (cube the ratio for more
 dramatic effect)
+      const linearRatio = item.value / maxValue;
+      const barWidth = Math.pow(linearRatio, 3) * 100;
       const formattedValue = valueFormatter(item.value);
       const color = colors[item.category] || '#007bff';
       

diff --git a/web/src/components/HorizontalBa
rChart.astro b/web/src/components/Horizontal
BarChart.astro
index 0a03aa1..8037429 100644
--- a/web/src/components/HorizontalBarChart.
astro
+++ b/web/src/components/HorizontalBarChart.
astro
@@ -23,6 +23,7 @@ const {
 // Sort items by value descending
 const sortedItems = [...items].sort((a, b) 
=> b.value - a.value);
 const maxValue = sortedItems[0]?.value || 1
;
+const maxSqrt = Math.sqrt(maxValue);
 
 // Default WoW class colors
 const defaultColors = {
@@ -46,7 +47,9 @@ const colors = { ...defaul
tColors, ...categoryColors };
   {title && <h2 class="chart-title">{title}
</h2>}
   <div class="chart">
     {sortedItems.map((item, index) => {
-      const barWidth = (item.value / maxVal
ue) * 100;
+      // Use power scaling to amplify visua
l differences (cube the ratio for more drama
tic effect)
+      const linearRatio = item.value / maxV
alue;
+      const barWidth = Math.pow(linearRatio
, 3) * 100;
       const formattedValue = valueFormatter
(item.value);
       const color = colors[item.category] |
| '#007bff';
       
 

diff --git a/web/src/layouts/DynamicRankingsLayout.astro b/web/src/layouts/Dynamic
RankingsLayout.astro
index 216c5ff..5986bc0 100644
--- a/web/src/layouts/DynamicRankingsLayout.astro
+++ b/web/src/layouts/DynamicRankingsLayout.astro
@@ -506,12 +506,18 @@ class DynamicRankings {
     chartItems.sort((a, b) => b.value - a.value);
 
     const maxDps = Math.max(...chartItems.map(item => item.value));
+    const minDps = Math.min(...chartItems.map(item => item.value));
     
     container.innerHTML = `
       <div class="chart-container">
         <h2 class="chart-title">DPS Rankings</h2>
         <div class="chart-bars">
-          ${chartItems.map((item, index) => `
+          ${chartItems.map((item, index) => {
+            // Use power scaling to amplify visual differences (cube the ratio fo
r more dramatic effect)
+            const linearRatio = item.value / maxDps;
+            const barWidth = Math.pow(linearRatio, 1.5) * 100;
+            
+            return `
             <div class="chart-item">
               <div class="chart-labels">
                 <span class="chart-rank">#${index + 1}</span>
@@ -519,12 +525,13 @@ class DynamicRankings {
                 <span class="chart-sublabel">${item.sublabel}</span>
               </div>
               <div class="chart-bar-container">
-                <div class="chart-bar" style="width: ${(item.value / maxDps) * 10
0}%; background-color: ${classColors[item.category] || '#666'};">
+                <div class="chart-bar" style="width: ${barWidth}%; background-col
or: ${classColors[item.category] || '#666'};">
                 </div>
                 <span class="chart-value">${Math.round(item.value).toLocaleString
()}</span>
               </div>
             </div>
-          `).join('')}
+            `;
+          }).join('')}
         </div>
       </div>
     `;
@@ -538,4 +545,4 @@ document.addEventListener('DOMContentLoaded', () => {
 });
     </script>
   </body>
-</html>
\ No newline at end of file
+</html>

diff --git a/web/src/layouts/DynamicRankings
Layout.astro b/web/src/layouts/DynamicRankin
gsLayout.astro
index 216c5ff..5986bc0 100644
--- a/web/src/layouts/DynamicRankingsLayout.
astro
+++ b/web/src/layouts/DynamicRankingsLayout.
astro
@@ -506,12 +506,18 @@ class DynamicRankings 
{
     chartItems.sort((a, b) => b.value - a.v
alue);
 
     const maxDps = Math.max(...chartItems.m
ap(item => item.value));
+    const minDps = Math.min(...chartItems.m
ap(item => item.value));
     
     container.innerHTML = `
       <div class="chart-container">
         <h2 class="chart-title">DPS Ranking
s</h2>
         <div class="chart-bars">
-          ${chartItems.map((item, index) =>
 `
+          ${chartItems.map((item, index) =>
 {
+            // Use power scaling to amplify
 visual differences (cube the ratio for more
 dramatic effect)
+            const linearRatio = item.value 
/ maxDps;
+            const barWidth = Math.pow(linea
rRatio, 1.5) * 100;
+            
+            return `
             <div class="chart-item">
               <div class="chart-labels">
                 <span class="chart-rank">#$
{index + 1}</span>
@@ -519,12 +525,13 @@ class DynamicRankings 
{
                 <span class="chart-sublabel
">${item.sublabel}</span>
               </div>
               <div class="chart-bar-contain
er">
-                <div class="chart-bar" styl
e="width: ${(item.value / maxDps) * 100}%; b
ackground-color: ${classColors[item.category
] || '#666'};">
+                <div class="chart-bar" styl
e="width: ${barWidth}%; background-color: ${
classColors[item.category] || '#666'};">
                 </div>
                 <span class="chart-value">$
{Math.round(item.value).toLocaleString()}</s
pan>
               </div>
             </div>
-          `).join('')}
+            `;
+          }).join('')}
         </div>
       </div>
     `;
@@ -538,4 +545,4 @@ document.addEventListene
r('DOMContentLoaded', () => {
 });
     </script>
   </body>
-</html>
\ No newline at end of file
+</html>
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET