OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      4f2bc6f4d4d5
DATE      2025-07-25
SUBJECT   preRaid rankings init
FILES     6 CHANGED
HASH      4f2bc6f4d4d5
DATE      2025-07-25
SUBJECT   preRaid rankings init
FILES     6 CHANGED
 

diff --git a/nix/apps/simulation/default.nix b/nix/apps/simulation/default.nix
index 87ba8d8..8053c82 100644
--- a/nix/apps/simulation/default.nix
+++ b/nix/apps/simulation/default.nix
@@ -142,6 +142,135 @@
       duration = "burst";
       template = "multiTarget";
     };
+    dps-preRaid-raid-single-long = mkMassSim {
+      specs = "dps"; # shortcut to all DPS classes templates
+      encounter = encounter.raid.long.singleTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "long";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-long = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.long.threeTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "long";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-long = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.long.cleave;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "long";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-long = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.long.tenTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "long";
+      template = "multiTarget";
+    };
+    dps-preRaid-raid-single-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.singleTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "short";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.threeTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "short";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.cleave;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "short";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.tenTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "short";
+      template = "multiTarget";
+    };
+    dps-preRaid-raid-single-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.singleTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "burst";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.threeTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "burst";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.cleave;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "burst";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.tenTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "burst";
+      template = "multiTarget";
+    };
   };
 
   # for all race combinations

diff --git a/nix/apps/simulation/default.nix
 b/nix/apps/simulation/default.nix
index 87ba8d8..8053c82 100644
--- a/nix/apps/simulation/default.nix
+++ b/nix/apps/simulation/default.nix
@@ -142,6 +142,135 @@
       duration = "burst";
       template = "multiTarget";
     };
+    dps-preRaid-raid-single-long = mkMassSi
m {
+      specs = "dps"; # shortcut to all DPS 
classes templates
+      encounter = encounter.raid.long.singl
eTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "long";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-long = mkMassSim
 {
+      specs = "dps";
+      encounter = encounter.raid.long.three
Target;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "long";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-long = mkMassSi
m {
+      specs = "dps";
+      encounter = encounter.raid.long.cleav
e;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "long";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-long = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.long.tenTa
rget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "long";
+      template = "multiTarget";
+    };
+    dps-preRaid-raid-single-short = mkMassS
im {
+      specs = "dps";
+      encounter = encounter.raid.short.sing
leTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "short";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-short = mkMassSi
m {
+      specs = "dps";
+      encounter = encounter.raid.short.thre
eTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "short";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-short = mkMassS
im {
+      specs = "dps";
+      encounter = encounter.raid.short.clea
ve;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "short";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-short = mkMassSim 
{
+      specs = "dps";
+      encounter = encounter.raid.short.tenT
arget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "short";
+      template = "multiTarget";
+    };
+    dps-preRaid-raid-single-burst = mkMassS
im {
+      specs = "dps";
+      encounter = encounter.raid.burst.sing
leTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "burst";
+      template = "singleTarget";
+    };
+
+    dps-preRaid-raid-three-burst = mkMassSi
m {
+      specs = "dps";
+      encounter = encounter.raid.burst.thre
eTarget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "burst";
+      template = "multiTarget";
+    };
+
+    dps-preRaid-raid-cleave-burst = mkMassS
im {
+      specs = "dps";
+      encounter = encounter.raid.burst.clea
ve;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "burst";
+      template = "cleave";
+    };
+
+    dps-preRaid-raid-ten-burst = mkMassSim 
{
+      specs = "dps";
+      encounter = encounter.raid.burst.tenT
arget;
+      iterations = 10000;
+      phase = "preRaid";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "burst";
+      template = "multiTarget";
+    };
   };
 
   # for all race combinations
 

diff --git a/nix/apps/simulation/mkMassSim.nix b/nix/apps/simulation/mkMassSim.nix
index 9555de5..64d236e 100644
--- a/nix/apps/simulation/mkMassSim.nix
+++ b/nix/apps/simulation/mkMassSim.nix
@@ -19,7 +19,7 @@
 
   # categorize specs by role
   # TODO: tanks
-  getAllDPSSpecs = classes: template: let
+  getAllDPSSpecs = classes: template: phase: let
     dpsSpecs = {
       death_knight = ["frost" "unholy"];
       druid = ["balance" "feral"];
@@ -50,12 +50,12 @@
                 in
                   if
                     lib.hasAttr defaultRace spec.template
-                    && lib.hasAttr "p1" spec.template.${defaultRace}
-                    && lib.hasAttr "raid" spec.template.${defaultRace}.p1
-                    && lib.hasAttr template spec.template.${defaultRace}.p1.raid
+                    && lib.hasAttr phase spec.template.${defaultRace}
+                    && lib.hasAttr "raid" spec.template.${defaultRace}.${phase}
+                    && lib.hasAttr template spec.template.${defaultRace}.${phase}
.raid
                   then {
                     inherit className specName;
-                    config = spec.template.${defaultRace}.p1.raid.${template};
+                    config = spec.template.${defaultRace}.${phase}.raid.${templat
e};
                   }
                   else null
                 else null
@@ -292,7 +292,7 @@
     # get the list of specs based on the specs parameter
     specConfigs =
       if specs == "dps"
-      then getAllDPSSpecs classes template
+      then getAllDPSSpecs classes template phase
       else if builtins.isList specs
       then specs
       else throw "specs must be 'dps' or a list of spec configurations";

diff --git a/nix/apps/simulation/mkMassSim.n
ix b/nix/apps/simulation/mkMassSim.nix
index 9555de5..64d236e 100644
--- a/nix/apps/simulation/mkMassSim.nix
+++ b/nix/apps/simulation/mkMassSim.nix
@@ -19,7 +19,7 @@
 
   # categorize specs by role
   # TODO: tanks
-  getAllDPSSpecs = classes: template: let
+  getAllDPSSpecs = classes: template: phase
: let
     dpsSpecs = {
       death_knight = ["frost" "unholy"];
       druid = ["balance" "feral"];
@@ -50,12 +50,12 @@
                 in
                   if
                     lib.hasAttr defaultRace
 spec.template
-                    && lib.hasAttr "p1" spe
c.template.${defaultRace}
-                    && lib.hasAttr "raid" s
pec.template.${defaultRace}.p1
-                    && lib.hasAttr template
 spec.template.${defaultRace}.p1.raid
+                    && lib.hasAttr phase sp
ec.template.${defaultRace}
+                    && lib.hasAttr "raid" s
pec.template.${defaultRace}.${phase}
+                    && lib.hasAttr template
 spec.template.${defaultRace}.${phase}.raid
                   then {
                     inherit className specN
ame;
-                    config = spec.template.
${defaultRace}.p1.raid.${template};
+                    config = spec.template.
${defaultRace}.${phase}.raid.${template};
                   }
                   else null
                 else null
@@ -292,7 +292,7 @@
     # get the list of specs based on the sp
ecs parameter
     specConfigs =
       if specs == "dps"
-      then getAllDPSSpecs classes template
+      then getAllDPSSpecs classes template 
phase
       else if builtins.isList specs
       then specs
       else throw "specs must be 'dps' or a 
list of spec configurations";
 

diff --git a/nix/classes/hunter/beast_mastery.nix b/nix/classes/hunter/beast_maste
ry.nix
index 035415c..117990c 100644
--- a/nix/classes/hunter/beast_mastery.nix
+++ b/nix/classes/hunter/beast_mastery.nix
@@ -53,7 +53,7 @@
       singleTarget = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.glaiveToss;
         glyphs = beast_mastery.glyphs.default;
       };
@@ -61,7 +61,7 @@
       multiTarget = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.glaiveToss;
         glyphs = beast_mastery.glyphs.default;
       };
@@ -69,7 +69,7 @@
       cleave = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.glaiveToss;
         glyphs = beast_mastery.glyphs.default;
       };

diff --git a/nix/classes/hunter/beast_master
y.nix b/nix/classes/hunter/beast_mastery.nix
index 035415c..117990c 100644
--- a/nix/classes/hunter/beast_mastery.nix
+++ b/nix/classes/hunter/beast_mastery.nix
@@ -53,7 +53,7 @@
       singleTarget = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.gla
iveToss;
         glyphs = beast_mastery.glyphs.defau
lt;
       };
@@ -61,7 +61,7 @@
       multiTarget = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.gla
iveToss;
         glyphs = beast_mastery.glyphs.defau
lt;
       };
@@ -69,7 +69,7 @@
       cleave = {
         apl = "bm";
         p1.gearset = "p1";
-        preRaid.gearset = "prebis";
+        preRaid.gearset = "preraid";
         talents = beast_mastery.talents.gla
iveToss;
         glyphs = beast_mastery.glyphs.defau
lt;
       };
 

diff --git a/nix/classes/warlock/destruction.nix b/nix/classes/warlock/destruction
.nix
index 81de958..9fc65b9 100644
--- a/nix/classes/warlock/destruction.nix
+++ b/nix/classes/warlock/destruction.nix
@@ -44,7 +44,7 @@
       singleTarget = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archimondesDarkness;
         glyphs = destruction.glyphs.default;
       };
@@ -52,7 +52,7 @@
       multiTarget = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archimondesDarkness;
         glyphs = destruction.glyphs.default;
       };
@@ -60,7 +60,7 @@
       cleave = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archimondesDarkness;
         glyphs = destruction.glyphs.default;
       };

diff --git a/nix/classes/warlock/destruction
.nix b/nix/classes/warlock/destruction.nix
index 81de958..9fc65b9 100644
--- a/nix/classes/warlock/destruction.nix
+++ b/nix/classes/warlock/destruction.nix
@@ -44,7 +44,7 @@
       singleTarget = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archi
mondesDarkness;
         glyphs = destruction.glyphs.default
;
       };
@@ -52,7 +52,7 @@
       multiTarget = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archi
mondesDarkness;
         glyphs = destruction.glyphs.default
;
       };
@@ -60,7 +60,7 @@
       cleave = {
         apl = "default";
         p1.gearset = "p1";
-        preRaid.gearset = "preraid";
+        preRaid.gearset = "p1-prebis";
         talents = destruction.talents.archi
mondesDarkness;
         glyphs = destruction.glyphs.default
;
       };
 

diff --git a/web/.astro/types.d.ts b/web/.astro/types.d.ts
index 03d7cc4..f964fe0 100644
--- a/web/.astro/types.d.ts
+++ b/web/.astro/types.d.ts
@@ -1,2 +1 @@
 /// <reference types="astro/client" />
-/// <reference path="content.d.ts" />
\ No newline at end of file

diff --git a/web/.astro/types.d.ts b/web/.as
tro/types.d.ts
index 03d7cc4..f964fe0 100644
--- a/web/.astro/types.d.ts
+++ b/web/.astro/types.d.ts
@@ -1,2 +1 @@
 /// <reference types="astro/client" />
-/// <reference path="content.d.ts" />
\ No newline at end of file
 

diff --git a/web/src/layouts/ChartLayout.astro b/web/src/layouts/ChartLayout.astro
index ba9ee64..dd7c381 100644
--- a/web/src/layouts/ChartLayout.astro
+++ b/web/src/layouts/ChartLayout.astro
@@ -389,6 +389,7 @@ const isFixedClassSpec = fixedClass && fixedSpec;
           <div class="control-group">
             <label for="phase">Phase:</label>
             <select id="phase">
+              <option value="preRaid">Pre-Raid</option>
               <option value="p1">Phase 1</option>
             </select>
           </div>

diff --git a/web/src/layouts/ChartLayout.ast
ro b/web/src/layouts/ChartLayout.astro
index ba9ee64..dd7c381 100644
--- a/web/src/layouts/ChartLayout.astro
+++ b/web/src/layouts/ChartLayout.astro
@@ -389,6 +389,7 @@ const isFixedClassSpec =
 fixedClass && fixedSpec;
           <div class="control-group">
             <label for="phase">Phase:</labe
l>
             <select id="phase">
+              <option value="preRaid">Pre-R
aid</option>
               <option value="p1">Phase 1</o
ption>
             </select>
           </div>
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET