Skip to content

Commit

Permalink
Merge pull request #1068 from wowsims/t12-hunter
Browse files Browse the repository at this point in the history
Add T12 hunter presets
  • Loading branch information
ToxicKevinFerm authored Oct 2, 2024
2 parents 5d04c0c + 660e6d0 commit f84e2df
Show file tree
Hide file tree
Showing 13 changed files with 629 additions and 627 deletions.
998 changes: 457 additions & 541 deletions sim/hunter/survival/TestSV.results

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions sim/hunter/survival/survival_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@ func TestSV(t *testing.T) {
SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic},
Rotation: core.GetAplRotation("../../../ui/hunter/survival/apls", "sv"),
OtherRotations: []core.RotationCombo{
core.GetAplRotation("../../../ui/hunter/survival/apls", "sv_advanced"),
core.GetAplRotation("../../../ui/hunter/survival/apls", "aoe"),
},
StartingDistance: 5.1,
ItemFilter: ItemFilter,
StartingDistance: 5.1,
ItemFilter: ItemFilter,
}))
}

Expand Down
21 changes: 21 additions & 0 deletions ui/hunter/beast_mastery/gear_sets/p3_bm.gear.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"items": [
{ "id": 71503, "enchant": 4209, "gems": [68778, 52209], "reforging": 151 },
{ "id": 71610, "reforging": 166 },
{ "id": 71403, "randomSuffix": -294, "enchant": 4204, "gems": [52258], "reforging": 167 },
{ "id": 71415, "enchant": 4100, "gems": [52258, 52258], "reforging": 166 },
{ "id": 71501, "enchant": 4102, "gems": [52212, 52209], "reforging": 167 },
{ "id": 71561, "enchant": 4258, "gems": [52212], "reforging": 152 },
{ "id": 71502, "enchant": 4107, "gems": [52212, 52212], "reforging": 151 },
{ "id": 71255, "gems": [52212, 52212], "reforging": 166 },
{ "id": 71504, "enchant": 4126, "gems": [52212, 52220], "reforging": 137 },
{ "id": 71457, "enchant": 4105, "gems": [52212], "reforging": 138 },
{ "id": 71216, "gems": [52212], "reforging": 166 },
{ "id": 71401, "reforging": 166 },
{ "id": 69150 },
{ "id": 69112 },
{ "id": 71466, "enchant": 4227, "reforging": 165 },
{},
{ "id": 71611, "enchant": 4267, "reforging": 151 }
]
}
19 changes: 18 additions & 1 deletion ui/hunter/beast_mastery/presets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { Stats } from '../../core/proto_utils/stats';
import AoeApl from './apls/aoe.apl.json';
import BmApl from './apls/bm.apl.json';
import P1BMGear from './gear_sets/p1_bm.gear.json';
import P3BMGear from './gear_sets/p3_bm.gear.json';
import PreraidBMGear from './gear_sets/preraid_bm.gear.json';

// Preset options for this spec.
Expand All @@ -22,6 +23,7 @@ import PreraidBMGear from './gear_sets/preraid_bm.gear.json';

export const BM_PRERAID_PRESET = PresetUtils.makePresetGear('BM PreRaid Preset', PreraidBMGear);
export const BM_P1_PRESET = PresetUtils.makePresetGear('BM P1 Preset', P1BMGear);
export const BM_P3_PRESET = PresetUtils.makePresetGear('BM T12 Preset', P3BMGear);

export const DefaultSimpleRotation = BeastMasteryRotation.create({
type: RotationType.SingleTarget,
Expand All @@ -40,7 +42,6 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights(
'BM P1',
Stats.fromMap(
{
[Stat.StatStamina]: 0.5,
[Stat.StatAgility]: 2.65,
[Stat.StatRangedAttackPower]: 1.0,
[Stat.StatHitRating]: 2.12,
Expand All @@ -53,6 +54,22 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights(
},
),
);
export const P3_EP_PRESET = PresetUtils.makePresetEpWeights(
'BM T12',
Stats.fromMap(
{
[Stat.StatAgility]: 3.03,
[Stat.StatRangedAttackPower]: 1.0,
[Stat.StatHitRating]: 2.52,
[Stat.StatCritRating]: 1.32,
[Stat.StatHasteRating]: 1.14,
[Stat.StatMasteryRating]: 0.64,
},
{
[PseudoStat.PseudoStatRangedDps]: 6.32,
},
),
);

// Default talents. Uses the wowhead calculator format, make the talents on
// https://wowhead.com/cata/talent-calc and copy the numbers in the url.
Expand Down
36 changes: 18 additions & 18 deletions ui/hunter/beast_mastery/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,27 +53,17 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBeastMasteryHunter, {
epReferenceStat: Stat.StatRangedAttackPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
displayStats: UnitStat.createDisplayStatArray(
[
Stat.StatHealth,
Stat.StatStamina,
Stat.StatAgility,
Stat.StatRangedAttackPower,
Stat.StatMasteryRating,
],
[
PseudoStat.PseudoStatPhysicalHitPercent,
PseudoStat.PseudoStatPhysicalCritPercent,
PseudoStat.PseudoStatRangedHastePercent,
],
[Stat.StatHealth, Stat.StatStamina, Stat.StatAgility, Stat.StatRangedAttackPower, Stat.StatMasteryRating],
[PseudoStat.PseudoStatPhysicalHitPercent, PseudoStat.PseudoStatPhysicalCritPercent, PseudoStat.PseudoStatRangedHastePercent],
),
modifyDisplayStats: (player: Player<Spec.SpecBeastMasteryHunter>) => {
return sharedHunterDisplayStatsModifiers(player);
},
defaults: {
// Default equipped gear.
gear: Presets.BM_P1_PRESET.gear,
gear: Presets.BM_P3_PRESET.gear,
// Default EP weights for sorting gear in the gear picker.
epWeights: Presets.P1_EP_PRESET.epWeights,
epWeights: Presets.P3_EP_PRESET.epWeights,
// Default stat caps for the Reforge Optimizer
statCaps: (() => {
const hitCap = new Stats().withPseudoStat(PseudoStat.PseudoStatPhysicalHitPercent, 8);
Expand Down Expand Up @@ -142,13 +132,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecBeastMasteryHunter, {
},

presets: {
epWeights: [Presets.P1_EP_PRESET],
epWeights: [Presets.P1_EP_PRESET, Presets.P3_EP_PRESET],
// Preset talents that the user can quickly select.
talents: [Presets.BeastMasteryTalents],
// Preset rotations that the user can quickly select.
rotations: [Presets.ROTATION_PRESET_SIMPLE_DEFAULT, Presets.ROTATION_PRESET_BM, Presets.ROTATION_PRESET_AOE],
rotations: [Presets.ROTATION_PRESET_BM, Presets.ROTATION_PRESET_AOE],
// Preset gear configurations that the user can quickly select.
gear: [Presets.BM_PRERAID_PRESET, Presets.BM_P1_PRESET],
gear: [Presets.BM_P3_PRESET, Presets.BM_PRERAID_PRESET, Presets.BM_P1_PRESET],
},

autoRotation: (player: Player<Spec.SpecBeastMasteryHunter>): APLRotation => {
Expand Down Expand Up @@ -249,7 +239,17 @@ export class BeastMasteryHunterSimUI extends IndividualSimUI<Spec.SpecBeastMaste
super(parentElem, player, SPEC_CONFIG);

player.sim.waitForInit().then(() => {
new ReforgeOptimizer(this);
new ReforgeOptimizer(this, {
getEPDefaults: (player: Player<Spec.SpecFuryWarrior>) => {
if (player.getGear().getItemSetCount('Lightning-Charged Battlegear') >= 4) {
return Presets.P1_EP_PRESET.epWeights;
}
if (player.getGear().getItemSetCount("Flamewaker's Battlegear") >= 4) {
return Presets.P3_EP_PRESET.epWeights;
}
return Presets.P1_EP_PRESET.epWeights;
},
});
});
}
}
21 changes: 21 additions & 0 deletions ui/hunter/marksmanship/gear_sets/p3_mm.gear.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"items": [
{ "id": 71503, "enchant": 4209, "gems": [68778, 52209], "reforging": 154 },
{ "id": 71610, "reforging": 152 },
{ "id": 71403, "randomSuffix": -294, "enchant": 4204, "gems": [52258] },
{ "id": 71415, "enchant": 4100, "gems": [52258, 52258], "reforging": 137 },
{ "id": 71501, "enchant": 4102, "gems": [52212, 52209] },
{ "id": 71561, "enchant": 4258, "gems": [52212], "reforging": 154 },
{ "id": 71502, "enchant": 4107, "gems": [52212, 52212], "reforging": 154 },
{ "id": 71255, "gems": [52212, 52212], "reforging": 151 },
{ "id": 71504, "enchant": 4126, "gems": [52212, 52220], "reforging": 154 },
{ "id": 71457, "enchant": 4105, "gems": [52212], "reforging": 147 },
{ "id": 71216, "gems": [52212], "reforging": 152 },
{ "id": 71401, "reforging": 152 },
{ "id": 69150 },
{ "id": 69112 },
{ "id": 71466, "enchant": 4227, "reforging": 144 },
{},
{ "id": 71611, "enchant": 4267, "reforging": 154 }
]
}
19 changes: 18 additions & 1 deletion ui/hunter/marksmanship/presets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import AoeApl from './apls/aoe.apl.json';
import MmApl from './apls/mm.apl.json';
import MmAdvApl from './apls/mm_advanced.apl.json';
import P1MMGear from './gear_sets/p1_mm.gear.json';
import T12MMGear from './gear_sets/p3_mm.gear.json';
import PreraidMMGear from './gear_sets/preraid_mm.gear.json';

// Preset options for this spec.
Expand All @@ -24,6 +25,7 @@ import PreraidMMGear from './gear_sets/preraid_mm.gear.json';

export const MM_PRERAID_PRESET = PresetUtils.makePresetGear('MM PreRaid Preset', PreraidMMGear);
export const MM_P1_PRESET = PresetUtils.makePresetGear('MM P1 Preset', P1MMGear);
export const MM_T12_PRESET = PresetUtils.makePresetGear('MM T12 Preset', T12MMGear);

export const DefaultSimpleRotation = HunterRotation.create({
type: RotationType.SingleTarget,
Expand All @@ -43,7 +45,6 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights(
'MM P1',
Stats.fromMap(
{
[Stat.StatStamina]: 0.5,
[Stat.StatAgility]: 3.05,
[Stat.StatRangedAttackPower]: 1.0,
[Stat.StatHitRating]: 2.25,
Expand All @@ -56,6 +57,22 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights(
},
),
);
export const P3_EP_PRESET = PresetUtils.makePresetEpWeights(
'MM P3 (T12 4-set)',
Stats.fromMap(
{
[Stat.StatAgility]: 3.05,
[Stat.StatRangedAttackPower]: 1.0,
[Stat.StatHitRating]: 2.79,
[Stat.StatCritRating]: 1.39,
[Stat.StatHasteRating]: 0.9,
[Stat.StatMasteryRating]: 1.47,
},
{
[PseudoStat.PseudoStatRangedDps]: 7.33,
},
),
);

// Default talents. Uses the wowhead calculator format, make the talents on
// https://wowhead.com/wotlk/talent-calc and copy the numbers in the url.
Expand Down
37 changes: 19 additions & 18 deletions ui/hunter/marksmanship/sim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import * as HunterInputs from '../inputs';
import { sharedHunterDisplayStatsModifiers } from '../shared';
import * as MMInputs from './inputs';
import * as Presets from './presets';
import { MM_T12_PRESET, P3_EP_PRESET } from './presets';
const SPEC_CONFIG = registerSpecConfig(Spec.SpecMarksmanshipHunter, {
cssClass: 'marksmanship-hunter-sim-ui',
cssScheme: 'hunter',
Expand All @@ -51,28 +52,18 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecMarksmanshipHunter, {
epReferenceStat: Stat.StatRangedAttackPower,
// Which stats to display in the Character Stats section, at the bottom of the left-hand sidebar.
displayStats: UnitStat.createDisplayStatArray(
[
Stat.StatHealth,
Stat.StatStamina,
Stat.StatAgility,
Stat.StatRangedAttackPower,
Stat.StatMasteryRating,
],
[
PseudoStat.PseudoStatPhysicalHitPercent,
PseudoStat.PseudoStatPhysicalCritPercent,
PseudoStat.PseudoStatRangedHastePercent,
],
[Stat.StatHealth, Stat.StatStamina, Stat.StatAgility, Stat.StatRangedAttackPower, Stat.StatMasteryRating],
[PseudoStat.PseudoStatPhysicalHitPercent, PseudoStat.PseudoStatPhysicalCritPercent, PseudoStat.PseudoStatRangedHastePercent],
),
modifyDisplayStats: (player: Player<Spec.SpecMarksmanshipHunter>) => {
return sharedHunterDisplayStatsModifiers(player);
},

defaults: {
// Default equipped gear.
gear: Presets.MM_P1_PRESET.gear,
gear: Presets.MM_T12_PRESET.gear,
// Default EP weights for sorting gear in the gear picker.
epWeights: Presets.P1_EP_PRESET.epWeights,
epWeights: Presets.P3_EP_PRESET.epWeights,
// Default stat caps for the Reforge Optimizer
statCaps: (() => {
const hitCap = new Stats().withPseudoStat(PseudoStat.PseudoStatPhysicalHitPercent, 8);
Expand Down Expand Up @@ -142,13 +133,13 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecMarksmanshipHunter, {
},

presets: {
epWeights: [Presets.P1_EP_PRESET],
epWeights: [Presets.P1_EP_PRESET, P3_EP_PRESET],
// Preset talents that the user can quickly select.
talents: [Presets.MarksmanTalents],
// Preset rotations that the user can quickly select.
rotations: [Presets.ROTATION_PRESET_SIMPLE_DEFAULT, Presets.ROTATION_PRESET_MM, Presets.ROTATION_PRESET_MM_ADVANCED, Presets.ROTATION_PRESET_AOE],
rotations: [Presets.ROTATION_PRESET_MM, Presets.ROTATION_PRESET_MM_ADVANCED, Presets.ROTATION_PRESET_AOE],
// Preset gear configurations that the user can quickly select.
gear: [Presets.MM_PRERAID_PRESET, Presets.MM_P1_PRESET],
gear: [MM_T12_PRESET, Presets.MM_PRERAID_PRESET, Presets.MM_P1_PRESET],
},

autoRotation: (player: Player<Spec.SpecMarksmanshipHunter>): APLRotation => {
Expand Down Expand Up @@ -255,7 +246,17 @@ export class MarksmanshipHunterSimUI extends IndividualSimUI<Spec.SpecMarksmansh
super(parentElem, player, SPEC_CONFIG);

player.sim.waitForInit().then(() => {
new ReforgeOptimizer(this);
new ReforgeOptimizer(this, {
getEPDefaults: (player: Player<Spec.SpecFuryWarrior>) => {
if (player.getGear().getItemSetCount('Lightning-Charged Battlegear') >= 4) {
return Presets.P1_EP_PRESET.epWeights;
}
if (player.getGear().getItemSetCount("Flamewaker's Battlegear") >= 4) {
return Presets.P3_EP_PRESET.epWeights;
}
return Presets.P1_EP_PRESET.epWeights;
},
});
});
}
}
22 changes: 19 additions & 3 deletions ui/hunter/survival/apls/sv.apl.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
{ "action": { "castSpell": { "spellId": { "spellId": 77767 } } }, "doAtValue": { "const": { "val": "-1.4s" } } },
{ "action": { "castSpell": { "spellId": { "spellId": 13165 } } }, "doAtValue": { "const": { "val": "-10s" } } },
{ "action": { "castSpell": { "spellId": { "spellId": 1130 } } }, "doAtValue": { "const": { "val": "-3s" } } },
{ "action": { "castSpell": { "spellId": { "spellId": 53517 } } }, "doAtValue": { "const": { "val": "-4s" } }, "hide": true }
{ "action": { "castSpell": { "spellId": { "spellId": 53517 } } }, "doAtValue": { "const": { "val": "-4s" } }, "hide": true },
{ "action": { "triggerIcd": { "auraId": { "spellId": 97125 } } }, "doAtValue": { "const": { "val": "-40s" } }, "hide": true }
],
"priorityList": [
{
"action": {
"condition": { "cmp": { "op": "OpGt", "lhs": { "currentTime": {} }, "rhs": { "const": { "val": "1s" } } } },
"condition": { "cmp": { "op": "OpGt", "lhs": { "currentTime": {} }, "rhs": { "const": { "val": "3s" } } } },
"autocastOtherCooldowns": {}
}
},
Expand Down Expand Up @@ -138,6 +139,7 @@
"castSpell": { "spellId": { "spellId": 3674 } }
}
},
{ "action": { "condition": { "auraIsActive": { "auraId": { "spellId": 99060 } } }, "castSpell": { "spellId": { "spellId": 34026 } } } },
{
"action": {
"condition": { "cmp": { "op": "OpGe", "lhs": { "currentFocus": {} }, "rhs": { "const": { "val": "80" } } } },
Expand All @@ -151,13 +153,27 @@
"vals": [
{ "cmp": { "op": "OpGe", "lhs": { "currentFocus": {} }, "rhs": { "const": { "val": "40" } } } },
{ "cmp": { "op": "OpLe", "lhs": { "remainingTime": {} }, "rhs": { "const": { "val": "8s" } } } },
{ "cmp": { "op": "OpGe", "lhs": { "spellTimeToReady": { "spellId": { "spellId": 53301 } } }, "rhs": { "const": { "val": "3s" } } } }
{ "cmp": { "op": "OpGe", "lhs": { "spellTimeToReady": { "spellId": { "spellId": 53301 } } }, "rhs": { "const": { "val": "1s" } } } }
]
}
},
"castSpell": { "spellId": { "spellId": 3044 } }
}
},
{
"hide": true,
"action": {
"condition": {
"or": {
"vals": [
{ "isExecutePhase": { "threshold": "E20" } },
{ "cmp": { "op": "OpLe", "lhs": { "remainingTime": {} }, "rhs": { "const": { "val": "25s" } } } }
]
}
},
"castSpell": { "spellId": { "spellId": 3045 } }
}
},
{ "action": { "castSpell": { "spellId": { "spellId": 77767 } } } }
]
}
24 changes: 0 additions & 24 deletions ui/hunter/survival/apls/sv_advanced.apl.json

This file was deleted.

21 changes: 21 additions & 0 deletions ui/hunter/survival/gear_sets/p3_sv.gear.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"items": [
{ "id": 71503, "enchant": 4209, "gems": [68778, 52209], "reforging": 154 },
{ "id": 71610, "reforging": 152 },
{ "id": 71403, "randomSuffix": -294, "enchant": 4204, "gems": [52258], "reforging": 165 },
{ "id": 71415, "enchant": 4100, "gems": [52258, 52258], "reforging": 137 },
{ "id": 71501, "enchant": 4102, "gems": [52212, 52209] },
{ "id": 71561, "enchant": 4258, "gems": [52212], "reforging": 152 },
{ "id": 71502, "enchant": 4107, "gems": [52212, 52212], "reforging": 151 },
{ "id": 71255, "gems": [52212, 52212], "reforging": 152 },
{ "id": 71504, "enchant": 4126, "gems": [52212, 52220], "reforging": 152 },
{ "id": 71457, "enchant": 4105, "gems": [52212] },
{ "id": 71216, "gems": [52212], "reforging": 152 },
{ "id": 71401, "reforging": 152 },
{ "id": 69150 },
{ "id": 69112 },
{ "id": 71466, "enchant": 4227 },
{},
{ "id": 71611, "enchant": 4267, "reforging": 151 }
]
}
Loading

0 comments on commit f84e2df

Please sign in to comment.