OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      a99045046397
DATE      2025-07-21
SUBJECT   feat: add short and burst durations
FILES     4 CHANGED
HASH      a99045046397
DATE      2025-07-21
SUBJECT   feat: add short and burst durations
FILES     4 CHANGED
 

diff --git a/nix/apps/simulation/default.nix b/nix/apps/simulation/default.nix
index db651e1..2168ca1 100644
--- a/nix/apps/simulation/default.nix
+++ b/nix/apps/simulation/default.nix
@@ -55,6 +55,92 @@
       duration = "long";
       template = "multiTarget";
     };
+    dps-p1-raid-single-short = mkMassSim {
+      specs = "dps"; # shortcut to all DPS classes templates
+      encounter = encounter.raid.short.singleTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "short";
+      template = "singleTarget";
+    };
+
+    dps-p1-raid-three-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.threeTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "short";
+      template = "multiTarget";
+    };
+
+    dps-p1-raid-cleave-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.cleave;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "short";
+      template = "cleave";
+    };
+
+    dps-p1-raid-ten-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.tenTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "short";
+      template = "multiTarget";
+    };
+    dps-p1-raid-single-burst = mkMassSim {
+      specs = "dps"; # burstcut to all DPS classes templates
+      encounter = encounter.raid.burst.singleTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "burst";
+      template = "singleTarget";
+    };
+
+    dps-p1-raid-three-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.threeTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "burst";
+      template = "multiTarget";
+    };
+
+    dps-p1-raid-cleave-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.cleave;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "burst";
+      template = "cleave";
+    };
+
+    dps-p1-raid-ten-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.tenTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "burst";
+      template = "multiTarget";
+    };
   };
 
   # Script that runs all simulations

diff --git a/nix/apps/simulation/default.nix
 b/nix/apps/simulation/default.nix
index db651e1..2168ca1 100644
--- a/nix/apps/simulation/default.nix
+++ b/nix/apps/simulation/default.nix
@@ -55,6 +55,92 @@
       duration = "long";
       template = "multiTarget";
     };
+    dps-p1-raid-single-short = mkMassSim {
+      specs = "dps"; # shortcut to all DPS 
classes templates
+      encounter = encounter.raid.short.sing
leTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "short";
+      template = "singleTarget";
+    };
+
+    dps-p1-raid-three-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.thre
eTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "short";
+      template = "multiTarget";
+    };
+
+    dps-p1-raid-cleave-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.clea
ve;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "short";
+      template = "cleave";
+    };
+
+    dps-p1-raid-ten-short = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.short.tenT
arget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "short";
+      template = "multiTarget";
+    };
+    dps-p1-raid-single-burst = mkMassSim {
+      specs = "dps"; # burstcut to all DPS 
classes templates
+      encounter = encounter.raid.burst.sing
leTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "single";
+      duration = "burst";
+      template = "singleTarget";
+    };
+
+    dps-p1-raid-three-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.thre
eTarget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "three";
+      duration = "burst";
+      template = "multiTarget";
+    };
+
+    dps-p1-raid-cleave-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.clea
ve;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "cleave";
+      duration = "burst";
+      template = "cleave";
+    };
+
+    dps-p1-raid-ten-burst = mkMassSim {
+      specs = "dps";
+      encounter = encounter.raid.burst.tenT
arget;
+      iterations = 10000;
+      phase = "p1";
+      encounterType = "raid";
+      targetCount = "ten";
+      duration = "burst";
+      template = "multiTarget";
+    };
   };
 
   # Script that runs all simulations
 

diff --git a/nix/encounter/default.nix b/nix/encounter/default.nix
index 0d5bad2..efe2bee 100644
--- a/nix/encounter/default.nix
+++ b/nix/encounter/default.nix
@@ -5,34 +5,32 @@
 }: let
   inherit (lib.sim.encounter) mkEncounter;
   inherit (lib) genList;
+
+  # Target count configurations
+  targetConfigs = {
+    singleTarget = [target.defaultRaidBoss];
+    cleave = [target.defaultRaidBoss target.defaultRaidBoss];
+    threeTarget = genList (_: target.defaultRaidBoss) 3;
+    fiveTarget = genList (_: target.defaultRaidBoss) 5;
+    tenTarget = genList (_: target.defaultRaidBoss) 10;
+    twentyTarget = genList (_: target.defaultRaidBoss) 20;
+  };
+
+  # Duration configurations
+  durations = {
+    long = {duration = 300; durationVariation = 60;};
+    short = {duration = 120; durationVariation = 30;};
+    burst = {duration = 30; durationVariation = 10;};
+  };
+
+  # Generate encounters for a duration type
+  mkDurationEncounters = durationConfig:
+    lib.mapAttrs (name: targets: 
+      mkEncounter (durationConfig // {inherit targets;})
+    ) targetConfigs;
+
   encounter = {
-    raid = {
-      long = {
-        singleTarget = mkEncounter {
-          targets = [
-            target.defaultRaidBoss
-          ];
-        };
-        cleave = mkEncounter {
-          targets = [
-            target.defaultRaidBoss
-            target.defaultRaidBoss
-          ];
-        };
-        threeTarget = mkEncounter {
-          targets = genList (_: target.defaultRaidBoss) 3;
-        };
-        fiveTarget = mkEncounter {
-          targets = genList (_: target.defaultRaidBoss) 5;
-        };
-        tenTarget = mkEncounter {
-          targets = genList (_: target.defaultRaidBoss) 10;
-        };
-        twentyTarget = mkEncounter {
-          targets = genList (_: target.defaultRaidBoss) 20;
-        };
-      };
-    };
+    raid = lib.mapAttrs (_: mkDurationEncounters) durations;
   };
 in {
   flake.encounter = encounter;

diff --git a/nix/encounter/default.nix b/nix
/encounter/default.nix
index 0d5bad2..efe2bee 100644
--- a/nix/encounter/default.nix
+++ b/nix/encounter/default.nix
@@ -5,34 +5,32 @@
 }: let
   inherit (lib.sim.encounter) mkEncounter;
   inherit (lib) genList;
+
+  # Target count configurations
+  targetConfigs = {
+    singleTarget = [target.defaultRaidBoss]
;
+    cleave = [target.defaultRaidBoss target
.defaultRaidBoss];
+    threeTarget = genList (_: target.defaul
tRaidBoss) 3;
+    fiveTarget = genList (_: target.default
RaidBoss) 5;
+    tenTarget = genList (_: target.defaultR
aidBoss) 10;
+    twentyTarget = genList (_: target.defau
ltRaidBoss) 20;
+  };
+
+  # Duration configurations
+  durations = {
+    long = {duration = 300; durationVariati
on = 60;};
+    short = {duration = 120; durationVariat
ion = 30;};
+    burst = {duration = 30; durationVariati
on = 10;};
+  };
+
+  # Generate encounters for a duration type
+  mkDurationEncounters = durationConfig:
+    lib.mapAttrs (name: targets: 
+      mkEncounter (durationConfig // {inher
it targets;})
+    ) targetConfigs;
+
   encounter = {
-    raid = {
-      long = {
-        singleTarget = mkEncounter {
-          targets = [
-            target.defaultRaidBoss
-          ];
-        };
-        cleave = mkEncounter {
-          targets = [
-            target.defaultRaidBoss
-            target.defaultRaidBoss
-          ];
-        };
-        threeTarget = mkEncounter {
-          targets = genList (_: target.defa
ultRaidBoss) 3;
-        };
-        fiveTarget = mkEncounter {
-          targets = genList (_: target.defa
ultRaidBoss) 5;
-        };
-        tenTarget = mkEncounter {
-          targets = genList (_: target.defa
ultRaidBoss) 10;
-        };
-        twentyTarget = mkEncounter {
-          targets = genList (_: target.defa
ultRaidBoss) 20;
-        };
-      };
-    };
+    raid = lib.mapAttrs (_: mkDurationEncou
nters) durations;
   };
 in {
   flake.encounter = encounter;
 

diff --git a/web/src/layouts/DynamicRankingsLayout.astro b/web/src/layouts/Dynamic
RankingsLayout.astro
index fb82fa6..8344692 100644
--- a/web/src/layouts/DynamicRankingsLayout.astro
+++ b/web/src/layouts/DynamicRankingsLayout.astro
@@ -298,7 +298,9 @@ const { title, description } = Astro.props;
           <div class="control-group">
             <label for="duration">Duration:</label>
             <select id="duration">
-              <option value="long">Long</option>
+              <option value="long">Long (5 min)</option>
+              <option value="short">Short (2 min)</option>
+              <option value="burst">Burst (30s)</option>
             </select>
           </div>
           

diff --git a/web/src/layouts/DynamicRankings
Layout.astro b/web/src/layouts/DynamicRankin
gsLayout.astro
index fb82fa6..8344692 100644
--- a/web/src/layouts/DynamicRankingsLayout.
astro
+++ b/web/src/layouts/DynamicRankingsLayout.
astro
@@ -298,7 +298,9 @@ const { title, descripti
on } = Astro.props;
           <div class="control-group">
             <label for="duration">Duration:
</label>
             <select id="duration">
-              <option value="long">Long</op
tion>
+              <option value="long">Long (5 
min)</option>
+              <option value="short">Short (
2 min)</option>
+              <option value="burst">Burst (
30s)</option>
             </select>
           </div>
           
 

diff --git a/web/src/pages/index.astro b/web/src/pages/index.astro
index 8ec0fba..496898f 100644
--- a/web/src/pages/index.astro
+++ b/web/src/pages/index.astro
@@ -3,6 +3,6 @@ import DynamicRankingsLayout from '../layouts/DynamicRankingsLayou
t.astro';
 ---
 
 <DynamicRankingsLayout 
-  title="WoW MoP DPS Rankings"
-  description="Interactive simulation results for all encounters and target count
s"
+  title="MoP Simulation DPS Rankings"
+  description="Take this all with a grain of salt. Many classes simulation's are 
currently incomplete"
 />

diff --git a/web/src/pages/index.astro b/web
/src/pages/index.astro
index 8ec0fba..496898f 100644
--- a/web/src/pages/index.astro
+++ b/web/src/pages/index.astro
@@ -3,6 +3,6 @@ import DynamicRankingsLayout
 from '../layouts/DynamicRankingsLayout.astr
o';
 ---
 
 <DynamicRankingsLayout 
-  title="WoW MoP DPS Rankings"
-  description="Interactive simulation resul
ts for all encounters and target counts"
+  title="MoP Simulation DPS Rankings"
+  description="Take this all with a grain o
f salt. Many classes simulation's are curren
tly incomplete"
 />
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET