From ce889e2b3f18037fb8a29820c0cbb0b47b507780 Mon Sep 17 00:00:00 2001
From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com>
Date: Thu, 21 Nov 2024 17:46:39 +0100
Subject: [PATCH 1/3] Remove runes and SoD proto values from core and UI
---
proto/api.proto | 3 +-
proto/apl.proto | 17 +-
proto/common.proto | 235 +++---------
proto/ui.proto | 31 +-
schemas/gear.schema.json | 3 +-
sim/common/sod/item_effects/phase_2.go | 4 +-
sim/common/sod/item_effects/phase_3.go | 4 +-
sim/common/sod/item_effects/phase_5.go | 8 +-
sim/common/sod/item_effects/phase_6.go | 7 +-
sim/core/agent.go | 3 +-
sim/core/apl_value.go | 4 -
sim/core/apl_values_rune.go | 39 --
sim/core/buffs.go | 352 +-----------------
sim/core/character.go | 96 -----
sim/core/consumes.go | 270 +-------------
sim/core/database.go | 35 --
sim/core/database_load.go | 1 -
sim/core/debuffs.go | 341 +----------------
sim/core/dot_test.go | 1 -
sim/core/item_swaps.go | 1 -
sim/core/pet.go | 1 -
sim/core/simsignals/api_test.go | 6 +-
sim/core/stats/stats.go | 3 -
sim/core/target_ai.go | 1 -
sim/core/target_dummy.go | 1 -
sim/core/test_utils.go | 258 +------------
sim/druid/balance/TestBalance.results | 66 ++--
sim/druid/balance/balance_test.go | 43 +--
sim/druid/druid.go | 2 +-
sim/druid/feral/TestFeral.results | 116 +++---
sim/druid/feral/feral_test.go | 47 +--
sim/druid/runes.go | 2 +-
sim/hunter/TestBM.results | 192 +++++-----
sim/hunter/TestMM.results | 96 ++---
sim/hunter/TestSV.results | 96 ++---
sim/hunter/hunter.go | 5 +-
sim/hunter/hunter_test.go | 36 +-
sim/mage/TestArcane.results | 90 ++---
sim/mage/TestFire.results | 88 ++---
sim/mage/TestFrost.results | 90 ++---
sim/mage/mage.go | 2 +-
sim/mage/mage_test.go | 53 +--
sim/paladin/paladin.go | 2 +-
sim/paladin/protection/TestProtection.results | 112 +++---
sim/paladin/protection/protection_test.go | 8 +-
sim/paladin/retribution/TestExodin.results | 90 ++---
.../retribution/TestRetribution.results | 134 ++++---
sim/paladin/retribution/TestShockadin.results | 98 ++---
sim/paladin/retribution/retribution_test.go | 54 +--
sim/priest/homunculi.go | 8 +-
sim/priest/priest.go | 2 +-
sim/priest/shadow/TestShadow.results | 88 ++---
sim/priest/shadow/shadow_priest_test.go | 32 +-
sim/rogue/dps_rogue/TestAssassination.results | 44 +--
sim/rogue/dps_rogue/TestCombat.results | 44 +--
sim/rogue/dps_rogue/dps_rogue_test.go | 16 +-
sim/rogue/rogue.go | 4 +-
sim/rogue/waylay.go | 7 +-
sim/shaman/elemental/TestElemental.results | 96 ++---
sim/shaman/elemental/elemental_test.go | 62 +--
.../enhancement/TestEnhancement.results | 94 ++---
sim/shaman/enhancement/enhancement_test.go | 91 +----
sim/shaman/runes.go | 4 +-
sim/shaman/shaman.go | 2 +-
sim/shaman/warden/TestWardenShaman.results | 90 ++---
sim/shaman/warden/warden_test.go | 8 +-
sim/warlock/dps/TestAffliction.results | 66 ++--
sim/warlock/dps/TestDemonology.results | 86 ++---
sim/warlock/dps/TestDestruction.results | 68 ++--
sim/warlock/dps/dps_warlock_test.go | 41 +-
sim/warlock/runes.go | 11 +-
sim/warlock/talents.go | 4 +-
sim/warlock/tank/TestAffliction.results | 76 ++--
sim/warlock/tank/TestDemonology.results | 64 ++--
sim/warlock/tank/TestDestruction.results | 76 ++--
sim/warlock/tank/tank_warlock_test.go | 41 +-
sim/warlock/warlock.go | 2 +-
.../dps_warrior/TestDualWieldWarrior.results | 64 ++--
.../dps_warrior/TestTwoHandedWarrior.results | 64 ++--
sim/warrior/dps_warrior/dps_warrior_test.go | 41 +-
.../tank_warrior/TestTankWarrior.results | 84 ++---
sim/warrior/tank_warrior/tank_warrior_test.go | 4 +-
sim/warrior/warrior.go | 2 +-
tools/database/wowhead_tooltips.go | 7 -
ui/balance_druid/presets.ts | 11 -
ui/core/components/character_stats.tsx | 4 +-
.../components/gear_picker/gear_picker.tsx | 40 --
ui/core/components/gear_picker/item_list.tsx | 20 +-
.../components/gear_picker/selector_modal.tsx | 49 +--
.../individual_sim_ui/apl_helpers.tsx | 30 +-
.../individual_sim_ui/apl_values.ts | 2 +-
.../individual_sim_ui/consumes_picker.ts | 26 --
ui/core/components/inputs/buffs_debuffs.ts | 241 +-----------
ui/core/components/inputs/consumables.ts | 198 ----------
ui/core/components/inputs/rogue_imbues.ts | 12 -
ui/core/components/inputs/warlock_inputs.ts | 5 -
ui/core/components/inputs/warrior_inputs.ts | 5 -
ui/core/constants/other.ts | 2 +-
ui/core/player.ts | 10 -
ui/core/proto_utils/database.ts | 41 +-
ui/core/proto_utils/equipped_item.ts | 25 +-
ui/core/proto_utils/names.ts | 1 -
ui/core/raid.ts | 10 -
ui/elemental_shaman/presets.ts | 14 +-
ui/elemental_shaman/sim.ts | 6 +-
ui/enhancement_shaman/presets.ts | 11 -
ui/enhancement_shaman/sim.ts | 2 +-
ui/feral_druid/presets.ts | 8 -
ui/feral_druid/sim.ts | 2 +-
ui/hunter/gear_sets/placeholder.gear.json | 4 +-
ui/hunter/inputs.ts | 17 -
ui/hunter/presets.ts | 16 +-
ui/hunter/sim.ts | 10 +-
ui/mage/inputs.ts | 5 -
ui/mage/presets.ts | 12 -
ui/protection_paladin/inputs.ts | 5 +-
ui/protection_paladin/presets.ts | 16 +-
ui/restoration_shaman/sim.ts | 1 -
ui/retribution_paladin/presets.ts | 16 +-
ui/retribution_paladin/sim.ts | 1 -
ui/rogue/presets.ts | 24 +-
ui/rogue/sim.ts | 3 +-
.../components/gear_picker/_gear_picker.scss | 27 --
ui/shadow_priest/presets.ts | 10 -
ui/tank_rogue/presets.ts | 16 +-
ui/tank_rogue/sim.ts | 1 -
ui/tank_warlock/presets.ts | 11 -
ui/tank_warlock/sim.ts | 5 +-
.../gear_sets/placeholder.gear.json | 4 +-
ui/tank_warrior/presets.ts | 11 +-
ui/warden_shaman/presets.ts | 13 -
ui/warden_shaman/sim.ts | 2 +-
ui/warlock/presets.ts | 11 -
ui/warlock/sim.ts | 6 +-
ui/warrior/presets.ts | 13 +-
135 files changed, 1464 insertions(+), 4311 deletions(-)
delete mode 100644 sim/core/apl_values_rune.go
diff --git a/proto/api.proto b/proto/api.proto
index 6302145a1..6d06c6e0a 100644
--- a/proto/api.proto
+++ b/proto/api.proto
@@ -50,7 +50,6 @@ message Player {
double distance_from_target = 17;
// ISB Info
- bool isb_using_shadowflame = 47;
double isb_sb_frequency = 41;
double isb_crit = 42;
int32 isb_warlocks = 43;
@@ -77,7 +76,7 @@ message Player {
ElementalShaman elemental_shaman = 33;
EnhancementShaman enhancement_shaman = 34;
RestorationShaman restoration_shaman = 35;
- WardenShaman warden_shaman = 48;
+ WardenShaman warden_shaman = 47;
Warlock warlock = 36;
TankWarlock tank_warlock = 39;
Warrior warrior = 37;
diff --git a/proto/apl.proto b/proto/apl.proto
index 236a6f804..23ad06d02 100644
--- a/proto/apl.proto
+++ b/proto/apl.proto
@@ -82,7 +82,7 @@ message APLAction {
}
}
-// NextIndex: 75
+// NextIndex: 74
message APLValue {
oneof value {
// Operators
@@ -112,7 +112,7 @@ message APLValue {
APLValueCurrentEnergy current_energy = 15;
APLValueCurrentComboPoints current_combo_points = 16;
APLValueTimeToEnergyTick time_to_energy_tick = 66;
- APLValueEnergyThreshold energy_threshold = 73;
+ APLValueEnergyThreshold energy_threshold = 72;
// GCD values
APLValueGCDIsReady gcd_is_ready = 17;
@@ -129,7 +129,7 @@ message APLValue {
APLValueSpellTimeToReady spell_time_to_ready = 21;
APLValueSpellCastTime spell_cast_time = 35;
APLValueSpellTravelTime spell_travel_time = 37;
- APLValueSpellInFlight spell_in_flight = 74;
+ APLValueSpellInFlight spell_in_flight = 73;
APLValueSpellCPM spell_cpm = 42;
APLValueSpellIsChanneling spell_is_channeling = 56;
APLValueSpellChanneledTicks spell_channeled_ticks = 57;
@@ -145,8 +145,8 @@ message APLValue {
APLValueAuraICDIsReadyWithReactionTime aura_icd_is_ready_with_reaction_time = 51;
APLValueAuraShouldRefresh aura_should_refresh = 43;
- // Rune values
- APLValueRuneIsEquipped rune_is_equipped = 69;
+ // Rune values TODO: remove once APLs for classes are updated
+ APLValueRuneIsEquipped rune_is_equipped = 74;
// Dot values
APLValueDotIsActive dot_is_active = 6;
@@ -170,9 +170,9 @@ message APLValue {
// Warlock
APLValueWarlockShouldRecastDrainSoul warlock_should_recast_drain_soul = 59;
APLValueWarlockShouldRefreshCorruption warlock_should_refresh_corruption = 60;
- APLValueWarlockCurrentPetMana warlock_current_pet_mana = 70;
- APLValueWarlockCurrentPetManaPercent warlock_current_pet_mana_percent = 71;
- APLValueWarlockPetIsActive warlock_pet_is_active = 72;
+ APLValueWarlockCurrentPetMana warlock_current_pet_mana = 69;
+ APLValueWarlockCurrentPetManaPercent warlock_current_pet_mana_percent = 70;
+ APLValueWarlockPetIsActive warlock_pet_is_active = 71;
// Paladin
APLValueCurrentSealRemainingTime current_seal_remaining_time = 65;
}
@@ -489,6 +489,7 @@ message APLValueAuraShouldRefresh {
APLValue max_overlap = 3;
}
+// TODO: remove once APLs for classes are updated
message APLValueRuneIsEquipped {
ActionID rune_id = 1;
}
diff --git a/proto/common.proto b/proto/common.proto
index f32c20e03..0f88ca3f5 100644
--- a/proto/common.proto
+++ b/proto/common.proto
@@ -127,7 +127,7 @@ enum Stat {
// between the UI and backend.
//
// It's also OK to include things here which aren't in the PseudoStats struct.
-// NextIndex: 32
+// NextIndex: 31
enum PseudoStat {
PseudoStatMainHandDps = 0;
PseudoStatOffHandDps = 1;
@@ -135,7 +135,7 @@ enum PseudoStat {
PseudoStatBlockValueMultiplier = 3;
PseudoStatDodge = 4;
PseudoStatParry = 5;
- BonusPhysicalDamage = 31;
+ BonusPhysicalDamage = 30;
// Melee Weapon Skill
PseudoStatUnarmedSkill = 6;
@@ -168,9 +168,6 @@ enum PseudoStat {
PseudoStatMeleeSpeedMultiplier = 27;
PseudoStatRangedSpeedMultiplier = 28;
PseudoStatBlockValuePerStrength = 29;
-
- // Special Pseudostats
- TimewornBonus = 30;
}
message UnitStats {
@@ -316,7 +313,6 @@ enum TristateEffect {
enum SapperExplosive {
SapperUnknown = 0;
SapperGoblinSapper = 1;
- SapperFumigator = 2;
}
enum Explosive {
@@ -324,10 +320,7 @@ enum Explosive {
ExplosiveSolidDynamite = 1;
ExplosiveDenseDynamite = 2;
ExplosiveThoriumGrenade = 3;
- ExplosiveEzThroRadiationBomb = 4;
- ExplosiveHighYieldRadiationBomb = 5;
- ExplosiveGoblinLandMine = 6;
- ExplosiveObsidianBomb = 7;
+ ExplosiveGoblinLandMine = 4;
}
// NextIndex: 28
@@ -374,19 +367,9 @@ enum Conjured {
ConjuredDemonicRune = 2;
ConjuredRogueThistleTea = 3;
- ConjuredHealthstone = 7;
- ConjuredGreaterHealthstone = 8;
- ConjuredMajorHealthstone = 9;
-
- ConjuredDruidCatnip = 4 [deprecated = true];
-}
-
-enum EnchantedSigil {
- UnknownSigil = 0;
- InnovationSigil = 1;
- LivingDreamsSigil = 2;
- FlowingWatersSigil = 3;
- WrathOfTheStormSigil = 4;
+ ConjuredHealthstone = 4;
+ ConjuredGreaterHealthstone = 5;
+ ConjuredMajorHealthstone = 6;
}
enum Flask {
@@ -395,12 +378,6 @@ enum Flask {
FlaskOfDistilledWisdom = 2;
FlaskOfSupremePower = 3;
FlaskOfChromaticResistance = 4;
- FlaskOfRestlessDreams = 5;
- FlaskOfEverlastingNightmares = 6;
- FlaskOfMadness = 7;
- FlaskOfUnyieldingSorrow = 8;
- FlaskOfAncientKnowledge = 9;
- FlaskOfTheOldGods = 10;
}
enum Alcohol {
@@ -419,7 +396,6 @@ enum AgilityElixir {
ElixirOfLesserAgility = 3;
ScrollOfAgility = 4;
ElixirOfAgility = 5;
- ElixirOfTheHoneyBadger = 6;
}
enum ArmorElixir {
@@ -429,7 +405,6 @@ enum ArmorElixir {
ElixirOfDefense = 3;
ElixirOfMinorDefense = 4;
ScrollOfProtection = 5;
- ElixirOfTheIronside = 6;
}
enum HealthElixir {
@@ -462,7 +437,6 @@ enum SpellPowerBuff {
ArcaneElixir = 1;
GreaterArcaneElixir = 2;
LesserArcaneElixir = 3;
- ElixirOfTheMageLord = 4;
}
enum ShadowPowerBuff {
@@ -491,26 +465,15 @@ enum ZanzaBuff {
CerebralCortexCompound = 6;
GizzardGum = 7;
LungJuiceCocktail = 8;
- AtalaiMojoOfWar = 9;
- AtalaiMojoOfForbiddenMagic = 10;
- AtalaiMojoOfLife = 11;
-}
-
-enum AtalaiMojo {
- AtalaiMojoUnknown = 0;
- MojoOfWar = 1;
- MojoOfForbiddenMagic = 2;
- MojoOfLife = 3;
}
message MiscConsumes {
bool bogling_root = 1;
bool elixir_of_coalesced_regret = 2;
- bool catnip = 3;
- bool juju_ember = 4;
- bool juju_chill = 5;
- bool juju_escape = 6;
- bool juju_flurry = 7;
+ bool juju_ember = 3;
+ bool juju_chill = 4;
+ bool juju_escape = 5;
+ bool juju_flurry = 6;
}
message PetMiscConsumes {
@@ -536,18 +499,15 @@ enum WeaponImbue {
LesserWizardOil = 14;
WizardOil = 20;
BrilliantWizardOil = 2;
- EnchantedRepellent = 30;
MinorManaOil = 15;
LesserManaOil = 16;
BrilliantManaOil = 1;
- BlackfathomManaOil = 5;
// Sharpening Stones
SolidSharpeningStone = 17;
DenseSharpeningStone = 3;
ElementalSharpeningStone = 4;
- BlackfathomSharpeningStone = 6;
// Weightstones
SolidWeightstone = 18;
@@ -558,7 +518,6 @@ enum WeaponImbue {
FrostOil = 22;
// Windfury Imbues
- WildStrikes = 7;
Windfury = 8;
// Shaman imbues
@@ -568,15 +527,9 @@ enum WeaponImbue {
WindfuryWeapon = 12;
// Rogue imbues
- InstantPoison = 23;
- DeadlyPoison = 24;
- WoundPoison = 25;
- OccultPoison = 27;
- SebaciousPoison = 28;
-
- // Shield Oil
- ConductiveShieldCoating = 26;
- MagnificentTrollshine = 29;
+ InstantPoison = 5;
+ DeadlyPoison = 6;
+ WoundPoison = 7;
}
// NextIndex: 13
@@ -605,7 +558,7 @@ enum SaygesFortune {
}
// Buffs that affect the entire raid.
-// NextIndex: 44
+// NextIndex: 36
message RaidBuffs {
// +Stats
TristateEffect gift_of_the_wild = 1;
@@ -640,17 +593,16 @@ message RaidBuffs {
// mp5
TristateEffect mana_spring_totem = 14;
TristateEffect blessing_of_wisdom = 15;
- int32 vampiric_touch = 41;
// Resistances
bool shadow_protection = 16;
- bool shadow_resistance_aura = 39;
+ bool shadow_resistance_aura = 35;
bool nature_resistance_totem = 17;
bool aspect_of_the_wild = 18;
bool frost_resistance_aura = 19;
bool frost_resistance_totem = 20;
bool fire_resistance_totem = 21;
- bool fire_resistance_aura = 35;
+ bool fire_resistance_aura = 32;
// Scroll
bool scroll_of_protection = 26;
@@ -660,22 +612,13 @@ message RaidBuffs {
bool scroll_of_intellect = 30;
bool scroll_of_spirit = 31;
- // SoD Runes
- int32 demonic_pact = 32;
- bool horn_of_lordaeron = 33;
- bool aspect_of_the_lion = 34;
- bool commanding_shout = 38;
-
// Miscellaneous
TristateEffect thorns = 22;
TristateEffect devotion_aura = 23;
TristateEffect stoneskin_totem = 24;
TristateEffect retribution_aura = 25;
- bool sanctity_aura = 36;
- int32 battle_squawk = 37;
- bool improved_stoneskin_windwall = 40;
- bool flowing_waters_sigil = 42;
- bool spirit_of_the_alpha = 43;
+ bool sanctity_aura = 33;
+ int32 battle_squawk = 34;
}
// Buffs that affect a single party.
@@ -689,9 +632,9 @@ message PartyBuffs {
}
// These are usually individual actions taken by other Characters.
-// NextIndex: 22
+// NextIndex: 16
message IndividualBuffs {
- reserved 20;
+ reserved 15;
reserved "dragonslayer_buff";
bool blessing_of_kings = 1;
@@ -703,91 +646,72 @@ message IndividualBuffs {
// World Buffs
bool rallying_cry_of_the_dragonslayer = 7;
- bool valor_of_azeroth = 21;
SaygesFortune sayges_fortune = 8;
bool spirit_of_zandalar = 9;
bool songflower_serenade = 10;
bool warchiefs_blessing = 11;
- bool might_of_stormwind = 19;
// Dire Maul Buffs
bool fengus_ferocity = 12;
bool moldars_moxie = 13;
bool slipkiks_savvy = 14;
-
- // New SoD Buffs
- bool boon_of_blackfathom = 15;
- bool ashenvale_pvp_buff = 16;
- bool spark_of_inspiration = 17;
- bool fervor_of_the_temple_explorer = 18;
}
// NextIndex: 34
message Consumes {
Flask flask = 1;
Food food = 2;
- AgilityElixir agility_elixir = 5;
- ManaRegenElixir mana_regen_elixir = 6;
- StrengthBuff strength_buff = 7;
- AttackPowerBuff attack_power_buff = 8;
- SpellPowerBuff spell_power_buff = 9;
- ShadowPowerBuff shadow_power_buff = 10;
- FirePowerBuff fire_power_buff = 11;
- FrostPowerBuff frost_power_buff = 12;
- SapperExplosive sapper_explosive = 34;
- Explosive filler_explosive = 14;
- WeaponImbue main_hand_imbue = 15;
- WeaponImbue off_hand_imbue = 16;
- Potions default_potion = 17;
- Conjured default_conjured = 18;
- EnchantedSigil enchanted_sigil = 20;
- bool mildly_irradiated_rejuv_pot = 21;
- int32 pet_agility_consumable = 22;
- int32 pet_strength_consumable = 23;
- int32 pet_attack_power_consumable = 31;
- PetMiscConsumes pet_misc_consumes = 33;
- bool dragon_breath_chili = 24;
- MiscConsumes misc_consumes = 26;
- ZanzaBuff zanza_buff = 27;
- ArmorElixir armor_elixir = 28;
- HealthElixir health_elixir = 29;
- Alcohol alcohol = 30;
- MageScroll mage_scroll = 32;
-
- AtalaiMojo atalai_mojo = 25 [deprecated=true];
- bool bogling_root = 19 [deprecated=true];
-}
-
-// NextIndex: 41
+ AgilityElixir agility_elixir = 3;
+ ManaRegenElixir mana_regen_elixir = 4;
+ StrengthBuff strength_buff = 5;
+ AttackPowerBuff attack_power_buff = 6;
+ SpellPowerBuff spell_power_buff = 7;
+ ShadowPowerBuff shadow_power_buff = 8;
+ FirePowerBuff fire_power_buff = 9;
+ FrostPowerBuff frost_power_buff = 10;
+ Explosive filler_explosive = 11;
+ WeaponImbue main_hand_imbue = 12;
+ WeaponImbue off_hand_imbue = 13;
+ Potions default_potion = 14;
+ Conjured default_conjured = 15;
+ bool bogling_root = 16 [deprecated=true];
+ int32 pet_agility_consumable = 17;
+ int32 pet_strength_consumable = 18;
+ bool dragon_breath_chili = 19;
+ MiscConsumes misc_consumes = 20;
+ ZanzaBuff zanza_buff = 21;
+ ArmorElixir armor_elixir = 22;
+ HealthElixir health_elixir = 23;
+ Alcohol alcohol = 24;
+ int32 pet_attack_power_consumable = 25;
+ MageScroll mage_scroll = 26;
+ PetMiscConsumes pet_misc_consumes = 27;
+ SapperExplosive sapper_explosive = 28;
+}
+
+// NextIndex: 26
message Debuffs {
bool judgement_of_wisdom = 1;
bool judgement_of_light = 2;
- TristateEffect judgement_of_the_crusader = 33;
+ TristateEffect judgement_of_the_crusader = 25;
bool faerie_fire = 3;
// Warlock Spell DamageCurses
bool curse_of_elements = 4;
bool curse_of_shadow = 5;
- bool mark_of_chaos = 37;
-
- // Bonus Spell Damage
- bool occult_poison = 38;
bool winters_chill = 6;
bool improved_shadow_bolt = 7;
bool improved_scorch = 8;
- bool shadow_weaving = 26;
- bool stormstrike = 27;
- bool dreamstate = 28;
+ bool shadow_weaving = 22;
+ bool stormstrike = 23;
// Major armor
TristateEffect expose_armor = 10;
bool sunder_armor = 11;
- int32 homunculi = 22; // between 0 and 100, represents average uptime percentage
- TristateEffect sebacious_poison = 39;
TristateEffect curse_of_weakness = 12;
bool curse_of_recklessness = 13;
@@ -796,32 +720,17 @@ message Debuffs {
TristateEffect demoralizing_shout = 15;
TristateEffect thunder_clap = 16;
- bool waylay = 34;
- bool thunderfury = 40;
+ bool thunderfury = 24;
bool insect_swarm = 17;
bool scorpid_sting = 18;
- bool vampiric_embrace = 19;
-
- TristateEffect hunters_mark = 20;
- // ArP items
-
- // Bleed
- bool mangle = 25;
+ TristateEffect hunters_mark = 19;
// Misc Debuffs
bool gift_of_arthas = 9;
- bool curse_of_vulnerability = 23;
- bool crystal_yield = 21;
- int32 ancient_corrosive_poison = 24; // between 0 and 100, represents average uptime percentage
- bool mekkatorque_fist_debuff = 29;
- bool serpents_striker_fist_debuff = 30;
- bool improved_faerie_fire = 36; // Provided by Tier 1 Feral set bonus
- bool melee_hunter_dodge_debuff = 41; // Provided by Tier 1 Melee Hunter set bonus
-
- TristateEffect curse_of_elements_new = 31 [deprecated=true];
- TristateEffect curse_of_shadow_new = 32 [deprecated=true];
+ bool curse_of_vulnerability = 21;
+ bool crystal_yield = 20;
}
enum MobType {
@@ -919,7 +828,6 @@ message ItemSpec {
int32 id = 2;
int32 random_suffix = 6;
int32 enchant = 3;
- int32 rune = 5;
}
message EquipmentSpec {
@@ -930,11 +838,10 @@ message SimDatabase {
repeated SimItem items = 1;
repeated ItemRandomSuffix random_suffixes = 5;
repeated SimEnchant enchants = 2;
- repeated SimRune runes = 4;
}
// Contains only the Item info needed by the sim.
-// NextIndex: 21
+// NextIndex: 20
message SimItem {
int32 id = 1;
int32 requires_level = 16;
@@ -952,13 +859,11 @@ message SimItem {
double weapon_damage_min = 11;
double weapon_damage_max = 12;
double weapon_speed = 13;
- double bonus_physical_damage = 20;
+ double bonus_physical_damage = 19;
string set_name = 14;
int32 set_id = 18;
repeated double weapon_skills = 15;
-
- bool timeworn = 19;
}
// Extra enum for describing which items are eligible for an enchant, when
@@ -977,10 +882,6 @@ message SimEnchant {
repeated double stats = 2;
}
-message SimRune {
- int32 id = 1;
-}
-
message UnitReference {
enum Type {
Unknown = 0;
@@ -1095,23 +996,3 @@ message ItemSwap {
message Duration {
double ms = 1;
}
-
-enum RingRune {
- RuneRingNone = 0;
-
- RuneRingArcaneSpecialization = 442893;
- RuneRingAxeSpecialization = 442876;
- RuneRingDaggerSpecialization = 442887;
- RuneRingDefenseSpecialization = 459312;
- RuneRingFeralCombatSpecialization = 453622;
- RuneRingFireSpecialization = 442894;
- RuneRingFistWeaponSpecialization = 442890;
- RuneRingFrostSpecialization = 442895;
- RuneRingHolySpecialization = 442898;
- RuneRingMaceSpecialization = 442881;
- RuneRingNatureSpecialization = 442896;
- RuneRingPoleWeaponSpecialization = 442892;
- RuneRingRangedWeaponSpecialization = 442891;
- RuneRingShadowSpecialization = 442897;
- RuneRingSwordSpecialization = 442813;
-}
diff --git a/proto/ui.proto b/proto/ui.proto
index f029b6bfd..89a96f262 100644
--- a/proto/ui.proto
+++ b/proto/ui.proto
@@ -11,14 +11,13 @@ import "paladin.proto";
// Holds all WoW data for the UI.
message UIDatabase {
repeated UIItem items = 1;
- repeated ItemRandomSuffix random_suffixes = 11;
+ repeated ItemRandomSuffix random_suffixes = 10;
repeated UIEnchant enchants = 2;
- repeated UIRune runes = 10;
repeated PresetEncounter encounters = 6;
repeated UIZone zones = 8;
repeated UINPC npcs = 9;
- repeated UIFaction factions = 12;
+ repeated UIFaction factions = 11;
// Entities for which we just need a name/icon.
repeated IconData item_icons = 4;
@@ -44,7 +43,7 @@ message UIFaction {
// Contains all information about an Item needed by the UI.
// Generally this will include everything needed by the sim, plus some
// additional data for displaying / filtering.
-// NextIndex: 32
+// NextIndex: 31
message UIItem {
int32 id = 1;
string name = 2;
@@ -65,14 +64,13 @@ message UIItem {
double weapon_damage_max = 14;
double weapon_speed = 15;
repeated double weapon_skills = 28;
- double bonus_physical_damage = 31;
+ double bonus_physical_damage = 30;
int32 ilvl = 16;
int32 phase = 17;
ItemQuality quality = 18;
bool unique = 19;
bool heroic = 20;
- bool timeworn = 30;
// Classes that are allowed to use the item. Empty indicates no special class restrictions.
repeated Class class_allowlist = 21;
@@ -181,18 +179,6 @@ message UIEnchant {
int32 requires_level = 14;
}
-message UIRune {
- reserved 4;
- reserved "class";
-
- int32 id = 1;
- string name = 2;
- string icon = 3;
- ItemType type = 5;
- int32 requires_level = 6;
- repeated Class class_allowlist = 7;
-}
-
message IconData {
int32 id = 1;
string name = 2;
@@ -259,7 +245,7 @@ enum ExcludedZones {
ZoneNaxxramas = 3456;
}
-// Next tag: 24
+// Next tag: 23
message DatabaseFilters {
repeated ArmorType armor_types = 1;
repeated WeaponType weapon_types = 2;
@@ -267,8 +253,8 @@ message DatabaseFilters {
repeated SourceFilterOption sources = 17;
repeated RaidFilterOption raids = 18;
UIItem.FactionRestriction faction_restriction = 19;
- int32 min_ilvl = 22;
- int32 max_ilvl = 23;
+ int32 min_ilvl = 21;
+ int32 max_ilvl = 22;
double min_mh_weapon_speed = 4;
double max_mh_weapon_speed = 5;
@@ -284,8 +270,7 @@ message DatabaseFilters {
repeated int32 favorite_items = 11;
// Uniquely-identifying strings for favorited enchants.
repeated string favorite_enchants = 13;
- repeated int32 favorite_runes = 20;
- repeated int32 favorite_random_suffixes = 21;
+ repeated int32 favorite_random_suffixes = 20;
}
message SimSettings {
diff --git a/schemas/gear.schema.json b/schemas/gear.schema.json
index b88058069..62bb0fd90 100644
--- a/schemas/gear.schema.json
+++ b/schemas/gear.schema.json
@@ -11,8 +11,7 @@
"type": "object",
"properties": {
"id": "number",
- "enchant": "number",
- "rune": "number"
+ "enchant": "number"
}
}
}
diff --git a/sim/common/sod/item_effects/phase_2.go b/sim/common/sod/item_effects/phase_2.go
index 71624a7ed..23385c0ea 100644
--- a/sim/common/sod/item_effects/phase_2.go
+++ b/sim/common/sod/item_effects/phase_2.go
@@ -359,7 +359,7 @@ func init() {
// Mekkatorque's Arcano-Shredder
itemhelpers.CreateWeaponProcSpell(MekkatorquesArcanoShredder, "Mekkatorque", 5.0, func(character *core.Character) *core.Spell {
- procAuras := character.NewEnemyAuraArray(core.MekkatorqueFistDebuffAura)
+ //procAuras := character.NewEnemyAuraArray(core.MekkatorqueFistDebuffAura)
return character.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 434841},
@@ -374,7 +374,7 @@ func init() {
ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) {
if target.Level <= 45 {
spell.CalcAndDealDamage(sim, target, 30, spell.OutcomeMagicHitAndCrit)
- procAuras.Get(target).Activate(sim)
+ //procAuras.Get(target).Activate(sim)
}
},
})
diff --git a/sim/common/sod/item_effects/phase_3.go b/sim/common/sod/item_effects/phase_3.go
index 952980dd6..ff438f6a8 100644
--- a/sim/common/sod/item_effects/phase_3.go
+++ b/sim/common/sod/item_effects/phase_3.go
@@ -483,7 +483,7 @@ func init() {
})
serpentsStrikerEffect := func(character *core.Character) *core.Spell {
- procAuras := character.NewEnemyAuraArray(core.SerpentsStrikerFistDebuffAura)
+ //procAuras := character.NewEnemyAuraArray(core.SerpentsStrikerFistDebuffAura)
return character.RegisterSpell(core.SpellConfig{
ActionID: core.ActionID{SpellID: 447894},
@@ -500,7 +500,7 @@ func init() {
if target.Level <= 55 {
spell.CalcAndDealDamage(sim, target, 50, spell.OutcomeMagicHitAndCrit)
- procAuras.Get(target).Activate(sim)
+ //procAuras.Get(target).Activate(sim)
}
},
})
diff --git a/sim/common/sod/item_effects/phase_5.go b/sim/common/sod/item_effects/phase_5.go
index 6bd9008bf..cea2000dc 100644
--- a/sim/common/sod/item_effects/phase_5.go
+++ b/sim/common/sod/item_effects/phase_5.go
@@ -268,7 +268,7 @@ func ClawOfChromaggusEffect(character *core.Character) {
fireChance, frostChance, shadowChance = 0.50/3, 0.50/3, 0.50/3
case proto.Class_ClassMage:
// The weapon's effect for mage is specialized, based off of selected runes
- if character.HasRuneById(int32(proto.MageRune_RuneBeltFrostfireBolt)) {
+ /* if character.HasRuneById(int32(proto.MageRune_RuneBeltFrostfireBolt)) {
fireChance, frostChance = 0.25, 0.25
arcaneChance, natureChance, shadowChance = 0.50/3, 0.50/3, 0.50/3
} else if character.HasRuneById(int32(proto.MageRune_RuneBeltSpellfrostBolt)) {
@@ -277,7 +277,7 @@ func ClawOfChromaggusEffect(character *core.Character) {
} else if character.HasRuneById(int32(proto.MageRune_RuneBeltMissileBarrage)) {
arcaneChance = 0.50
fireChance, frostChance, natureChance, shadowChance = 0.125, 0.125, 0.125, 0.125
- }
+ } */
case proto.Class_ClassPriest:
// Confirmed 50% proc chance for Shadow and the other 50% divided among the other 4 schools
shadowChance = 0.50
@@ -287,11 +287,11 @@ func ClawOfChromaggusEffect(character *core.Character) {
fireChance, natureChance = 0.25, 0.25
arcaneChance, frostChance, shadowChance = 0.50/3, 0.50/3, 0.50/3
case proto.Class_ClassWarlock:
- if character.HasRuneById(int32(proto.WarlockRune_RuneBracerIncinerate)) {
+ /* if character.HasRuneById(int32(proto.WarlockRune_RuneBracerIncinerate)) {
// Confirmed 50% Fire, 50% divided among the other 4
fireChance = 0.50
arcaneChance, frostChance, natureChance, shadowChance = 0.125, 0.125, 0.125, 0.125
- } else {
+ } else */{
// Confirmed 50% Shadow, 50% divided among the other 4
shadowChance = 0.50
arcaneChance, fireChance, frostChance, natureChance = 0.125, 0.125, 0.125, 0.125
diff --git a/sim/common/sod/item_effects/phase_6.go b/sim/common/sod/item_effects/phase_6.go
index 08f1b1c18..175bacf9d 100644
--- a/sim/common/sod/item_effects/phase_6.go
+++ b/sim/common/sod/item_effects/phase_6.go
@@ -168,7 +168,7 @@ func init() {
})
// https://www.wowhead.com/classic/item=234198/signet-ring-of-the-bronze-dragonflight
- core.NewItemEffect(SignetRingBronzeConquerorR5, TimeswornStrikeAura)
+ /* core.NewItemEffect(SignetRingBronzeConquerorR5, TimeswornStrikeAura)
core.NewItemEffect(SignetRingBronzeConquerorR4, TimeswornStrikeAura)
core.NewItemEffect(SignetRingBronzeConquerorR3, TimeswornStrikeAura)
core.NewItemEffect(SignetRingBronzeConquerorR2, TimeswornStrikeAura)
@@ -214,7 +214,7 @@ func init() {
core.NewItemEffect(SignetRingBronzeSubjugatorR4, TimewornDecayAura)
core.NewItemEffect(SignetRingBronzeSubjugatorR3, TimewornDecayAura)
core.NewItemEffect(SignetRingBronzeSubjugatorR2, TimewornDecayAura)
- core.NewItemEffect(SignetRingBronzeSubjugatorR1, TimewornDecayAura)
+ core.NewItemEffect(SignetRingBronzeSubjugatorR1, TimewornDecayAura) */
///////////////////////////////////////////////////////////////////////////
// Other
@@ -340,7 +340,7 @@ func ObsidianEdgedAura(itemID int32, agent core.Agent) {
// https://www.wowhead.com/classic/spell=1214155/timeworn-decay
// Increases the damage dealt by all of your damage over time spells by 2% per piece of Timeworn armor equipped.
-func TimewornDecayAura(agent core.Agent) {
+/* func TimewornDecayAura(agent core.Agent) {
character := agent.GetCharacter()
if character.PseudoStats.TimewornBonus == 0 {
return
@@ -530,3 +530,4 @@ func TimeswornStrikeAura(agent core.Agent) {
},
})
}
+*/
diff --git a/sim/core/agent.go b/sim/core/agent.go
index 1c0778aed..92f8e5696 100644
--- a/sim/core/agent.go
+++ b/sim/core/agent.go
@@ -24,10 +24,9 @@ type Agent interface {
// Updates the input Buffs to include party-wide buffs provided by this Agent.
AddPartyBuffs(partyBuffs *proto.PartyBuffs)
- // All talent and runes stats / auras should be added within this callback. This makes sure
+ // All talent stats / auras should be added within this callback. This makes sure
// talents are applied at the right time so we can calculate groups of stats.
ApplyTalents()
- ApplyRunes()
// Returns this Agent to its initial state. Called before each Sim iteration
// and once after the final iteration.
diff --git a/sim/core/apl_value.go b/sim/core/apl_value.go
index c1933adf3..3c75cf6e0 100644
--- a/sim/core/apl_value.go
+++ b/sim/core/apl_value.go
@@ -168,10 +168,6 @@ func (rot *APLRotation) newAPLValue(config *proto.APLValue) APLValue {
case *proto.APLValue_AuraShouldRefresh:
return rot.newValueAuraShouldRefresh(config.GetAuraShouldRefresh())
- // Runes
- case *proto.APLValue_RuneIsEquipped:
- return rot.newValueRuneIsEquipped(config.GetRuneIsEquipped())
-
// Dots
case *proto.APLValue_DotIsActive:
return rot.newValueDotIsActive(config.GetDotIsActive())
diff --git a/sim/core/apl_values_rune.go b/sim/core/apl_values_rune.go
deleted file mode 100644
index 378d2a166..000000000
--- a/sim/core/apl_values_rune.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package core
-
-import (
- "fmt"
- "slices"
-
- "github.com/wowsims/classic/sim/core/proto"
-)
-
-type APLRune struct {
- id int32
- equipped bool
-}
-
-type APLValueRuneIsEquipped struct {
- DefaultAPLValueImpl
- character *Character
- rune APLRune
-}
-
-func (rot *APLRotation) newValueRuneIsEquipped(config *proto.APLValueRuneIsEquipped) APLValue {
- character := rot.unit.Env.Raid.GetPlayerFromUnit(rot.unit).GetCharacter()
- spellId := config.GetRuneId().GetSpellId()
- rune := APLRune{id: spellId, equipped: slices.Contains(character.Equipment.GetRuneIds(), spellId)}
-
- return &APLValueRuneIsEquipped{
- character: character,
- rune: rune,
- }
-}
-func (value *APLValueRuneIsEquipped) Type() proto.APLValueType {
- return proto.APLValueType_ValueTypeBool
-}
-func (value *APLValueRuneIsEquipped) GetBool(sim *Simulation) bool {
- return value.rune.equipped
-}
-func (value *APLValueRuneIsEquipped) String() string {
- return fmt.Sprintf("Rune Equipped(%d)", value.rune.id)
-}
diff --git a/sim/core/buffs.go b/sim/core/buffs.go
index abbc0e786..fd5b16204 100644
--- a/sim/core/buffs.go
+++ b/sim/core/buffs.go
@@ -661,10 +661,6 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
})
}
- if raidBuffs.SpiritOfTheAlpha {
- SpiritOfTheAlphaAura(&character.Unit)
- }
-
if raidBuffs.TrueshotAura {
TrueshotAura(&character.Unit)
}
@@ -685,9 +681,6 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
updateStats = updateStats.Multiply(1.3).Floor()
}
character.AddStats(updateStats)
- } else if raidBuffs.CommandingShout {
- updateStats := BuffSpellByLevel[CommandingShout][level]
- character.AddStats(updateStats)
}
if raidBuffs.ShadowResistanceAura {
@@ -706,10 +699,7 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
character.AddStats(BuffSpellByLevel[ScrollOfSpirit][level])
}
- // Heart of the Lion grants bonus Melee AP as well so give it priority over kings
- if raidBuffs.AspectOfTheLion {
- HeartOfTheLionAura(character)
- } else if individualBuffs.BlessingOfKings && isAlliance {
+ if individualBuffs.BlessingOfKings && isAlliance {
MakePermanent(BlessingOfKingsAura(character))
}
@@ -732,11 +722,6 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
MakePermanent(StoneskinTotemAura(&character.Unit, GetTristateValueInt32(raidBuffs.StoneskinTotem, 0, 2)))
}
- if raidBuffs.ImprovedStoneskinWindwall && isHorde {
- MakePermanent(ImprovedStoneskinTotemAura(&character.Unit))
- MakePermanent(ImprovedWindwallTotemAura(&character.Unit))
- }
-
if raidBuffs.RetributionAura != proto.TristateEffect_TristateEffectMissing && isAlliance {
RetributionAura(character, GetTristateValueInt32(raidBuffs.RetributionAura, 0, 2))
}
@@ -745,23 +730,10 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
MakePermanent(BattleShoutAura(&character.Unit, GetTristateValueInt32(raidBuffs.BattleShout, 0, 5), 0))
}
- if raidBuffs.HornOfLordaeron && isAlliance {
- MakePermanent(HornOfLordaeronAura(&character.Unit, level))
- } else if individualBuffs.BlessingOfMight != proto.TristateEffect_TristateEffectMissing && isAlliance {
+ if individualBuffs.BlessingOfMight != proto.TristateEffect_TristateEffectMissing && isAlliance {
MakePermanent(BlessingOfMightAura(&character.Unit, GetTristateValueInt32(individualBuffs.BlessingOfMight, 0, 5), level))
}
- if raidBuffs.DemonicPact > 0 {
- power := raidBuffs.DemonicPact
- dpAura := DemonicPactAura(&character.Unit, float64(power), CharacterBuildPhaseBuffs)
- dpAura.ExclusiveEffects[0].Priority = float64(power)
- dpAura.OnReset = func(aura *Aura, sim *Simulation) {
- aura.Activate(sim)
- aura.SetStacks(sim, power)
- }
- MakePermanent(dpAura)
- }
-
if raidBuffs.StrengthOfEarthTotem != proto.TristateEffect_TristateEffectMissing && isHorde {
multiplier := GetTristateValueFloat(raidBuffs.StrengthOfEarthTotem, 1, 1.15)
MakePermanent(StrengthOfEarthTotemAura(&character.Unit, level, multiplier))
@@ -786,11 +758,6 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
character.AddStats(updateStats)
}
- if raidBuffs.VampiricTouch > 0 {
- mp5 := float64(raidBuffs.VampiricTouch)
- MakePermanent(VampiricTouchMP5Aura(&character.Unit, mp5))
- }
-
if raidBuffs.BattleSquawk > 0 {
numBattleSquawks := raidBuffs.BattleSquawk
BattleSquawkAura(&character.Unit, numBattleSquawks)
@@ -827,23 +794,6 @@ func applyBuffEffects(agent Agent, playerFaction proto.Faction, raidBuffs *proto
ApplySaygesFortunes(character, individualBuffs.SaygesFortune)
}
- // SoD World Buffs
- if individualBuffs.FervorOfTheTempleExplorer {
- ApplyFervorOfTheTempleExplorer(&character.Unit)
- }
-
- if individualBuffs.SparkOfInspiration {
- ApplySparkOfInspiration(&character.Unit)
- }
-
- if individualBuffs.BoonOfBlackfathom {
- ApplyBoonOfBlackfathom(&character.Unit)
- }
-
- if individualBuffs.AshenvalePvpBuff {
- ApplyAshenvaleRallyingCry(&character.Unit)
- }
-
// TODO: Classic provide in APL?
registerPowerInfusionCD(agent, individualBuffs.PowerInfusions)
registerManaTideTotemCD(agent, partyBuffs.ManaTideTotems)
@@ -876,15 +826,11 @@ func applyPetBuffEffects(petAgent PetAgent, playerFaction proto.Faction, raidBuf
// Pets only receive Onyxia, Rend, and ZG buffs because they're globally applied in their respective zones
// SoD versions were removed from pets though
- individualBuffs.AshenvalePvpBuff = false
- individualBuffs.BoonOfBlackfathom = false
individualBuffs.FengusFerocity = false
- individualBuffs.FervorOfTheTempleExplorer = false
individualBuffs.MoldarsMoxie = false
individualBuffs.SaygesFortune = proto.SaygesFortune_SaygesUnknown
individualBuffs.SongflowerSerenade = false
individualBuffs.SlipkiksSavvy = false
- individualBuffs.SparkOfInspiration = false
applyBuffEffects(petAgent, playerFaction, raidBuffs, partyBuffs, individualBuffs)
}
@@ -944,51 +890,6 @@ func BlessingOfKingsAura(character *Character) *Aura {
}))
}
-func HeartOfTheLionAura(character *Character) *Aura {
- modAP := float64(40 + 4*(character.Level-20))
- statDeps := []*stats.StatDependency{
- character.NewDynamicMultiplyStat(stats.Stamina, 1.10),
- character.NewDynamicMultiplyStat(stats.Agility, 1.10),
- character.NewDynamicMultiplyStat(stats.Strength, 1.10),
- character.NewDynamicMultiplyStat(stats.Intellect, 1.10),
- character.NewDynamicMultiplyStat(stats.Spirit, 1.10),
- }
-
- return MakePermanent(character.RegisterAura(Aura{
- Label: "Heart of the Lion",
- ActionID: ActionID{SpellID: 409583},
- BuildPhase: CharacterBuildPhaseBuffs,
- OnGain: func(aura *Aura, sim *Simulation) {
- character.AddStatDynamic(sim, stats.AttackPower, modAP)
- character.AddStatDynamic(sim, stats.RangedAttackPower, modAP)
-
- if aura.Unit.Env.MeasuringStats && aura.Unit.Env.State != Finalized {
- for _, dep := range statDeps {
- aura.Unit.StatDependencyManager.EnableDynamicStatDep(dep)
- }
- } else {
- for _, dep := range statDeps {
- aura.Unit.EnableDynamicStatDep(sim, dep)
- }
- }
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- character.AddStatDynamic(sim, stats.AttackPower, -modAP)
- character.AddStatDynamic(sim, stats.RangedAttackPower, -modAP)
-
- if aura.Unit.Env.MeasuringStats && aura.Unit.Env.State != Finalized {
- for _, dep := range statDeps {
- aura.Unit.StatDependencyManager.DisableDynamicStatDep(dep)
- }
- } else {
- for _, dep := range statDeps {
- aura.Unit.DisableDynamicStatDep(sim, dep)
- }
- }
- },
- }))
-}
-
// TODO: Classic
func InspirationAura(unit *Unit, points int32) *Aura {
multiplier := 1 - []float64{0, .03, .07, .10}[points]
@@ -1075,36 +976,6 @@ func StoneskinTotemAura(unit *Unit, points int32) *Aura {
})
}
-// https://www.wowhead.com/classic/spell=457544/s03-item-t1-shaman-tank-6p-bonus
-// Your Stoneskin Totem also reduces Physical damage taken by 5% and your Windwall Totem also reduces Magical damage taken by 5%.
-// Restricting to level 60 only
-func ImprovedStoneskinTotemAura(unit *Unit) *Aura {
- return unit.GetOrRegisterAura(Aura{
- Label: "Improved Stoneskin",
- ActionID: ActionID{SpellID: 457544}.WithTag(1),
- Duration: time.Minute * 2,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexPhysical] *= .95
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexPhysical] /= .95
- },
- })
-}
-func ImprovedWindwallTotemAura(unit *Unit) *Aura {
- return unit.GetOrRegisterAura(Aura{
- Label: "Improved Windwall",
- ActionID: ActionID{SpellID: 457544}.WithTag(2),
- Duration: time.Minute * 2,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier.MultiplyMagicSchools(0.95)
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier.MultiplyMagicSchools(1 / 0.95)
- },
- })
-}
-
func RetributionAura(character *Character, points int32) *Aura {
level := character.Level
spellID := map[int32]int32{
@@ -1885,18 +1756,6 @@ const ReplenishmentAuraDuration = time.Second * 15
// return unit.ReplenishmentAura
// }
-func DemonicPactAura(unit *Unit, spellpower float64, buildPhase CharacterBuildPhase) *Aura {
- aura := unit.GetOrRegisterAura(Aura{
- Label: "Demonic Pact",
- ActionID: ActionID{SpellID: 425464},
- Duration: time.Second * 45,
- MaxStacks: 10000,
- BuildPhase: buildPhase,
- })
- spellPowerBonusEffect(aura, spellpower)
- return aura
-}
-
func spellPowerBonusEffect(aura *Aura, spellPowerBonus float64) *ExclusiveEffect {
return aura.NewExclusiveEffect("SpellPowerBonus", false, ExclusiveEffect{
Priority: spellPowerBonus,
@@ -2000,19 +1859,6 @@ func BattleShoutAura(unit *Unit, impBattleShout int32, boomingVoicePts int32) *A
})
}
-func SpiritOfTheAlphaAura(unit *Unit) *Aura {
- return MakePermanent(unit.GetOrRegisterAura(Aura{
- Label: "Spirit of the Alpha",
- ActionID: ActionID{SpellID: int32(proto.ShamanRune_RuneFeetSpiritOfTheAlpha)},
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.ThreatMultiplier *= 1.45
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.ThreatMultiplier /= 1.45
- },
- }))
-}
-
func TrueshotAura(unit *Unit) *Aura {
if unit.Level < 40 {
return nil
@@ -2072,25 +1918,6 @@ func BlessingOfMightAura(unit *Unit, impBomPts int32, level int32) *Aura {
return aura
}
-func HornOfLordaeronAura(unit *Unit, level int32) *Aura {
- updateStats := BuffSpellByLevel[HornOfLordaeron][level]
-
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Horn Of Lordaeron",
- ActionID: ActionID{SpellID: 425600},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: "Paladin Physical Buffs",
- Stats: []StatConfig{
- {stats.Agility, updateStats[stats.Agility], false},
- {stats.Strength, updateStats[stats.Strength], false},
- },
- })
-
- return aura
-}
-
// TODO: Are there exclusive AP buffs in SoD?
// func attackPowerBonusEffect(aura *Aura, apBonus float64) *ExclusiveEffect {
// return aura.NewExclusiveEffect("AttackPowerBonus", false, ExclusiveEffect{
@@ -2110,30 +1937,6 @@ func HornOfLordaeronAura(unit *Unit, level int32) *Aura {
// })
// }
-func VampiricTouchMP5Aura(unit *Unit, mp5 float64) *Aura {
- actionID := ActionID{SpellID: 402779}.WithTag(1)
- mps := mp5 / 5
-
- manaMetrics := unit.NewManaMetrics(actionID)
- aura := unit.GetOrRegisterAura(Aura{
- Label: "Vampiric Touch Replenishment",
- ActionID: actionID,
- Duration: NeverExpires,
- BuildPhase: CharacterBuildPhaseBuffs,
- OnReset: func(aura *Aura, sim *Simulation) {
- StartPeriodicAction(sim, PeriodicActionOptions{
- Period: time.Second * 1,
- Priority: ActionPriorityDOT, // High prio
- OnAction: func(sim *Simulation) {
- unit.AddMana(sim, mps, manaMetrics)
- },
- })
- },
- })
-
- return aura
-}
-
func BattleSquawkAura(character *Unit, stackcount int32) *Aura {
aura := character.GetOrRegisterAura(Aura{
Label: "Battle Squawk",
@@ -2243,12 +2046,6 @@ func GetWildStrikesAP(aura *Aura, rank int32) float64 {
return 0.2 * aura.Unit.GetStat(stats.AttackPower)
}
-func ApplyWildStrikes(character *Character) *Aura {
- buffActionID := ActionID{SpellID: 407975}
-
- return CreateExtraAttackAuraCommon(character, buffActionID, "Wild Strikes", 1, GetWildStrikesAP)
-}
-
const WindfuryRanks = 3
var (
@@ -2283,9 +2080,6 @@ func ApplyDragonslayerBuffs(unit *Unit, buffs *proto.IndividualBuffs) {
if buffs.RallyingCryOfTheDragonslayer {
ApplyRallyingCryOfTheDragonslayer(unit, eeCategory)
}
- if buffs.ValorOfAzeroth {
- ApplyValorOfAzeroth(unit, eeCategory)
- }
}
func ApplyRallyingCryOfTheDragonslayer(unit *Unit, category string) {
@@ -2306,25 +2100,6 @@ func ApplyRallyingCryOfTheDragonslayer(unit *Unit, category string) {
})
}
-func ApplyValorOfAzeroth(unit *Unit, category string) {
- bonusAP := float64(unit.Level) * 1.5
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Valor of Azeroth",
- ActionID: ActionID{SpellID: 461475},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: category,
- Stats: []StatConfig{
- {stats.SpellCrit, 5 * SpellCritRatingPerCritChance, false},
- {stats.MeleeCrit, 5 * CritRatingPerCritChance, false},
- // TODO: {stats.RangedCrit, 5*CritRatingPerCritChance, false},
- {stats.AttackPower, bonusAP, false},
- {stats.RangedAttackPower, bonusAP, false},
- },
- })
-}
-
func ApplySpiritOfZandalar(unit *Unit) {
aura := MakePermanent(unit.RegisterAura(Aura{
Label: "Spirit of Zandalar",
@@ -2371,9 +2146,6 @@ func ApplyWarchiefsBuffs(unit *Unit, buffs *proto.IndividualBuffs, isAlliance bo
if buffs.WarchiefsBlessing && isHorde {
ApplyWarchiefsBlessing(unit, "WarchiefsBuff")
}
- if buffs.MightOfStormwind && isAlliance {
- ApplyMightOfStormwind(unit, "WarchiefsBuff")
- }
}
func ApplyWarchiefsBlessing(unit *Unit, category string) {
@@ -2397,27 +2169,6 @@ func ApplyWarchiefsBlessing(unit *Unit, category string) {
})
}
-func ApplyMightOfStormwind(unit *Unit, category string) {
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Might of Stormwind",
- ActionID: ActionID{SpellID: 460940},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: category,
- Stats: []StatConfig{
- {stats.Health, 300, false},
- {stats.MP5, 10, false},
- },
- ExtraOnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.MeleeSpeedMultiplier *= 1.15
- },
- ExtraOnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.MeleeSpeedMultiplier /= 1.15
- },
- })
-}
-
func ApplyFengusFerocity(unit *Unit) {
aura := MakePermanent(unit.RegisterAura(Aura{
Label: "Fengus' Ferocity",
@@ -2517,105 +2268,6 @@ func ApplySaygesFortunes(character *Character, fortune proto.SaygesFortune) {
makeExclusiveBuff(aura, config)
}
-func ApplyFervorOfTheTempleExplorer(unit *Unit) {
- if unit.Level > 59 {
- return
- }
-
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Fervor of the Temple Explorer",
- ActionID: ActionID{SpellID: 446695},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: "FervorOfTheTempleExplorer",
- Stats: []StatConfig{
- {stats.Agility, 1.08, true},
- {stats.Intellect, 1.08, true},
- {stats.Spirit, 1.08, true},
- {stats.Stamina, 1.08, true},
- {stats.Strength, 1.08, true},
- {stats.MeleeCrit, 5 * CritRatingPerCritChance, false},
- // TODO: {stats.RangedCrit, 5*CritRatingPerCritChance, false},
- {stats.SpellCrit, 5 * SpellCritRatingPerCritChance, false},
- {stats.SpellDamage, 65, false},
- },
- })
-}
-
-func ApplySparkOfInspiration(unit *Unit) {
- if unit.Level > 49 {
- return
- }
-
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Spark of Inspiration",
- ActionID: ActionID{SpellID: 438536},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: "SparkOfInspiration",
- Stats: []StatConfig{
- {stats.SpellCrit, 4 * SpellCritRatingPerCritChance, false},
- {stats.SpellPower, 42, false},
- },
- ExtraOnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.MeleeSpeedMultiplier *= 1.1
- aura.Unit.PseudoStats.RangedSpeedMultiplier *= 1.1
- },
- ExtraOnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.MeleeSpeedMultiplier /= 1.1
- aura.Unit.PseudoStats.RangedSpeedMultiplier /= 1.1
- },
- })
-}
-
-func ApplyBoonOfBlackfathom(unit *Unit) {
- if unit.Level > 39 {
- return
- }
-
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Boon of Blackfathom",
- ActionID: ActionID{SpellID: 430947},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: "BoonOfBlackfathom",
- Stats: []StatConfig{
- {stats.MeleeCrit, 2 * CritRatingPerCritChance, false},
- // TODO: {stats.RangedCrit, 2 * CritRatingPerCritChance, false},
- {stats.SpellHit, 3 * SpellHitRatingPerHitChance, false},
- {stats.AttackPower, 20, false},
- {stats.RangedAttackPower, 20, false},
- {stats.SpellPower, 25, false},
- },
- })
-}
-
-func ApplyAshenvaleRallyingCry(unit *Unit) {
- if unit.Level > 39 {
- return
- }
-
- aura := MakePermanent(unit.RegisterAura(Aura{
- Label: "Ashenvale Rallying Cry",
- ActionID: ActionID{SpellID: 430352},
- }))
-
- makeExclusiveBuff(aura, BuffConfig{
- Category: "AshenvaleRallyingCry",
- ExtraOnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.DamageDealtMultiplier *= 1.05
- aura.Unit.PseudoStats.HealingDealtMultiplier *= 1.05
- },
- ExtraOnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.DamageDealtMultiplier /= 1.05
- aura.Unit.PseudoStats.HealingDealtMultiplier /= 1.05
- },
- })
-}
-
///////////////////////////////////////////////////////////////////////////
// Misc Other Buffs
///////////////////////////////////////////////////////////////////////////
diff --git a/sim/core/character.go b/sim/core/character.go
index 6d5f373e7..5bc365cb8 100644
--- a/sim/core/character.go
+++ b/sim/core/character.go
@@ -70,7 +70,6 @@ type Character struct {
professions [2]proto.Profession
- runesMap map[int32]bool
PrimaryTalentTree uint8
// Provides major cooldown management behavior.
@@ -139,13 +138,6 @@ func NewCharacter(party *Party, partyIndex int, player *proto.Player) Character
character.Label = fmt.Sprintf("%s (#%d)", character.Name, character.Index+1)
- character.runesMap = map[int32]bool{}
- for _, v := range character.Equipment {
- if v.Rune != 0 {
- character.runesMap[v.Rune] = true
- }
- }
-
character.PrimaryTalentTree = GetPrimaryTalentTreeIndex(player.TalentsString)
character.Consumes = &proto.Consumes{}
@@ -190,7 +182,6 @@ func NewCharacter(party *Party, partyIndex int, player *proto.Player) Character
character.PseudoStats.CrossbowsSkill += ps[proto.PseudoStat_PseudoStatCrossbowsSkill]
character.PseudoStats.GunsSkill += ps[proto.PseudoStat_PseudoStatGunsSkill]
character.PseudoStats.BonusPhysicalDamage += ps[proto.PseudoStat_BonusPhysicalDamage]
- character.PseudoStats.TimewornBonus += int32(ps[proto.PseudoStat_TimewornBonus])
}
}
@@ -253,10 +244,6 @@ func (character *Character) BaseEquipStats() stats.Stats {
return bonusEquipStats.DotProduct(character.itemStatMultipliers)
}
-func (character *Character) HasRuneById(id int32) bool {
- return character.runesMap[id]
-}
-
func (character *Character) applyEquipment() {
if character.equipStatsApplied {
panic("Equipment stats already applied to character!")
@@ -265,10 +252,6 @@ func (character *Character) applyEquipment() {
character.equipStatsApplied = true
for _, item := range character.Equipment {
- if item.Timeworn {
- character.PseudoStats.TimewornBonus += 1
- }
-
character.PseudoStats.BonusPhysicalDamage += item.BonusPhysicalDamage
}
@@ -324,14 +307,12 @@ func (character *Character) applyAllEffects(agent Agent, raidBuffs *proto.RaidBu
character.applyEquipment()
character.applyWeaponSkills()
- character.ApplyRingRunes()
character.applyItemEffects(agent)
character.applyItemSetBonusEffects(agent)
character.applyBuildPhaseAuras(CharacterBuildPhaseGear)
playerStats.GearStats = measureStats()
agent.ApplyTalents()
- agent.ApplyRunes()
character.applyBuildPhaseAuras(CharacterBuildPhaseTalents)
playerStats.TalentsStats = measureStats()
@@ -641,7 +622,6 @@ func (character *Character) GetPseudoStatsProto() []float64 {
proto.PseudoStat_PseudoStatRangedSpeedMultiplier: float64(character.PseudoStats.RangedSpeedMultiplier),
proto.PseudoStat_PseudoStatBlockValuePerStrength: float64(character.PseudoStats.BlockValuePerStrength),
- proto.PseudoStat_TimewornBonus: float64(character.PseudoStats.TimewornBonus),
proto.PseudoStat_BonusPhysicalDamage: float64(character.PseudoStats.BonusPhysicalDamage),
}
}
@@ -693,82 +673,6 @@ func (character *Character) SetShapeshift(aura *Aura) {
character.ActiveShapeShift = aura
}
-func (c *Character) ApplyRingRunes() {
- // Spell School Specializations
- if c.HasRuneById(int32(proto.RingRune_RuneRingArcaneSpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexArcane] += 6
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingFireSpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexFire] += 6
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingFrostSpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexFrost] += 6
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingHolySpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexHoly] += 6
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingNatureSpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexNature] += 6
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingShadowSpecialization)) {
- c.PseudoStats.SchoolBonusHitChance[stats.SchoolIndexShadow] += 6
- }
-
- // Weapon Skill Specializations
- if c.HasRuneById(int32(proto.RingRune_RuneRingAxeSpecialization)) {
- c.AxeSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingDaggerSpecialization)) {
- c.DaggerSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingFistWeaponSpecialization)) {
- c.FistWeaponSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingMaceSpecialization)) {
- c.MaceSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingPoleWeaponSpecialization)) {
- c.PoleWeaponSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingRangedWeaponSpecialization)) {
- c.GunSpecializationAura()
- c.BowSpecializationAura()
- c.CrossbowSpecializationAura()
- c.ThrownSpecializationAura()
-
- // Also increases chance for Beast pets to hit by 2%
- for _, pet := range c.Pets {
- if !pet.IsGuardian() && pet.Unit.MobType == proto.MobType_MobTypeBeast {
- pet.AddStat(stats.MeleeHit, 2*MeleeHitRatingPerHitChance)
- pet.AddStat(stats.SpellHit, 2*SpellHitRatingPerHitChance)
- }
- }
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingSwordSpecialization)) {
- c.SwordSpecializationAura()
- }
-
- if c.HasRuneById(int32(proto.RingRune_RuneRingFeralCombatSpecialization)) {
- c.FeralCombatSpecializationAura()
- }
-
- // Other Specializations
- if c.HasRuneById(int32(proto.RingRune_RuneRingDefenseSpecialization)) {
- c.AddStat(stats.Defense, 25)
- }
-}
-
// Returns the talent tree (0, 1, or 2) of the tree with the most points.
//
// talentStr is expected to be a wowhead-formatted talent string, e.g.
diff --git a/sim/core/consumes.go b/sim/core/consumes.go
index 842d7dc25..389de3bc2 100644
--- a/sim/core/consumes.go
+++ b/sim/core/consumes.go
@@ -25,11 +25,9 @@ func applyConsumeEffects(agent Agent) {
applySpellBuffConsumes(character, consumes)
applyZanzaBuffConsumes(character, consumes)
applyMiscConsumes(character, consumes.MiscConsumes)
- applyEnchantingConsumes(character, consumes)
registerPotionCD(agent, consumes)
registerConjuredCD(agent, consumes)
- registerMildlyIrradiatedRejuvCD(agent, consumes)
registerExplosivesCD(agent, consumes)
}
@@ -53,21 +51,6 @@ func applyFlaskConsumes(character *Character, consumes *proto.Consumes) {
character.AddStats(stats.Stats{
stats.Mana: 2000,
})
- case proto.Flask_FlaskOfUnyieldingSorrow:
- character.AddStats(stats.Stats{
- stats.SpellDamage: 27,
- stats.HealingPower: 80,
- stats.MP5: 12,
- })
- case proto.Flask_FlaskOfAncientKnowledge:
- character.AddStats(stats.Stats{
- stats.SpellPower: 180,
- })
- case proto.Flask_FlaskOfTheOldGods:
- character.AddStats(stats.Stats{
- stats.Stamina: 100,
- stats.Defense: 10,
- })
case proto.Flask_FlaskOfSupremePower:
character.AddStats(stats.Stats{
stats.SpellPower: 150,
@@ -78,23 +61,6 @@ func applyFlaskConsumes(character *Character, consumes *proto.Consumes) {
})
case proto.Flask_FlaskOfChromaticResistance:
character.AddResistances(25)
- case proto.Flask_FlaskOfRestlessDreams:
- character.AddStats(stats.Stats{
- // +30 Spell Damage, +45 Healing Power, +12 MP5
- stats.SpellDamage: 30,
- stats.HealingPower: 15,
- stats.MP5: 12,
- })
- case proto.Flask_FlaskOfEverlastingNightmares:
- character.AddStats(stats.Stats{
- stats.AttackPower: 45,
- stats.RangedAttackPower: 45,
- })
- case proto.Flask_FlaskOfMadness:
- character.AddStats(stats.Stats{
- stats.AttackPower: 50,
- stats.RangedAttackPower: 50,
- })
}
}
@@ -138,11 +104,6 @@ func addImbueStats(character *Character, imbue proto.WeaponImbue, isMh bool, sha
stats.SpellPower: 36,
stats.SpellCrit: 1 * SpellCritRatingPerCritChance,
})
- case proto.WeaponImbue_EnchantedRepellent:
- character.AddStats(stats.Stats{
- stats.SpellPower: 45,
- stats.SpellCrit: 1 * SpellCritRatingPerCritChance,
- })
// Mana Oils
case proto.WeaponImbue_MinorManaOil:
@@ -158,20 +119,6 @@ func addImbueStats(character *Character, imbue proto.WeaponImbue, isMh bool, sha
stats.MP5: 12,
stats.HealingPower: 25,
})
- case proto.WeaponImbue_BlackfathomManaOil:
- character.AddStats(stats.Stats{
- stats.MP5: 12,
- stats.SpellHit: 2 * SpellHitRatingPerHitChance,
- })
-
- // Shield Oil
- case proto.WeaponImbue_ConductiveShieldCoating:
- character.AddStat(stats.SpellPower, 24)
- case proto.WeaponImbue_MagnificentTrollshine:
- character.AddStats(stats.Stats{
- stats.SpellPower: 36,
- stats.SpellCrit: 1 * CritRatingPerCritChance,
- })
// Sharpening Stones
case proto.WeaponImbue_SolidSharpeningStone:
@@ -192,10 +139,6 @@ func addImbueStats(character *Character, imbue proto.WeaponImbue, isMh bool, sha
character.AddStats(stats.Stats{
stats.MeleeCrit: 2 * CritRatingPerCritChance,
})
- case proto.WeaponImbue_BlackfathomSharpeningStone:
- character.AddStats(stats.Stats{
- stats.MeleeHit: 2 * MeleeHitRatingPerHitChance,
- })
// Weightstones
case proto.WeaponImbue_SolidWeightstone:
@@ -214,11 +157,6 @@ func addImbueStats(character *Character, imbue proto.WeaponImbue, isMh bool, sha
weapon.BaseDamageMax += 8
// Windfury
- case proto.WeaponImbue_WildStrikes:
- //protect against double application if wild strikes is selected by a feral in sim settings
- if !character.HasRuneById(int32(proto.DruidRune_RuneChestWildStrikes)) {
- ApplyWildStrikes(character)
- }
case proto.WeaponImbue_Windfury:
ApplyWindfury(character)
case proto.WeaponImbue_ShadowOil:
@@ -461,12 +399,6 @@ func DragonBreathChiliAura(character *Character) *Aura {
func applyDefensiveBuffConsumes(character *Character, consumes *proto.Consumes) {
if consumes.ArmorElixir != proto.ArmorElixir_ArmorElixirUnknown {
switch consumes.ArmorElixir {
- case proto.ArmorElixir_ElixirOfTheIronside:
- character.AddStats(stats.Stats{
- stats.BonusArmor: 350,
- stats.Defense: 5,
- stats.NatureResistance: 15,
- })
case proto.ArmorElixir_ElixirOfSuperiorDefense:
character.AddStats(stats.Stats{
stats.BonusArmor: 450,
@@ -523,12 +455,6 @@ func applyPhysicalBuffConsumes(character *Character, consumes *proto.Consumes) {
if consumes.AgilityElixir != proto.AgilityElixir_AgilityElixirUnknown {
switch consumes.AgilityElixir {
- case proto.AgilityElixir_ElixirOfTheHoneyBadger:
- character.AddStats(stats.Stats{
- stats.Agility: 30,
- stats.MeleeCrit: 2 * CritRatingPerCritChance,
- stats.NatureResistance: 15,
- })
case proto.AgilityElixir_ElixirOfTheMongoose:
character.AddStats(stats.Stats{
stats.Agility: 25,
@@ -590,11 +516,6 @@ func applySpellBuffConsumes(character *Character, consumes *proto.Consumes) {
character.AddStats(stats.Stats{
stats.SpellDamage: 35,
})
- case proto.SpellPowerBuff_ElixirOfTheMageLord:
- character.AddStats(stats.Stats{
- stats.SpellDamage: 40,
- stats.NatureResistance: 15,
- })
}
}
@@ -674,96 +595,6 @@ func applyZanzaBuffConsumes(character *Character, consumes *proto.Consumes) {
character.AddStats(stats.Stats{
stats.Stamina: 25,
})
- case proto.ZanzaBuff_AtalaiMojoOfWar:
- if character.Level == 50 {
- character.AddStats(stats.Stats{
- stats.AttackPower: 48,
- stats.RangedAttackPower: 48,
- })
- ApplyAtalAiProc(character, consumes.ZanzaBuff)
- }
- case proto.ZanzaBuff_AtalaiMojoOfForbiddenMagic:
- if character.Level == 50 {
- character.AddStats(stats.Stats{
- stats.SpellPower: 40,
- })
- ApplyAtalAiProc(character, consumes.ZanzaBuff)
- }
- case proto.ZanzaBuff_AtalaiMojoOfLife:
- if character.Level == 50 {
- character.AddStats(stats.Stats{
- stats.HealingPower: 45,
- stats.MP5: 11,
- })
- ApplyAtalAiProc(character, consumes.ZanzaBuff)
- }
- }
-}
-
-func ApplyAtalAiProc(character *Character, atalaiBuff proto.ZanzaBuff) {
- icd := Cooldown{
- Timer: character.NewTimer(),
- Duration: time.Second * 40,
- }
-
- switch atalaiBuff {
- case proto.ZanzaBuff_AtalaiMojoOfWar:
- procAuraStr := character.NewTemporaryStatsAura("Voodoo Frenzy Str Proc", ActionID{SpellID: 446335}, stats.Stats{stats.Strength: 35}, time.Second*10)
- procAuraAgi := character.NewTemporaryStatsAura("Voodoo Frenzy Agi Proc", ActionID{SpellID: 449409}, stats.Stats{stats.Agility: 35}, time.Second*10)
- procAuraStr.Icd = &icd
- procAuraAgi.Icd = &icd
-
- MakePermanent(character.RegisterAura(Aura{
- Label: "Voodoo Frenzy",
- OnSpellHitDealt: func(aura *Aura, sim *Simulation, spell *Spell, result *SpellResult) {
- if !result.Landed() || !spell.ProcMask.Matches(ProcMaskMeleeOrRanged) || !icd.IsReady(sim) {
- return
- }
-
- if sim.Proc(0.15, "Voodoo Frenzy") {
- icd.Use(sim)
-
- if aura.Unit.GetStat(stats.Strength) > aura.Unit.GetStat(stats.Agility) {
- procAuraStr.Activate(sim)
- } else {
- procAuraAgi.Activate(sim)
- }
- }
- },
- }))
- case proto.ZanzaBuff_AtalaiMojoOfForbiddenMagic:
- procSpell := character.RegisterSpell(SpellConfig{
- ActionID: ActionID{SpellID: 446258},
- SpellSchool: SpellSchoolShadow,
- ProcMask: ProcMaskEmpty,
- DefenseType: DefenseTypeMagic,
-
- DamageMultiplier: 1,
- ThreatMultiplier: 1,
- BonusCoefficient: 0.56,
-
- ApplyEffects: func(sim *Simulation, target *Unit, spell *Spell) {
- dmg := sim.Roll(204, 236)
- spell.CalcAndDealDamage(sim, target, dmg, spell.OutcomeMagicCrit) // TODO: Verify if it rolls miss? Most procs dont so we have it like this
- },
- })
-
- MakePermanent(character.RegisterAura(Aura{
- Label: "Forbidden Magic",
- OnSpellHitDealt: func(aura *Aura, sim *Simulation, spell *Spell, result *SpellResult) {
- if !result.Landed() || !spell.ProcMask.Matches(ProcMaskSpellDamage) || !icd.IsReady(sim) {
- return
- }
-
- if sim.Proc(0.25, "Forbidden Magic") {
- icd.Use(sim)
- procSpell.Cast(sim, character.CurrentTarget)
- }
- },
- }))
- case proto.ZanzaBuff_AtalaiMojoOfLife:
- // TODO: Your heals have a chance to restore 8 Energy, 1% Mana, or 4 Rage
- // This is also shared with the Darkmoon Card: Overgrowth trinket but unsure if they stack or not
}
}
@@ -874,56 +705,15 @@ func applyMiscConsumes(character *Character, miscConsumes *proto.MiscConsumes) {
}
}
-///////////////////////////////////////////////////////////////////////////
-// Enchanting Consumes
-///////////////////////////////////////////////////////////////////////////
-
-func applyEnchantingConsumes(character *Character, consumes *proto.Consumes) {
- switch consumes.EnchantedSigil {
- case proto.EnchantedSigil_InnovationSigil:
- character.AddStats(stats.Stats{
- stats.AttackPower: 20,
- stats.RangedAttackPower: 20,
- stats.SpellPower: 20,
- })
- case proto.EnchantedSigil_LivingDreamsSigil:
- character.AddStats(stats.Stats{
- stats.AttackPower: 30,
- stats.RangedAttackPower: 30,
- stats.SpellPower: 30,
- })
- case proto.EnchantedSigil_FlowingWatersSigil:
- for _, player := range character.Env.Raid.AllPlayerUnits {
- player.AddStats(stats.Stats{
- stats.AttackPower: 30,
- stats.RangedAttackPower: 30,
- stats.SpellPower: 30,
- })
- }
- case proto.EnchantedSigil_WrathOfTheStormSigil:
- for _, player := range character.Env.Raid.AllPlayerUnits {
- player.AddStats(stats.Stats{
- stats.AttackPower: 40,
- stats.RangedAttackPower: 40,
- stats.SpellPower: 40,
- })
- }
- }
-}
-
///////////////////////////////////////////////////////////////////////////
// Engineering Explosives
///////////////////////////////////////////////////////////////////////////
var SapperActionID = ActionID{ItemID: 10646}
-var FumigatorActionID = ActionID{ItemID: 233985}
var SolidDynamiteActionID = ActionID{ItemID: 10507}
var DenseDynamiteActionID = ActionID{ItemID: 18641}
var ThoriumGrenadeActionID = ActionID{ItemID: 15993}
-var EzThroRadiationBombActionID = ActionID{ItemID: 215168}
-var HighYieldRadiationBombActionID = ActionID{ItemID: 215127}
var GoblinLandMineActionID = ActionID{ItemID: 4395}
-var ObsidianBombActionID = ActionID{ItemID: 233986}
func registerExplosivesCD(agent Agent, consumes *proto.Consumes) {
character := agent.GetCharacter()
@@ -936,15 +726,13 @@ func registerExplosivesCD(agent Agent, consumes *proto.Consumes) {
sharedTimer := character.NewTimer()
if hasSapper {
- if consumes.SapperExplosive != proto.SapperExplosive_SapperFumigator && !character.HasProfession(proto.Profession_Engineering) {
+ if !character.HasProfession(proto.Profession_Engineering) {
return
}
var filler *Spell
switch consumes.SapperExplosive {
case proto.SapperExplosive_SapperGoblinSapper:
filler = character.newSapperSpell(sharedTimer)
- case proto.SapperExplosive_SapperFumigator:
- filler = character.newFumigatorSpell(sharedTimer)
}
character.AddMajorCooldown(MajorCooldown{
Spell: filler,
@@ -957,24 +745,18 @@ func registerExplosivesCD(agent Agent, consumes *proto.Consumes) {
}
if hasFiller {
- if consumes.FillerExplosive != proto.Explosive_ExplosiveEzThroRadiationBomb && !character.HasProfession(proto.Profession_Engineering) {
+ if !character.HasProfession(proto.Profession_Engineering) {
return
}
var filler *Spell
switch consumes.FillerExplosive {
- case proto.Explosive_ExplosiveObsidianBomb:
- filler = character.newObisidianBombSpell(sharedTimer)
case proto.Explosive_ExplosiveSolidDynamite:
filler = character.newSolidDynamiteSpell(sharedTimer)
case proto.Explosive_ExplosiveDenseDynamite:
filler = character.newDenseDynamiteSpell(sharedTimer)
case proto.Explosive_ExplosiveThoriumGrenade:
filler = character.newThoriumGrenadeSpell(sharedTimer)
- case proto.Explosive_ExplosiveEzThroRadiationBomb:
- filler = character.newEzThroRadiationBombSpell(sharedTimer)
- case proto.Explosive_ExplosiveHighYieldRadiationBomb:
- filler = character.newHighYieldRadiationBombSpell(sharedTimer)
case proto.Explosive_ExplosiveGoblinLandMine:
filler = character.newGoblinLandMineSpell(sharedTimer)
}
@@ -993,7 +775,7 @@ func registerExplosivesCD(agent Agent, consumes *proto.Consumes) {
// Creates a spell object for the common explosive case.
// TODO: create 10s delay on Goblin Landmine cast to damage
func (character *Character) newBasicExplosiveSpellConfig(sharedTimer *Timer, actionID ActionID, school SpellSchool, minDamage float64, maxDamage float64, cooldown Cooldown, selfMinDamage float64, selfMaxDamage float64) SpellConfig {
- isSapper := actionID.SameAction(SapperActionID) || actionID.SameAction(FumigatorActionID)
+ isSapper := actionID.SameAction(SapperActionID)
var defaultCast Cast
if !isSapper {
@@ -1045,13 +827,6 @@ func (character *Character) newSapperSpell(sharedTimer *Timer) *Spell {
return character.GetOrRegisterSpell(character.newBasicExplosiveSpellConfig(sharedTimer, SapperActionID, SpellSchoolFire, 450, 750, Cooldown{Timer: character.NewTimer(), Duration: time.Minute * 5}, 375, 625))
}
-// Needs testing for Silithid interaction if in raid
-func (character *Character) newFumigatorSpell(sharedTimer *Timer) *Spell {
- return character.GetOrRegisterSpell(character.newBasicExplosiveSpellConfig(sharedTimer, FumigatorActionID, SpellSchoolFire, 650, 950, Cooldown{Timer: character.NewTimer(), Duration: time.Minute * 5}, 475, 725))
-}
-func (character *Character) newObisidianBombSpell(sharedTimer *Timer) *Spell {
- return character.GetOrRegisterSpell(character.newBasicExplosiveSpellConfig(sharedTimer, ObsidianBombActionID, SpellSchoolFire, 530, 670, Cooldown{}, 0, 0))
-}
func (character *Character) newSolidDynamiteSpell(sharedTimer *Timer) *Spell {
return character.GetOrRegisterSpell(character.newBasicExplosiveSpellConfig(sharedTimer, SolidDynamiteActionID, SpellSchoolFire, 213, 287, Cooldown{}, 0, 0))
}
@@ -1139,12 +914,6 @@ func (character *Character) newRadiationBombSpellConfig(sharedTimer *Timer, acti
},
}
}
-func (character *Character) newEzThroRadiationBombSpell(sharedTimer *Timer) *Spell {
- return character.GetOrRegisterSpell(character.newRadiationBombSpellConfig(sharedTimer, EzThroRadiationBombActionID, 112, 188, 10, Cooldown{}))
-}
-func (character *Character) newHighYieldRadiationBombSpell(sharedTimer *Timer) *Spell {
- return character.GetOrRegisterSpell(character.newRadiationBombSpellConfig(sharedTimer, HighYieldRadiationBombActionID, 150, 250, 25, Cooldown{}))
-}
///////////////////////////////////////////////////////////////////////////
// Potions
@@ -1497,36 +1266,3 @@ func registerConjuredCD(agent Agent, consumes *proto.Consumes) {
character.AddMajorCooldown(mcd)
}
-
-func registerMildlyIrradiatedRejuvCD(agent Agent, consumes *proto.Consumes) {
- character := agent.GetCharacter()
-
- if consumes.MildlyIrradiatedRejuvPot {
- actionID := ActionID{ItemID: 215162}
- healthMetrics := character.NewHealthMetrics(actionID)
- manaMetrics := character.NewManaMetrics(actionID)
- aura := character.NewTemporaryStatsAura("Mildly Irradiated Rejuvenation Potion", actionID, stats.Stats{stats.AttackPower: 40, stats.SpellDamage: 35}, time.Second*20)
- character.AddMajorCooldown(MajorCooldown{
- Type: CooldownTypeDPS,
- Spell: character.GetOrRegisterSpell(SpellConfig{
- ActionID: actionID,
- Flags: SpellFlagNoOnCastComplete,
- Cast: CastConfig{
- CD: Cooldown{
- Timer: character.NewTimer(),
- Duration: time.Minute * 2,
- },
- },
- ApplyEffects: func(sim *Simulation, _ *Unit, _ *Spell) {
- healthGain := sim.RollWithLabel(340, 460, "Mildly Irradiated Rejuvenation Potion")
- manaGain := sim.RollWithLabel(262, 438, "Mildly Irradiated Rejuvenation Potion")
-
- character.GainHealth(sim, healthGain*character.PseudoStats.HealingTakenMultiplier, healthMetrics)
- character.AddMana(sim, manaGain, manaMetrics)
-
- aura.Activate(sim)
- },
- }),
- })
- }
-}
diff --git a/sim/core/database.go b/sim/core/database.go
index 4523af527..6cf27b8fb 100644
--- a/sim/core/database.go
+++ b/sim/core/database.go
@@ -66,12 +66,9 @@ type Item struct {
SetID int32 // 0 if not part of a set.
WeaponSkills stats.WeaponSkills
- Timeworn bool
-
// Modified for each instance of the item.
RandomSuffix RandomSuffix
Enchant Enchant
- Rune int32
//Internal use
TempEnchant int32
@@ -96,7 +93,6 @@ func ItemFromProto(pData *proto.SimItem) Item {
SetName: pData.SetName,
SetID: pData.SetId,
WeaponSkills: stats.WeaponSkillsFloatArray(pData.WeaponSkills),
- Timeworn: pData.Timeworn,
}
}
@@ -109,8 +105,6 @@ func (item *Item) ToItemSpecProto() *proto.ItemSpec {
Id: item.ID,
RandomSuffix: item.RandomSuffix.ID,
Enchant: item.Enchant.EffectID,
-
- Rune: item.Rune,
}
}
@@ -140,21 +134,10 @@ func EnchantFromProto(pData *proto.SimEnchant) Enchant {
}
}
-type Rune struct {
- ID int32
-}
-
-func RuneFromProto(pData *proto.SimRune) Rune {
- return Rune{
- ID: pData.Id,
- }
-}
-
type ItemSpec struct {
ID int32
RandomSuffix int32
Enchant int32
- Rune int32
}
type Equipment [proto.ItemSlot_ItemSlotRanged + 1]Item
@@ -249,7 +232,6 @@ func ProtoToEquipmentSpec(es *proto.EquipmentSpec) EquipmentSpec {
ID: item.Id,
RandomSuffix: item.RandomSuffix,
Enchant: item.Enchant,
- Rune: item.Rune,
}
}
return coreEquip
@@ -280,13 +262,6 @@ func NewItem(itemSpec ItemSpec) Item {
// }
}
- if itemSpec.Rune != 0 {
- item.Rune = itemSpec.Rune
- // if rune, ok := RuneBySpellID[itemSpec.Rune]; ok {
- // item.Rune = rune.ID
- // }
- }
-
return item
}
@@ -339,16 +314,6 @@ func (equipment *Equipment) BaseStats() stats.Stats {
return equipStats
}
-func (equipment *Equipment) GetRuneIds() []int32 {
- out := make([]int32, len(equipment))
- for _, v := range equipment {
- if v.Rune != 0 {
- out = append(out, v.Rune)
- }
- }
- return out
-}
-
func ItemTypeToSlot(it proto.ItemType) proto.ItemSlot {
switch it {
case proto.ItemType_ItemTypeHead:
diff --git a/sim/core/database_load.go b/sim/core/database_load.go
index 06a8b2c45..a2943360b 100644
--- a/sim/core/database_load.go
+++ b/sim/core/database_load.go
@@ -38,7 +38,6 @@ func init() {
SetName: item.SetName,
SetId: item.SetId,
WeaponSkills: item.WeaponSkills,
- Timeworn: item.Timeworn,
}
}
diff --git a/sim/core/debuffs.go b/sim/core/debuffs.go
index f21d0aeeb..13135db1f 100644
--- a/sim/core/debuffs.go
+++ b/sim/core/debuffs.go
@@ -62,40 +62,12 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
}, raid)
}
- if debuffs.OccultPoison {
- aura := OccultPoisonDebuffAura(target, level)
- SchedulePeriodicDebuffApplication(aura, PeriodicActionOptions{
- Period: time.Millisecond * 1500,
- NumTicks: 5,
- TickImmediately: true,
- Priority: ActionPriorityDOT, // High prio
- OnAction: func(sim *Simulation) {
- aura.Activate(sim)
- if aura.IsActive() {
- aura.AddStack(sim)
- }
- },
- }, raid)
+ if debuffs.CurseOfElements {
+ MakePermanent(CurseOfElementsAura(target, level))
}
- if debuffs.MekkatorqueFistDebuff {
- MakePermanent(MekkatorqueFistDebuffAura(target, level))
- }
-
- if debuffs.SerpentsStrikerFistDebuff {
- MakePermanent(SerpentsStrikerFistDebuffAura(target, level))
- }
-
- if debuffs.MarkOfChaos {
- MakePermanent(MarkOfChaosDebuffAura(target))
- } else {
- if debuffs.CurseOfElements {
- MakePermanent(CurseOfElementsAura(target, level))
- }
-
- if debuffs.CurseOfShadow {
- MakePermanent(CurseOfShadowAura(target, level))
- }
+ if debuffs.CurseOfShadow {
+ MakePermanent(CurseOfShadowAura(target, level))
}
if debuffs.ImprovedScorch && targetIdx == 0 {
@@ -132,8 +104,6 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
if debuffs.Stormstrike {
MakePermanent(StormstrikeAura(target))
- } else if debuffs.Dreamstate {
- MakePermanent(DreamstateAura(target))
}
if debuffs.GiftOfArthas {
@@ -144,18 +114,14 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
MakePermanent(CurseOfVulnerabilityAura(target))
}
- if debuffs.Mangle {
+ /* if debuffs.Mangle {
MakePermanent(MangleAura(target, level))
- }
+ } */
if debuffs.CrystalYield {
MakePermanent(CrystalYieldAura(target))
}
- if debuffs.AncientCorrosivePoison > 0 {
- ApplyFixedUptimeAura(AncientCorrosivePoisonAura(target), float64(debuffs.AncientCorrosivePoison)/100.0, GCDDefault, 1)
- }
-
// Major Armor Debuffs
if targetIdx == 0 {
if debuffs.ExposeArmor != proto.TristateEffect_TristateEffectMissing {
@@ -169,17 +135,6 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
}, raid)
}
- if debuffs.SebaciousPoison != proto.TristateEffect_TristateEffectMissing {
- aura := SebaciousPoisonAura(target, TernaryInt32(debuffs.SebaciousPoison == proto.TristateEffect_TristateEffectRegular, 0, 2), level)
- SchedulePeriodicDebuffApplication(aura, PeriodicActionOptions{
- Period: time.Second * 3,
- NumTicks: 1,
- OnAction: func(sim *Simulation) {
- aura.Activate(sim)
- },
- }, raid)
- }
-
if debuffs.SunderArmor {
// Sunder Armor
aura := SunderArmorAura(target, level)
@@ -196,33 +151,16 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
},
}, raid)
}
-
- if debuffs.Homunculi > 0 {
- // Calculate desired downtime based on selected uptimeCount (1 count = 10% uptime, 0%-100%)
- totalDuration := time.Second * 15
- uptimePercent := float64(debuffs.Homunculi) / 100.0
- ApplyFixedUptimeAura(HomunculiArmorAura(target, level), uptimePercent, totalDuration, 1)
- ApplyFixedUptimeAura(HomunculiAttackSpeedAura(target, level), uptimePercent, totalDuration, 1)
- ApplyFixedUptimeAura(HomunculiAttackPowerAura(target, level), uptimePercent, totalDuration, 1)
- }
}
if debuffs.CurseOfRecklessness {
MakePermanent(CurseOfRecklessnessAura(target, level))
}
- if debuffs.FaerieFire || debuffs.ImprovedFaerieFire {
+ if debuffs.FaerieFire {
MakePermanent(FaerieFireAura(target, level))
}
- if debuffs.ImprovedFaerieFire {
- MakePermanent(ImprovedFaerieFireAura(target))
- }
-
- if debuffs.MeleeHunterDodgeDebuff {
- MakePermanent(MeleeHunterDodgeReductionAura(target, level))
- }
-
if debuffs.CurseOfWeakness != proto.TristateEffect_TristateEffectMissing {
MakePermanent(CurseOfWeaknessAura(target, GetTristateValueInt32(debuffs.CurseOfWeakness, 0, 3), level))
}
@@ -241,9 +179,6 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, rai
if debuffs.ThunderClap != proto.TristateEffect_TristateEffectMissing {
MakePermanent(ThunderClapAura(target, 8205, time.Second*22, GetTristateValueInt32(debuffs.ThunderClap, 10, 16)))
}
- if debuffs.Waylay {
- MakePermanent(WaylayAura(target))
- }
if debuffs.Thunderfury {
MakePermanent(ThunderfuryASAura(target, level))
}
@@ -297,7 +232,7 @@ func exclusiveNatureDamageTakenAura(unit *Unit, label string, actionID ActionID)
func ExternalIsbCaster(_ *proto.Debuffs, target *Unit) {
isbConfig := target.Env.Raid.Parties[0].Players[0].GetCharacter().IsbConfig
- baseStacks := TernaryInt32(isbConfig.hasShadowflameRune, ISBNumStacksShadowflame, ISBNumStacksBase)
+ baseStacks := int32(ISBNumStacksBase)
isbAura := ImprovedShadowBoltAura(target, 5, baseStacks)
isbCrit := isbConfig.casterCrit / 100.0
var pa *PendingAction
@@ -326,7 +261,6 @@ func ExternalIsbCaster(_ *proto.Debuffs, target *Unit) {
}
type IsbConfig struct {
- hasShadowflameRune bool
shadowBoltFrequency float64
casterCrit float64
isbWarlocks int32
@@ -335,7 +269,6 @@ type IsbConfig struct {
func (character *Character) createIsbConfig(player *proto.Player) {
character.IsbConfig = IsbConfig{
- hasShadowflameRune: player.IsbUsingShadowflame,
shadowBoltFrequency: player.IsbSbFrequency,
casterCrit: player.IsbCrit,
isbWarlocks: player.IsbWarlocks,
@@ -354,8 +287,7 @@ func (character *Character) createIsbConfig(player *proto.Player) {
}
const (
- ISBNumStacksBase = 4
- ISBNumStacksShadowflame = 30
+ ISBNumStacksBase = 4
)
func ImprovedShadowBoltAura(unit *Unit, rank int32, stackCount int32) *Aura {
@@ -557,93 +489,6 @@ func JudgementOfTheCrusaderAura(caster *Unit, target *Unit, level int32, mult fl
})
}
-func OccultPoisonDebuffAura(target *Unit, playerLevel int32) *Aura {
- if playerLevel < 54 {
- panic("Occult Poison requires level 54+")
- }
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Occult Poison I",
- ActionID: ActionID{SpellID: 462286},
- Duration: time.Second * 12,
- MaxStacks: 5,
- OnStacksChange: func(aura *Aura, sim *Simulation, oldStacks int32, newStacks int32) {
- multiplier := (1 + .04*float64(newStacks)) / (1 + .04*float64(oldStacks))
-
- // Applies too all except Holy
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexArcane] *= multiplier
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexFire] *= multiplier
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexFrost] *= multiplier
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexNature] *= multiplier
- aura.Unit.PseudoStats.SchoolDamageTakenMultiplier[stats.SchoolIndexShadow] *= multiplier
- },
- })
-
- return aura
-}
-
-func MekkatorqueFistDebuffAura(target *Unit, playerLevel int32) *Aura {
- if playerLevel < 40 {
- panic("Mekkatorque's Arcano-Shredder requires level 40+")
- }
-
- spellID := 434841
- resistance := 45.0
- dmgMod := 1.06
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Mekkatorque Debuff",
- ActionID: ActionID{SpellID: int32(spellID)},
- Duration: time.Second * 20,
- })
-
- // 0.01 priority as this overwrites the other spells of this category and does not allow them to be recast
- spellSchoolDamageEffect(aura, stats.SchoolIndexArcane, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexFire, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexFrost, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexHoly, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexNature, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexShadow, dmgMod, 0.01, true)
-
- spellSchoolResistanceEffect(aura, stats.SchoolIndexArcane, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexFire, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexFrost, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexHoly, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexNature, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexShadow, resistance, 0.01, true)
-
- return aura
-}
-
-// Mark of Chaos does not stack with Curse of Shadows and Elements
-func MarkOfChaosDebuffAura(target *Unit) *Aura {
- // That's right, 10.01%. Sneaky enough to override lock curses without being much stronger
- dmgMod := 1.1001
- resistance := 75.01
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Mark of Chaos",
- ActionID: ActionID{SpellID: 461615},
- Duration: time.Second, // Duration is set by the applying curse
- })
-
- // Applies too all except Holy
- // 0.01 priority as this overwrites the other spells of this category and does not allow them to be recast
- spellSchoolDamageEffect(aura, stats.SchoolIndexArcane, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexFire, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexFrost, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexNature, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexShadow, dmgMod, 0.01, true)
-
- spellSchoolResistanceEffect(aura, stats.SchoolIndexArcane, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexFire, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexFrost, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexNature, resistance, 0.01, true)
- spellSchoolResistanceEffect(aura, stats.SchoolIndexShadow, resistance, 0.01, true)
-
- return aura
-}
-
func CurseOfElementsAura(target *Unit, playerLevel int32) *Aura {
if playerLevel < 40 {
return nil
@@ -953,89 +798,6 @@ func ExposeArmorAura(target *Unit, improvedEA int32, playerLevel int32) *Aura {
return aura
}
-func SebaciousPoisonAura(target *Unit, improvedEA int32, playerLevel int32) *Aura {
- if playerLevel < 60 {
- return nil
- }
-
- spellID := map[int32]int32{
- 60: 439462,
- }[playerLevel]
-
- arpen := map[int32]float64{
- 60: 1700,
- }[playerLevel]
-
- arpen *= []float64{1, 1.25, 1.5}[improvedEA]
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Sebacious Poison",
- ActionID: ActionID{SpellID: spellID},
- Duration: time.Second * 15,
- })
-
- aura.NewExclusiveEffect(majorArmorReductionEffectCategory, true, ExclusiveEffect{
- Priority: arpen,
- OnGain: func(ee *ExclusiveEffect, sim *Simulation) {
- aura.Unit.AddStatDynamic(sim, stats.Armor, -ee.Priority)
- },
- OnExpire: func(ee *ExclusiveEffect, sim *Simulation) {
- aura.Unit.AddStatDynamic(sim, stats.Armor, ee.Priority)
- },
- })
-
- return aura
-}
-
-func HomunculiAttackSpeedAura(target *Unit, _ int32) *Aura {
- multiplier := 1.1
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Cripple (Homunculus)",
- ActionID: ActionID{SpellID: 402808},
- Duration: time.Second * 15,
- })
-
- AtkSpeedReductionEffect(aura, multiplier)
- return aura
-}
-
-func HomunculiArmorAura(target *Unit, playerLevel int32) *Aura {
- arpen := float64(185 + 35*(playerLevel-1))
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Degrade (Homunculus)",
- ActionID: ActionID{SpellID: 402818},
- Duration: time.Second * 15,
- })
-
- aura.NewExclusiveEffect(majorArmorReductionEffectCategory, true, ExclusiveEffect{
- Priority: arpen,
- OnGain: func(ee *ExclusiveEffect, sim *Simulation) {
- aura.Unit.AddStatDynamic(sim, stats.Armor, -ee.Priority)
- },
- OnExpire: func(ee *ExclusiveEffect, sim *Simulation) {
- aura.Unit.AddStatDynamic(sim, stats.Armor, ee.Priority)
- },
- })
-
- return aura
-}
-
-func HomunculiAttackPowerAura(target *Unit, playerLevel int32) *Aura {
- ap := float64(190 + 3*(playerLevel-1))
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Demoralize (Homunculus)",
- ActionID: ActionID{SpellID: 402811},
- Duration: time.Second * 15,
- })
-
- apReductionEffect(aura, ap)
-
- return aura
-}
-
func CurseOfRecklessnessAura(target *Unit, playerLevel int32) *Aura {
spellID := map[int32]int32{
25: 704,
@@ -1124,36 +886,6 @@ func faerieFireAuraInternal(target *Unit, label string, spellID int32, playerLev
return aura
}
-func ImprovedFaerieFireAura(target *Unit) *Aura {
- return target.GetOrRegisterAura(Aura{
- Label: "S03 - Item - T1 - Druid - Feral 2P Bonus",
- ActionID: ActionID{SpellID: 455864},
- Duration: time.Second * 40,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.BonusMeleeHitRatingTaken += 1 * MeleeHitRatingPerHitChance
- aura.Unit.PseudoStats.BonusSpellHitRatingTaken += 1 * SpellHitRatingPerHitChance
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.BonusMeleeHitRatingTaken -= 1 * MeleeHitRatingPerHitChance
- aura.Unit.PseudoStats.BonusSpellHitRatingTaken -= 1 * SpellHitRatingPerHitChance
- },
- })
-}
-
-func MeleeHunterDodgeReductionAura(target *Unit, _ int32) *Aura {
- return target.GetOrRegisterAura(Aura{
- Label: "Stalked",
- ActionID: ActionID{SpellID: 456393},
- Duration: time.Second * 30,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.DodgeReduction += 0.01
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.PseudoStats.DodgeReduction -= 0.01
- },
- })
-}
-
func CurseOfWeaknessAura(target *Unit, points int32, playerLevel int32) *Aura {
spellID := map[int32]int32{
25: 6205,
@@ -1300,16 +1032,6 @@ func ThunderClapAura(target *Unit, spellID int32, duration time.Duration, atkSpe
return aura
}
-func WaylayAura(target *Unit) *Aura {
- aura := target.GetOrRegisterAura(Aura{
- Label: "Waylay",
- ActionID: ActionID{SpellID: 408699},
- Duration: time.Second * 8,
- })
- AtkSpeedReductionEffect(aura, 1.1)
- return aura
-}
-
func ThunderfuryASAura(target *Unit, _ int32) *Aura {
aura := target.GetOrRegisterAura(Aura{
Label: "Thunderfury",
@@ -1376,48 +1098,3 @@ func CrystalYieldAura(target *Unit) *Aura {
},
})
}
-
-func AncientCorrosivePoisonAura(target *Unit) *Aura {
- return target.GetOrRegisterAura(Aura{
- Label: "Ancient Corrosive Poison",
- ActionID: ActionID{SpellID: 422996},
- Duration: 15 * time.Second,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.stats[stats.Armor] -= 150
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.stats[stats.Armor] += 150
- },
- })
-}
-
-func SerpentsStrikerFistDebuffAura(target *Unit, playerLevel int32) *Aura {
- if playerLevel < 50 {
- panic("Serpent's Striker requires level 50+")
- }
-
- spellID := 447894
- resistance := 60.0
- dmgMod := 1.08
-
- aura := target.GetOrRegisterAura(Aura{
- Label: "Serpents Striker Debuff",
- ActionID: ActionID{SpellID: int32(spellID)},
- Duration: time.Second * 20,
- OnGain: func(aura *Aura, sim *Simulation) {
- aura.Unit.AddStatsDynamic(sim, stats.Stats{
- stats.NatureResistance: -resistance,
- })
- },
- OnExpire: func(aura *Aura, sim *Simulation) {
- aura.Unit.AddStatsDynamic(sim, stats.Stats{
- stats.NatureResistance: resistance,
- })
- },
- })
-
- // 0.01 priority as this overwrites the other spells of this category and does not allow them to be recast
- spellSchoolDamageEffect(aura, stats.SchoolIndexNature, dmgMod, 0.01, true)
- spellSchoolDamageEffect(aura, stats.SchoolIndexHoly, dmgMod, 0.01, true)
- return aura
-}
diff --git a/sim/core/dot_test.go b/sim/core/dot_test.go
index 4dbce05a6..5aec18ccc 100644
--- a/sim/core/dot_test.go
+++ b/sim/core/dot_test.go
@@ -42,7 +42,6 @@ func (fa *FakeAgent) Initialize() {
}
func (fa *FakeAgent) ApplyTalents() {}
-func (fa *FakeAgent) ApplyRunes() {}
func (fa *FakeAgent) Reset(_ *Simulation) {}
func (fa *FakeAgent) OnGCDReady(_ *Simulation) {}
diff --git a/sim/core/item_swaps.go b/sim/core/item_swaps.go
index b0e52df31..78db51a83 100644
--- a/sim/core/item_swaps.go
+++ b/sim/core/item_swaps.go
@@ -264,6 +264,5 @@ func toItem(itemSpec *proto.ItemSpec) Item {
ID: itemSpec.Id,
Enchant: itemSpec.Enchant,
- Rune: itemSpec.Rune,
})
}
diff --git a/sim/core/pet.go b/sim/core/pet.go
index 2994bfe0e..c967253a5 100644
--- a/sim/core/pet.go
+++ b/sim/core/pet.go
@@ -275,5 +275,4 @@ func (pet *Pet) GetCharacter() *Character {
func (pet *Pet) AddRaidBuffs(_ *proto.RaidBuffs) {}
func (pet *Pet) AddPartyBuffs(_ *proto.PartyBuffs) {}
func (pet *Pet) ApplyTalents() {}
-func (pet *Pet) ApplyRunes() {}
func (pet *Pet) OnGCDReady(_ *Simulation) {}
diff --git a/sim/core/simsignals/api_test.go b/sim/core/simsignals/api_test.go
index 1407547b9..8d87da8fe 100644
--- a/sim/core/simsignals/api_test.go
+++ b/sim/core/simsignals/api_test.go
@@ -34,7 +34,7 @@ func TestAbort(t *testing.T) {
}
rsr := &proto.RaidSimRequest{
- Raid: core.SinglePlayerRaidProto(player, core.FullPartyBuffs, core.FullRaidBuffsPhase4, core.FullDebuffsPhase4),
+ Raid: core.SinglePlayerRaidProto(player, core.FullPartyBuffs, core.FullRaidBuffs, core.FullDebuffs),
Encounter: &proto.Encounter{
Duration: 300,
Targets: []*proto.Target{
@@ -134,9 +134,9 @@ func TestAbort(t *testing.T) {
t.Run("StatWeightsAsync", func(t *testing.T) {
swr := &proto.StatWeightsRequest{
Player: player,
- RaidBuffs: core.FullRaidBuffsPhase4,
+ RaidBuffs: core.FullRaidBuffs,
PartyBuffs: core.FullPartyBuffs,
- Debuffs: core.FullDebuffsPhase4,
+ Debuffs: core.FullDebuffs,
Encounter: core.MakeSingleTargetEncounter(60, 0),
SimOptions: core.StatWeightsDefaultSimTestOptions,
Tanks: make([]*proto.UnitReference, 0),
diff --git a/sim/core/stats/stats.go b/sim/core/stats/stats.go
index 8484bb54e..5bce8902c 100644
--- a/sim/core/stats/stats.go
+++ b/sim/core/stats/stats.go
@@ -468,9 +468,6 @@ type PseudoStats struct {
FeralCombatEnabled bool
FeralCombatSkill float64
- // Tracks the number of Timeworn items equipped for Bronze Signet bonuses
- TimewornBonus int32
-
///////////////////////////////////////////////////
// Effects that apply when this unit is the target.
///////////////////////////////////////////////////
diff --git a/sim/core/target_ai.go b/sim/core/target_ai.go
index be01c85ef..2f6c1313b 100644
--- a/sim/core/target_ai.go
+++ b/sim/core/target_ai.go
@@ -53,7 +53,6 @@ func (target *Target) initialize(config *proto.Target) {
func (target *Target) AddRaidBuffs(_ *proto.RaidBuffs) {}
func (target *Target) AddPartyBuffs(_ *proto.PartyBuffs) {}
func (target *Target) ApplyTalents() {}
-func (target *Target) ApplyRunes() {}
func (target *Target) GetCharacter() *Character { return nil }
func (target *Target) Initialize() {}
diff --git a/sim/core/target_dummy.go b/sim/core/target_dummy.go
index 455a66b9c..e34147709 100644
--- a/sim/core/target_dummy.go
+++ b/sim/core/target_dummy.go
@@ -46,7 +46,6 @@ func (td *TargetDummy) GetCharacter() *Character {
func (td *TargetDummy) AddRaidBuffs(raidBuffs *proto.RaidBuffs) {}
func (td *TargetDummy) AddPartyBuffs(partyBuffs *proto.PartyBuffs) {}
func (td *TargetDummy) ApplyTalents() {}
-func (td *TargetDummy) ApplyRunes() {}
func (td *TargetDummy) Initialize() {}
func (td *TargetDummy) Reset(sim *Simulation) {}
func (td *TargetDummy) ExecuteCustomRotation(sim *Simulation) {}
diff --git a/sim/core/test_utils.go b/sim/core/test_utils.go
index 311a5d956..c42d12790 100644
--- a/sim/core/test_utils.go
+++ b/sim/core/test_utils.go
@@ -93,47 +93,8 @@ var DefaultTargetProtoLvl60 = &proto.Target{
// Raid Buffs
///////////////////////////////////////////////////////////////////////////
-var FullRaidBuffsPhase1 = &proto.RaidBuffs{
- ArcaneBrilliance: true,
- AspectOfTheLion: true,
- BattleShout: proto.TristateEffect_TristateEffectImproved,
- BloodPact: proto.TristateEffect_TristateEffectImproved,
- DevotionAura: proto.TristateEffect_TristateEffectImproved,
- GiftOfTheWild: proto.TristateEffect_TristateEffectImproved,
- PowerWordFortitude: proto.TristateEffect_TristateEffectImproved,
- RetributionAura: proto.TristateEffect_TristateEffectImproved,
- StrengthOfEarthTotem: proto.TristateEffect_TristateEffectImproved,
- Thorns: proto.TristateEffect_TristateEffectImproved,
-}
-
-var FullRaidBuffsPhase2 = &proto.RaidBuffs{
+var FullRaidBuffs = &proto.RaidBuffs{
ArcaneBrilliance: true,
- AspectOfTheLion: true,
- BattleShout: proto.TristateEffect_TristateEffectImproved,
- BloodPact: proto.TristateEffect_TristateEffectImproved,
- DevotionAura: proto.TristateEffect_TristateEffectImproved,
- DivineSpirit: true,
- FireResistanceAura: true,
- FireResistanceTotem: true,
- FrostResistanceAura: true,
- FrostResistanceTotem: true,
- GiftOfTheWild: proto.TristateEffect_TristateEffectImproved,
- LeaderOfThePack: true,
- ManaSpringTotem: proto.TristateEffect_TristateEffectImproved,
- MoonkinAura: true,
- NatureResistanceTotem: true,
- PowerWordFortitude: proto.TristateEffect_TristateEffectImproved,
- RetributionAura: proto.TristateEffect_TristateEffectImproved,
- ShadowProtection: true,
- StrengthOfEarthTotem: proto.TristateEffect_TristateEffectImproved,
- Thorns: proto.TristateEffect_TristateEffectImproved,
- TrueshotAura: true,
- SanctityAura: true,
-}
-
-var FullRaidBuffsPhase3 = &proto.RaidBuffs{
- ArcaneBrilliance: true,
- AspectOfTheLion: true,
BattleShout: proto.TristateEffect_TristateEffectImproved,
BloodPact: proto.TristateEffect_TristateEffectImproved,
DevotionAura: proto.TristateEffect_TristateEffectImproved,
@@ -157,59 +118,6 @@ var FullRaidBuffsPhase3 = &proto.RaidBuffs{
SanctityAura: true,
}
-var FullRaidBuffsPhase4 = &proto.RaidBuffs{
- ArcaneBrilliance: true,
- AspectOfTheLion: true,
- BattleShout: proto.TristateEffect_TristateEffectImproved,
- BloodPact: proto.TristateEffect_TristateEffectImproved,
- DevotionAura: proto.TristateEffect_TristateEffectImproved,
- DivineSpirit: true,
- FireResistanceAura: true,
- FireResistanceTotem: true,
- FrostResistanceAura: true,
- FrostResistanceTotem: true,
- GiftOfTheWild: proto.TristateEffect_TristateEffectImproved,
- GraceOfAirTotem: proto.TristateEffect_TristateEffectImproved,
- LeaderOfThePack: true,
- ManaSpringTotem: proto.TristateEffect_TristateEffectImproved,
- MoonkinAura: true,
- NatureResistanceTotem: true,
- PowerWordFortitude: proto.TristateEffect_TristateEffectImproved,
- RetributionAura: proto.TristateEffect_TristateEffectImproved,
- ShadowProtection: true,
- StrengthOfEarthTotem: proto.TristateEffect_TristateEffectImproved,
- Thorns: proto.TristateEffect_TristateEffectImproved,
- TrueshotAura: true,
- SanctityAura: true,
-}
-
-var FullRaidBuffsPhase5 = &proto.RaidBuffs{
- ArcaneBrilliance: true,
- AspectOfTheLion: true,
- BattleShout: proto.TristateEffect_TristateEffectImproved,
- BloodPact: proto.TristateEffect_TristateEffectImproved,
- DevotionAura: proto.TristateEffect_TristateEffectImproved,
- DivineSpirit: true,
- FireResistanceAura: true,
- FireResistanceTotem: true,
- FrostResistanceAura: true,
- FrostResistanceTotem: true,
- GiftOfTheWild: proto.TristateEffect_TristateEffectImproved,
- GraceOfAirTotem: proto.TristateEffect_TristateEffectImproved,
- HornOfLordaeron: true,
- LeaderOfThePack: true,
- ManaSpringTotem: proto.TristateEffect_TristateEffectImproved,
- MoonkinAura: true,
- NatureResistanceTotem: true,
- PowerWordFortitude: proto.TristateEffect_TristateEffectImproved,
- RetributionAura: proto.TristateEffect_TristateEffectImproved,
- ShadowProtection: true,
- StrengthOfEarthTotem: proto.TristateEffect_TristateEffectImproved,
- Thorns: proto.TristateEffect_TristateEffectImproved,
- TrueshotAura: true,
- SanctityAura: true,
-}
-
///////////////////////////////////////////////////////////////////////////
// Party Buffs
///////////////////////////////////////////////////////////////////////////
@@ -220,64 +128,18 @@ var FullPartyBuffs = &proto.PartyBuffs{}
// Individual Buffs
///////////////////////////////////////////////////////////////////////////
-var FullIndividualBuffsPhase1 = &proto.IndividualBuffs{
- AshenvalePvpBuff: true,
- BlessingOfKings: true,
- BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
- BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
- BoonOfBlackfathom: true,
- SaygesFortune: proto.SaygesFortune_SaygesDamage,
-}
-
-var FullIndividualBuffsPhase2 = &proto.IndividualBuffs{
- BlessingOfKings: true,
- BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
- BlessingOfSanctuary: true,
- BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
- SaygesFortune: proto.SaygesFortune_SaygesDamage,
- SparkOfInspiration: true,
-}
-
-var FullIndividualBuffsPhase3 = &proto.IndividualBuffs{
- BlessingOfKings: true,
- BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
- BlessingOfSanctuary: true,
- BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
- FervorOfTheTempleExplorer: true,
- SaygesFortune: proto.SaygesFortune_SaygesDamage,
- SongflowerSerenade: true,
-}
-
-var FullIndividualBuffsPhase4 = &proto.IndividualBuffs{
- BlessingOfKings: true,
- BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
- BlessingOfSanctuary: true,
- BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
- FengusFerocity: true,
- MightOfStormwind: true,
- MoldarsMoxie: true,
- RallyingCryOfTheDragonslayer: true,
- SaygesFortune: proto.SaygesFortune_SaygesDamage,
- SlipkiksSavvy: true,
- SongflowerSerenade: true,
- ValorOfAzeroth: true,
- WarchiefsBlessing: true,
-}
-
-var FullIndividualBuffsPhase5 = &proto.IndividualBuffs{
+var FullIndividualBuffs = &proto.IndividualBuffs{
BlessingOfKings: true,
BlessingOfMight: proto.TristateEffect_TristateEffectImproved,
BlessingOfSanctuary: true,
BlessingOfWisdom: proto.TristateEffect_TristateEffectImproved,
FengusFerocity: true,
- MightOfStormwind: true,
MoldarsMoxie: true,
RallyingCryOfTheDragonslayer: true,
SaygesFortune: proto.SaygesFortune_SaygesDamage,
SlipkiksSavvy: true,
SongflowerSerenade: true,
SpiritOfZandalar: true,
- ValorOfAzeroth: true,
WarchiefsBlessing: true,
}
@@ -285,48 +147,7 @@ var FullIndividualBuffsPhase5 = &proto.IndividualBuffs{
// Debuffs
///////////////////////////////////////////////////////////////////////////
-var FullDebuffsPhase1 = &proto.Debuffs{
- CurseOfElementsNew: proto.TristateEffect_TristateEffectRegular,
- CurseOfRecklessness: true,
- CurseOfVulnerability: true,
- CurseOfWeakness: proto.TristateEffect_TristateEffectImproved,
- DemoralizingRoar: proto.TristateEffect_TristateEffectImproved,
- DemoralizingShout: proto.TristateEffect_TristateEffectImproved,
- Dreamstate: true,
- ExposeArmor: proto.TristateEffect_TristateEffectImproved,
- FaerieFire: true,
- InsectSwarm: true,
- ImprovedShadowBolt: true,
- ScorpidSting: true,
- SunderArmor: true,
- ThunderClap: proto.TristateEffect_TristateEffectImproved,
-}
-
-var FullDebuffsPhase2 = &proto.Debuffs{
- CurseOfElementsNew: proto.TristateEffect_TristateEffectRegular,
- CurseOfRecklessness: true,
- CurseOfVulnerability: true,
- CurseOfWeakness: proto.TristateEffect_TristateEffectImproved,
- DemoralizingRoar: proto.TristateEffect_TristateEffectImproved,
- DemoralizingShout: proto.TristateEffect_TristateEffectImproved,
- Dreamstate: true,
- ExposeArmor: proto.TristateEffect_TristateEffectImproved,
- FaerieFire: true,
- InsectSwarm: true,
- ImprovedScorch: true,
- ImprovedShadowBolt: true,
- JudgementOfLight: true,
- JudgementOfWisdom: true,
- JudgementOfTheCrusader: proto.TristateEffect_TristateEffectImproved,
- ScorpidSting: true,
- ShadowWeaving: true,
- Stormstrike: true,
- SunderArmor: true,
- ThunderClap: proto.TristateEffect_TristateEffectImproved,
- WintersChill: true,
-}
-
-var FullDebuffsPhase3 = &proto.Debuffs{
+var FullDebuffs = &proto.Debuffs{
CurseOfElements: true,
CurseOfShadow: true,
CurseOfRecklessness: true,
@@ -334,43 +155,14 @@ var FullDebuffsPhase3 = &proto.Debuffs{
CurseOfWeakness: proto.TristateEffect_TristateEffectImproved,
DemoralizingRoar: proto.TristateEffect_TristateEffectImproved,
DemoralizingShout: proto.TristateEffect_TristateEffectImproved,
- Dreamstate: true,
ExposeArmor: proto.TristateEffect_TristateEffectImproved,
FaerieFire: true,
- InsectSwarm: true,
- ImprovedScorch: true,
- ImprovedShadowBolt: true,
- JudgementOfLight: true,
- JudgementOfWisdom: true,
- JudgementOfTheCrusader: proto.TristateEffect_TristateEffectImproved,
- ScorpidSting: true,
- ShadowWeaving: true,
- Stormstrike: true,
- SunderArmor: true,
- ThunderClap: proto.TristateEffect_TristateEffectImproved,
- WintersChill: true,
-}
-
-var FullDebuffsPhase4 = &proto.Debuffs{
- CurseOfElements: true,
- CurseOfShadow: true,
- CurseOfRecklessness: true,
- CurseOfVulnerability: true,
- CurseOfWeakness: proto.TristateEffect_TristateEffectImproved,
- DemoralizingRoar: proto.TristateEffect_TristateEffectImproved,
- DemoralizingShout: proto.TristateEffect_TristateEffectImproved,
- Dreamstate: true,
- ExposeArmor: proto.TristateEffect_TristateEffectImproved,
- FaerieFire: true,
- ImprovedFaerieFire: true,
ImprovedScorch: true,
ImprovedShadowBolt: true,
InsectSwarm: true,
JudgementOfLight: true,
JudgementOfWisdom: true,
JudgementOfTheCrusader: proto.TristateEffect_TristateEffectImproved,
- OccultPoison: true,
- MarkOfChaos: true,
ScorpidSting: true,
ShadowWeaving: true,
Stormstrike: true,
@@ -383,49 +175,13 @@ var FullDebuffsPhase4 = &proto.Debuffs{
// Full Buffs
///////////////////////////////////////////////////////////////////////////
-var FullBuffsPhase1 = BuffsCombo{
- Label: "Phase 1 Buffs",
-
- Debuffs: FullDebuffsPhase1,
- Party: FullPartyBuffs,
- Player: FullIndividualBuffsPhase1,
- Raid: FullRaidBuffsPhase1,
-}
-
-var FullBuffsPhase2 = BuffsCombo{
- Label: "Phase 2 Buffs",
-
- Debuffs: FullDebuffsPhase2,
- Party: FullPartyBuffs,
- Player: FullIndividualBuffsPhase2,
- Raid: FullRaidBuffsPhase2,
-}
-
-var FullBuffsPhase3 = BuffsCombo{
- Label: "Phase 3 Buffs",
-
- Debuffs: FullDebuffsPhase3,
- Party: FullPartyBuffs,
- Player: FullIndividualBuffsPhase3,
- Raid: FullRaidBuffsPhase3,
-}
-
-var FullBuffsPhase4 = BuffsCombo{
- Label: "Phase 4 Buffs",
-
- Debuffs: FullDebuffsPhase4,
- Party: FullPartyBuffs,
- Player: FullIndividualBuffsPhase4,
- Raid: FullRaidBuffsPhase4,
-}
-
-var FullBuffsPhase5 = BuffsCombo{
+var FullBuffs = BuffsCombo{
Label: "Phase 5 Buffs",
- Debuffs: FullDebuffsPhase4,
+ Debuffs: FullDebuffs,
Party: FullPartyBuffs,
- Player: FullIndividualBuffsPhase5,
- Raid: FullRaidBuffsPhase5,
+ Player: FullIndividualBuffs,
+ Raid: FullRaidBuffs,
}
func NewDefaultTarget(playerLevel int32) *proto.Target {
diff --git a/sim/druid/balance/TestBalance.results b/sim/druid/balance/TestBalance.results
index 19c12e13a..da67fd51c 100644
--- a/sim/druid/balance/TestBalance.results
+++ b/sim/druid/balance/TestBalance.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestBalance-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 239.085
- final_stats: 220.11
- final_stats: 330.22825
- final_stats: 198.605
- final_stats: 231.495
+ final_stats: 217.35
+ final_stats: 200.1
+ final_stats: 300.2075
+ final_stats: 180.55
+ final_stats: 210.45
final_stats: 150
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 49.25
final_stats: 0
- final_stats: 26.1167
+ final_stats: 25.81519
final_stats: 0
final_stats: 0
- final_stats: 1288.17
+ final_stats: 1044.7
final_stats: 0
- final_stats: 24.9055
+ final_stats: 23.905
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3943.075
+ final_stats: 3672.25
final_stats: 0
final_stats: 0
- final_stats: 824.22
- final_stats: 740
+ final_stats: 784.2
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.9055
+ final_stats: 10.905
final_stats: 5
final_stats: 0
- final_stats: 5150.54663
+ final_stats: 4835.32875
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.37782
+ weights: 0.41993
weights: 0
- weights: 0.62387
+ weights: 0.49198
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 5.31839
- weights: 3.89922
+ weights: 4.11318
+ weights: 3.16483
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestBalance-Phase5-Lvl60-Average-Default"
value: {
- dps: 627.91657
- tps: 648.91937
+ dps: 502.03576
+ tps: 523.22217
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 637.43732
- tps: 876.00415
+ dps: 514.55703
+ tps: 750.86219
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 500.50216
- tps: 513.48758
+ dps: 403.21466
+ tps: 416.06733
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 646.78239
- tps: 667.57115
+ dps: 536.40526
+ tps: 557.19402
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 634.031
- tps: 870.63116
+ dps: 495.0913
+ tps: 730.51146
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 494.51054
- tps: 507.41238
+ dps: 393.46144
+ tps: 406.23053
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 646.78239
- tps: 667.57115
+ dps: 534.12213
+ tps: 554.86172
}
}
dps_results: {
@@ -190,7 +190,7 @@ dps_results: {
dps_results: {
key: "TestBalance-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 614.87792
- tps: 636.01809
+ dps: 494.86012
+ tps: 516.25597
}
}
diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/balance_test.go
index 1715c64a0..6e4e7d126 100644
--- a/sim/druid/balance/balance_test.go
+++ b/sim/druid/balance/balance_test.go
@@ -24,7 +24,7 @@ func TestBalance(t *testing.T) {
Talents: Phase4Talents,
GearSet: core.GetGearSet("../../../ui/balance_druid/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/balance_druid/apls", "phase_5"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsAdaptive},
@@ -40,47 +40,6 @@ var Phase2Talents = "5000500302541051"
var Phase3Talents = "5000550012551351--3"
var Phase4Talents = "5000550012551251--5005031"
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultConjured: proto.Conjured_ConjuredDruidCatnip,
- DefaultPotion: proto.Potions_MajorManaPotion,
- Food: proto.Food_FoodNightfinSoup,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_ArcaneElixir,
- },
-}
-
-var Phase4Consumes = core.ConsumesCombo{
- Label: "P4-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- Flask: proto.Flask_FlaskOfSupremePower,
- Food: proto.Food_FoodNightfinSoup,
- MainHandImbue: proto.WeaponImbue_WizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- },
-}
-
var Phase5Consumes = core.ConsumesCombo{
Label: "P5-Consumes",
Consumes: &proto.Consumes{
diff --git a/sim/druid/druid.go b/sim/druid/druid.go
index ef344d0c7..e9a65cba5 100644
--- a/sim/druid/druid.go
+++ b/sim/druid/druid.go
@@ -302,7 +302,7 @@ func (ds *DruidSpell) IsEqual(s *core.Spell) bool {
}
func (druid *Druid) HasRune(rune proto.DruidRune) bool {
- return druid.HasRuneById(int32(rune))
+ return false // druid.HasRuneById(int32(rune))
}
func (druid *Druid) baseRuneAbilityDamage() float64 {
diff --git a/sim/druid/feral/TestFeral.results b/sim/druid/feral/TestFeral.results
index d5467bec2..652ba9e93 100644
--- a/sim/druid/feral/TestFeral.results
+++ b/sim/druid/feral/TestFeral.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestFeral-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 362.802
- final_stats: 251.735
- final_stats: 330.22825
- final_stats: 238.326
- final_stats: 231.495
+ final_stats: 329.82
+ final_stats: 228.85
+ final_stats: 300.2075
+ final_stats: 216.66
+ final_stats: 210.45
final_stats: 0
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 26.78004
+ final_stats: 26.41822
final_stats: 0
final_stats: 0
- final_stats: 2037.339
+ final_stats: 1748.49
final_stats: 0
- final_stats: 34.48675
+ final_stats: 33.3425
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 6538.89
+ final_stats: 6213.9
final_stats: 0
final_stats: 0
- final_stats: 887.47
- final_stats: 780
+ final_stats: 841.7
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 17.48675
+ final_stats: 16.3425
final_stats: 5
final_stats: 0
- final_stats: 5150.54663
+ final_stats: 4835.32875
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestFeral-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.75026
- weights: 0.72272
+ weights: 0.67462
+ weights: 0.53884
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.24721
- weights: 2.10282
- weights: 5.90116
+ weights: 0.24451
+ weights: 0
+ weights: 5.48958
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Average-Default"
value: {
- dps: 790.00436
- tps: 585.35839
+ dps: 709.44416
+ tps: 528.09487
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 469.50516
- tps: 566.57795
+ dps: 402.37416
+ tps: 518.26188
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 444.08535
- tps: 327.02998
+ dps: 381.0503
+ tps: 282.21897
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 523.39685
- tps: 383.77484
+ dps: 452.29707
+ tps: 333.294
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 469.50516
- tps: 566.57795
+ dps: 402.37416
+ tps: 518.26188
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 444.08535
- tps: 327.02998
+ dps: 381.0503
+ tps: 282.21897
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 523.39685
- tps: 383.77484
+ dps: 452.29707
+ tps: 333.294
}
}
dps_results: {
@@ -190,22 +190,22 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 469.50516
- tps: 566.57795
+ dps: 402.37416
+ tps: 518.26188
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 444.08535
- tps: 327.02998
+ dps: 381.0503
+ tps: 282.21897
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 523.39685
- tps: 383.77484
+ dps: 452.29707
+ tps: 333.294
}
}
dps_results: {
@@ -232,22 +232,22 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 468.71049
- tps: 565.71674
+ dps: 420.29532
+ tps: 530.84234
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 442.99381
- tps: 326.22329
+ dps: 399.68342
+ tps: 295.50391
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 522.97467
- tps: 384.13266
+ dps: 472.61736
+ tps: 351.86128
}
}
dps_results: {
@@ -274,22 +274,22 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 468.71049
- tps: 565.71674
+ dps: 420.29532
+ tps: 530.84234
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 442.99381
- tps: 326.22329
+ dps: 399.68342
+ tps: 295.50391
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Default-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 522.97467
- tps: 384.13266
+ dps: 472.61736
+ tps: 351.86128
}
}
dps_results: {
@@ -316,22 +316,22 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 468.71049
- tps: 565.71674
+ dps: 420.29532
+ tps: 530.84234
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 442.99381
- tps: 326.22329
+ dps: 399.68342
+ tps: 295.50391
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-Tauren-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 522.97467
- tps: 384.13266
+ dps: 472.61736
+ tps: 351.86128
}
}
dps_results: {
@@ -358,7 +358,7 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 419.10818
- tps: 297.5668
+ dps: 376.62744
+ tps: 267.40548
}
}
diff --git a/sim/druid/feral/feral_test.go b/sim/druid/feral/feral_test.go
index f4ace1766..cf6f43572 100644
--- a/sim/druid/feral/feral_test.go
+++ b/sim/druid/feral/feral_test.go
@@ -24,7 +24,7 @@ func TestFeral(t *testing.T) {
Talents: Phase4Talents,
GearSet: core.GetGearSet("../../../ui/feral_druid/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/feral_druid/apls", "phase_5"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsMonoCat},
OtherSpecOptions: []core.SpecOptionsCombo{
@@ -74,45 +74,6 @@ var PlayerOptionsFlowerCatAoe = &proto.Player_FeralDruid{
},
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- DefaultConjured: proto.Conjured_ConjuredMinorRecombobulator,
- DefaultPotion: proto.Potions_ManaPotion,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_GreaterManaPotion,
- DragonBreathChili: true,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose,
- DefaultPotion: proto.Potions_MajorManaPotion,
- DragonBreathChili: true,
- Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- MiscConsumes: &proto.MiscConsumes{
- Catnip: true,
- },
- StrengthBuff: proto.StrengthBuff_ElixirOfGiants,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
@@ -124,10 +85,8 @@ var Phase4Consumes = core.ConsumesCombo{
Flask: proto.Flask_FlaskOfDistilledWisdom,
Food: proto.Food_FoodSmokedDesertDumpling,
MainHandImbue: proto.WeaponImbue_ElementalSharpeningStone,
- MiscConsumes: &proto.MiscConsumes{
- Catnip: true,
- },
- StrengthBuff: proto.StrengthBuff_JujuPower,
+ MiscConsumes: &proto.MiscConsumes{},
+ StrengthBuff: proto.StrengthBuff_JujuPower,
},
}
diff --git a/sim/druid/runes.go b/sim/druid/runes.go
index 8bb05f6db..4b016fa09 100644
--- a/sim/druid/runes.go
+++ b/sim/druid/runes.go
@@ -279,7 +279,7 @@ func (druid *Druid) applyWildStrikes() {
return
}
- druid.WildStrikesBuffAura = core.ApplyWildStrikes(druid.GetCharacter())
+ //druid.WildStrikesBuffAura = core.ApplyWildStrikes(druid.GetCharacter())
}
func (druid *Druid) applyKingOfTheJungle() {
diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results
index db0d582fa..6918db27b 100644
--- a/sim/hunter/TestBM.results
+++ b/sim/hunter/TestBM.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestBM-Phase2-Lvl40-CharacterStats-Default"
value: {
- final_stats: 157.3
- final_stats: 287.98
- final_stats: 280.72
- final_stats: 137.94
- final_stats: 164.56
- final_stats: 54
+ final_stats: 211.255
+ final_stats: 332.695
+ final_stats: 359.32325
+ final_stats: 163.185
+ final_stats: 191.015
+ final_stats: 162
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 24.75
+ final_stats: 34.75
final_stats: 0
- final_stats: 13.92435
+ final_stats: 28.53276
final_stats: 0
final_stats: 0
- final_stats: 769.28
+ final_stats: 1127.95
final_stats: 0
- final_stats: 14.72579
+ final_stats: 30.08066
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 2894.1
+ final_stats: 3272.775
final_stats: 0
final_stats: 0
- final_stats: 2413.96
- final_stats: 931.96
+ final_stats: 2503.39
+ final_stats: 1281.39
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 3294.2
+ final_stats: 4380.2325
final_stats: 13
final_stats: 56
final_stats: 30
@@ -43,7 +43,7 @@ character_stats_results: {
final_stats: 30
final_stats: 263
final_stats: 0
- final_stats: 14
+ final_stats: 35
final_stats: 0
}
}
@@ -51,7 +51,7 @@ stat_weights_results: {
key: "TestBM-Phase2-Lvl40-StatWeights-Default"
value: {
weights: 0
- weights: 0.58766
+ weights: 0.50664
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.19191
- weights: 3.61319
- weights: 5.09173
+ weights: 0.13996
+ weights: 4.3644
+ weights: 3.36833
weights: 0
weights: 0
weights: 0
@@ -77,7 +77,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.06835
+ weights: 0.07897
weights: 0
weights: 0
weights: 0
@@ -99,182 +99,182 @@ stat_weights_results: {
dps_results: {
key: "TestBM-Phase2-Lvl40-Average-Default"
value: {
- dps: 577.36541
- tps: 212.43802
+ dps: 653.95169
+ tps: 298.34077
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 702.67128
- tps: 650.71626
+ dps: 859.33765
+ tps: 874.55169
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 584.86098
- tps: 218.51977
+ dps: 598.76357
+ tps: 279.15801
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 616.41092
- tps: 216.45058
+ dps: 627.58942
+ tps: 276.35825
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 360.51189
- tps: 452.28923
+ dps: 389.83157
+ tps: 609.23817
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 296.74737
- tps: 113.47152
+ dps: 199.49201
+ tps: 112.68143
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 321.48935
- tps: 107.44892
+ dps: 214.83784
+ tps: 106.45497
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 560.10245
- tps: 645.58564
+ dps: 747.70435
+ tps: 718.10614
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 493.68414
- tps: 255.44216
+ dps: 660.88371
+ tps: 342.06625
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 529.10625
- tps: 262.11263
+ dps: 701.0324
+ tps: 342.51098
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 313.26914
- tps: 550.40814
+ dps: 295.57734
+ tps: 561.83868
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 267.26398
- tps: 153.82492
+ dps: 251.93539
+ tps: 167.86977
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 286.67815
- tps: 152.21472
+ dps: 273.04179
+ tps: 168.58356
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 693.34958
- tps: 645.01731
+ dps: 920.3286
+ tps: 894.1469
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 576.3945
- tps: 212.41222
+ dps: 652.573
+ tps: 298.23343
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 607.65554
- tps: 216.18587
+ dps: 685.67111
+ tps: 300.57623
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 366.02844
- tps: 444.77435
+ dps: 394.08419
+ tps: 603.97612
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 302.17989
- tps: 113.88646
+ dps: 204.56596
+ tps: 113.66426
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_melee-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 325.17094
- tps: 106.82092
+ dps: 222.20253
+ tps: 107.48562
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 563.82711
- tps: 641.00958
+ dps: 764.88278
+ tps: 717.87402
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 497.06986
- tps: 250.94563
+ dps: 682.45237
+ tps: 326.12824
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 533.14302
- tps: 257.87923
+ dps: 718.89282
+ tps: 322.33991
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 314.56779
- tps: 545.19151
+ dps: 296.4647
+ tps: 559.91976
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 270.06529
- tps: 150.8604
+ dps: 253.84926
+ tps: 166.05371
}
}
dps_results: {
- key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestBM-Phase2-Lvl40-Settings-Orc-placeholder-Basic-p2_ranged_bm-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 290.17077
- tps: 150.84949
+ dps: 274.46254
+ tps: 167.6218
}
}
dps_results: {
key: "TestBM-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 552.69608
- tps: 194.90041
+ dps: 632.37975
+ tps: 278.24115
}
}
diff --git a/sim/hunter/TestMM.results b/sim/hunter/TestMM.results
index 041708109..3f42642e8 100644
--- a/sim/hunter/TestMM.results
+++ b/sim/hunter/TestMM.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestMM-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 284.35
- final_stats: 485.21
- final_stats: 453.629
- final_stats: 205.7
- final_stats: 235.95
+ final_stats: 297.275
+ final_stats: 507.265
+ final_stats: 474.2485
+ final_stats: 215.05
+ final_stats: 246.675
final_stats: 162
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 47.25
final_stats: 3
- final_stats: 27.99405
+ final_stats: 28.14833
final_stats: 0
final_stats: 0
- final_stats: 1767.56
+ final_stats: 1602.54
final_stats: 3
- final_stats: 34.17047
+ final_stats: 34.58731
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4525.5
+ final_stats: 4665.75
final_stats: 0
final_stats: 0
- final_stats: 2808.42
- final_stats: 2026.42
+ final_stats: 2852.53
+ final_stats: 1870.53
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 6490.6874
+ final_stats: 6709.2541
final_stats: 27
final_stats: 86
final_stats: 60
@@ -51,7 +51,7 @@ stat_weights_results: {
key: "TestMM-Phase4-Lvl60-StatWeights-Default"
value: {
weights: 0
- weights: 0.23296
+ weights: 0.15354
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.12617
- weights: 5.53908
- weights: 2.03505
+ weights: 0.12138
+ weights: 7.19003
+ weights: 0
weights: 0
weights: 0
weights: 0
@@ -99,112 +99,112 @@ stat_weights_results: {
dps_results: {
key: "TestMM-Phase4-Lvl60-AllItems-DevilsaurEye-19991"
value: {
- dps: 385.45292
- tps: 397.92424
+ dps: 343.41085
+ tps: 355.72397
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-AllItems-DevilsaurTooth-19992"
value: {
- dps: 379.50916
- tps: 391.98672
+ dps: 338.0538
+ tps: 350.37503
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Average-Default"
value: {
- dps: 377.76606
- tps: 390.19957
+ dps: 337.33348
+ tps: 349.70703
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 432.4596
- tps: 594.49712
+ dps: 419.37663
+ tps: 579.53896
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 283.51518
- tps: 291.60722
+ dps: 274.78179
+ tps: 282.80957
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 278.1341
- tps: 288.02347
+ dps: 266.84113
+ tps: 276.58129
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 205.33253
- tps: 422.96515
+ dps: 174.1017
+ tps: 414.45707
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 132.98515
- tps: 143.86679
+ dps: 112.97901
+ tps: 124.99678
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 130.93154
- tps: 135.29141
+ dps: 111.38138
+ tps: 115.74126
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 477.90082
- tps: 639.68157
+ dps: 449.68521
+ tps: 610.1654
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 318.40933
- tps: 326.51804
+ dps: 296.74888
+ tps: 304.78254
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 324.82767
- tps: 334.67743
+ dps: 301.1019
+ tps: 310.94522
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 206.35769
- tps: 439.80957
+ dps: 173.0927
+ tps: 413.95607
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 134.92853
- tps: 146.60113
+ dps: 113.4107
+ tps: 125.45386
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_ranged-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 136.21434
- tps: 140.57421
+ dps: 116.07029
+ tps: 120.43017
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 258.31819
- tps: 270.70581
+ dps: 224.48153
+ tps: 236.67331
}
}
diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results
index 3a4dbe411..9e4af1299 100644
--- a/sim/hunter/TestSV.results
+++ b/sim/hunter/TestSV.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestSV-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 284.35
- final_stats: 557.9915
- final_stats: 453.629
- final_stats: 205.7
- final_stats: 235.95
+ final_stats: 297.275
+ final_stats: 583.35475
+ final_stats: 474.2485
+ final_stats: 215.05
+ final_stats: 246.675
final_stats: 162
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 47.25
final_stats: 3
- final_stats: 27.99405
+ final_stats: 28.14833
final_stats: 0
final_stats: 0
- final_stats: 1840.3415
+ final_stats: 1678.62975
final_stats: 3
- final_stats: 38.54604
+ final_stats: 39.0254
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4525.5
+ final_stats: 4665.75
final_stats: 0
final_stats: 0
- final_stats: 2953.983
- final_stats: 2071.983
+ final_stats: 3004.7095
+ final_stats: 1922.7095
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 6368.2216
+ final_stats: 6582.6644
final_stats: 27
final_stats: 86
final_stats: 60
@@ -51,7 +51,7 @@ stat_weights_results: {
key: "TestSV-Phase4-Lvl60-StatWeights-Default"
value: {
weights: 0
- weights: 0.19405
+ weights: 0.23711
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.1326
- weights: 8.48818
- weights: 0.33843
+ weights: 0.13693
+ weights: 7.55342
+ weights: 1.10189
weights: 0
weights: 0
weights: 0
@@ -99,112 +99,112 @@ stat_weights_results: {
dps_results: {
key: "TestSV-Phase4-Lvl60-AllItems-DevilsaurEye-19991"
value: {
- dps: 448.97614
- tps: 481.26078
+ dps: 466.59017
+ tps: 404.77075
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-AllItems-DevilsaurTooth-19992"
value: {
- dps: 440.88422
- tps: 473.1475
+ dps: 462.52818
+ tps: 399.46188
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Average-Default"
value: {
- dps: 439.81411
- tps: 472.10359
+ dps: 460.30515
+ tps: 398.87454
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 1470.73024
- tps: 2111.53099
+ dps: 1267.77882
+ tps: 1879.29945
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 433.72896
- tps: 465.73911
+ dps: 426.59025
+ tps: 362.74026
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 425.87165
- tps: 456.4752
+ dps: 425.95885
+ tps: 351.13112
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 787.43264
- tps: 1376.78002
+ dps: 758.08202
+ tps: 1425.79955
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 165.08097
- tps: 194.89199
+ dps: 178.18299
+ tps: 169.04959
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 161.72304
- tps: 166.08292
+ dps: 180.93972
+ tps: 162.40202
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 1472.77201
- tps: 2116.43199
+ dps: 1325.62601
+ tps: 1934.85365
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 439.9932
- tps: 472.12516
+ dps: 455.40794
+ tps: 396.73842
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 427.89813
- tps: 458.4693
+ dps: 456.19204
+ tps: 391.57823
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 788.38504
- tps: 1373.75761
+ dps: 754.54603
+ tps: 1415.54554
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 164.50575
- tps: 193.60437
+ dps: 176.9543
+ tps: 167.04892
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Orc-placeholder-Weave-p4_weave-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 163.63804
- tps: 167.99792
+ dps: 183.63139
+ tps: 160.99185
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 302.568
- tps: 333.99325
+ dps: 323.67628
+ tps: 281.33173
}
}
diff --git a/sim/hunter/hunter.go b/sim/hunter/hunter.go
index b64a2aa01..5853eebb0 100644
--- a/sim/hunter/hunter.go
+++ b/sim/hunter/hunter.go
@@ -92,7 +92,7 @@ type Hunter struct {
NormalizedAmmoDamageBonus float64
// Miscellaneous set bonuses that require extra logic inside of spells
- SerpentStingAPCoeff float64
+ SerpentStingAPCoeff float64
curQueueAura *core.Aura
curQueuedAutoSpell *core.Spell
@@ -164,7 +164,6 @@ func (hunter *Hunter) AddRaidBuffs(raidBuffs *proto.RaidBuffs) {
}[hunter.Level])
}
- raidBuffs.AspectOfTheLion = true
// Hunter gains an additional 10% stats from Aspect of the Lion
statMultiply := 1.1
hunter.MultiplyStat(stats.Strength, statMultiply)
@@ -356,7 +355,7 @@ func NewHunter(character *core.Character, options *proto.Player) *Hunter {
}
func (hunter *Hunter) HasRune(rune proto.HunterRune) bool {
- return hunter.HasRuneById(int32(rune))
+ return false // hunter.HasRuneById(int32(rune))
}
func (hunter *Hunter) baseRuneAbilityDamage() float64 {
diff --git a/sim/hunter/hunter_test.go b/sim/hunter/hunter_test.go
index 9daf7aa89..188920b0f 100644
--- a/sim/hunter/hunter_test.go
+++ b/sim/hunter/hunter_test.go
@@ -23,8 +23,8 @@ func TestBM(t *testing.T) {
Talents: Phase2BMTalents,
GearSet: core.GetGearSet("../../ui/hunter/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../ui/hunter/apls", "p2_melee"),
- Buffs: core.FullBuffsPhase2,
- Consumes: Phase2Consumes,
+ Buffs: core.FullBuffs,
+ Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: Phase2PlayerOptions},
OtherRotations: []core.RotationCombo{core.GetAplRotation("../../ui/hunter/apls", "p2_ranged_bm")},
@@ -48,7 +48,7 @@ func TestMM(t *testing.T) {
Talents: Phase4RangedMMTalents,
GearSet: core.GetGearSet("../../ui/hunter/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../ui/hunter/apls", "p4_ranged"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Weave", SpecOptions: Phase4PlayerOptions},
@@ -71,7 +71,7 @@ func TestSV(t *testing.T) {
Talents: Phase4WeaveTalents,
GearSet: core.GetGearSet("../../ui/hunter/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../ui/hunter/apls", "p4_weave"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Weave", SpecOptions: Phase4PlayerOptions},
@@ -94,32 +94,6 @@ var Phase4WeaveTalents = "-055500005-3305202202303051"
var Phase4RangedMMTalents = "-05451002503051-33400023023"
var Phase4RangedSVTalents = "1-054510005-334000250230305"
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_BlackfathomSharpeningStone,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- DragonBreathChili: true,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_SolidWeightstone,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
@@ -129,7 +103,7 @@ var Phase4Consumes = core.ConsumesCombo{
DragonBreathChili: true,
Flask: proto.Flask_FlaskOfSupremePower,
Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
+ MainHandImbue: proto.WeaponImbue_Windfury,
OffHandImbue: proto.WeaponImbue_ElementalSharpeningStone,
SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
StrengthBuff: proto.StrengthBuff_JujuPower,
diff --git a/sim/mage/TestArcane.results b/sim/mage/TestArcane.results
index 2d75ad3b3..afac9b966 100644
--- a/sim/mage/TestArcane.results
+++ b/sim/mage/TestArcane.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestArcane-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 189.75
- final_stats: 197.34
- final_stats: 292.40475
- final_stats: 244.145
- final_stats: 242.88
+ final_stats: 172.5
+ final_stats: 179.4
+ final_stats: 265.8225
+ final_stats: 221.95
+ final_stats: 220.8
final_stats: 150
final_stats: 0
final_stats: 40
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 25.30164
+ final_stats: 24.92876
final_stats: 0
final_stats: 0
- final_stats: 1009.75
+ final_stats: 792.5
final_stats: 0
final_stats: 16.2
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 5054.6925
+ final_stats: 4688.475
final_stats: 0
final_stats: 0
- final_stats: 394.68
- final_stats: 740
+ final_stats: 358.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 3.2
final_stats: 5
final_stats: 0
- final_stats: 4414.0475
+ final_stats: 4148.225
final_stats: 52
final_stats: 85
final_stats: 85
@@ -53,18 +53,18 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.14047
+ weights: 0.28967
weights: 0
- weights: 0.55155
+ weights: 0.43631
weights: 0
+ weights: 0.05906
+ weights: 0.37724
weights: 0
- weights: 0.55155
weights: 0
weights: 0
weights: 0
- weights: 0
- weights: 5.21299
- weights: 3.05963
+ weights: 4.93705
+ weights: 2.55452
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestArcane-Phase5-Lvl60-Average-Default"
value: {
- dps: 423.59907
- tps: 436.26143
+ dps: 372.01945
+ tps: 386.74766
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 419.54165
- tps: 642.32182
+ dps: 371.87485
+ tps: 653.94848
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 419.54165
- tps: 430.68066
+ dps: 371.87485
+ tps: 385.97853
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 426.46434
- tps: 437.93292
+ dps: 388.44813
+ tps: 404.37983
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 203.18659
- tps: 426.03873
+ dps: 197.61902
+ tps: 439.20185
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 203.18659
- tps: 214.3292
+ dps: 197.61902
+ tps: 209.69816
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 228.65746
- tps: 241.87026
+ dps: 250.03264
+ tps: 265.51076
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 423.05088
- tps: 658.58871
+ dps: 369.74627
+ tps: 635.6476
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 423.05088
- tps: 434.82777
+ dps: 369.74627
+ tps: 383.04134
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 443.94384
- tps: 457.79252
+ dps: 399.77203
+ tps: 416.03702
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 200.62813
- tps: 424.2142
+ dps: 198.01526
+ tps: 437.80854
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 200.62813
- tps: 211.80744
+ dps: 198.01526
+ tps: 210.00492
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Troll-blank-Arcane-p5_spellfrost-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 237.18443
- tps: 250.39723
+ dps: 253.36293
+ tps: 268.84104
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 423.04928
- tps: 434.91161
+ dps: 369.60437
+ tps: 383.11611
}
}
diff --git a/sim/mage/TestFire.results b/sim/mage/TestFire.results
index acd437572..6429976e5 100644
--- a/sim/mage/TestFire.results
+++ b/sim/mage/TestFire.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestFire-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 189.75
- final_stats: 197.34
- final_stats: 292.40475
- final_stats: 244.145
- final_stats: 242.88
+ final_stats: 172.5
+ final_stats: 179.4
+ final_stats: 265.8225
+ final_stats: 221.95
+ final_stats: 220.8
final_stats: 150
final_stats: 0
final_stats: 40
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 25.30164
+ final_stats: 24.92876
final_stats: 0
final_stats: 0
- final_stats: 1009.75
+ final_stats: 792.5
final_stats: 0
final_stats: 16.2
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4595.175
+ final_stats: 4262.25
final_stats: 0
final_stats: 0
- final_stats: 394.68
- final_stats: 740
+ final_stats: 358.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 3.2
final_stats: 5
final_stats: 0
- final_stats: 4414.0475
+ final_stats: 4148.225
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,18 +53,18 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.69843
+ weights: 0.61344
weights: 0
- weights: 0.53538
+ weights: 0.30638
weights: 0
- weights: 0.53538
+ weights: 0.30638
weights: 0
weights: 0
weights: 0
weights: 0
weights: 0
- weights: 6.24672
- weights: 5.42721
+ weights: 4.0745
+ weights: 3.00611
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestFire-Phase5-Lvl60-Average-Default"
value: {
- dps: 447.09766
- tps: 336.89339
+ dps: 315.27056
+ tps: 237.16454
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 469.38612
- tps: 817.07023
+ dps: 328.52541
+ tps: 562.21997
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 469.38612
- tps: 352.99528
+ dps: 328.52541
+ tps: 246.5804
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 534.93262
- tps: 406.79961
+ dps: 414.68439
+ tps: 302.05357
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 153.53092
- tps: 386.88161
+ dps: 138.88639
+ tps: 316.15109
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 153.53092
- tps: 121.44214
+ dps: 138.88639
+ tps: 108.167
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 271.60025
- tps: 210.66001
+ dps: 252.45459
+ tps: 182.18519
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 449.68048
- tps: 795.79882
+ dps: 306.44466
+ tps: 540.41754
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 449.68048
- tps: 338.82746
+ dps: 306.44466
+ tps: 230.80658
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 531.34039
- tps: 404.22955
+ dps: 402.4679
+ tps: 293.46973
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 149.51397
- tps: 383.70706
+ dps: 134.49457
+ tps: 313.10452
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 149.51397
- tps: 118.61214
+ dps: 134.49457
+ tps: 105.09412
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Troll-blank-Fire-p5_fire-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 259.6432
- tps: 202.15974
+ dps: 257.27987
+ tps: 185.73789
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 449.68048
- tps: 338.82746
+ dps: 306.69984
+ tps: 230.9943
}
}
diff --git a/sim/mage/TestFrost.results b/sim/mage/TestFrost.results
index 98063484b..51cb08fe6 100644
--- a/sim/mage/TestFrost.results
+++ b/sim/mage/TestFrost.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestFrost-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 189.75
- final_stats: 197.34
- final_stats: 292.40475
- final_stats: 244.145
- final_stats: 242.88
+ final_stats: 172.5
+ final_stats: 179.4
+ final_stats: 265.8225
+ final_stats: 221.95
+ final_stats: 220.8
final_stats: 150
final_stats: 0
final_stats: 40
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 25.30164
+ final_stats: 24.92876
final_stats: 0
final_stats: 0
- final_stats: 1009.75
+ final_stats: 792.5
final_stats: 0
final_stats: 16.2
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4595.175
+ final_stats: 4262.25
final_stats: 0
final_stats: 0
- final_stats: 394.68
- final_stats: 740
+ final_stats: 358.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 3.2
final_stats: 5
final_stats: 0
- final_stats: 4414.0475
+ final_stats: 4148.225
final_stats: 31
final_stats: 64
final_stats: 64
@@ -53,18 +53,18 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.17139
+ weights: 0.10653
weights: 0
- weights: 0.60621
+ weights: 0.46322
weights: 0
+ weights: 0.06157
+ weights: 0.40165
weights: 0
- weights: 0.60621
weights: 0
weights: 0
weights: 0
- weights: 0
- weights: 5.73089
- weights: 3.26892
+ weights: 5.49189
+ weights: 2.56205
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestFrost-Phase5-Lvl60-Average-Default"
value: {
- dps: 466.41494
- tps: 339.62146
+ dps: 392.75219
+ tps: 315.3999
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 459.84004
- tps: 554.39982
+ dps: 397.37884
+ tps: 587.62691
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 459.84004
- tps: 333.51361
+ dps: 397.37884
+ tps: 317.79797
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 453.80537
- tps: 329.72212
+ dps: 400.34254
+ tps: 323.00782
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 241.91386
- tps: 380.75106
+ dps: 225.11332
+ tps: 404.6202
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 241.91386
- tps: 179.91027
+ dps: 225.11332
+ tps: 183.3459
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 259.24829
- tps: 195.5056
+ dps: 268.33572
+ tps: 220.57852
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 460.19999
- tps: 557.8486
+ dps: 390.98053
+ tps: 580.85367
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 460.19999
- tps: 333.92543
+ dps: 390.98053
+ tps: 313.15673
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 468.8742
- tps: 340.5635
+ dps: 396.72646
+ tps: 322.21705
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 241.26078
- tps: 387.21741
+ dps: 224.67699
+ tps: 406.5577
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 241.26078
- tps: 179.79929
+ dps: 224.67699
+ tps: 182.93016
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Troll-blank-Frost-p5_spellfrost-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 266.34851
- tps: 200.47575
+ dps: 267.36261
+ tps: 219.59609
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 460.51737
- tps: 334.19823
+ dps: 389.92099
+ tps: 313.27487
}
}
diff --git a/sim/mage/mage.go b/sim/mage/mage.go
index 324e3a53e..9d75ffe68 100644
--- a/sim/mage/mage.go
+++ b/sim/mage/mage.go
@@ -212,7 +212,7 @@ func NewMage(character *core.Character, options *proto.Player) *Mage {
}
func (mage *Mage) HasRune(rune proto.MageRune) bool {
- return mage.HasRuneById(int32(rune))
+ return false // mage.HasRuneById(int32(rune))
}
func (mage *Mage) baseRuneAbilityDamage() float64 {
diff --git a/sim/mage/mage_test.go b/sim/mage/mage_test.go
index fd68e4903..47b9863fd 100644
--- a/sim/mage/mage_test.go
+++ b/sim/mage/mage_test.go
@@ -24,7 +24,7 @@ func TestArcane(t *testing.T) {
Talents: Phase5TalentsArcane,
GearSet: core.GetGearSet("../../ui/mage/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../ui/mage/apls", "p5_spellfrost"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Arcane", SpecOptions: PlayerOptionsArcane},
@@ -47,7 +47,7 @@ func TestFire(t *testing.T) {
Talents: Phase5TalentsFire,
GearSet: core.GetGearSet("../../ui/mage/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../ui/mage/apls", "p5_fire"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Fire", SpecOptions: PlayerOptionsFire},
@@ -70,7 +70,7 @@ func TestFrost(t *testing.T) {
Talents: phase5talentsfrost,
GearSet: core.GetGearSet("../../ui/mage/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../ui/mage/apls", "p5_spellfrost"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Frost", SpecOptions: PlayerOptionsFrost},
@@ -123,53 +123,6 @@ var PlayerOptionsFrost = &proto.Player_Mage{
},
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- FrostPowerBuff: proto.FrostPowerBuff_ElixirOfFrostPower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- FrostPowerBuff: proto.FrostPowerBuff_ElixirOfFrostPower,
- Food: proto.Food_FoodNightfinSoup,
- MainHandImbue: proto.WeaponImbue_WizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_ArcaneElixir,
- },
-}
-
-var Phase4Consumes = core.ConsumesCombo{
- Label: "P4-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- Flask: proto.Flask_FlaskOfSupremePower,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- FrostPowerBuff: proto.FrostPowerBuff_ElixirOfFrostPower,
- Food: proto.Food_FoodRunnTumTuberSurprise,
- MainHandImbue: proto.WeaponImbue_WizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- },
-}
-
var Phase5Consumes = core.ConsumesCombo{
Label: "P5-Consumes",
Consumes: &proto.Consumes{
diff --git a/sim/paladin/paladin.go b/sim/paladin/paladin.go
index 399253df7..cd8fd1c72 100644
--- a/sim/paladin/paladin.go
+++ b/sim/paladin/paladin.go
@@ -193,7 +193,7 @@ func NewPaladin(character *core.Character, options *proto.Player, paladinOptions
}
func (paladin *Paladin) hasRune(rune proto.PaladinRune) bool {
- return paladin.HasRuneById(int32(rune))
+ return false // paladin.HasRuneById(int32(rune))
}
func (paladin *Paladin) has2hEquipped() bool {
diff --git a/sim/paladin/protection/TestProtection.results b/sim/paladin/protection/TestProtection.results
index 50d7ce9e8..61fb3ab45 100644
--- a/sim/paladin/protection/TestProtection.results
+++ b/sim/paladin/protection/TestProtection.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestProtection-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 204.6
- final_stats: 133.1
- final_stats: 322.575
- final_stats: 145.2
- final_stats: 168.63
- final_stats: 174
+ final_stats: 235.29
+ final_stats: 153.065
+ final_stats: 370.96125
+ final_stats: 166.98
+ final_stats: 193.9245
+ final_stats: 150
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 49.6
+ final_stats: 39.6
final_stats: 0
- final_stats: 26.92484
+ final_stats: 27.28857
final_stats: 0
final_stats: 0
- final_stats: 1661.2
+ final_stats: 1522.58
final_stats: 3
- final_stats: 27.43486
+ final_stats: 28.44509
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3410
+ final_stats: 3736.7
final_stats: 0
final_stats: 0
- final_stats: 650.2
- final_stats: 780
+ final_stats: 690.13
+ final_stats: 580
final_stats: 10
final_stats: 5.4
final_stats: 0
- final_stats: 7.83486
+ final_stats: 8.84509
final_stats: 10.4
final_stats: 0
- final_stats: 4726.75
+ final_stats: 4910.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,27 +50,27 @@ character_stats_results: {
stat_weights_results: {
key: "TestProtection-Phase4-Lvl60-StatWeights-Default"
value: {
- weights: 0.36704
- weights: 0.15161
+ weights: 0.36836
+ weights: 0.14659
weights: 0
weights: 0
weights: 0
- weights: 0.12327
+ weights: 0.10482
weights: 0
weights: 0
weights: 0
- weights: 0.04771
+ weights: 0.04693
weights: 0
weights: 0
weights: 0
- weights: 1.31118
- weights: 0.10337
+ weights: 1.31055
+ weights: 0.08066
weights: 0
weights: 0
- weights: 0.16683
- weights: 4.02803
- weights: 2.58215
- weights: 3.01164
+ weights: 0.1456
+ weights: 2.98915
+ weights: 2.16293
+ weights: 1.88267
weights: 0
weights: 0
weights: 0
@@ -78,7 +78,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.24653
+ weights: 0.20964
weights: 0
weights: 0
weights: 0
@@ -99,105 +99,105 @@ stat_weights_results: {
dps_results: {
key: "TestProtection-Phase4-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 374.99981
- tps: 564.50695
+ dps: 311.90154
+ tps: 480.2634
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Average-Default"
value: {
- dps: 376.83423
- tps: 565.34083
+ dps: 312.49877
+ tps: 480.43802
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 59.36548
- tps: 118.35105
+ dps: 51.69456
+ tps: 109.26224
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 34.03927
- tps: 64.69938
+ dps: 32.51277
+ tps: 62.09519
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 112.13566
- tps: 213.4513
+ dps: 108.93207
+ tps: 207.77944
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 22.30737
- tps: 30.35962
+ dps: 21.03145
+ tps: 28.98919
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 9.5994
- tps: 17.64761
+ dps: 9.43678
+ tps: 17.39048
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 36.70836
- tps: 68.60544
+ dps: 36.07527
+ tps: 67.49975
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 60.9097
- tps: 120.65148
+ dps: 51.53097
+ tps: 108.53323
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 34.60885
- tps: 65.69439
+ dps: 32.41881
+ tps: 61.89564
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 112.08841
- tps: 213.36153
+ dps: 108.87738
+ tps: 207.67553
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 22.40271
- tps: 30.4429
+ dps: 21.1268
+ tps: 29.07247
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 9.59269
- tps: 17.62888
+ dps: 9.43007
+ tps: 17.37174
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 37.36273
- tps: 69.81873
+ dps: 36.72963
+ tps: 68.71305
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 323.54588
- tps: 488.30051
+ dps: 270.48257
+ tps: 419.98409
}
}
diff --git a/sim/paladin/protection/protection_test.go b/sim/paladin/protection/protection_test.go
index cddc75f6b..5ffccfc4f 100644
--- a/sim/paladin/protection/protection_test.go
+++ b/sim/paladin/protection/protection_test.go
@@ -23,7 +23,7 @@ func TestProtection(t *testing.T) {
Talents: Phase4ProtTalents,
GearSet: core.GetGearSet("../../../ui/protection_paladin/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/protection_paladin/apls", "p4prot"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "P4 Prot", SpecOptions: PlayerOptionsSealofMartyrdom},
@@ -46,9 +46,9 @@ var Phase4Consumes = core.ConsumesCombo{
SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
DragonBreathChili: true,
Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
- StrengthBuff: proto.StrengthBuff_JujuPower,
+ //MainHandImbue: proto.WeaponImbue_WildStrikes,
+ //OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
+ StrengthBuff: proto.StrengthBuff_JujuPower,
},
}
diff --git a/sim/paladin/retribution/TestExodin.results b/sim/paladin/retribution/TestExodin.results
index 6c7c7fc8d..e86e9ff09 100644
--- a/sim/paladin/retribution/TestExodin.results
+++ b/sim/paladin/retribution/TestExodin.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestExodin-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 382.6625
- final_stats: 265.65
+ final_stats: 258.819
+ final_stats: 153.065
final_stats: 370.96125
final_stats: 166.98
final_stats: 193.9245
- final_stats: 216
+ final_stats: 150
final_stats: 0
final_stats: 10
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 49.6
+ final_stats: 39.6
final_stats: 0
- final_stats: 28.28857
+ final_stats: 27.28857
final_stats: 0
final_stats: 0
- final_stats: 1825.325
+ final_stats: 1569.638
final_stats: 3
- final_stats: 34.14189
+ final_stats: 28.44509
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 3736.7
final_stats: 0
final_stats: 0
- final_stats: 915.3
- final_stats: 810
+ final_stats: 690.13
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 14.14189
+ final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 5210.6125
+ final_stats: 4910.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestExodin-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.48158
- weights: 0.23677
+ weights: 0.39797
+ weights: 0.16031
weights: 0
weights: 0
weights: 0
- weights: 0.30579
+ weights: 0.25561
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.33937
- weights: 0.13953
+ weights: 0.21625
+ weights: 0.09094
weights: 0
weights: 0
- weights: 0.17304
- weights: 5.10241
- weights: 3.67606
+ weights: 0.143
+ weights: 3.8024
+ weights: 2.80308
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 434.80422
- tps: 471.79262
+ dps: 308.86702
+ tps: 344.25151
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Average-Default"
value: {
- dps: 434.83832
- tps: 471.85994
+ dps: 306.84691
+ tps: 342.5715
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 33.76824
- tps: 228.4784
+ dps: 23.37335
+ tps: 218.3785
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 12.17537
- tps: 21.91088
+ dps: 9.84742
+ tps: 19.59768
}
}
dps_results: {
@@ -133,36 +133,36 @@ dps_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 17.29442
- tps: 138.1484
+ dps: 14.04078
+ tps: 134.89475
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 3.20235
- tps: 9.24505
+ dps: 2.9307
+ tps: 8.9734
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 2.71827
- tps: 2.71827
+ dps: 2.49444
+ tps: 2.49444
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 34.86921
- tps: 228.98937
+ dps: 25.01923
+ tps: 220.31939
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 11.95106
- tps: 21.65707
+ dps: 10.05073
+ tps: 19.81574
}
}
dps_results: {
@@ -174,28 +174,28 @@ dps_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 16.16378
- tps: 196.91061
+ dps: 13.08502
+ tps: 193.83184
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 2.7663
- tps: 11.80364
+ dps: 2.52678
+ tps: 11.56412
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 1.27796
- tps: 16.46172
+ dps: 1.12892
+ tps: 16.31268
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 359.95305
- tps: 394.99937
+ dps: 253.59155
+ tps: 288.6616
}
}
diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results
index a1de0bf99..d7b91f453 100644
--- a/sim/paladin/retribution/TestRetribution.results
+++ b/sim/paladin/retribution/TestRetribution.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestRetribution-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 382.6625
- final_stats: 265.65
+ final_stats: 258.819
+ final_stats: 153.065
final_stats: 370.96125
final_stats: 166.98
final_stats: 193.9245
- final_stats: 216
+ final_stats: 150
final_stats: 0
final_stats: 10
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 49.6
+ final_stats: 39.6
final_stats: 0
- final_stats: 28.28857
+ final_stats: 27.28857
final_stats: 0
final_stats: 0
- final_stats: 1825.325
+ final_stats: 1569.638
final_stats: 3
- final_stats: 34.14189
+ final_stats: 28.44509
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 3736.7
final_stats: 0
final_stats: 0
- final_stats: 915.3
- final_stats: 810
+ final_stats: 690.13
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 14.14189
+ final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 5210.6125
+ final_stats: 4910.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestRetribution-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.49621
- weights: 0.25075
+ weights: 0.43784
+ weights: 0.17111
weights: 0
weights: 0
weights: 0
- weights: 0.15957
+ weights: 0.14884
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.79635
- weights: 0.11957
+ weights: 0.81482
+ weights: 0.08142
weights: 0
weights: 0
- weights: 0.1783
- weights: 4.20294
- weights: 3.61558
+ weights: 0.15733
+ weights: 3.57897
+ weights: 3.08603
weights: 0
weights: 0
weights: 0
@@ -99,177 +99,189 @@ stat_weights_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 415.82717
- tps: 452.28725
+ dps: 333.07757
+ tps: 365.39866
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Average-Default"
value: {
- dps: 411.03302
- tps: 447.44782
+ dps: 332.98738
+ tps: 365.47503
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 46.72259
- tps: 249.88942
+ dps: 44.48615
+ tps: 252.66798
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 25.04347
- tps: 35.23623
+ dps: 26.1478
+ tps: 36.57164
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 31.03628
- tps: 47.71962
+ dps: 37.54176
+ tps: 54.39718
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 17.00278
- tps: 148.46724
+ dps: 19.00745
+ tps: 189.40369
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 4.22273
- tps: 10.79595
+ dps: 7.75378
+ tps: 16.2736
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 9.52005
- tps: 24.7038
+ dps: 8.72718
+ tps: 23.91094
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- tps: 180.74683
+ dps: 16.82326
+ tps: 202.29009
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- tps: 9.03734
+ dps: 14.86719
+ tps: 24.14053
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- tps: 15.18376
+ dps: 16.76289
+ tps: 32.26623
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- tps: 161.49484
+ dps: 2.04578
+ tps: 138.76393
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- tps: 8.07474
+ dps: 1.28285
+ tps: 8.11876
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- tps: 15.18376
+ dps: 0.48958
+ tps: 15.67334
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 46.71268
- tps: 249.87951
+ dps: 47.81643
+ tps: 256.68659
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 22.30078
- tps: 32.47387
+ dps: 28.02238
+ tps: 38.46589
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 31.09763
- tps: 47.78097
+ dps: 37.45917
+ tps: 54.31459
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 17.04798
- tps: 163.54506
+ dps: 20.6283
+ tps: 201.37513
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 4.30057
- tps: 11.62543
+ dps: 9.41273
+ tps: 18.45007
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 9.22059
- tps: 24.40435
+ dps: 8.48162
+ tps: 23.66537
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- tps: 180.74683
+ dps: 15.59483
+ tps: 201.15999
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- tps: 9.03734
+ dps: 14.53231
+ tps: 23.81057
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- tps: 15.18376
+ dps: 16.75391
+ tps: 32.25725
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- tps: 180.74683
+ dps: 3.70922
+ tps: 170.88796
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- tps: 9.03734
+ dps: 2.94632
+ tps: 11.30525
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- tps: 15.18376
+ dps: 0.48958
+ tps: 15.67334
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 346.11786
- tps: 380.70208
+ dps: 278.77629
+ tps: 310.94343
}
}
diff --git a/sim/paladin/retribution/TestShockadin.results b/sim/paladin/retribution/TestShockadin.results
index ea9b305fc..4bdbcc3c1 100644
--- a/sim/paladin/retribution/TestShockadin.results
+++ b/sim/paladin/retribution/TestShockadin.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestShockadin-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 382.6625
- final_stats: 265.65
+ final_stats: 258.819
+ final_stats: 153.065
final_stats: 370.96125
final_stats: 183.678
final_stats: 193.9245
- final_stats: 216
+ final_stats: 150
final_stats: 0
final_stats: 10
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 49.6
+ final_stats: 39.6
final_stats: 0
- final_stats: 28.56742
+ final_stats: 27.56742
final_stats: 0
final_stats: 0
- final_stats: 1825.325
+ final_stats: 1569.638
final_stats: 0
- final_stats: 34.14189
+ final_stats: 28.44509
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 3987.17
final_stats: 0
final_stats: 0
- final_stats: 915.3
- final_stats: 810
+ final_stats: 690.13
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 14.14189
+ final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 5210.6125
+ final_stats: 4910.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestShockadin-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.29868
- weights: 0.19354
+ weights: 0.24563
+ weights: 0.11292
weights: 0
weights: 0
weights: 0
- weights: 0.51161
+ weights: 0.42509
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 2.00016
- weights: 0.44883
+ weights: 1.81149
+ weights: 0.39963
weights: 0
weights: 0
- weights: 0.10732
- weights: 2.14741
- weights: 2.99483
+ weights: 0.08826
+ weights: 0
+ weights: 2.14476
weights: 0
weights: 0
weights: 0
@@ -99,105 +99,105 @@ stat_weights_results: {
dps_results: {
key: "TestShockadin-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 525.49474
- tps: 567.44917
+ dps: 397.64754
+ tps: 435.20541
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Average-Default"
value: {
- dps: 525.42593
- tps: 567.45423
+ dps: 395.11448
+ tps: 432.6894
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 309.27347
- tps: 526.3053
+ dps: 281.61762
+ tps: 496.48611
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 96.24543
- tps: 107.0331
+ dps: 84.97457
+ tps: 95.66883
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 197.03366
- tps: 214.52825
+ dps: 181.60249
+ tps: 199.0725
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 125.29427
- tps: 306.04109
+ dps: 118.24052
+ tps: 298.98735
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 45.14838
- tps: 54.18572
+ dps: 41.8665
+ tps: 50.90384
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 101.54221
- tps: 116.72597
+ dps: 94.349
+ tps: 109.53276
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 309.89343
- tps: 527.51526
+ dps: 283.81885
+ tps: 499.17901
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 96.35163
- tps: 107.13931
+ dps: 85.37421
+ tps: 96.05863
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 197.5688
- tps: 215.08797
+ dps: 181.47227
+ tps: 198.99145
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 127.21285
- tps: 307.95967
+ dps: 120.05059
+ tps: 300.79741
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 45.52463
- tps: 54.56197
+ dps: 42.23114
+ tps: 51.26848
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 102.1587
- tps: 117.34245
+ dps: 94.96835
+ tps: 110.1521
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 467.06201
- tps: 506.5581
+ dps: 355.92742
+ tps: 391.45531
}
}
diff --git a/sim/paladin/retribution/retribution_test.go b/sim/paladin/retribution/retribution_test.go
index 8220a91d9..a8a3e1829 100644
--- a/sim/paladin/retribution/retribution_test.go
+++ b/sim/paladin/retribution/retribution_test.go
@@ -24,7 +24,7 @@ func TestRetribution(t *testing.T) {
GearSet: core.GetGearSet("../../../ui/retribution_paladin/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/retribution_paladin/apls", "p5ret-twist-4DR-3.5-3.6"),
OtherRotations: []core.RotationCombo{core.GetAplRotation("../../../ui/retribution_paladin/apls", "p5ret-twist-4DR-3.7-4.0")},
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "P5 Seal of Martyrdom Ret", SpecOptions: PlayerOptionsSealofMartyrdom},
@@ -47,7 +47,7 @@ func TestExodin(t *testing.T) {
Talents: Phase45RetTalents,
GearSet: core.GetGearSet("../../../ui/retribution_paladin/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/retribution_paladin/apls", "p5ret-exodin-6CF2DR"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "P5 Seal of Martyrdom Ret", SpecOptions: PlayerOptionsSealofMartyrdom},
@@ -70,7 +70,7 @@ func TestShockadin(t *testing.T) {
Talents: Phase45ShockadinTalents,
GearSet: core.GetGearSet("../../../ui/retribution_paladin/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/retribution_paladin/apls", "p5Shockadin"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "P5 Seal of Righteousness Shockadin", SpecOptions: PlayerOptionsSealofRighteousness},
@@ -94,8 +94,8 @@ var Phase1Consumes = core.ConsumesCombo{
AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
DefaultPotion: proto.Potions_ManaPotion,
FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
+ //MainHandImbue: proto.WeaponImbue_WildStrikes,
+ StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
},
}
@@ -113,41 +113,6 @@ var Phase2Consumes = core.ConsumesCombo{
},
}
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose,
- DefaultPotion: proto.Potions_MajorManaPotion,
- DefaultConjured: proto.Conjured_ConjuredDemonicRune,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodBlessSunfruit,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ElixirOfGiants,
- EnchantedSigil: proto.EnchantedSigil_LivingDreamsSigil,
- AttackPowerBuff: proto.AttackPowerBuff_WinterfallFirewater,
- ZanzaBuff: proto.ZanzaBuff_AtalaiMojoOfWar,
- },
-}
-var Phase4Consumes = core.ConsumesCombo{
- Label: "P4-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose,
- AttackPowerBuff: proto.AttackPowerBuff_JujuMight,
- Flask: proto.Flask_FlaskOfSupremePower,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
- StrengthBuff: proto.StrengthBuff_JujuPower,
- EnchantedSigil: proto.EnchantedSigil_FlowingWatersSigil,
- },
-}
-
var Phase5Consumes = core.ConsumesCombo{
Label: "P5-Consumes",
Consumes: &proto.Consumes{
@@ -155,14 +120,13 @@ var Phase5Consumes = core.ConsumesCombo{
AttackPowerBuff: proto.AttackPowerBuff_JujuMight,
DefaultPotion: proto.Potions_MajorManaPotion,
DragonBreathChili: true,
- EnchantedSigil: proto.EnchantedSigil_FlowingWatersSigil,
Flask: proto.Flask_FlaskOfSupremePower,
FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_MagnificentTrollshine,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- StrengthBuff: proto.StrengthBuff_JujuPower,
+ //MainHandImbue: proto.WeaponImbue_WildStrikes,
+ //OffHandImbue: proto.WeaponImbue_MagnificentTrollshine,
+ SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
+ StrengthBuff: proto.StrengthBuff_JujuPower,
},
}
diff --git a/sim/priest/homunculi.go b/sim/priest/homunculi.go
index 753f15d31..e86a337ed 100644
--- a/sim/priest/homunculi.go
+++ b/sim/priest/homunculi.go
@@ -133,7 +133,7 @@ func (priest *Priest) homunculusStatInheritance() core.PetStatInheritance {
}
}
-func (homunculus *Homunculus) newHomunculusCrippleSpell() core.SpellConfig {
+/* func (homunculus *Homunculus) newHomunculusCrippleSpell() core.SpellConfig {
attackSpeedAuras := homunculus.NewEnemyAuraArray(core.HomunculiAttackSpeedAura)
return core.SpellConfig{
@@ -195,17 +195,17 @@ func (homunculus *Homunculus) newHomunculusDemoralizeSpell() core.SpellConfig {
attackPowerAuras.Get(target).Activate(sim)
},
}
-}
+} */
func (homunculus *Homunculus) Initialize() {
- switch homunculus.npcID {
+ /* switch homunculus.npcID {
case 202390:
homunculus.PrimarySpell = homunculus.GetOrRegisterSpell(homunculus.newHomunculusCrippleSpell())
case 202392:
homunculus.PrimarySpell = homunculus.GetOrRegisterSpell(homunculus.newHomunculusDegradeSpell())
case 202391:
homunculus.PrimarySpell = homunculus.GetOrRegisterSpell(homunculus.newHomunculusDemoralizeSpell())
- }
+ } */
}
func (homunculus *Homunculus) ExecuteCustomRotation(sim *core.Simulation) {
diff --git a/sim/priest/priest.go b/sim/priest/priest.go
index c3a239ae8..9f7d6dba2 100644
--- a/sim/priest/priest.go
+++ b/sim/priest/priest.go
@@ -169,7 +169,7 @@ func New(character *core.Character, talents string) *Priest {
}
func (priest *Priest) HasRune(rune proto.PriestRune) bool {
- return priest.HasRuneById(int32(rune))
+ return false // priest.HasRuneById(int32(rune))
}
func (priest *Priest) baseRuneAbilityDamage() float64 {
diff --git a/sim/priest/shadow/TestShadow.results b/sim/priest/shadow/TestShadow.results
index d1caa3a7c..8d2b0b1b8 100644
--- a/sim/priest/shadow/TestShadow.results
+++ b/sim/priest/shadow/TestShadow.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestShadow-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 196.075
- final_stats: 203.665
- final_stats: 389.58205
- final_stats: 237.82
- final_stats: 249.205
+ final_stats: 178.25
+ final_stats: 185.15
+ final_stats: 354.1655
+ final_stats: 216.2
+ final_stats: 226.55
final_stats: 150
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 40
final_stats: 41.25
final_stats: 0
- final_stats: 25.79538
+ final_stats: 25.43216
final_stats: 0
final_stats: 0
- final_stats: 1016.075
+ final_stats: 798.25
final_stats: 0
final_stats: 16
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4663.3
+ final_stats: 4339
final_stats: 0
final_stats: 0
- final_stats: 407.33
- final_stats: 740
+ final_stats: 370.3
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
final_stats: 3
final_stats: 5
final_stats: 0
- final_stats: 5412.8205
+ final_stats: 5058.655
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,18 +53,18 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.02449
weights: 0
- weights: 0.28478
weights: 0
+ weights: 0.21637
weights: 0
weights: 0
weights: 0
weights: 0
- weights: 0.28478
weights: 0
- weights: 2.29964
- weights: 1.03979
+ weights: 0.21637
+ weights: 0
+ weights: 1.87704
+ weights: 0.77573
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestShadow-Phase5-Lvl60-Average-Default"
value: {
- dps: 366.05398
- tps: 333.90373
+ dps: 286.06733
+ tps: 276.95122
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 850.70643
- tps: 1046.56122
+ dps: 626.36854
+ tps: 813.79835
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 361.36994
- tps: 326.91127
+ dps: 280.56029
+ tps: 271.6082
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 456.96536
- tps: 332.97219
+ dps: 286.68517
+ tps: 277.38896
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 327.74159
- tps: 482.77496
+ dps: 286.20154
+ tps: 448.27043
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 204.62535
- tps: 188.61664
+ dps: 192.23402
+ tps: 188.87547
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 258.60161
- tps: 194.83899
+ dps: 196.52876
+ tps: 188.66761
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 847.43525
- tps: 1070.71069
+ dps: 590.44037
+ tps: 781.1205
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 365.47664
- tps: 331.22931
+ dps: 284.04091
+ tps: 275.05313
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 450.40569
- tps: 329.14729
+ dps: 280.26214
+ tps: 271.34086
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 324.12485
- tps: 484.28596
+ dps: 294.10019
+ tps: 455.85314
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 207.49383
- tps: 193.07266
+ dps: 194.36975
+ tps: 192.39595
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-Troll-blank-Basic-phase_5-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 253.13845
- tps: 192.77275
+ dps: 191.14629
+ tps: 183.50044
}
}
dps_results: {
key: "TestShadow-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 365.47664
- tps: 331.22931
+ dps: 284.04091
+ tps: 275.05313
}
}
diff --git a/sim/priest/shadow/shadow_priest_test.go b/sim/priest/shadow/shadow_priest_test.go
index b1df1faf5..9e11bf810 100644
--- a/sim/priest/shadow/shadow_priest_test.go
+++ b/sim/priest/shadow/shadow_priest_test.go
@@ -24,7 +24,7 @@ func TestShadow(t *testing.T) {
Talents: Phase4Talents,
GearSet: core.GetGearSet("../../../ui/shadow_priest/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/shadow_priest/apls", "phase_5"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Basic", SpecOptions: PlayerOptionsBasic},
@@ -40,36 +40,6 @@ var Phase2Talents = "--5022204002501251"
var Phase3Talents = "-0055-5022204002501251"
var Phase4Talents = "0512301302--5002504103501251"
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- Food: proto.Food_FoodNightfinSoup,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_ArcaneElixir,
- ShadowPowerBuff: proto.ShadowPowerBuff_ElixirOfShadowPower,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
diff --git a/sim/rogue/dps_rogue/TestAssassination.results b/sim/rogue/dps_rogue/TestAssassination.results
index a61fc5ce9..5691d6e61 100644
--- a/sim/rogue/dps_rogue/TestAssassination.results
+++ b/sim/rogue/dps_rogue/TestAssassination.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestAssassination-Phase2-Lvl40-CharacterStats-Default"
value: {
- final_stats: 80.3
- final_stats: 119.9
- final_stats: 156.2
- final_stats: 59.4
- final_stats: 80.85
- final_stats: 42
+ final_stats: 111.32
+ final_stats: 156.86
+ final_stats: 228.39575
+ final_stats: 87.285
+ final_stats: 112.90125
+ final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 24
final_stats: 0
- final_stats: 7
+ final_stats: 21
final_stats: 0
final_stats: 0
- final_stats: 598.2
+ final_stats: 886.18
final_stats: 0
- final_stats: 14.66644
+ final_stats: 26.72142
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 502.8
- final_stats: 339.9
+ final_stats: 576.72
+ final_stats: 596.86
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 13.33288
+ final_stats: 17.44283
final_stats: 5
final_stats: 0
- final_stats: 2085
+ final_stats: 2806.9575
final_stats: 13
final_stats: 30
final_stats: 30
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestAssassination-Phase2-Lvl40-StatWeights-Default"
value: {
- weights: 0.09138
- weights: 0.1235
+ weights: 0.10757
+ weights: 0.15682
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.08308
- weights: 0.28223
- weights: 0.50977
+ weights: 0.08503
+ weights: 0.36349
+ weights: 0.71253
weights: 0
weights: 0
weights: 0
@@ -99,8 +99,8 @@ stat_weights_results: {
dps_results: {
key: "TestAssassination-Phase2-Lvl40-Average-Default"
value: {
- dps: 51.89712
- tps: 36.84696
+ dps: 77.62275
+ tps: 55.11216
}
}
dps_results: {
@@ -154,7 +154,7 @@ dps_results: {
dps_results: {
key: "TestAssassination-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 48.35335
- tps: 34.33088
+ dps: 72.75594
+ tps: 51.65672
}
}
diff --git a/sim/rogue/dps_rogue/TestCombat.results b/sim/rogue/dps_rogue/TestCombat.results
index 23479d785..b7193926f 100644
--- a/sim/rogue/dps_rogue/TestCombat.results
+++ b/sim/rogue/dps_rogue/TestCombat.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestCombat-Phase2-Lvl40-CharacterStats-Default"
value: {
- final_stats: 80.3
- final_stats: 119.9
- final_stats: 156.2
- final_stats: 59.4
- final_stats: 80.85
- final_stats: 42
+ final_stats: 111.32
+ final_stats: 156.86
+ final_stats: 228.39575
+ final_stats: 87.285
+ final_stats: 112.90125
+ final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 24
final_stats: 0
- final_stats: 7
+ final_stats: 21
final_stats: 0
final_stats: 0
- final_stats: 598.2
+ final_stats: 886.18
final_stats: 5
- final_stats: 9.66644
+ final_stats: 21.72142
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 502.8
- final_stats: 339.9
+ final_stats: 576.72
+ final_stats: 596.86
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 18.33288
+ final_stats: 22.44283
final_stats: 5
final_stats: 0
- final_stats: 2085
+ final_stats: 2806.9575
final_stats: 13
final_stats: 30
final_stats: 30
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestCombat-Phase2-Lvl40-StatWeights-Default"
value: {
- weights: 0.09344
- weights: 0.12666
+ weights: 0.10951
+ weights: 0.1612
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.08495
- weights: 0.57082
- weights: 0.54939
+ weights: 0.08657
+ weights: 0.7808
+ weights: 0.71495
weights: 0
weights: 0
weights: 0
@@ -99,8 +99,8 @@ stat_weights_results: {
dps_results: {
key: "TestCombat-Phase2-Lvl40-Average-Default"
value: {
- dps: 52.93561
- tps: 37.58429
+ dps: 79.16551
+ tps: 56.20751
}
}
dps_results: {
@@ -154,7 +154,7 @@ dps_results: {
dps_results: {
key: "TestCombat-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 49.69395
- tps: 35.28271
+ dps: 74.38794
+ tps: 52.81544
}
}
diff --git a/sim/rogue/dps_rogue/dps_rogue_test.go b/sim/rogue/dps_rogue/dps_rogue_test.go
index dff395faf..c1ce952ff 100644
--- a/sim/rogue/dps_rogue/dps_rogue_test.go
+++ b/sim/rogue/dps_rogue/dps_rogue_test.go
@@ -22,7 +22,7 @@ func TestCombat(t *testing.T) {
Talents: CombatDagger40Talents,
GearSet: core.GetGearSet("../../../ui/rogue/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/rogue/apls", "mutilate"),
- Buffs: core.FullBuffsPhase2,
+ Buffs: core.FullBuffs,
Consumes: Phase2Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "No Poisons", SpecOptions: DefaultCombatRogue},
@@ -44,7 +44,7 @@ func TestAssassination(t *testing.T) {
Talents: Assassination40Talents,
GearSet: core.GetGearSet("../../../ui/rogue/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/rogue/apls", "mutilate"),
- Buffs: core.FullBuffsPhase2,
+ Buffs: core.FullBuffs,
Consumes: Phase2Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "No Poisons", SpecOptions: DefaultAssassinationRogue},
@@ -97,21 +97,11 @@ var DefaultCombatRogue = &proto.Player_Rogue{
var DefaultDeadlyBrewOptions = &proto.RogueOptions{}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_BlackfathomSharpeningStone,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
var Phase2Consumes = core.ConsumesCombo{
Label: "P2-Consumes",
Consumes: &proto.Consumes{
AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
+ MainHandImbue: proto.WeaponImbue_Windfury,
OffHandImbue: proto.WeaponImbue_SolidSharpeningStone,
StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
},
diff --git a/sim/rogue/rogue.go b/sim/rogue/rogue.go
index 79cea68ae..dbf936712 100644
--- a/sim/rogue/rogue.go
+++ b/sim/rogue/rogue.go
@@ -94,7 +94,7 @@ type Rogue struct {
ExposeArmor *core.Spell
Rupture *core.Spell
SliceAndDice *core.Spell
- Finishers []*core.Spell
+ Finishers []*core.Spell
Evasion *core.Spell
BladeDance *core.Spell
@@ -251,7 +251,7 @@ type RogueAgent interface {
}
func (rogue *Rogue) HasRune(rune proto.RogueRune) bool {
- return rogue.HasRuneById(int32(rune))
+ return false // rogue.HasRuneById(int32(rune))
}
func (rogue *Rogue) baseRuneAbilityDamage() float64 {
diff --git a/sim/rogue/waylay.go b/sim/rogue/waylay.go
index 8bc22a0cb..f7d719296 100644
--- a/sim/rogue/waylay.go
+++ b/sim/rogue/waylay.go
@@ -1,7 +1,6 @@
package rogue
import (
- "github.com/wowsims/classic/sim/core"
"github.com/wowsims/classic/sim/core/proto"
)
@@ -10,7 +9,7 @@ func (rogue *Rogue) registerWaylayAura() {
return
}
- rogue.WaylayAuras = rogue.NewEnemyAuraArray(func(target *core.Unit, level int32) *core.Aura {
- return core.WaylayAura(target)
- })
+ // rogue.WaylayAuras = rogue.NewEnemyAuraArray(func(target *core.Unit, level int32) *core.Aura {
+ // return core.WaylayAura(target)
+ // })
}
diff --git a/sim/shaman/elemental/TestElemental.results b/sim/shaman/elemental/TestElemental.results
index 989a99b84..200c0efb1 100644
--- a/sim/shaman/elemental/TestElemental.results
+++ b/sim/shaman/elemental/TestElemental.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestElemental-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 259.325
- final_stats: 222.64
- final_stats: 365.14225
- final_stats: 199.87
- final_stats: 217.58
- final_stats: 186
+ final_stats: 235.75
+ final_stats: 202.4
+ final_stats: 331.9475
+ final_stats: 181.7
+ final_stats: 197.8
+ final_stats: 150
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 3
- final_stats: 27.6778
+ final_stats: 26.37073
final_stats: 0
final_stats: 0
- final_stats: 1448.65
+ final_stats: 1201.5
final_stats: 3
- final_stats: 26.01011
+ final_stats: 24.98192
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4238.05
+ final_stats: 3965.5
final_stats: 0
final_stats: 0
- final_stats: 829.28
- final_stats: 740
+ final_stats: 788.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 13.01011
+ final_stats: 11.98192
final_stats: 5
final_stats: 0
- final_stats: 5194.4225
+ final_stats: 4862.475
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,18 +53,18 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 1.09248
+ weights: 0.86107
weights: 0
- weights: 0.80904
+ weights: 0.59438
weights: 0
- weights: 0.11555
+ weights: 0.09364
weights: 0
weights: 0
- weights: 0.69349
+ weights: 0.50074
weights: 0
weights: 0
- weights: 6.9332
- weights: 4.39118
+ weights: 5.94787
+ weights: 3.04633
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestElemental-Phase5-Lvl60-Average-Default"
value: {
- dps: 672.95578
- tps: 677.91111
+ dps: 480.31666
+ tps: 492.31878
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 1341.60726
- tps: 1291.62489
+ dps: 984.80073
+ tps: 1112.17934
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 626.5589
- tps: 628.08134
+ dps: 440.22006
+ tps: 448.51497
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 716.89938
- tps: 725.56093
+ dps: 525.39144
+ tps: 541.24744
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 453.56239
- tps: 678.48833
+ dps: 439.78229
+ tps: 670.41777
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 204.00015
- tps: 208.96293
+ dps: 193.28771
+ tps: 199.2521
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Orc-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 307.53315
- tps: 319.6936
+ dps: 290.74843
+ tps: 303.82981
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 1320.91048
- tps: 1297.77723
+ dps: 976.53039
+ tps: 1111.55347
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 624.42618
- tps: 626.23169
+ dps: 435.25247
+ tps: 444.01548
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 739.66558
- tps: 749.90851
+ dps: 540.48595
+ tps: 557.37134
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 420.30746
- tps: 676.11031
+ dps: 407.40739
+ tps: 668.29302
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 205.14144
- tps: 210.4885
+ dps: 194.00563
+ tps: 200.3651
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-Settings-Troll-blank-Adaptive-phase_5-NoBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 302.12587
- tps: 314.5904
+ dps: 285.69204
+ tps: 299.14104
}
}
dps_results: {
key: "TestElemental-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 672.25324
- tps: 677.51161
+ dps: 481.00463
+ tps: 493.33076
}
}
diff --git a/sim/shaman/elemental/elemental_test.go b/sim/shaman/elemental/elemental_test.go
index 100fc5150..36a69ce56 100644
--- a/sim/shaman/elemental/elemental_test.go
+++ b/sim/shaman/elemental/elemental_test.go
@@ -24,7 +24,7 @@ func TestElemental(t *testing.T) {
Talents: Phase4Talents,
GearSet: core.GetGearSet("../../../ui/elemental_shaman/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/elemental_shaman/apls", "phase_5"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase5Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Adaptive", SpecOptions: PlayerOptionsAdaptive},
@@ -46,63 +46,15 @@ var PlayerOptionsAdaptive = &proto.Player_ElementalShaman{
},
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- OffHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_GreaterManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- Food: proto.Food_FoodNightfinSoup,
- MainHandImbue: proto.WeaponImbue_FlametongueWeapon,
- OffHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_ArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ElixirOfGiants,
- },
-}
-
-var Phase4Consumes = core.ConsumesCombo{
- Label: "P4-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- Flask: proto.Flask_FlaskOfSupremePower,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- Food: proto.Food_FoodRunnTumTuberSurprise,
- MainHandImbue: proto.WeaponImbue_FlametongueWeapon,
- OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- },
-}
-
var Phase5Consumes = core.ConsumesCombo{
Label: "P5-Consumes",
Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_MajorManaPotion,
- Flask: proto.Flask_FlaskOfSupremePower,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- Food: proto.Food_FoodRunnTumTuberSurprise,
- MainHandImbue: proto.WeaponImbue_FlametongueWeapon,
- OffHandImbue: proto.WeaponImbue_MagnificentTrollshine,
+ DefaultPotion: proto.Potions_MajorManaPotion,
+ Flask: proto.Flask_FlaskOfSupremePower,
+ FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
+ Food: proto.Food_FoodRunnTumTuberSurprise,
+ MainHandImbue: proto.WeaponImbue_FlametongueWeapon,
+ //OffHandImbue: proto.WeaponImbue_MagnificentTrollshine,
SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
},
}
diff --git a/sim/shaman/enhancement/TestEnhancement.results b/sim/shaman/enhancement/TestEnhancement.results
index ca13e9b2e..8713fbfc0 100644
--- a/sim/shaman/enhancement/TestEnhancement.results
+++ b/sim/shaman/enhancement/TestEnhancement.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestEnhancement-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 309.925
- final_stats: 254.265
- final_stats: 365.14225
- final_stats: 187.22
- final_stats: 217.58
+ final_stats: 281.75
+ final_stats: 231.15
+ final_stats: 331.9475
+ final_stats: 170.2
+ final_stats: 197.8
final_stats: 150
final_stats: 0
final_stats: 40
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 26.46402
+ final_stats: 26.17638
final_stats: 0
final_stats: 0
- final_stats: 1589.85
+ final_stats: 1333.5
final_stats: 0
- final_stats: 34.61666
+ final_stats: 33.44242
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4250.715
+ final_stats: 3982.65
final_stats: 0
final_stats: 0
- final_stats: 892.53
- final_stats: 780
+ final_stats: 846.3
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 14.61666
+ final_stats: 13.44242
final_stats: 5
final_stats: 0
- final_stats: 5194.4225
+ final_stats: 4862.475
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestEnhancement-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.35917
- weights: 0.25331
+ weights: 0.32131
+ weights: 0.19853
weights: 0
weights: 0
weights: 0
- weights: 0.24094
+ weights: 0.19354
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.14196
- weights: 1.09562
- weights: 2.91414
+ weights: 0.1397
+ weights: 0
+ weights: 2.66043
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Average-Default"
value: {
- dps: 464.11124
- tps: 536.93181
+ dps: 377.21667
+ tps: 437.35171
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-LongMultiTarget"
value: {
- dps: 444.9234
- tps: 1223.36454
+ dps: 332.77234
+ tps: 1069.28374
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-LongSingleTarget"
value: {
- dps: 243.60587
- tps: 314.39053
+ dps: 195.32497
+ tps: 252.95362
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-ShortSingleTarget"
value: {
- dps: 242.69644
- tps: 314.55301
+ dps: 195.60525
+ tps: 254.75339
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-LongMultiTarget"
value: {
- dps: 444.9234
- tps: 1223.36454
+ dps: 332.77234
+ tps: 1069.28374
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-LongSingleTarget"
value: {
- dps: 243.60587
- tps: 314.39053
+ dps: 195.32497
+ tps: 252.95362
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Orc-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-ShortSingleTarget"
value: {
- dps: 242.69644
- tps: 314.55301
+ dps: 195.60525
+ tps: 254.75339
}
}
dps_results: {
@@ -190,22 +190,22 @@ dps_results: {
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-LongMultiTarget"
value: {
- dps: 442.78265
- tps: 1220.6077
+ dps: 332.82745
+ tps: 1073.47774
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-LongSingleTarget"
value: {
- dps: 248.42012
- tps: 322.69053
+ dps: 197.94019
+ tps: 257.11544
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Auto-phase_5-FullBuffs-P4-Consumes WF/WF-ShortSingleTarget"
value: {
- dps: 242.60023
- tps: 315.25556
+ dps: 195.51878
+ tps: 252.48662
}
}
dps_results: {
@@ -232,22 +232,22 @@ dps_results: {
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-LongMultiTarget"
value: {
- dps: 442.78265
- tps: 1220.6077
+ dps: 332.82745
+ tps: 1073.47774
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-LongSingleTarget"
value: {
- dps: 248.42012
- tps: 322.69053
+ dps: 197.94019
+ tps: 257.11544
}
}
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-Settings-Troll-blank-Sync Delay OH-phase_5-FullBuffs-P4-Consumes WF/WF-ShortSingleTarget"
value: {
- dps: 242.60023
- tps: 315.25556
+ dps: 195.51878
+ tps: 252.48662
}
}
dps_results: {
@@ -274,7 +274,7 @@ dps_results: {
dps_results: {
key: "TestEnhancement-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 411.0518
- tps: 481.64665
+ dps: 337.06084
+ tps: 396.17458
}
}
diff --git a/sim/shaman/enhancement/enhancement_test.go b/sim/shaman/enhancement/enhancement_test.go
index 2c33109e7..1542f0724 100644
--- a/sim/shaman/enhancement/enhancement_test.go
+++ b/sim/shaman/enhancement/enhancement_test.go
@@ -27,7 +27,7 @@ func TestEnhancement(t *testing.T) {
// core.GetGearSet("../../../ui/enhancement_shaman/gear_sets", "phase_5_2h"),
// },
Rotation: core.GetAplRotation("../../../ui/enhancement_shaman/apls", "phase_5"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase4ConsumesWFWF,
SpecOptions: core.SpecOptionsCombo{Label: "Sync Auto", SpecOptions: PlayerOptionsSyncAuto},
OtherSpecOptions: []core.SpecOptionsCombo{
@@ -66,78 +66,6 @@ var optionsSyncAuto = &proto.EnhancementShaman_Options{
SyncType: proto.ShamanSyncType_Auto,
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- MainHandImbue: proto.WeaponImbue_RockbiterWeapon,
- OffHandImbue: proto.WeaponImbue_RockbiterWeapon,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2ConsumesWFWF = core.ConsumesCombo{
- Label: "P2-Consumes WF/WF",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_WindfuryWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2ConsumesWFFT = core.ConsumesCombo{
- Label: "P2-Consumes WF/FT",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_FlametongueWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ScrollOfStrength,
- },
-}
-
-var Phase3ConsumesWFWF = core.ConsumesCombo{
- Label: "P3-Consumes WF/WF",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_WindfuryWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase3ConsumesWFFT = core.ConsumesCombo{
- Label: "P3-Consumes WF/FT",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_FlametongueWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- StrengthBuff: proto.StrengthBuff_ScrollOfStrength,
- },
-}
-
var Phase4ConsumesWFWF = core.ConsumesCombo{
Label: "P4-Consumes WF/WF",
Consumes: &proto.Consumes{
@@ -155,23 +83,6 @@ var Phase4ConsumesWFWF = core.ConsumesCombo{
},
}
-var Phase4ConsumesWFFT = core.ConsumesCombo{
- Label: "P4-Consumes WF/FT",
- Consumes: &proto.Consumes{
- AttackPowerBuff: proto.AttackPowerBuff_JujuMight,
- AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose,
- DefaultPotion: proto.Potions_MajorManaPotion,
- DragonBreathChili: true,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower,
- Flask: proto.Flask_FlaskOfSupremePower,
- Food: proto.Food_FoodBlessSunfruit,
- MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_FlametongueWeapon,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- StrengthBuff: proto.StrengthBuff_JujuPower,
- },
-}
-
var ItemFilters = core.ItemFilter{
WeaponTypes: []proto.WeaponType{
proto.WeaponType_WeaponTypeAxe,
diff --git a/sim/shaman/runes.go b/sim/shaman/runes.go
index a0c449b3d..ac8d7f28f 100644
--- a/sim/shaman/runes.go
+++ b/sim/shaman/runes.go
@@ -454,7 +454,7 @@ func (shaman *Shaman) applySpiritOfTheAlpha() {
return
}
- shaman.SpiritOfTheAlphaAura = core.SpiritOfTheAlphaAura(&shaman.Unit)
+ /* shaman.SpiritOfTheAlphaAura = core.SpiritOfTheAlphaAura(&shaman.Unit)
shaman.LoyalBetaAura = shaman.RegisterAura(core.Aura{
Label: "Loyal Beta",
Duration: core.NeverExpires,
@@ -474,5 +474,5 @@ func (shaman *Shaman) applySpiritOfTheAlpha() {
shaman.LoyalBetaAura.OnReset = func(aura *core.Aura, sim *core.Simulation) {
aura.Activate(sim)
}
- }
+ } */
}
diff --git a/sim/shaman/shaman.go b/sim/shaman/shaman.go
index 4f2ea6a39..01bd96634 100644
--- a/sim/shaman/shaman.go
+++ b/sim/shaman/shaman.go
@@ -239,7 +239,7 @@ func (shaman *Shaman) RegisterHealingSpells() {
}
func (shaman *Shaman) HasRune(rune proto.ShamanRune) bool {
- return shaman.HasRuneById(int32(rune))
+ return false // shaman.HasRuneById(int32(rune))
}
func (shaman *Shaman) baseRuneAbilityDamage() float64 {
diff --git a/sim/shaman/warden/TestWardenShaman.results b/sim/shaman/warden/TestWardenShaman.results
index ed2f24cf3..d4a0e27a3 100644
--- a/sim/shaman/warden/TestWardenShaman.results
+++ b/sim/shaman/warden/TestWardenShaman.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestWardenShaman-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 269.5
- final_stats: 221.1
- final_stats: 317.515
- final_stats: 162.8
- final_stats: 189.2
- final_stats: 24
+ final_stats: 281.75
+ final_stats: 231.15
+ final_stats: 331.9475
+ final_stats: 170.2
+ final_stats: 197.8
+ final_stats: 0
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 0
final_stats: 41.25
final_stats: 0
- final_stats: 26.05132
+ final_stats: 26.17638
final_stats: 0
final_stats: 0
- final_stats: 1509
+ final_stats: 1333.5
final_stats: 0
- final_stats: 32.93188
+ final_stats: 33.44242
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3682
+ final_stats: 3793
final_stats: 0
final_stats: 0
- final_stats: 826.2
- final_stats: 780
+ final_stats: 846.3
+ final_stats: 580
final_stats: 0
final_stats: 10
final_stats: 0
- final_stats: 13.93188
+ final_stats: 14.44242
final_stats: 5
final_stats: 0
- final_stats: 5918.15
+ final_stats: 6062.475
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestWardenShaman-Phase4-Lvl60-StatWeights-Default"
value: {
- weights: 0.30619
+ weights: 0.17423
weights: 0
weights: 0
weights: 0
weights: 0
- weights: 0.24441
+ weights: 0.31539
weights: 0
weights: 0
weights: 0
@@ -67,7 +67,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.13918
+ weights: 0.07575
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,98 @@ stat_weights_results: {
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Average-Default"
value: {
- dps: 422.97807
- tps: 499.09774
+ dps: 327.98438
+ tps: 404.21491
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 999.57947
- tps: 962.47178
+ dps: 671.0095
+ tps: 953.09317
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 221.44878
- tps: 292.88457
+ dps: 215.9138
+ tps: 271.66805
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 231.27534
- tps: 313.09316
+ dps: 265.358
+ tps: 333.7229
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 338.93776
- tps: 592.039
+ dps: 261.69901
+ tps: 596.83617
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 83.80546
- tps: 122.00432
+ dps: 97.72531
+ tps: 124.94224
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Orc-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 122.43003
- tps: 181.33723
+ dps: 160.86839
+ tps: 206.39957
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 1014.57069
- tps: 954.5221
+ dps: 662.21242
+ tps: 940.98577
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 220.81782
- tps: 291.59742
+ dps: 209.47357
+ tps: 267.86044
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 232.36226
- tps: 318.68043
+ dps: 280.11475
+ tps: 358.28878
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 328.07216
- tps: 589.79097
+ dps: 249.44591
+ tps: 594.67489
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 81.51148
- tps: 118.83441
+ dps: 95.9338
+ tps: 120.83474
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-Settings-Troll-blank-Default-phase_4_enh_tank-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 116.52384
- tps: 172.11843
+ dps: 151.80274
+ tps: 197.09888
}
}
dps_results: {
key: "TestWardenShaman-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 381.4182
- tps: 457.92841
+ dps: 305.08563
+ tps: 378.70308
}
}
diff --git a/sim/shaman/warden/warden_test.go b/sim/shaman/warden/warden_test.go
index 55ce30508..176bfc36f 100644
--- a/sim/shaman/warden/warden_test.go
+++ b/sim/shaman/warden/warden_test.go
@@ -23,7 +23,7 @@ func TestWardenShaman(t *testing.T) {
Talents: Phase4Talents,
GearSet: core.GetGearSet("../../../ui/warden_shaman/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/warden_shaman/apls", "phase_4_enh_tank"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Default", SpecOptions: PlayerOptionsBasic},
@@ -53,9 +53,9 @@ var Phase4Consumes = core.ConsumesCombo{
Flask: proto.Flask_FlaskOfTheTitans,
Food: proto.Food_FoodBlessSunfruit,
MainHandImbue: proto.WeaponImbue_WindfuryWeapon,
- OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- StrengthBuff: proto.StrengthBuff_JujuPower,
+ //OffHandImbue: proto.WeaponImbue_ConductiveShieldCoating,
+ SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
+ StrengthBuff: proto.StrengthBuff_JujuPower,
},
}
diff --git a/sim/warlock/dps/TestAffliction.results b/sim/warlock/dps/TestAffliction.results
index 6fd7d5beb..0bfa0c765 100644
--- a/sim/warlock/dps/TestAffliction.results
+++ b/sim/warlock/dps/TestAffliction.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestAffliction-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 185.9
- final_stats: 194.7
- final_stats: 418.715
- final_stats: 247.5
- final_stats: 228.8
- final_stats: 559.4
+ final_stats: 194.35
+ final_stats: 203.55
+ final_stats: 437.7475
+ final_stats: 258.75
+ final_stats: 239.2
+ final_stats: 564.6
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 159
final_stats: 45.25
final_stats: 5
- final_stats: 28.78375
+ final_stats: 28.96938
final_stats: 0
final_stats: 0
- final_stats: 1005.9
+ final_stats: 814.35
final_stats: 0
- final_stats: 24.735
+ final_stats: 25.1775
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4805.5
+ final_stats: 4974.25
final_stats: 0
final_stats: 0
- final_stats: 1335.4
- final_stats: 740
+ final_stats: 1353.1
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.735
+ final_stats: 12.1775
final_stats: 5
final_stats: 0
- final_stats: 5721.15
+ final_stats: 5911.475
final_stats: 27
final_stats: 76
final_stats: 60
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.09356
+ weights: 0.02841
weights: 0
- weights: 0.36868
+ weights: 0.28413
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 4.22644
- weights: 0.91006
+ weights: 3.47155
+ weights: 0.74065
weights: 0
weights: 0
weights: 0
@@ -99,33 +99,33 @@ stat_weights_results: {
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Average-Default"
value: {
- dps: 603.11442
- tps: 419.26858
- hps: 248.4336
+ dps: 503.11693
+ tps: 355.02362
+ hps: 207.21698
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 600.10222
- tps: 883.76633
- hps: 248.67172
+ dps: 500.4467
+ tps: 822.12009
+ hps: 206.57229
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 600.10222
- tps: 416.35718
- hps: 248.67172
+ dps: 500.4467
+ tps: 352.10643
+ hps: 206.57229
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 632.46626
- tps: 450.38919
- hps: 232.61922
+ dps: 523.21588
+ tps: 376.7872
+ hps: 196.21055
}
}
dps_results: {
@@ -155,8 +155,8 @@ dps_results: {
dps_results: {
key: "TestAffliction-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 600.10222
- tps: 416.35718
- hps: 248.67172
+ dps: 500.4467
+ tps: 352.10643
+ hps: 206.57229
}
}
diff --git a/sim/warlock/dps/TestDemonology.results b/sim/warlock/dps/TestDemonology.results
index ca48e60ad..7574a8037 100644
--- a/sim/warlock/dps/TestDemonology.results
+++ b/sim/warlock/dps/TestDemonology.results
@@ -1,41 +1,41 @@
character_stats_results: {
key: "TestDemonology-Phase2-Lvl40-CharacterStats-Default"
value: {
- final_stats: 99
- final_stats: 60.5
- final_stats: 297.275
- final_stats: 165
- final_stats: 123.31
- final_stats: 390.655
+ final_stats: 120.75
+ final_stats: 80.5
+ final_stats: 398.46925
+ final_stats: 189.75
+ final_stats: 158.4125
+ final_stats: 524.20625
final_stats: 0
- final_stats: 10
+ final_stats: 40
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 119
- final_stats: 28.75
+ final_stats: 159
+ final_stats: 32.75
final_stats: 5
- final_stats: 15.023
+ final_stats: 29.67145
final_stats: 0
final_stats: 0
- final_stats: 325
+ final_stats: 566.75
final_stats: 0
- final_stats: 9.2229
+ final_stats: 20.6189
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3118
+ final_stats: 3489.25
final_stats: 0
final_stats: 0
- final_stats: 946
- final_stats: 220
+ final_stats: 986
+ final_stats: 440
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 6.2229
+ final_stats: 7.6189
final_stats: 5
final_stats: 0
- final_stats: 3426.75
+ final_stats: 4738.6925
final_stats: 13
final_stats: 46
final_stats: 30
@@ -43,7 +43,7 @@ character_stats_results: {
final_stats: 30
final_stats: 263
final_stats: 0
- final_stats: 14
+ final_stats: 35
final_stats: 0
}
}
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.00163
+ weights: 0.004
weights: 0
- weights: 0.06564
+ weights: 0.0709
weights: 0
weights: 0
weights: 0
@@ -64,7 +64,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.1072
+ weights: 0.13387
weights: 0
weights: 0
weights: 0
@@ -99,56 +99,56 @@ stat_weights_results: {
dps_results: {
key: "TestDemonology-Phase2-Lvl40-Average-Default"
value: {
- dps: 58.07694
- tps: 61.02938
+ dps: 76.1651
+ tps: 80.20343
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 57.78387
- tps: 70.56708
+ dps: 75.78854
+ tps: 89.68818
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 57.78387
- tps: 60.69183
+ dps: 75.78854
+ tps: 79.81293
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 61.01446
- tps: 74.47527
+ dps: 81.78573
+ tps: 100.98705
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P2-Consumes-LongMultiTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 41.79227
- tps: 43.38676
+ dps: 52.79904
+ tps: 54.97303
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P2-Consumes-LongSingleTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 41.79227
- tps: 43.38676
+ dps: 52.79904
+ tps: 54.97303
}
}
dps_results: {
- key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P2-Consumes-ShortSingleTarget"
+ key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 43.72992
- tps: 52.0126
+ dps: 55.93888
+ tps: 67.23421
}
}
dps_results: {
key: "TestDemonology-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 57.78387
- tps: 60.69183
+ dps: 75.78854
+ tps: 79.81293
}
}
diff --git a/sim/warlock/dps/TestDestruction.results b/sim/warlock/dps/TestDestruction.results
index 03c314f09..877530544 100644
--- a/sim/warlock/dps/TestDestruction.results
+++ b/sim/warlock/dps/TestDestruction.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestDestruction-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 185.9
- final_stats: 194.7
- final_stats: 481.52225
- final_stats: 247.5
- final_stats: 217.36
- final_stats: 553.68
+ final_stats: 194.35
+ final_stats: 203.55
+ final_stats: 503.40962
+ final_stats: 258.75
+ final_stats: 227.24
+ final_stats: 558.62
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 159
final_stats: 45.25
final_stats: 5
- final_stats: 28.78375
+ final_stats: 28.96938
final_stats: 0
final_stats: 0
- final_stats: 1005.9
+ final_stats: 814.35
final_stats: 0
- final_stats: 24.735
+ final_stats: 25.1775
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4805.5
+ final_stats: 4974.25
final_stats: 0
final_stats: 0
- final_stats: 1335.4
- final_stats: 740
+ final_stats: 1353.1
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.735
+ final_stats: 12.1775
final_stats: 5
final_stats: 0
- final_stats: 6349.2225
+ final_stats: 6568.09625
final_stats: 27
final_stats: 76
final_stats: 60
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.20519
+ weights: 0.23734
weights: 0
- weights: 0.59749
+ weights: 0.35633
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 4.58894
- weights: 1.53785
+ weights: 5.08727
+ weights: 2.46119
weights: 0
weights: 0
weights: 0
@@ -99,56 +99,56 @@ stat_weights_results: {
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Average-Default"
value: {
- dps: 565.43322
- tps: 337.55073
+ dps: 662.52898
+ tps: 495.4123
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 566.82962
- tps: 575.20121
+ dps: 664.84066
+ tps: 1093.96523
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 566.82962
- tps: 339.39457
+ dps: 664.84066
+ tps: 498.74818
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 593.95251
- tps: 388.94832
+ dps: 728.86416
+ tps: 587.44758
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 298.65744
- tps: 564.22982
+ dps: 124.33411
+ tps: 892.43736
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 298.65744
- tps: 187.49258
+ dps: 124.33411
+ tps: 49.90734
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 318.17263
- tps: 215.59291
+ dps: 108.5207
+ tps: 34.05603
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 566.82962
- tps: 339.39457
+ dps: 664.58069
+ tps: 498.37335
}
}
diff --git a/sim/warlock/dps/dps_warlock_test.go b/sim/warlock/dps/dps_warlock_test.go
index c58363ce2..8500de2d5 100644
--- a/sim/warlock/dps/dps_warlock_test.go
+++ b/sim/warlock/dps/dps_warlock_test.go
@@ -23,7 +23,7 @@ func TestAffliction(t *testing.T) {
Talents: Phase4AffTalents,
GearSet: core.GetGearSet("../../../ui/warlock/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../../ui/warlock/apls/p4", "affliction"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Affliction Warlock", SpecOptions: DefaultAfflictionWarlock},
@@ -44,8 +44,8 @@ func TestDemonology(t *testing.T) {
Talents: Phase2DemonologyTalents,
GearSet: core.GetGearSet("../../../ui/warlock/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../../ui/warlock/apls/p2", "demonology"),
- Buffs: core.FullBuffsPhase2,
- Consumes: Phase2Consumes,
+ Buffs: core.FullBuffs,
+ Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Demonology Warlock", SpecOptions: DefaultDemonologyWarlock},
ItemFilter: ItemFilters,
@@ -66,7 +66,7 @@ func TestDestruction(t *testing.T) {
Talents: Phase4DestroTalents,
GearSet: core.GetGearSet("../../../ui/warlock/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../../ui/warlock/apls/p4", "destruction"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Destruction Warlock", SpecOptions: DefaultDestroWarlock},
@@ -119,39 +119,6 @@ var DefaultDemonologyWarlock = &proto.Player_Warlock{
},
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_SuperiorManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- ShadowPowerBuff: proto.ShadowPowerBuff_ElixirOfShadowPower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
diff --git a/sim/warlock/runes.go b/sim/warlock/runes.go
index 5aac044bc..5414e36ae 100644
--- a/sim/warlock/runes.go
+++ b/sim/warlock/runes.go
@@ -2,7 +2,6 @@ package warlock
import (
"fmt"
- "math"
"slices"
"time"
@@ -162,9 +161,9 @@ func (warlock *Warlock) applyMarkOfChaos() {
return
}
- warlock.MarkOfChaosAuras = warlock.NewEnemyAuraArray(func(target *core.Unit, _ int32) *core.Aura {
- return core.MarkOfChaosDebuffAura(target)
- })
+ // warlock.MarkOfChaosAuras = warlock.NewEnemyAuraArray(func(target *core.Unit, _ int32) *core.Aura {
+ // return core.MarkOfChaosDebuffAura(target)
+ // })
}
func (warlock *Warlock) applyMarkOfChaosDebuff(sim *core.Simulation, target *core.Unit, duration time.Duration) {
@@ -465,7 +464,7 @@ func (warlock *Warlock) applyDemonicPact() {
return
}
- icd := core.Cooldown{
+ /* icd := core.Cooldown{
Timer: warlock.NewTimer(),
Duration: 1 * time.Second,
}
@@ -515,5 +514,5 @@ func (warlock *Warlock) applyDemonicPact() {
for _, pet := range warlock.BasePets {
pet.RegisterAura(dpTriggerConfig)
- }
+ } */
}
diff --git a/sim/warlock/talents.go b/sim/warlock/talents.go
index a18e57547..3a3ba14d8 100644
--- a/sim/warlock/talents.go
+++ b/sim/warlock/talents.go
@@ -545,9 +545,7 @@ func (warlock *Warlock) applyImprovedShadowBolt() {
return
}
- hasShadowflameRune := warlock.HasRune(proto.WarlockRune_RuneBootsShadowflame)
-
- stackCount := core.TernaryInt32(hasShadowflameRune, core.ISBNumStacksShadowflame, core.ISBNumStacksBase)
+ stackCount := int32(core.ISBNumStacksBase)
warlock.ImprovedShadowBoltAuras = warlock.NewEnemyAuraArray(func(unit *core.Unit, level int32) *core.Aura {
return core.ImprovedShadowBoltAura(unit, warlock.Talents.ImprovedShadowBolt, stackCount)
})
diff --git a/sim/warlock/tank/TestAffliction.results b/sim/warlock/tank/TestAffliction.results
index 0ff32251a..6402954b9 100644
--- a/sim/warlock/tank/TestAffliction.results
+++ b/sim/warlock/tank/TestAffliction.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestAffliction-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 183.7
- final_stats: 182.6
- final_stats: 296.01
- final_stats: 185.9
- final_stats: 221.1
- final_stats: 320.55
+ final_stats: 192.05
+ final_stats: 190.9
+ final_stats: 309.465
+ final_stats: 194.35
+ final_stats: 231.15
+ final_stats: 325.575
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 40
final_stats: 41.25
final_stats: 0
- final_stats: 25.76735
+ final_stats: 25.90678
final_stats: 0
final_stats: 0
- final_stats: 1003.7
+ final_stats: 812.05
final_stats: 0
- final_stats: 24.13
+ final_stats: 24.545
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3881.5
+ final_stats: 4008.25
final_stats: 0
final_stats: 0
- final_stats: 749.2
- final_stats: 740
+ final_stats: 765.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.13
+ final_stats: 11.545
final_stats: 5
final_stats: 0
- final_stats: 4494.1
+ final_stats: 4628.65
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: -0.09672
+ weights: -0.24219
weights: 0
- weights: 0.59324
+ weights: 0.07296
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 9.16777
- weights: 3.27353
+ weights: 3.66598
+ weights: 1.00627
weights: 0
weights: 0
weights: 0
@@ -99,56 +99,64 @@ stat_weights_results: {
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Average-Default"
value: {
- dps: 876.99009
- tps: 945.07448
+ dps: 395.84375
+ tps: 281.87701
+ hps: 143.33867
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 855.98589
- tps: 1998.94104
+ dps: 395.57517
+ tps: 703.08928
+ hps: 142.8239
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 855.98589
- tps: 913.26973
+ dps: 395.57517
+ tps: 283.01063
+ hps: 142.8239
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 877.21082
- tps: 961.58852
+ dps: 452.30043
+ tps: 318.40647
+ hps: 145.6732
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 415.44139
- tps: 1594.67898
+ dps: 223.03096
+ tps: 698.11297
+ hps: 82.49614
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 415.44139
- tps: 453.9737
+ dps: 223.03096
+ tps: 179.23118
+ hps: 82.49614
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 427.57823
- tps: 471.95315
+ dps: 245.33588
+ tps: 198.82781
+ hps: 87.92117
}
}
dps_results: {
key: "TestAffliction-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 866.40495
- tps: 928.42446
+ dps: 390.74659
+ tps: 276.99213
+ hps: 143.19304
}
}
diff --git a/sim/warlock/tank/TestDemonology.results b/sim/warlock/tank/TestDemonology.results
index f509b6aa9..726842093 100644
--- a/sim/warlock/tank/TestDemonology.results
+++ b/sim/warlock/tank/TestDemonology.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestDemonology-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 183.7
- final_stats: 182.6
- final_stats: 340.4115
- final_stats: 185.9
- final_stats: 210.045
- final_stats: 315.0225
+ final_stats: 192.05
+ final_stats: 190.9
+ final_stats: 355.88475
+ final_stats: 194.35
+ final_stats: 219.5925
+ final_stats: 319.79625
final_stats: 0
final_stats: 61
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 40
final_stats: 41.25
final_stats: 0
- final_stats: 25.76735
+ final_stats: 25.90678
final_stats: 0
final_stats: 0
- final_stats: 1003.7
+ final_stats: 812.05
final_stats: 0
- final_stats: 24.13
+ final_stats: 24.545
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3881.5
+ final_stats: 4008.25
final_stats: 0
final_stats: 0
- final_stats: 749.2
- final_stats: 740
+ final_stats: 765.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.13
+ final_stats: 11.545
final_stats: 5
final_stats: 0
- final_stats: 4938.115
+ final_stats: 5092.8475
final_stats: 27
final_stats: 60
final_stats: 60
@@ -55,7 +55,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.03574
+ weights: 0.02972
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.63672
- weights: 0.32625
+ weights: 0.51017
+ weights: 0.29947
weights: 0
weights: 0
weights: 0
@@ -99,33 +99,33 @@ stat_weights_results: {
dps_results: {
key: "TestDemonology-Phase4-Lvl60-Average-Default"
value: {
- dps: 57.03346
- tps: 65.29883
- hps: 3.23594
+ dps: 47.54011
+ tps: 54.8855
+ hps: 2.70296
}
}
dps_results: {
key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 42.35086
- tps: 105.86104
- hps: 3.17281
+ dps: 35.20133
+ tps: 97.83623
+ hps: 2.65522
}
}
dps_results: {
key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 42.35086
- tps: 50.67079
- hps: 3.17281
+ dps: 35.20133
+ tps: 42.64598
+ hps: 2.65522
}
}
dps_results: {
key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 64.87184
- tps: 91.41221
- hps: 16.47716
+ dps: 57.07716
+ tps: 79.38914
+ hps: 13.78919
}
}
dps_results: {
@@ -155,8 +155,8 @@ dps_results: {
dps_results: {
key: "TestDemonology-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 50.73099
- tps: 59.07058
- hps: 3.17281
+ dps: 41.88046
+ tps: 49.34478
+ hps: 2.65522
}
}
diff --git a/sim/warlock/tank/TestDestruction.results b/sim/warlock/tank/TestDestruction.results
index b368231c4..e8ddeebe6 100644
--- a/sim/warlock/tank/TestDestruction.results
+++ b/sim/warlock/tank/TestDestruction.results
@@ -1,12 +1,12 @@
character_stats_results: {
key: "TestDestruction-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 183.7
- final_stats: 182.6
- final_stats: 296.01
- final_stats: 185.9
- final_stats: 221.1
- final_stats: 320.55
+ final_stats: 192.05
+ final_stats: 190.9
+ final_stats: 309.465
+ final_stats: 194.35
+ final_stats: 231.15
+ final_stats: 325.575
final_stats: 0
final_stats: 40
final_stats: 0
@@ -15,27 +15,27 @@ character_stats_results: {
final_stats: 40
final_stats: 41.25
final_stats: 0
- final_stats: 25.76735
+ final_stats: 25.90678
final_stats: 0
final_stats: 0
- final_stats: 1003.7
+ final_stats: 812.05
final_stats: 0
- final_stats: 24.13
+ final_stats: 24.545
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 3881.5
+ final_stats: 4008.25
final_stats: 0
final_stats: 0
- final_stats: 749.2
- final_stats: 740
+ final_stats: 765.8
+ final_stats: 540
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 11.13
+ final_stats: 11.545
final_stats: 5
final_stats: 0
- final_stats: 4494.1
+ final_stats: 4628.65
final_stats: 27
final_stats: 60
final_stats: 60
@@ -53,9 +53,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.24263
+ weights: 0.91009
weights: 0
- weights: 1.86432
+ weights: 0.11006
weights: 0
weights: 0
weights: 0
@@ -63,8 +63,8 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 9.00586
- weights: 3.74242
+ weights: 3.92216
+ weights: 1.09794
weights: 0
weights: 0
weights: 0
@@ -99,56 +99,64 @@ stat_weights_results: {
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Average-Default"
value: {
- dps: 892.39546
- tps: 1012.82501
+ dps: 389.2209
+ tps: 277.26564
+ hps: 136.1828
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 879.32915
- tps: 2021.09328
+ dps: 388.3852
+ tps: 702.12766
+ hps: 133.92194
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 879.32915
- tps: 990.96138
+ dps: 388.3852
+ tps: 276.76072
+ hps: 133.92194
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 914.78567
- tps: 1068.64745
+ dps: 437.42061
+ tps: 307.31494
+ hps: 140.78957
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 421.16044
- tps: 1558.22274
+ dps: 217.59792
+ tps: 687.37145
+ hps: 79.34399
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 421.16044
- tps: 476.10434
+ dps: 217.59792
+ tps: 175.07065
+ hps: 79.34399
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 435.02186
- tps: 491.31887
+ dps: 238.92422
+ tps: 192.95731
+ hps: 84.6674
}
}
dps_results: {
key: "TestDestruction-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 884.66326
- tps: 1002.37498
+ dps: 387.76787
+ tps: 277.39069
+ hps: 136.72322
}
}
diff --git a/sim/warlock/tank/tank_warlock_test.go b/sim/warlock/tank/tank_warlock_test.go
index 916e255f1..e3fff1248 100644
--- a/sim/warlock/tank/tank_warlock_test.go
+++ b/sim/warlock/tank/tank_warlock_test.go
@@ -23,7 +23,7 @@ func TestAffliction(t *testing.T) {
Talents: Phase4AffTalents,
GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_destro_aff_tank"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Affliction Warlock", SpecOptions: DefaultAfflictionWarlock},
@@ -45,7 +45,7 @@ func TestDemonology(t *testing.T) {
Talents: Phase4DemoTalents,
GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_demo_tank"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Demonology Warlock", SpecOptions: DefaultDemonologyWarlock},
@@ -67,7 +67,7 @@ func TestDestruction(t *testing.T) {
Talents: Phase4DestroTalents,
GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_destro_aff_tank"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Destruction Warlock", SpecOptions: DefaultDestroWarlock},
@@ -120,41 +120,6 @@ var DefaultDemonologyWarlock = &proto.Player_TankWarlock{
},
}
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSmokedSagefish,
- MainHandImbue: proto.WeaponImbue_BlackfathomManaOil,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_ManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_LesserArcaneElixir,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- DefaultPotion: proto.Potions_SuperiorManaPotion,
- FirePowerBuff: proto.FirePowerBuff_ElixirOfFirepower,
- ShadowPowerBuff: proto.ShadowPowerBuff_ElixirOfShadowPower,
- Food: proto.Food_FoodTenderWolfSteak,
- MainHandImbue: proto.WeaponImbue_LesserWizardOil,
- SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
diff --git a/sim/warlock/warlock.go b/sim/warlock/warlock.go
index 0e7dbd0f4..23eac536c 100644
--- a/sim/warlock/warlock.go
+++ b/sim/warlock/warlock.go
@@ -230,7 +230,7 @@ func NewWarlock(character *core.Character, options *proto.Player, warlockOptions
}
func (warlock *Warlock) HasRune(rune proto.WarlockRune) bool {
- return warlock.HasRuneById(int32(rune))
+ return false // warlock.HasRuneById(int32(rune))
}
func (warlock *Warlock) baseRuneAbilityDamage() float64 {
diff --git a/sim/warrior/dps_warrior/TestDualWieldWarrior.results b/sim/warrior/dps_warrior/TestDualWieldWarrior.results
index 7e256966d..f27893149 100644
--- a/sim/warrior/dps_warrior/TestDualWieldWarrior.results
+++ b/sim/warrior/dps_warrior/TestDualWieldWarrior.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 369.38
- final_stats: 279.565
- final_stats: 388.41825
- final_stats: 112.585
- final_stats: 150.535
+ final_stats: 335.8
+ final_stats: 254.15
+ final_stats: 353.1075
+ final_stats: 102.35
+ final_stats: 136.85
final_stats: 0
final_stats: 0
final_stats: 0
@@ -18,24 +18,24 @@ character_stats_results: {
final_stats: 21
final_stats: 0
final_stats: 0
- final_stats: 1768.76
+ final_stats: 1501.6
final_stats: 0
- final_stats: 35.97825
+ final_stats: 34.7075
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 943.13
- final_stats: 780
+ final_stats: 892.3
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 13.97825
+ final_stats: 12.7075
final_stats: 5
final_stats: 0
- final_stats: 5693.1825
+ final_stats: 5340.075
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 1.245
- weights: 0.5701
+ weights: 0.35864
+ weights: 0.23892
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.92361
- weights: 2.32883
- weights: 6.43994
+ weights: 0.50531
+ weights: 0
+ weights: 5.4546
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Average-Default"
value: {
- dps: 419.18478
- tps: 433.2523
+ dps: 351.60983
+ tps: 371.33883
}
}
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Human-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 86.32195
- tps: 176.11699
+ dps: 73.59183
+ tps: 164.40572
}
}
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Human-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 26.25766
- tps: 31.7459
+ dps: 22.25467
+ tps: 28.43386
}
}
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Human-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 66.47472
- tps: 70.75896
+ dps: 57.2151
+ tps: 63.08635
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Orc-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 96.36696
- tps: 185.49523
+ dps: 82.41451
+ tps: 172.51242
}
}
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Orc-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 28.76528
- tps: 33.46086
+ dps: 25.16708
+ tps: 30.4855
}
}
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-Settings-Orc-blank-Fury-phase_5_dw-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 74.4003
- tps: 77.3003
+ dps: 64.89538
+ tps: 69.42322
}
}
dps_results: {
@@ -190,7 +190,7 @@ dps_results: {
dps_results: {
key: "TestDualWieldWarrior-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 331.758
- tps: 349.74796
+ dps: 282.45039
+ tps: 304.20473
}
}
diff --git a/sim/warrior/dps_warrior/TestTwoHandedWarrior.results b/sim/warrior/dps_warrior/TestTwoHandedWarrior.results
index 50d281e4e..d6a75a762 100644
--- a/sim/warrior/dps_warrior/TestTwoHandedWarrior.results
+++ b/sim/warrior/dps_warrior/TestTwoHandedWarrior.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-CharacterStats-Default"
value: {
- final_stats: 369.38
- final_stats: 279.565
- final_stats: 388.41825
- final_stats: 112.585
- final_stats: 150.535
+ final_stats: 335.8
+ final_stats: 254.15
+ final_stats: 353.1075
+ final_stats: 102.35
+ final_stats: 136.85
final_stats: 0
final_stats: 0
final_stats: 0
@@ -18,24 +18,24 @@ character_stats_results: {
final_stats: 21
final_stats: 0
final_stats: 0
- final_stats: 1768.76
+ final_stats: 1501.6
final_stats: 0
- final_stats: 35.97825
+ final_stats: 34.7075
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 943.13
- final_stats: 780
+ final_stats: 892.3
+ final_stats: 580
final_stats: 0
final_stats: 5
final_stats: 0
- final_stats: 13.97825
+ final_stats: 12.7075
final_stats: 5
final_stats: 0
- final_stats: 5693.1825
+ final_stats: 5340.075
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.74166
- weights: 0.41613
+ weights: 0.67704
+ weights: 0.39964
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 1.18726
- weights: 2.80362
- weights: 7.74962
+ weights: 0.1674
+ weights: 0
+ weights: 6.56079
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Average-Default"
value: {
- dps: 466.40921
- tps: 440.79546
+ dps: 394.23246
+ tps: 376.69386
}
}
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Human-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 47.26332
- tps: 129.6756
+ dps: 41.3878
+ tps: 124.97518
}
}
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Human-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 45.49215
- tps: 42.32472
+ dps: 39.89707
+ tps: 37.84865
}
}
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Human-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 106.18413
- tps: 90.78064
+ dps: 89.3577
+ tps: 77.31949
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Orc-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 50.69348
- tps: 132.41972
+ dps: 44.31191
+ tps: 127.31447
}
}
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Orc-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 48.91337
- tps: 45.06169
+ dps: 42.82118
+ tps: 40.18794
}
}
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-Settings-Orc-blank-Arms-phase_5_2h-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 119.79812
- tps: 101.67183
+ dps: 103.18006
+ tps: 88.37738
}
}
dps_results: {
@@ -190,7 +190,7 @@ dps_results: {
dps_results: {
key: "TestTwoHandedWarrior-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 373.30127
- tps: 356.09118
+ dps: 320.69725
+ tps: 309.60084
}
}
diff --git a/sim/warrior/dps_warrior/dps_warrior_test.go b/sim/warrior/dps_warrior/dps_warrior_test.go
index 23bedefa4..5ddd43481 100644
--- a/sim/warrior/dps_warrior/dps_warrior_test.go
+++ b/sim/warrior/dps_warrior/dps_warrior_test.go
@@ -24,7 +24,7 @@ func TestDualWieldWarrior(t *testing.T) {
Talents: P4FuryTalents,
GearSet: core.GetGearSet("../../../ui/warrior/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/warrior/apls", "phase_5_dw"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Fury", SpecOptions: PlayerOptionsFury},
@@ -47,7 +47,7 @@ func TestTwoHandedWarrior(t *testing.T) {
Talents: P4FuryTalents,
GearSet: core.GetGearSet("../../../ui/warrior/gear_sets", "blank"),
Rotation: core.GetAplRotation("../../../ui/warrior/apls", "phase_5_2h"),
- Buffs: core.FullBuffsPhase5,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Arms", SpecOptions: PlayerOptionsArms},
@@ -63,41 +63,6 @@ var P2FuryTalents = "-05050005405010051"
var P3ArmsTalents = "303050213520105001-0505"
var P4FuryTalents = "20305020302-05050005525010051"
-var Phase1Consumes = core.ConsumesCombo{
- Label: "P1-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfLesserAgility,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_BlackfathomSharpeningStone,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase2Consumes = core.ConsumesCombo{
- Label: "P2-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfAgility,
- DragonBreathChili: true,
- Food: proto.Food_FoodSagefishDelight,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_SolidSharpeningStone,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- },
-}
-
-var Phase3Consumes = core.ConsumesCombo{
- Label: "P3-Consumes",
- Consumes: &proto.Consumes{
- AgilityElixir: proto.AgilityElixir_ElixirOfTheMongoose,
- DragonBreathChili: true,
- Food: proto.Food_FoodGrilledSquid,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
- OffHandImbue: proto.WeaponImbue_SolidSharpeningStone,
- StrengthBuff: proto.StrengthBuff_ElixirOfOgresStrength,
- DefaultPotion: proto.Potions_MightyRagePotion,
- },
-}
-
var Phase4Consumes = core.ConsumesCombo{
Label: "P4-Consumes",
Consumes: &proto.Consumes{
@@ -106,7 +71,7 @@ var Phase4Consumes = core.ConsumesCombo{
DefaultPotion: proto.Potions_MightyRagePotion,
DragonBreathChili: true,
Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
+ MainHandImbue: proto.WeaponImbue_Windfury,
OffHandImbue: proto.WeaponImbue_ElementalSharpeningStone,
StrengthBuff: proto.StrengthBuff_JujuPower,
},
diff --git a/sim/warrior/tank_warrior/TestTankWarrior.results b/sim/warrior/tank_warrior/TestTankWarrior.results
index c4b9359bc..3aef3786b 100644
--- a/sim/warrior/tank_warrior/TestTankWarrior.results
+++ b/sim/warrior/tank_warrior/TestTankWarrior.results
@@ -1,11 +1,11 @@
character_stats_results: {
key: "TestTankWarrior-Phase4-Lvl60-CharacterStats-Default"
value: {
- final_stats: 346.5
- final_stats: 378.4
- final_stats: 441.485
- final_stats: 148.5
- final_stats: 203.5
+ final_stats: 362.25
+ final_stats: 395.6
+ final_stats: 461.5525
+ final_stats: 155.25
+ final_stats: 212.75
final_stats: 12
final_stats: 0
final_stats: 0
@@ -18,24 +18,24 @@ character_stats_results: {
final_stats: 21
final_stats: 0
final_stats: 0
- final_stats: 1751
+ final_stats: 1582.5
final_stats: 0
- final_stats: 39.92
+ final_stats: 40.78
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 4924.8
- final_stats: 856
+ final_stats: 4959.2
+ final_stats: 656
final_stats: 10
final_stats: 10.4
final_stats: 37
- final_stats: 19.32
+ final_stats: 20.18
final_stats: 5.4
final_stats: 0
- final_stats: 7423.85
+ final_stats: 7624.525
final_stats: 27
final_stats: 86
final_stats: 60
@@ -50,7 +50,6 @@ character_stats_results: {
stat_weights_results: {
key: "TestTankWarrior-Phase4-Lvl60-StatWeights-Default"
value: {
- weights: 0.3417
weights: 0
weights: 0
weights: 0
@@ -67,7 +66,6 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.05737
weights: 0
weights: 0
weights: 0
@@ -78,9 +76,11 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.90168
weights: 0
- weights: 0.44848
+ weights: 0
+ weights: 0
+ weights: 0
+ weights: 0
weights: 0
weights: 0
weights: 0
@@ -99,98 +99,96 @@ stat_weights_results: {
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Average-Default"
value: {
- dps: 590.73761
- tps: 1325.88118
+ tps: 1.66725
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 63.5008
- tps: 324.09056
+ dps: 38.17656
+ tps: 163.66426
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 59.0615
- tps: 215.56889
+ dps: 34.08403
+ tps: 60.34989
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 91.35066
- tps: 332.67215
+ dps: 48.44242
+ tps: 85.53926
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 30.5266
- tps: 231.45092
+ dps: 18.15275
+ tps: 134.37898
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 27.80014
- tps: 125.48994
+ dps: 15.15602
+ tps: 32.70284
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Human-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 42.11579
- tps: 189.78435
+ dps: 20.63205
+ tps: 44.93825
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 65.66424
- tps: 330.25827
+ dps: 38.49954
+ tps: 164.1471
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 61.22495
- tps: 221.7366
+ dps: 34.407
+ tps: 60.83273
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 93.06704
- tps: 337.63858
+ dps: 48.8201
+ tps: 86.10389
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 30.58814
- tps: 231.63073
+ dps: 18.18881
+ tps: 134.4329
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 27.86168
- tps: 125.66975
+ dps: 15.19208
+ tps: 32.75676
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-Settings-Orc-placeholder-Arms-phase_4-NoBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 42.20866
- tps: 190.05631
+ dps: 20.68324
+ tps: 45.01478
}
}
dps_results: {
key: "TestTankWarrior-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 482.13058
- tps: 1097.99877
+ tps: 1.66667
}
}
diff --git a/sim/warrior/tank_warrior/tank_warrior_test.go b/sim/warrior/tank_warrior/tank_warrior_test.go
index 6d8cc3d78..8d41b9aa1 100644
--- a/sim/warrior/tank_warrior/tank_warrior_test.go
+++ b/sim/warrior/tank_warrior/tank_warrior_test.go
@@ -24,7 +24,7 @@ func TestTankWarrior(t *testing.T) {
Talents: P4Talents,
GearSet: core.GetGearSet("../../../ui/tank_warrior/gear_sets", "placeholder"),
Rotation: core.GetAplRotation("../../../ui/tank_warrior/apls", "phase_4"),
- Buffs: core.FullBuffsPhase4,
+ Buffs: core.FullBuffs,
Consumes: Phase4Consumes,
SpecOptions: core.SpecOptionsCombo{Label: "Arms", SpecOptions: PlayerOptionsBasic},
@@ -57,7 +57,7 @@ var Phase4Consumes = core.ConsumesCombo{
DragonBreathChili: true,
Flask: proto.Flask_FlaskOfTheTitans,
Food: proto.Food_FoodSmokedDesertDumpling,
- MainHandImbue: proto.WeaponImbue_WildStrikes,
+ MainHandImbue: proto.WeaponImbue_Windfury,
StrengthBuff: proto.StrengthBuff_JujuPower,
},
}
diff --git a/sim/warrior/warrior.go b/sim/warrior/warrior.go
index f2b89efc2..1dc318297 100644
--- a/sim/warrior/warrior.go
+++ b/sim/warrior/warrior.go
@@ -327,7 +327,7 @@ type WarriorAgent interface {
}
func (warrior *Warrior) HasRune(rune proto.WarriorRune) bool {
- return warrior.HasRuneById(int32(rune))
+ return false // warrior.HasRuneById(int32(rune))
}
func (warrior *Warrior) IsEnraged() bool {
diff --git a/tools/database/wowhead_tooltips.go b/tools/database/wowhead_tooltips.go
index 6a3325410..b152bf365 100644
--- a/tools/database/wowhead_tooltips.go
+++ b/tools/database/wowhead_tooltips.go
@@ -702,7 +702,6 @@ func (item WowheadItemResponse) ToItemProto() *proto.UIItem {
Quality: proto.ItemQuality(item.GetQuality()),
Unique: item.GetUnique(),
Heroic: item.IsHeroic(),
- Timeworn: item.IsTimeworn(),
RequiredProfession: item.GetRequiredProfession(),
SetName: item.GetItemSetName(),
@@ -757,12 +756,6 @@ func (item WowheadItemResponse) IsHeroic() bool {
return strings.Contains(item.Tooltip, "Heroic")
}
-var timewornRegexp = regexp.MustCompile(`Timeworn<\/span>`)
-
-func (item WowheadItemResponse) IsTimeworn() bool {
- return timewornRegexp.MatchString(item.Tooltip)
-}
-
func (item WowheadItemResponse) GetRequiredProfession() proto.Profession {
if alchemyRegex.MatchString(item.Tooltip) {
return proto.Profession_Alchemy
diff --git a/ui/balance_druid/presets.ts b/ui/balance_druid/presets.ts
index 1e110acec..22a249e1c 100644
--- a/ui/balance_druid/presets.ts
+++ b/ui/balance_druid/presets.ts
@@ -3,7 +3,6 @@ import * as PresetUtils from '../core/preset_utils.js';
import {
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
IndividualBuffs,
@@ -104,21 +103,17 @@ export const DefaultOptions = BalanceDruidOptions.create({
export const DefaultConsumes = Consumes.create({
defaultPotion: Potions.MajorManaPotion,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodRunnTumTuberSurprise,
mainHandImbue: WeaponImbue.BrilliantWizardOil,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
zanzaBuff: ZanzaBuff.CerebralCortexCompound,
});
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -126,19 +121,16 @@ export const DefaultRaidBuffs = RaidBuffs.create({
manaSpringTotem: TristateEffect.TristateEffectRegular,
moonkinAura: true,
powerWordFortitude: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -146,10 +138,7 @@ export const DefaultPartyBuffs = PartyBuffs.create({});
export const DefaultDebuffs = Debuffs.create({
faerieFire: true,
- improvedFaerieFire: true,
judgementOfWisdom: true,
- occultPoison: true,
- markOfChaos: true,
stormstrike: true,
});
diff --git a/ui/core/components/character_stats.tsx b/ui/core/components/character_stats.tsx
index 8c15d5218..570375904 100644
--- a/ui/core/components/character_stats.tsx
+++ b/ui/core/components/character_stats.tsx
@@ -84,9 +84,7 @@ const statGroups = new Map>([
],
[
'Misc',
- [
- UnitStat.fromPseudoStat(PseudoStat.TimewornBonus),
- ]
+ []
],
])
diff --git a/ui/core/components/gear_picker/gear_picker.tsx b/ui/core/components/gear_picker/gear_picker.tsx
index c1b71b710..2d4fa9e2e 100644
--- a/ui/core/components/gear_picker/gear_picker.tsx
+++ b/ui/core/components/gear_picker/gear_picker.tsx
@@ -15,8 +15,6 @@ import { GearData } from './item_list';
import SelectorModal, { SelectorModalTabs } from './selector_modal';
import { getEmptySlotIconUrl } from './utils';
-const emptyRuneImageURL = 'https://wow.zamimg.com/images/wow/icons/medium/inventoryslot_empty.jpg';
-
export default class GearPicker extends Component {
// ItemSlot is used as the index
readonly itemPickers: Array;
@@ -66,45 +64,35 @@ export class ItemRenderer extends Component {
private readonly player: Player;
readonly iconElem: HTMLAnchorElement;
- readonly runeIconElem: HTMLImageElement;
readonly nameElem: HTMLAnchorElement;
readonly ilvlElem: HTMLSpanElement;
readonly enchantElem: HTMLAnchorElement;
- readonly runeElem: HTMLAnchorElement;
constructor(parent: HTMLElement, root: HTMLElement, player: Player) {
super(parent, 'item-picker-root', root);
this.player = player;
const iconElem = ref();
- const runeIconElem = ref();
const nameElem = ref();
const ilvlElem = ref();
const enchantElem = ref();
- const runeElem = ref();
this.rootElem.appendChild(
<>
-
-
-
>,
);
this.iconElem = iconElem.value!;
- this.runeIconElem = runeIconElem.value!;
this.nameElem = nameElem.value!;
this.ilvlElem = ilvlElem.value!;
this.enchantElem = enchantElem.value!;
- this.runeElem = runeElem.value!;
}
clear() {
@@ -115,17 +103,12 @@ export class ItemRenderer extends Component {
this.enchantElem.removeAttribute('data-wowhead');
this.enchantElem.removeAttribute('href');
this.enchantElem.classList.add('hide');
- this.runeElem.removeAttribute('data-wowhead');
- this.runeElem.removeAttribute('href');
- this.runeElem.classList.add('hide');
this.iconElem.style.backgroundImage = '';
- this.runeIconElem.src = emptyRuneImageURL;
this.nameElem.innerText = '';
this.ilvlElem.innerText = '';
this.enchantElem.innerText = '';
- this.runeElem.innerText = '';
}
update(newItem: EquippedItem) {
@@ -169,24 +152,6 @@ export class ItemRenderer extends Component {
} else {
this.enchantElem.classList.add('hide');
}
-
- const isRuneSlot = itemTypeToSlotsMap[newItem._item.type]?.some(slot => this.player.sim.db.hasRuneBySlot(slot, this.player.getClass()));
- if (isRuneSlot) {
- this.runeIconElem.classList.remove('hide');
-
- if (newItem.rune) {
- ActionId.fromSpellId(newItem.rune.id)
- .fill()
- .then(filledId => (this.runeIconElem.src = filledId.iconUrl));
- this.runeElem.classList.remove('hide');
- this.runeElem.textContent = newItem.rune.name;
- this.runeElem.href = ActionId.makeSpellUrl(newItem.rune.id);
- this.runeElem.dataset.wowhead = `domain=classic&spell=${newItem.rune.id}`;
- this.runeElem.dataset.whtticon = 'false';
- } else {
- this.runeIconElem.src = emptyRuneImageURL;
- }
- }
}
}
@@ -224,15 +189,10 @@ export class ItemPicker extends Component {
event.preventDefault();
this.openSelectorModal(SelectorModalTabs.Enchants);
};
- const openRuneSelector = (event: Event) => {
- event.preventDefault();
- this.openSelectorModal(SelectorModalTabs.Runes);
- };
this.itemElem.iconElem.addEventListener('click', openGearSelector);
this.itemElem.nameElem.addEventListener('click', openGearSelector);
this.itemElem.enchantElem.addEventListener('click', openEnchantSelector);
- this.itemElem.runeElem.addEventListener('click', openRuneSelector);
});
player.gearChangeEmitter.on(() => {
diff --git a/ui/core/components/gear_picker/item_list.tsx b/ui/core/components/gear_picker/item_list.tsx
index 2bfa0bb01..c089d2801 100644
--- a/ui/core/components/gear_picker/item_list.tsx
+++ b/ui/core/components/gear_picker/item_list.tsx
@@ -8,7 +8,7 @@ import { setItemQualityCssClass } from '../../css_utils';
import { IndividualSimUI } from '../../individual_sim_ui';
import { Player } from '../../player';
import { Class, ItemQuality, ItemRandomSuffix, ItemSlot, ItemSpec } from '../../proto/common';
-import { DatabaseFilters, RepSource, UIEnchant, UIFaction, UIItem, UIItem_FactionRestriction, UIRune } from '../../proto/ui';
+import { DatabaseFilters, RepSource, UIEnchant, UIFaction, UIItem, UIItem_FactionRestriction } from '../../proto/ui';
import { ActionId } from '../../proto_utils/action_id';
import { getUniqueEnchantString } from '../../proto_utils/enchants';
import { EquippedItem } from '../../proto_utils/equipped_item';
@@ -47,7 +47,7 @@ export interface GearData {
changeEvent: TypedEvent;
}
-export type ItemListType = UIItem | UIEnchant | UIRune | ItemRandomSuffix;
+export type ItemListType = UIItem | UIEnchant | ItemRandomSuffix;
enum ItemListSortBy {
EP,
ILVL,
@@ -190,9 +190,7 @@ export default class ItemList {
//makePhaseSelector(this.tabContent.getElementsByClassName('selector-modal-phase-selector')[0] as HTMLElement, player.sim);
- if (this.label !== SelectorModalTabs.Runes) {
- makeShowEPValuesSelector(showEpValuesRef.value!, player.sim);
- }
+ makeShowEPValuesSelector(showEpValuesRef.value!, player.sim);
if (label === SelectorModalTabs.Items) {
const filtersMenu = new FiltersMenu(parent, player, currentSlot);
@@ -240,9 +238,6 @@ export default class ItemList {
case SelectorModalTabs.Enchants:
removeButton.textContent = 'Remove Enchant';
break;
- case SelectorModalTabs.Runes:
- removeButton.textContent = 'Remove Rune';
- break;
}
}
@@ -268,7 +263,6 @@ export default class ItemList {
return (item as UIEnchant).effectId;
case SelectorModalTabs.Items:
case SelectorModalTabs.RandomSuffixes:
- case SelectorModalTabs.Runes:
return (item as UIItem | ItemRandomSuffix).id;
default:
return null;
@@ -402,7 +396,7 @@ export default class ItemList {
public hideOrShowEPValues() {
const labels = this.tabContent.getElementsByClassName('ep-label');
const container = this.tabContent.getElementsByClassName('selector-modal-list');
- const show = this.label != SelectorModalTabs.Runes && this.player.sim.getShowEPValues();
+ const show = this.player.sim.getShowEPValues();
const display = show ? '' : 'none';
for (const label of labels) {
@@ -487,10 +481,6 @@ export default class ItemList {
favMethodName = 'favoriteEnchants';
favId = getUniqueEnchantString(itemData.item as unknown as UIEnchant);
break;
- case SelectorModalTabs.Runes:
- favMethodName = 'favoriteRunes';
- favId = itemData.id;
- break;
case SelectorModalTabs.RandomSuffixes:
favMethodName = 'favoriteRandomSuffixes';
favId = itemData.id;
@@ -587,8 +577,6 @@ export default class ItemList {
return this.currentFilters.favoriteItems.includes(itemData.id);
} else if (this.label === SelectorModalTabs.Enchants) {
return this.currentFilters.favoriteEnchants.includes(getUniqueEnchantString(itemData.item as unknown as UIEnchant));
- } else if (this.label === SelectorModalTabs.Runes) {
- return this.currentFilters.favoriteRunes.includes(itemData.id);
} else if (this.label === SelectorModalTabs.RandomSuffixes) {
return this.currentFilters.favoriteRandomSuffixes.includes(itemData.id);
}
diff --git a/ui/core/components/gear_picker/selector_modal.tsx b/ui/core/components/gear_picker/selector_modal.tsx
index 0a5efdf1c..70e47e778 100644
--- a/ui/core/components/gear_picker/selector_modal.tsx
+++ b/ui/core/components/gear_picker/selector_modal.tsx
@@ -3,8 +3,8 @@ import tippy from 'tippy.js';
import { ref } from 'tsx-vanilla';
import { Player } from '../../player';
-import { ItemQuality, ItemRandomSuffix, ItemSlot } from '../../proto/common';
-import { UIEnchant, UIItem, UIRune } from '../../proto/ui';
+import { ItemRandomSuffix, ItemSlot } from '../../proto/common';
+import { UIEnchant, UIItem } from '../../proto/ui';
import { ActionId } from '../../proto_utils/action_id';
import { EquippedItem } from '../../proto_utils/equipped_item';
import { slotNames } from '../../proto_utils/names';
@@ -21,7 +21,6 @@ export enum SelectorModalTabs {
Enchants = 'Enchant',
Items = 'Item',
RandomSuffixes = 'Random Suffix',
- Runes = 'Rune',
}
export interface SelectorModalConfig {
@@ -30,7 +29,6 @@ export interface SelectorModalConfig {
equippedItem: EquippedItem | null;
eligibleItems: Array;
eligibleEnchants: Array;
- eligibleRunes: Array;
gearData: GearData;
}
@@ -126,10 +124,8 @@ export default class SelectorModal extends BaseModal {
const eligibleItems = this.player.getItems(selectedSlot);
const eligibleEnchants = this.player.getEnchants(selectedSlot);
- const eligibleRunes = this.player.getRunes(selectedSlot);
// If the enchant tab is selected but the item has no eligible enchants, default to items
- // If the rune tab is selected but the item has no eligible runes, default to items
- if ((selectedTab === SelectorModalTabs.Enchants && !eligibleEnchants.length) || (selectedTab === SelectorModalTabs.Runes && !eligibleRunes.length)) {
+ if (selectedTab === SelectorModalTabs.Enchants && !eligibleEnchants.length) {
selectedTab = SelectorModalTabs.Items;
}
@@ -206,41 +202,6 @@ export default class SelectorModal extends BaseModal {
});
}
- const hasRuneTab = !this.disabledTabs?.includes(SelectorModalTabs.Runes);
- if (hasRuneTab) {
- this.addTab({
- id: sanitizeId(`${this.options.id}-${SelectorModalTabs.Runes}`),
- label: SelectorModalTabs.Runes,
- gearData,
- itemData: eligibleRunes.map(rune => {
- return {
- item: rune,
- id: rune.id,
- actionId: ActionId.fromSpellId(rune.id),
- name: rune.name,
- quality: ItemQuality.ItemQualityCommon,
- phase: 1,
- baseEP: 1,
- ignoreEPFilter: true,
- onEquip: (eventID, rune: UIRune) => {
- const equippedItem = gearData.getEquippedItem();
- if (equippedItem) {
- gearData.equipItem(eventID, equippedItem.withRune(rune));
- }
- },
- };
- }),
- computeEP: () => 1,
- equippedToItemFn: (equippedItem: EquippedItem | null) => equippedItem?.rune,
- onRemove: (eventID: number) => {
- const equippedItem = gearData.getEquippedItem();
- if (equippedItem) {
- gearData.equipItem(eventID, equippedItem.withRune(null));
- }
- },
- });
- }
-
const hasRandomSuffixTab = !this.disabledTabs?.includes(SelectorModalTabs.RandomSuffixes);
if (hasRandomSuffixTab) {
this.addRandomSuffixTab(equippedItem, gearData);
@@ -485,8 +446,8 @@ export default class SelectorModal extends BaseModal {
}
private removeTabs(labelSubstring: string) {
- const tabElems = [...this.tabsElem.querySelectorAll('.selector-modal-item-tab')].filter(tab =>
- tab.dataset?.label?.includes(labelSubstring),
+ const tabElems = [...this.tabsElem.querySelectorAll('.selector-modal-item-tab')].filter(
+ tab => tab.dataset?.label?.includes(labelSubstring),
);
const contentElems = tabElems.map(tabElem => document.querySelector(tabElem.dataset.bsTarget!)).filter(tabElem => Boolean(tabElem));
diff --git a/ui/core/components/individual_sim_ui/apl_helpers.tsx b/ui/core/components/individual_sim_ui/apl_helpers.tsx
index 8c37e0cb8..f66ff911d 100644
--- a/ui/core/components/individual_sim_ui/apl_helpers.tsx
+++ b/ui/core/components/individual_sim_ui/apl_helpers.tsx
@@ -2,7 +2,6 @@ import { ref } from 'tsx-vanilla';
import { Player, UnitMetadata } from '../../player';
import { ActionID, ItemSlot, OtherAction, UnitReference, UnitReference_Type as UnitType } from '../../proto/common';
-import { UIRune as Rune } from '../../proto/ui';
import { ActionId, defaultTargetIcon, getPetIconFromName } from '../../proto_utils/action_id';
import { itemTypeNames } from '../../proto_utils/names';
import { EventID } from '../../typed_event';
@@ -303,31 +302,33 @@ export class APLActionIDPicker extends DropdownPicker, ActionID, Act
}
}
+// TODO: remove once APLs for classes are updated
export interface APLRunePickerConfig
- extends Omit, 'defaultLabel' | 'equals' | 'setOptionContent' | 'values' | 'getValue' | 'setValue'> {
+ extends Omit, 'defaultLabel' | 'equals' | 'setOptionContent' | 'values' | 'getValue' | 'setValue'> {
getValue: (obj: ModObject) => ActionID;
setValue: (eventID: EventID, obj: ModObject, newValue: ActionID) => void;
}
-export class APLRunePicker extends DropdownPicker, ActionID, Rune> {
+// TODO: remove once APLs for classes are updated
+export class APLRunePicker extends DropdownPicker, ActionID, null> {
constructor(parent: HTMLElement, player: Player, config: APLRunePickerConfig>) {
super(parent, player, {
...config,
sourceToValue: (src: ActionID) => {
- return src?.rawId.oneofKind == 'spellId' ? player.sim.db.getRuneById(src.rawId.spellId) : Rune.create();
+ return null;
},
- valueToSource: (val: Rune) => {
+ valueToSource: (val: null) => {
return ActionID.create({
rawId: {
oneofKind: 'spellId',
- spellId: val.id,
+ spellId: 0,
},
});
},
defaultLabel: 'Runes',
equals: (a, b) => a == b,
setOptionContent: (button, valueConfig) => {
- const actionId = ActionId.fromSpellId(valueConfig.value.id);
+ const actionId = ActionId.fromSpellId(0);
const iconElem = document.createElement('a');
iconElem.classList.add('apl-actionid-item-icon');
iconElem.dataset.whtticon = 'false';
@@ -335,24 +336,14 @@ export class APLRunePicker extends DropdownPicker, ActionID, Rune> {
actionId.fillAndSet(iconElem, true, true);
button.appendChild(iconElem);
- const textElem = document.createTextNode(valueConfig.value.name);
+ const textElem = document.createTextNode("");
button.appendChild(textElem);
},
values: [],
});
const updateValues = async () => {
- const values = Object.values(ItemSlot)
- .filter(v => typeof v != 'string')
- .map(slot => player.getRunes(slot as ItemSlot))
- .flat()
- .map(rune => {
- return {
- value: rune,
- submenu: [itemTypeNames.get(rune.type) ?? ''],
- };
- });
- this.setOptions(values);
+ this.setOptions([]);
};
updateValues();
player.rotationChangeEmitter.on(() => this.update);
@@ -633,6 +624,7 @@ export function actionIdFieldConfig(
};
}
+// TODO: remove once APLs for classes are updated
export function runeFieldConfig(field: string): APLPickerBuilderFieldConfig {
return {
field: field,
diff --git a/ui/core/components/individual_sim_ui/apl_values.ts b/ui/core/components/individual_sim_ui/apl_values.ts
index e6cdc9446..77f7e4b6d 100644
--- a/ui/core/components/individual_sim_ui/apl_values.ts
+++ b/ui/core/components/individual_sim_ui/apl_values.ts
@@ -876,7 +876,7 @@ const valueKindFactories: { [f in NonNullable]: ValueKindConfig this.updateRow(row, pickers));
@@ -285,30 +283,6 @@ export class ConsumesPicker extends Component {
this.updateRow(row, pickers);
}
- private buildEnchPicker() {
- const fragment = document.createElement('fragment');
- fragment.innerHTML = `
-
- `;
-
- const row = this.rootElem.appendChild(fragment.children[0] as HTMLElement);
- const enchConsumesElem = this.rootElem.querySelector('.consumes-ench') as HTMLElement;
-
- const enchantedSigilOptions = ConsumablesInputs.makeEncanthedSigilInput(
- relevantStatOptions(ConsumablesInputs.ENCHANTED_SIGIL_CONFIG, this.simUI),
- 'Enchanted Sigils',
- );
-
- const pickers = [buildIconInput(enchConsumesElem, this.simUI.player, enchantedSigilOptions)];
-
- TypedEvent.onAny([this.simUI.player.levelChangeEmitter, this.simUI.player.professionChangeEmitter]).on(() => this.updateRow(row, pickers));
- this.updateRow(row, pickers);
- }
-
private buildPetPicker() {
if (!this.simUI.individualConfig.petConsumeInputs?.length) return;
diff --git a/ui/core/components/inputs/buffs_debuffs.ts b/ui/core/components/inputs/buffs_debuffs.ts
index e372507a8..b26a99d20 100644
--- a/ui/core/components/inputs/buffs_debuffs.ts
+++ b/ui/core/components/inputs/buffs_debuffs.ts
@@ -48,10 +48,6 @@ export const AllStatsPercentBuff = InputHelpers.makeMultiIconInput({
fieldName: 'blessingOfKings',
showWhen: player => player.getFaction() === Faction.Alliance,
}),
- makeBooleanRaidBuffInput({
- actionId: () => ActionId.fromSpellId(409580),
- fieldName: 'aspectOfTheLion',
- }),
],
label: 'Stats %',
});
@@ -237,21 +233,12 @@ export const BloodPactBuff = InputHelpers.makeMultiIconInput({
impId: ActionId.fromSpellId(18696),
fieldName: 'bloodPact',
}),
- makeBooleanRaidBuffInput({
- actionId: () => ActionId.fromSpellId(403215),
- fieldName: 'commandingShout',
- }),
],
label: 'Blood Pact',
});
export const PaladinPhysicalBuff = InputHelpers.makeMultiIconInput({
values: [
- makeBooleanRaidBuffInput({
- actionId: () => ActionId.fromSpellId(425600),
- fieldName: 'hornOfLordaeron',
- showWhen: player => player.getFaction() == Faction.Alliance,
- }),
makeTristateIndividualBuffInput({
actionId: player =>
player.getMatchingSpellActionId([
@@ -419,40 +406,18 @@ export const ManaSpringTotem = withLabel(
}),
'Mana Spring Totem',
);
-export const VampiricTouchReplenishment = withLabel(
- makeMultistateRaidBuffInput({ actionId: () => ActionId.fromSpellId(402668), numStates: 21, fieldName: 'vampiricTouch', multiplier: 20 }),
- 'Vampiric Touch MP5',
-);
export const MeleeCritBuff = withLabel(
makeBooleanRaidBuffInput({ actionId: player => player.getMatchingSpellActionId([{ id: 24932, minLevel: 40 }]), fieldName: 'leaderOfThePack' }),
'Leader of the Pack',
);
-export const HordeThreatBuff = withLabel(
- makeBooleanRaidBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 408696, minLevel: 40 }]),
- fieldName: 'spiritOfTheAlpha',
- showWhen: player => player.getFaction() === Faction.Horde,
- }),
- 'Spirit of The Alpha',
-);
-
export const SpellCritBuff = withLabel(
makeBooleanRaidBuffInput({ actionId: player => player.getMatchingSpellActionId([{ id: 24907, minLevel: 40 }]), fieldName: 'moonkinAura' }),
'Moonkin Aura',
);
-export const SpellIncreaseBuff = withLabel(
- makeMultistateRaidBuffInput({ actionId: () => ActionId.fromSpellId(425464), numStates: 21, fieldName: 'demonicPact', multiplier: 10 }),
- 'Demonic Pact',
-);
-
// Misc Buffs
-export const ImprovedStoneskinWindwall = makeBooleanRaidBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 457544, minLevel: 60 }]),
- fieldName: 'improvedStoneskinWindwall',
-});
export const RetributionAura = makeTristateRaidBuffInput({
actionId: player =>
player.getMatchingSpellActionId([
@@ -513,11 +478,7 @@ export const RallyingCryOfTheDragonslayer = makeBooleanIndividualBuffInput({
actionId: () => ActionId.fromSpellId(22888),
fieldName: 'rallyingCryOfTheDragonslayer',
});
-export const ValorOfAzeroth = makeBooleanIndividualBuffInput({
- actionId: () => ActionId.fromSpellId(461475),
- fieldName: 'valorOfAzeroth',
-});
-export const DragonslayerBuffInput = InputHelpers.makeMultiIconInput({ values: [RallyingCryOfTheDragonslayer, ValorOfAzeroth], label: 'Dragonslayer Buff' });
+export const DragonslayerBuffInput = InputHelpers.makeMultiIconInput({ values: [RallyingCryOfTheDragonslayer], label: 'Dragonslayer Buff' });
export const SpiritOfZandalar = withLabel(
makeBooleanIndividualBuffInput({
@@ -541,14 +502,6 @@ export const WarchiefsBlessing = withLabel(
}),
`Warchief's Blessing`,
);
-export const MightOfStormwind = withLabel(
- makeBooleanIndividualBuffInput({
- actionId: () => ActionId.fromSpellId(460940),
- fieldName: 'mightOfStormwind',
- showWhen: player => player.getFaction() === Faction.Alliance,
- }),
- `Might Of Stormwind`,
-);
export const SaygesDarkFortune = (inputs: ItemStatOption[]) =>
makeEnumIndividualBuffInput({
@@ -589,39 +542,6 @@ export const SlipKiksSavvy = withLabel(
`Slip'kik's Savvy`,
);
-// SoD World Buffs
-export const BoonOfBlackfathom = withLabel(
- makeBooleanIndividualBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 430947, maxLevel: 39 }]),
- fieldName: 'boonOfBlackfathom',
- }),
- 'Boon of Blackfathom',
-);
-
-export const AshenvalePvpBuff = withLabel(
- makeBooleanIndividualBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 430352, maxLevel: 39 }]),
- fieldName: 'ashenvalePvpBuff',
- }),
- 'Ashenvale PvP Buff',
-);
-
-export const SparkOfInspiration = withLabel(
- makeBooleanIndividualBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 438536, maxLevel: 49 }]),
- fieldName: 'sparkOfInspiration',
- }),
- 'Spark of Inspiration',
-);
-
-export const FervorOfTheTempleExplorer = withLabel(
- makeBooleanIndividualBuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 446695, maxLevel: 59 }]),
- fieldName: 'fervorOfTheTempleExplorer',
- }),
- 'Fervor Of The Temple Explorer',
-);
-
///////////////////////////////////////////////////////////////////////////
// DEBUFFS
///////////////////////////////////////////////////////////////////////////
@@ -651,18 +571,6 @@ export const MajorArmorDebuff = InputHelpers.makeMultiIconInput({
impId: ActionId.fromSpellId(14169),
fieldName: 'exposeArmor',
}),
- makeTristateDebuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 439500, minLevel: 60 }]),
- impId: ActionId.fromSpellId(14169),
- fieldName: 'sebaciousPoison',
- }),
- makeMultistateMultiplierDebuffInput({
- actionId: () => ActionId.fromSpellId(402818),
- numStates: 11,
- multiplier: 10,
- reverse: true,
- fieldName: 'homunculi',
- }),
],
label: 'Major Armor Penetration',
});
@@ -738,19 +646,12 @@ export const AttackPowerDebuff = InputHelpers.makeMultiIconInput({
impId: ActionId.fromSpellId(16862),
fieldName: 'demoralizingRoar',
}),
- makeMultistateMultiplierDebuffInput({
- actionId: () => ActionId.fromSpellId(402811),
- numStates: 11,
- multiplier: 10,
- reverse: true,
- fieldName: 'homunculi',
- }),
],
label: 'Attack Power',
});
// TODO: SoD Mangle
-export const BleedDebuff = withLabel(makeBooleanDebuffInput({ actionId: () => ActionId.fromSpellId(409828), fieldName: 'mangle' }), 'Bleed');
+//export const BleedDebuff = withLabel(makeBooleanDebuffInput({ actionId: () => ActionId.fromSpellId(409828), fieldName: 'mangle' }), 'Bleed');
export const MeleeAttackSpeedDebuff = InputHelpers.makeMultiIconInput({
values: [
@@ -759,17 +660,6 @@ export const MeleeAttackSpeedDebuff = InputHelpers.makeMultiIconInput({
impId: ActionId.fromSpellId(12666),
fieldName: 'thunderClap',
}),
- makeMultistateMultiplierDebuffInput({
- actionId: () => ActionId.fromSpellId(402808),
- numStates: 11,
- multiplier: 10,
- reverse: true,
- fieldName: 'homunculi',
- }),
- makeBooleanDebuffInput({
- actionId: () => ActionId.fromSpellId(408699),
- fieldName: 'waylay',
- }),
makeBooleanDebuffInput({
actionId: () => ActionId.fromSpellId(21992),
fieldName: 'thunderfury',
@@ -823,10 +713,6 @@ export const NatureSpellDamageDebuff = InputHelpers.makeMultiIconInput({
actionId: player => player.getMatchingSpellActionId([{ id: 17364, minLevel: 40 }]),
fieldName: 'stormstrike',
}),
- makeBooleanDebuffInput({
- actionId: () => ActionId.fromSpellId(408258),
- fieldName: 'dreamstate',
- }),
],
label: 'Nature Damage',
});
@@ -839,11 +725,6 @@ export const SpellShadowWeavingDebuff = withLabel(
'Shadow Weaving',
);
-export const MarkOfChaos = makeBooleanDebuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 461615 }]),
- fieldName: 'markOfChaos',
-});
-
export const CurseOfElements = makeBooleanDebuffInput({
actionId: player =>
player.getMatchingSpellActionId([
@@ -863,15 +744,7 @@ export const CurseOfShadow = makeBooleanDebuffInput({
fieldName: 'curseOfShadow',
});
-export const WarlockCursesConfig = InputHelpers.makeMultiIconInput({ values: [MarkOfChaos, CurseOfElements, CurseOfShadow], label: 'Warlock Curses' });
-
-export const OccultPoison = withLabel(
- makeBooleanDebuffInput({
- actionId: player => player.getMatchingItemActionId([{ id: 226374, minLevel: 54 }]),
- fieldName: 'occultPoison',
- }),
- 'Occult Poison',
-);
+export const WarlockCursesConfig = InputHelpers.makeMultiIconInput({ values: [CurseOfElements, CurseOfShadow], label: 'Warlock Curses' });
export const HuntersMark = withLabel(
makeTristateDebuffInput({
@@ -916,22 +789,6 @@ export const JudgementOfTheCrusader = withLabel(
);
// Misc Debuffs
-export const ImprovedFaerieFire = makeBooleanDebuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 455864, minLevel: 60 }]),
- fieldName: 'improvedFaerieFire',
-});
-export const MeleeHunter2pcT1Bonus = makeBooleanDebuffInput({
- actionId: player => player.getMatchingSpellActionId([{ id: 456393, minLevel: 60 }]),
- fieldName: 'meleeHunterDodgeDebuff',
-});
-export const MekkatorqueFistDebuff = makeBooleanDebuffInput({
- actionId: player => player.getMatchingItemActionId([{ id: 213409, minLevel: 40, maxLevel: 45 }]),
- fieldName: 'mekkatorqueFistDebuff',
-});
-export const SerpentsStrikerFistDebuff = makeBooleanDebuffInput({
- actionId: player => player.getMatchingItemActionId([{ id: 220589, minLevel: 50, maxLevel: 55 }]),
- fieldName: 'serpentsStrikerFistDebuff',
-});
export const JudgementOfLight = makeBooleanDebuffInput({
actionId: player =>
player.getMatchingSpellActionId([
@@ -959,13 +816,6 @@ export const CrystalYield = makeBooleanDebuffInput({
actionId: player => player.getMatchingSpellActionId([{ id: 15235, minLevel: 47 }]),
fieldName: 'crystalYield',
});
-export const AncientCorrosivePoison = makeMultistateMultiplierDebuffInput({
- actionId: () => ActionId.fromItemId(209562),
- numStates: 11,
- multiplier: 10,
- reverse: true,
- fieldName: 'ancientCorrosivePoison',
-});
///////////////////////////////////////////////////////////////////////////
// CONFIGS
@@ -1058,17 +908,8 @@ export const RAID_BUFFS_CONFIG = [
stats: [Stat.StatMeleeCrit],
},
// Threat Buffs
- {
- config: HordeThreatBuff,
- picker: IconPicker,
- stats: [Stat.StatArmor],
- },
+
// Spell Damage Buffs
- {
- config: SpellIncreaseBuff,
- picker: IconPicker,
- stats: [Stat.StatSpellPower],
- },
{
config: SpellCritBuff,
picker: IconPicker,
@@ -1084,19 +925,9 @@ export const RAID_BUFFS_CONFIG = [
picker: IconPicker,
stats: [Stat.StatMP5],
},
- {
- config: VampiricTouchReplenishment,
- picker: IconPicker,
- stats: [Stat.StatMP5],
- },
] as PickerStatOptions[];
export const MISC_BUFFS_CONFIG = [
- {
- config: ImprovedStoneskinWindwall,
- picker: IconPicker,
- stats: [Stat.StatArmor],
- },
{
config: Thorns,
picker: IconPicker,
@@ -1160,36 +991,6 @@ export const WORLD_BUFFS_CONFIG = [
picker: IconPicker,
stats: [],
},
- {
- config: MightOfStormwind,
- picker: IconPicker,
- stats: [],
- },
- {
- config: FervorOfTheTempleExplorer,
- picker: IconPicker,
- stats: [],
- },
- {
- config: SparkOfInspiration,
- picker: IconPicker,
- stats: [],
- },
- {
- config: BoonOfBlackfathom,
- picker: IconPicker,
- stats: [
- Stat.StatMeleeCrit,
- // TODO: Stat.StatRangedCrit,
- Stat.StatSpellCrit,
- Stat.StatAttackPower,
- ],
- },
- {
- config: AshenvalePvpBuff,
- picker: IconPicker,
- stats: [Stat.StatAttackPower, Stat.StatSpellPower],
- },
{
config: FengusFerocity,
picker: IconPicker,
@@ -1247,11 +1048,11 @@ export const DEBUFFS_CONFIG = [
picker: IconPicker,
stats: [Stat.StatAttackPower],
},
- {
+ /* {
config: BleedDebuff,
picker: IconPicker,
stats: [Stat.StatAttackPower, Stat.StatRangedAttackPower],
- },
+ }, */
// Magic
{
@@ -1289,11 +1090,6 @@ export const DEBUFFS_CONFIG = [
picker: MultiIconPicker,
stats: [Stat.StatSpellPower],
},
- {
- config: OccultPoison,
- picker: IconPicker,
- stats: [Stat.StatSpellPower],
- },
// Defensive
{
@@ -1332,26 +1128,6 @@ export const DEBUFFS_CONFIG = [
export const MISC_DEBUFFS_CONFIG = [
// Misc Debuffs
- {
- config: ImprovedFaerieFire,
- picker: IconPicker,
- stats: [],
- },
- {
- config: MeleeHunter2pcT1Bonus,
- picker: IconPicker,
- stats: [Stat.StatMeleeHit],
- },
- {
- config: MekkatorqueFistDebuff,
- picker: IconPicker,
- stats: [Stat.StatSpellPower],
- },
- {
- config: SerpentsStrikerFistDebuff,
- picker: IconPicker,
- stats: [Stat.StatNaturePower, Stat.StatHolyPower],
- },
{
config: CurseOfVulnerability,
picker: IconPicker,
@@ -1367,11 +1143,6 @@ export const MISC_DEBUFFS_CONFIG = [
picker: IconPicker,
stats: [Stat.StatAttackPower, Stat.StatRangedAttackPower],
},
- {
- config: AncientCorrosivePoison,
- picker: IconPicker,
- stats: [Stat.StatAttackPower, Stat.StatRangedAttackPower],
- },
{
config: JudgementOfLight,
picker: IconPicker,
diff --git a/ui/core/components/inputs/consumables.ts b/ui/core/components/inputs/consumables.ts
index d35b2d86a..feee3ca08 100644
--- a/ui/core/components/inputs/consumables.ts
+++ b/ui/core/components/inputs/consumables.ts
@@ -8,7 +8,6 @@ import {
Class,
Conjured,
Consumes,
- EnchantedSigil,
Explosive,
FirePowerBuff,
Flask,
@@ -158,38 +157,6 @@ export const CONJURED_CONFIG: ConsumableStatOption[] = [
export const makeConjuredInput = makeConsumeInputFactory({ consumesFieldName: 'defaultConjured' });
-///////////////////////////////////////////////////////////////////////////
-// ENCHANTING SIGIL
-///////////////////////////////////////////////////////////////////////////
-
-export const EnchantedSigilInnovation: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 217308, minLevel: 40 }]),
- value: EnchantedSigil.InnovationSigil,
- showWhen: player => player.hasProfession(Profession.Enchanting),
-};
-export const EnchantedSigilLivingDreams: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 221028, minLevel: 50 }]),
- value: EnchantedSigil.LivingDreamsSigil,
- showWhen: player => player.hasProfession(Profession.Enchanting),
-};
-export const EnchantedSigilFlowingWaters: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 228978, minLevel: 50 }]),
- value: EnchantedSigil.FlowingWatersSigil,
-};
-export const EnchantedSigilWrathOfTheStorm: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233995, minLevel: 50 }]),
- value: EnchantedSigil.WrathOfTheStormSigil,
-};
-
-export const ENCHANTED_SIGIL_CONFIG: ConsumableStatOption[] = [
- { config: EnchantedSigilWrathOfTheStorm, stats: [] },
- { config: EnchantedSigilFlowingWaters, stats: [] },
- { config: EnchantedSigilLivingDreams, stats: [] },
- { config: EnchantedSigilInnovation, stats: [] },
-];
-
-export const makeEncanthedSigilInput = makeConsumeInputFactory({ consumesFieldName: 'enchantedSigil' });
-
///////////////////////////////////////////////////////////////////////////
// EXPLOSIVES
///////////////////////////////////////////////////////////////////////////
@@ -200,16 +167,6 @@ export const SapperGoblinSapper: ConsumableInputConfig = {
value: SapperExplosive.SapperGoblinSapper,
};
-export const SapperFumigator: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233985, minLevel: 60 }]),
- value: SapperExplosive.SapperFumigator,
-};
-
-export const ExplosiveObsidianBomb: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233986, minLevel: 60 }]),
- value: Explosive.ExplosiveObsidianBomb,
-};
-
export const ExplosiveSolidDynamite: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 10507, minLevel: 40 }]),
showWhen: player => player.hasProfession(Profession.Engineering),
@@ -234,21 +191,7 @@ export const ExplosiveThoriumGrenade: ConsumableInputConfig = {
value: Explosive.ExplosiveThoriumGrenade,
};
-export const ExplosiveEzThroRadiationBomb: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 215168, minLevel: 40 }]),
- value: Explosive.ExplosiveEzThroRadiationBomb,
-};
-
-export const ExplosiveHighYieldRadiationBomb: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 215127, minLevel: 40 }]),
- showWhen: player => player.hasProfession(Profession.Engineering),
- value: Explosive.ExplosiveHighYieldRadiationBomb,
-};
-
export const EXPLOSIVES_CONFIG: ConsumableStatOption[] = [
- { config: ExplosiveObsidianBomb, stats: [] },
- { config: ExplosiveEzThroRadiationBomb, stats: [] },
- { config: ExplosiveHighYieldRadiationBomb, stats: [] },
{ config: ExplosiveSolidDynamite, stats: [] },
{ config: ExplosiveDenseDynamite, stats: [] },
{ config: ExplosiveThoriumGrenade, stats: [] },
@@ -256,7 +199,6 @@ export const EXPLOSIVES_CONFIG: ConsumableStatOption[] = [
];
export const SAPPER_CONFIG: ConsumableStatOption[] = [
- { config: SapperFumigator, stats: [] },
{ config: SapperGoblinSapper, stats: [] },
];
@@ -278,27 +220,11 @@ export const FlaskOfTheTitans: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13510, minLevel: 51 }]),
value: Flask.FlaskOfTheTitans,
};
-export const FlaskOfTheOldGods: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233965, minLevel: 60 }]),
- value: Flask.FlaskOfTheOldGods,
-};
-export const FlaskOfUnyieldingSorrow: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233966, minLevel: 60 }]),
- value: Flask.FlaskOfUnyieldingSorrow,
-};
-export const FlaskOfAncientKnowledge: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233964, minLevel: 60 }]),
- value: Flask.FlaskOfAncientKnowledge,
-};
// Original lvl 50 not obtainable in Phase 3
export const FlaskOfDistilledWisdom: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13511, minLevel: 51 }]),
value: Flask.FlaskOfDistilledWisdom,
};
-export const FlaskOfMadness: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233962, minLevel: 60 }]),
- value: Flask.FlaskOfMadness,
-};
// Original lvl 50 not obtainable in Phase 3
export const FlaskOfSupremePower: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13512, minLevel: 51 }]),
@@ -309,28 +235,12 @@ export const FlaskOfChromaticResistance: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13513, minLevel: 51 }]),
value: Flask.FlaskOfChromaticResistance,
};
-export const FlaskOfRestlessDreams: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 222952, minLevel: 50, maxLevel: 59 }]),
- value: Flask.FlaskOfRestlessDreams,
- showWhen: player => player.hasProfession(Profession.Alchemy),
-};
-export const FlaskOfEverlastingNightmares: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 221024, minLevel: 50, maxLevel: 59 }]),
- value: Flask.FlaskOfEverlastingNightmares,
- showWhen: player => player.hasProfession(Profession.Alchemy),
-};
export const FLASKS_CONFIG: ConsumableStatOption[] = [
{ config: FlaskOfTheTitans, stats: [Stat.StatStamina] },
- { config: FlaskOfTheOldGods, stats: [Stat.StatStamina] },
- { config: FlaskOfMadness, stats: [Stat.StatAttackPower] },
{ config: FlaskOfDistilledWisdom, stats: [Stat.StatIntellect] },
- { config: FlaskOfUnyieldingSorrow, stats: [Stat.StatIntellect] },
{ config: FlaskOfSupremePower, stats: [Stat.StatMP5, Stat.StatSpellPower] },
- { config: FlaskOfAncientKnowledge, stats: [Stat.StatMP5, Stat.StatSpellPower] },
{ config: FlaskOfChromaticResistance, stats: [] },
- { config: FlaskOfRestlessDreams, stats: [Stat.StatSpellPower] },
- { config: FlaskOfEverlastingNightmares, stats: [Stat.StatAttackPower] },
];
export const makeFlasksInput = makeConsumeInputFactory({ consumesFieldName: 'flask' });
@@ -444,10 +354,6 @@ export const makeAlcoholInput = makeConsumeInputFactory({ consumesFieldName: 'al
///////////////////////////////////////////////////////////////////////////
// Armor
-export const ElixirOfTheIronside: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233969, minLevel: 60 }]),
- value: ArmorElixir.ElixirOfTheIronside,
-};
export const ElixirOfSuperiorDefense: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13445, minLevel: 43 }]),
value: ArmorElixir.ElixirOfSuperiorDefense,
@@ -475,7 +381,6 @@ export const ScrollOfProtection: ConsumableInputConfig = {
value: ArmorElixir.ScrollOfProtection,
};
export const ARMOR_CONSUMES_CONFIG: ConsumableStatOption[] = [
- { config: ElixirOfTheIronside, stats: [Stat.StatArmor] },
{ config: ElixirOfSuperiorDefense, stats: [Stat.StatArmor] },
{ config: ElixirOfGreaterDefense, stats: [Stat.StatArmor] },
{ config: ElixirOfDefense, stats: [Stat.StatArmor] },
@@ -523,10 +428,6 @@ export const ATTACK_POWER_CONSUMES_CONFIG: ConsumableStatOption
export const makeAttackPowerConsumeInput = makeConsumeInputFactory({ consumesFieldName: 'attackPowerBuff' });
// Agility
-export const ElixirOfTheHoneyBadger: ConsumableInputConfig = {
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 233967, minLevel: 60 }]),
- value: AgilityElixir.ElixirOfTheHoneyBadger,
-};
export const ElixirOfTheMongoose: ConsumableInputConfig = {
actionId: (player: Player) => player.getMatchingItemActionId([{ id: 13452, minLevel: 46 }]),
value: AgilityElixir.ElixirOfTheMongoose,
@@ -555,7 +456,6 @@ export const ScrollOfAgility: ConsumableInputConfig = {
};
export const AGILITY_CONSUMES_CONFIG: ConsumableStatOption[] = [
- { config: ElixirOfTheHoneyBadger, stats: [Stat.StatAgility, Stat.StatMeleeCrit] },
{ config: ElixirOfTheMongoose, stats: [Stat.StatAgility, Stat.StatMeleeCrit] },
{ config: ElixirOfGreaterAgility, stats: [Stat.StatAgility] },
{ config: ElixirOfAgility, stats: [Stat.StatAgility] },
@@ -630,25 +530,6 @@ export const SpiritOfZanza: ConsumableInputConfig = {
value: ZanzaBuff.SpiritOfZanza,
};
-// Atal'ai Potions
-export const AtalAiMojoOfWar: ConsumableInputConfig = {
- actionId: () => ActionId.fromItemId(221196),
- value: ZanzaBuff.AtalaiMojoOfWar,
- showWhen: (player: Player) => player.getLevel() == 50,
-};
-
-export const AtalAiMojoOfForbiddenMagic: ConsumableInputConfig = {
- actionId: () => ActionId.fromItemId(221030),
- value: ZanzaBuff.AtalaiMojoOfForbiddenMagic,
- showWhen: (player: Player) => player.getLevel() == 50,
-};
-
-export const AtalAiMojoOfLife: ConsumableInputConfig = {
- actionId: () => ActionId.fromItemId(221311),
- value: ZanzaBuff.AtalaiMojoOfLife,
- showWhen: (player: Player) => player.getLevel() == 50,
-};
-
export const ZANZA_BUFF_CONSUMES_CONFIG: ConsumableStatOption[] = [
{ config: SpiritOfZanza, stats: [Stat.StatStamina, Stat.StatSpirit] },
{ config: ROIDS, stats: [Stat.StatStrength] },
@@ -656,17 +537,9 @@ export const ZANZA_BUFF_CONSUMES_CONFIG: ConsumableStatOption[] = [
{ config: LungJuiceCocktail, stats: [Stat.StatStamina] },
{ config: CerebralCortexCompound, stats: [Stat.StatIntellect] },
{ config: GizzardGum, stats: [Stat.StatSpirit] },
- { config: AtalAiMojoOfWar, stats: [Stat.StatAttackPower] },
- { config: AtalAiMojoOfForbiddenMagic, stats: [Stat.StatSpellPower] },
- { config: AtalAiMojoOfLife, stats: [Stat.StatHealingPower] },
];
export const makeZanzaBuffConsumesInput = makeConsumeInputFactory({ consumesFieldName: 'zanzaBuff' });
-export const Catnip = makeBooleanMiscConsumeInput({
- actionId: (player: Player) => player.getMatchingItemActionId([{ id: 213407, minLevel: 20 }]),
- fieldName: 'catnip',
- showWhen: player => player.getClass() === Class.ClassDruid,
-});
export const JujuFlurry = makeBooleanMiscConsumeInput({
actionId: () => ActionId.fromItemId(12450),
fieldName: 'jujuFlurry',
@@ -676,7 +549,6 @@ export const elixirOfCoalescedRegret = makeBooleanMiscConsumeInput({ actionId: (
export const BoglingRoot = makeBooleanMiscConsumeInput({ actionId: () => ActionId.fromItemId(5206), fieldName: 'boglingRoot' });
export const MISC_OFFENSIVE_CONSUMES_CONFIG: PickerStatOptions[] = [
- { config: Catnip, picker: IconPicker, stats: [] },
{ config: JujuFlurry, picker: IconPicker, stats: [Stat.StatAttackPower] },
{ config: elixirOfCoalescedRegret, picker: IconPicker, stats: [] },
{ config: BoglingRoot, picker: IconPicker, stats: [Stat.StatAttackPower] },
@@ -910,21 +782,11 @@ export const POTIONS_CONFIG: ConsumableStatOption[] = [
export const makePotionsInput = makeConsumeInputFactory({ consumesFieldName: 'defaultPotion' });
-export const MildlyIrradiatedRejuvPotion = makeBooleanConsumeInput({
- actionId: player => player.getMatchingItemActionId([{ id: 215162, minLevel: 35 }]),
- fieldName: 'mildlyIrradiatedRejuvPot',
- showWhen: player => player.hasProfession(Profession.Alchemy),
-});
-
///////////////////////////////////////////////////////////////////////////
// SPELL DAMAGE CONSUMES
///////////////////////////////////////////////////////////////////////////
// Arcane
-export const ElixirOfTheMageLord: ConsumableInputConfig = {
- actionId: player => player.getMatchingItemActionId([{ id: 233968, minLevel: 60 }]),
- value: SpellPowerBuff.ElixirOfTheMageLord,
-};
export const GreaterArcaneElixir: ConsumableInputConfig = {
actionId: player => player.getMatchingItemActionId([{ id: 13454, minLevel: 46 }]),
value: SpellPowerBuff.GreaterArcaneElixir,
@@ -939,7 +801,6 @@ export const LesserArcaneElixir: ConsumableInputConfig = {
};
export const SPELL_POWER_CONFIG: ConsumableStatOption[] = [
- { config: ElixirOfTheMageLord, stats: [Stat.StatSpellPower] },
{ config: GreaterArcaneElixir, stats: [Stat.StatSpellPower] },
{ config: ArcaneElixir, stats: [Stat.StatSpellPower] },
{ config: LesserArcaneElixir, stats: [Stat.StatSpellPower] },
@@ -1010,25 +871,9 @@ export const Windfury: ConsumableInputConfig = {
value: WeaponImbue.Windfury,
};
-// Wild Strikes
-export const WildStrikes: ConsumableInputConfig = {
- actionId: () => ActionId.fromSpellId(407975),
- value: WeaponImbue.WildStrikes,
-};
-
// Other Imbues
// Wizard Oils
-export const EnchantedRepellent = (slot: ItemSlot): ConsumableInputConfig => {
- return {
- actionId: player => player.getMatchingItemActionId([{ id: 233996, minLevel: 60 }]),
- value: WeaponImbue.EnchantedRepellent,
- showWhen: player => {
- const weapon = player.getEquippedItem(slot);
- return !weapon || weapon.item.weaponType != WeaponType.WeaponTypeOffHand;
- },
- };
-};
export const BrilliantWizardOil = (slot: ItemSlot): ConsumableInputConfig => {
return {
actionId: player => player.getMatchingItemActionId([{ id: 20749, minLevel: 45 }]),
@@ -1102,16 +947,6 @@ export const MinorManaOil = (slot: ItemSlot): ConsumableInputConfig
},
};
};
-export const BlackfathomManaOil = (slot: ItemSlot): ConsumableInputConfig => {
- return {
- actionId: player => player.getMatchingItemActionId([{ id: 211848, minLevel: 25 }]),
- value: WeaponImbue.BlackfathomManaOil,
- showWhen: player => {
- const weapon = player.getEquippedItem(slot);
- return !weapon || isWeapon(weapon.item.weaponType);
- },
- };
-};
// Sharpening Stones
export const ElementalSharpeningStone = (slot: ItemSlot): ConsumableInputConfig => {
@@ -1144,16 +979,6 @@ export const SolidSharpeningStone = (slot: ItemSlot): ConsumableInputConfig => {
- return {
- actionId: () => ActionId.fromItemId(211845),
- value: WeaponImbue.BlackfathomSharpeningStone,
- showWhen: player => {
- const weapon = player.getEquippedItem(slot);
- return !weapon || isSharpWeaponType(weapon.item.weaponType);
- },
- };
-};
// Weightstones
export const DenseWeightstone = (slot: ItemSlot): ConsumableInputConfig => {
@@ -1199,23 +1024,6 @@ export const FrostOil = (slot: ItemSlot): ConsumableInputConfig =>
};
};
-export const ConductiveShieldCoating = (slot: ItemSlot): ConsumableInputConfig => {
- return {
- actionId: player => player.getMatchingItemActionId([{ id: 228980, minLevel: 40 }]),
- value: WeaponImbue.ConductiveShieldCoating,
- showWhen: player =>
- slot === ItemSlot.ItemSlotOffHand && player.getEquippedItem(ItemSlot.ItemSlotOffHand)?.item?.weaponType === WeaponType.WeaponTypeShield,
- };
-};
-export const MagnificentTrollshine = (slot: ItemSlot): ConsumableInputConfig => {
- return {
- actionId: player => player.getMatchingItemActionId([{ id: 232611, minLevel: 45 }]),
- value: WeaponImbue.MagnificentTrollshine,
- showWhen: player =>
- slot === ItemSlot.ItemSlotOffHand && player.getEquippedItem(ItemSlot.ItemSlotOffHand)?.item?.weaponType === WeaponType.WeaponTypeShield,
- };
-};
-
const SHAMAN_IMBUES = (slot: ItemSlot): ConsumableStatOption[] => [
{ config: RockbiterWeaponImbue(slot), stats: [] },
{ config: FlametongueWeaponImbue(slot), stats: [] },
@@ -1233,9 +1041,6 @@ const ROGUE_IMBUES: ConsumableStatOption[] = [
];
const CONSUMABLES_IMBUES = (slot: ItemSlot): ConsumableStatOption[] => [
- { config: EnchantedRepellent(slot), stats: [Stat.StatSpellPower] },
- { config: MagnificentTrollshine(slot), stats: [Stat.StatSpellPower] },
- { config: ConductiveShieldCoating(slot), stats: [Stat.StatSpellPower] },
{ config: BrilliantWizardOil(slot), stats: [Stat.StatSpellPower] },
{ config: WizardOil(slot), stats: [Stat.StatSpellPower] },
{ config: LesserWizardOil(slot), stats: [Stat.StatSpellPower] },
@@ -1244,12 +1049,10 @@ const CONSUMABLES_IMBUES = (slot: ItemSlot): ConsumableStatOption[]
{ config: BrilliantManaOil(slot), stats: [Stat.StatHealingPower, Stat.StatSpellPower] },
{ config: LesserManaOil(slot), stats: [Stat.StatHealingPower, Stat.StatSpellPower] },
{ config: MinorManaOil(slot), stats: [Stat.StatHealingPower, Stat.StatSpellPower] },
- { config: BlackfathomManaOil(slot), stats: [Stat.StatSpellPower, Stat.StatMP5] },
{ config: ElementalSharpeningStone(slot), stats: [Stat.StatAttackPower] },
{ config: DenseSharpeningStone(slot), stats: [Stat.StatAttackPower] },
{ config: SolidSharpeningStone(slot), stats: [Stat.StatAttackPower] },
- { config: BlackfathomSharpeningStone(slot), stats: [Stat.StatMeleeHit] },
{ config: DenseWeightstone(slot), stats: [Stat.StatAttackPower] },
{ config: SolidWeightstone(slot), stats: [Stat.StatAttackPower] },
@@ -1268,7 +1071,6 @@ export const WEAPON_IMBUES_MH_CONFIG: ConsumableStatOption[] = [
...ROGUE_IMBUES,
...SHAMAN_IMBUES(ItemSlot.ItemSlotMainHand),
{ config: Windfury, stats: [Stat.StatMeleeHit] },
- { config: WildStrikes, stats: [Stat.StatMeleeHit] },
...CONSUMABLES_IMBUES(ItemSlot.ItemSlotMainHand),
];
diff --git a/ui/core/components/inputs/rogue_imbues.ts b/ui/core/components/inputs/rogue_imbues.ts
index cfbdc060c..d39be5775 100644
--- a/ui/core/components/inputs/rogue_imbues.ts
+++ b/ui/core/components/inputs/rogue_imbues.ts
@@ -40,15 +40,3 @@ export const WoundPoisonWeaponImbue: ConsumableInputConfig = {
value: WeaponImbue.WoundPoison,
showWhen: player => player.getClass() == Class.ClassRogue,
};
-
-export const OccultPoisonWeaponImbue: ConsumableInputConfig = {
- actionId: player => player.getMatchingItemActionId([{ id: 226374, minLevel: 56 }]),
- value: WeaponImbue.OccultPoison,
- showWhen: player => player.getClass() == Class.ClassRogue,
-};
-
-export const SebaciousPoisonWeaponImbue: ConsumableInputConfig = {
- actionId: player => player.getMatchingItemActionId([{ id: 217345, minLevel: 60 }]),
- value: WeaponImbue.SebaciousPoison,
- showWhen: player => player.getClass() == Class.ClassRogue,
-};
diff --git a/ui/core/components/inputs/warlock_inputs.ts b/ui/core/components/inputs/warlock_inputs.ts
index 22d61c335..dd2e7d5a8 100644
--- a/ui/core/components/inputs/warlock_inputs.ts
+++ b/ui/core/components/inputs/warlock_inputs.ts
@@ -71,11 +71,6 @@ export const PetInput = () =>
{ actionId: () => ActionId.fromSpellId(697), value: Summon.Voidwalker },
{ actionId: () => ActionId.fromSpellId(712), value: Summon.Succubus },
{ actionId: () => ActionId.fromSpellId(691), value: Summon.Felhunter },
- {
- actionId: () => ActionId.fromSpellId(427733),
- value: Summon.Felguard,
- showWhen: player => player.getEquippedItem(ItemSlot.ItemSlotWrist)?.rune?.id == WarlockRune.RuneBracerSummonFelguard,
- },
],
changeEmitter: (player: Player) => player.changeEmitter,
});
diff --git a/ui/core/components/inputs/warrior_inputs.ts b/ui/core/components/inputs/warrior_inputs.ts
index f4cf29b8e..33c87080d 100644
--- a/ui/core/components/inputs/warrior_inputs.ts
+++ b/ui/core/components/inputs/warrior_inputs.ts
@@ -34,11 +34,6 @@ export const StancePicker = () =>
{ value: WarriorStance.WarriorStanceBattle, actionId: () => ActionId.fromSpellId(2457) },
{ value: WarriorStance.WarriorStanceDefensive, actionId: () => ActionId.fromSpellId(71) },
{ value: WarriorStance.WarriorStanceBerserker, actionId: player => player.getMatchingSpellActionId([{ id: 2458, minLevel: 30 }]) },
- {
- value: WarriorStance.WarriorStanceGladiator,
- actionId: player => player.getMatchingSpellActionId([{ id: 412513, minLevel: 45 }]),
- showWhen: player => player.hasRune(ItemSlot.ItemSlotFeet, WarriorRune.RuneGladiatorStance),
- },
],
changeEmitter: player => TypedEvent.onAny([player.specOptionsChangeEmitter, player.gearChangeEmitter]),
tooltip: 'Starting Stance
If blank, automatically chooses a stance based on your talents and runes.',
diff --git a/ui/core/constants/other.ts b/ui/core/constants/other.ts
index dbbab941f..353e52b11 100644
--- a/ui/core/constants/other.ts
+++ b/ui/core/constants/other.ts
@@ -36,7 +36,7 @@ export const GLOBAL_DISPLAY_STATS = [
];
export const GLOBAL_DISPLAY_PSEUDO_STATS = [
- PseudoStat.TimewornBonus,
+
];
export const GLOBAL_EP_STATS = [
diff --git a/ui/core/player.ts b/ui/core/player.ts
index b0da94a9f..73a544817 100644
--- a/ui/core/player.ts
+++ b/ui/core/player.ts
@@ -41,7 +41,6 @@ import {
UIEnchant as Enchant,
UIItem as Item,
UIItem_FactionRestriction,
- UIRune as Rune,
} from './proto/ui.js';
import { ActionId, ActionIdConfig } from './proto_utils/action_id.js';
import { Database } from './proto_utils/database.js';
@@ -428,14 +427,6 @@ export class Player {
return this.sim.db.getEnchants(slot).filter(enchant => canEquipEnchant(enchant, this));
}
- getRunes(slot: ItemSlot): Array {
- return this.sim.db.getRunes(slot, this.getClass());
- }
-
- hasRune(slot: ItemSlot, runeId: number): boolean {
- return this.getEquippedItem(slot)?.rune?.id === runeId;
- }
-
getEpWeights(): Stats {
return this.epWeights;
}
@@ -1348,7 +1339,6 @@ export class Player {
inFrontOfTarget: this.getInFrontOfTarget(),
distanceFromTarget: this.getDistanceFromTarget(),
healingModel: this.getHealingModel(),
- isbUsingShadowflame: this.getIsbUsingShadowflame(),
isbSbFrequency: this.getIsbSbFrequency(),
isbCrit: this.getIsbCrit(),
isbWarlocks: this.getIsbWarlocks(),
diff --git a/ui/core/proto_utils/database.ts b/ui/core/proto_utils/database.ts
index c1f1a6f20..c1cefca36 100644
--- a/ui/core/proto_utils/database.ts
+++ b/ui/core/proto_utils/database.ts
@@ -1,6 +1,6 @@
import { MAX_CHARACTER_LEVEL } from '../constants/mechanics.js';
import { Class, EquipmentSpec, ItemRandomSuffix, ItemSlot, ItemSpec, ItemSwap, PresetEncounter, PresetTarget, SimDatabase } from '../proto/common.js';
-import { IconData, UIDatabase, UIEnchant as Enchant, UIFaction as Faction, UIItem as Item, UINPC as Npc, UIRune as Rune, UIZone as Zone } from '../proto/ui.js';
+import { IconData, UIDatabase, UIEnchant as Enchant, UIFaction as Faction, UIItem as Item, UINPC as Npc, UIZone as Zone } from '../proto/ui.js';
import { distinct } from '../utils.js';
import { EquippedItem } from './equipped_item.js';
import { Gear, ItemSwapGear } from './gear.js';
@@ -64,8 +64,6 @@ export class Database {
private readonly items = new Map();
private readonly randomSuffixes = new Map();
private readonly enchantsBySlot: Partial> = {};
- private readonly runesBySlotByClass: Partial>>> = {};
- private readonly runesById: Record = {};
private readonly zones = new Map();
private readonly npcs = new Map();
private readonly factions = new Map();
@@ -92,22 +90,6 @@ export class Database {
this.enchantsBySlot[slot]!.push(enchant);
});
});
- db.runes.forEach(rune => {
- this.runesById[rune.id] = rune;
-
- const slots = itemTypeToSlotsMap[rune.type];
- slots?.forEach(slot => {
- if (!this.runesBySlotByClass[slot]) {
- this.runesBySlotByClass[slot] = {};
- }
- rune.classAllowlist.forEach(klass => {
- if (!this.runesBySlotByClass[slot]![klass]) {
- this.runesBySlotByClass[slot]![klass] = [];
- }
- this.runesBySlotByClass[slot]![klass]!.push(rune);
- });
- });
- });
db.npcs.forEach(npc => this.npcs.set(npc.id, npc));
db.zones.forEach(zone => this.zones.set(zone.id, zone));
@@ -153,20 +135,6 @@ export class Database {
return this.enchantsBySlot[slot] || [];
}
- getRunes(slot: ItemSlot, klass: Class): Array {
- if (!this.runesBySlotByClass[slot]) return [];
-
- return this.runesBySlotByClass[slot]![klass] || [];
- }
-
- getRuneById(runeID: number): Rune {
- return this.runesById[runeID];
- }
-
- hasRuneBySlot(slot: ItemSlot, klass: Class): boolean {
- return !!(this.runesBySlotByClass[slot] && this.runesBySlotByClass[slot]![klass]);
- }
-
getNpc(npcId: number): Npc | null {
return this.npcs.get(npcId) || null;
}
@@ -194,17 +162,12 @@ export class Database {
}
}
- let rune: Rune | null = null;
- if (itemSpec.rune && !!this.runesById[itemSpec.rune]) {
- rune = this.runesById[itemSpec.rune];
- }
-
let randomSuffix: ItemRandomSuffix | null = null;
if (itemSpec.randomSuffix && !!this.getRandomSuffixById(itemSpec.randomSuffix)) {
randomSuffix = this.getRandomSuffixById(itemSpec.randomSuffix)!;
}
- return new EquippedItem({ item, enchant, rune, randomSuffix });
+ return new EquippedItem({ item, enchant, randomSuffix });
}
lookupEquipmentSpec(equipSpec: EquipmentSpec): Gear {
diff --git a/ui/core/proto_utils/equipped_item.ts b/ui/core/proto_utils/equipped_item.ts
index 32d39d2d7..7c99cc613 100644
--- a/ui/core/proto_utils/equipped_item.ts
+++ b/ui/core/proto_utils/equipped_item.ts
@@ -1,5 +1,5 @@
import { ItemRandomSuffix, ItemSpec, Profession } from '../proto/common.js';
-import { UIEnchant as Enchant, UIItem as Item, UIRune as Rune } from '../proto/ui.js';
+import { UIEnchant as Enchant, UIItem as Item } from '../proto/ui.js';
import { distinct } from '../utils.js';
import { ActionId } from './action_id.js';
import { enchantAppliesToItem } from './utils.js';
@@ -11,7 +11,6 @@ export function getWeaponDPS(item: Item): number {
interface EquippedItemConfig {
item: Item;
enchant?: Enchant | null;
- rune?: Rune | null;
randomSuffix?: ItemRandomSuffix | null;
}
@@ -24,13 +23,11 @@ export class EquippedItem {
readonly _item: Item;
readonly _randomSuffix: ItemRandomSuffix | null;
readonly _enchant: Enchant | null;
- readonly _rune: Rune | null;
constructor(config: EquippedItemConfig) {
this._item = config.item;
this._randomSuffix = config.randomSuffix || null;
this._enchant = config.enchant || null;
- this._rune = config.rune || null;
}
get item(): Item {
@@ -51,11 +48,6 @@ export class EquippedItem {
return this._enchant ? Enchant.clone(this._enchant) : null;
}
- get rune(): Rune | null {
- // Make a defensive copy
- return this._rune ? Rune.clone(this._rune) : null;
- }
-
equals(other: EquippedItem) {
if (!Item.equals(this._item, other.item)) return false;
@@ -67,10 +59,6 @@ export class EquippedItem {
if (this._enchant && other.enchant && !Enchant.equals(this._enchant, other.enchant)) return false;
- if ((this._rune == null) != (other.rune == null)) return false;
-
- if (this._rune && other.rune && !Rune.equals(this._rune, other.rune)) return false;
-
return true;
}
@@ -81,22 +69,18 @@ export class EquippedItem {
let newEnchant;
if (this._enchant && enchantAppliesToItem(this._enchant, item)) newEnchant = this._enchant;
- return new EquippedItem({ item, enchant: newEnchant, rune: this.rune });
+ return new EquippedItem({ item, enchant: newEnchant });
}
/**
* Returns a new EquippedItem with the given enchant applied.
*/
withEnchant(enchant: Enchant | null): EquippedItem {
- return new EquippedItem({ item: this._item, enchant, rune: this._rune, randomSuffix: this._randomSuffix });
- }
-
- withRune(rune: Rune | null): EquippedItem {
- return new EquippedItem({ item: this._item, enchant: this.enchant, rune, randomSuffix: this._randomSuffix });
+ return new EquippedItem({ item: this._item, enchant, randomSuffix: this._randomSuffix });
}
withRandomSuffix(randomSuffix: ItemRandomSuffix | null): EquippedItem {
- return new EquippedItem({ item: this._item, enchant: this.enchant, rune: this._rune, randomSuffix });
+ return new EquippedItem({ item: this._item, enchant: this.enchant, randomSuffix });
}
asActionId(): ActionId {
@@ -110,7 +94,6 @@ export class EquippedItem {
id: this._item.id,
randomSuffix: this._randomSuffix?.id,
enchant: this._enchant?.effectId,
- rune: this._rune?.id,
});
}
diff --git a/ui/core/proto_utils/names.ts b/ui/core/proto_utils/names.ts
index 1f5e5fd31..1c5b4429f 100644
--- a/ui/core/proto_utils/names.ts
+++ b/ui/core/proto_utils/names.ts
@@ -207,7 +207,6 @@ export const pseudoStatNames: Map = new Map([
[PseudoStat.PseudoStatOffHandDps, 'Off Hand DPS'],
[PseudoStat.PseudoStatRangedDps, 'Ranged DPS'],
[PseudoStat.PseudoStatBlockValueMultiplier, 'Block Value Multiplier'],
- [PseudoStat.TimewornBonus, 'Timeworn Pieces'],
[PseudoStat.BonusPhysicalDamage, 'Bonus Weapon Damage'],
]);
diff --git a/ui/core/raid.ts b/ui/core/raid.ts
index 6abb9a9a0..ea279b9f5 100644
--- a/ui/core/raid.ts
+++ b/ui/core/raid.ts
@@ -205,16 +205,6 @@ export class Raid {
}
fromProto(eventID: EventID, proto: RaidProto) {
- // Backwards compatbility with old curses inputs
- if (proto.debuffs?.curseOfElements && proto.debuffs.curseOfElementsNew == TristateEffect.TristateEffectMissing) {
- proto.debuffs.curseOfElementsNew = TristateEffect.TristateEffectRegular;
- proto.debuffs.curseOfElements = false;
- }
- if (proto.debuffs?.curseOfShadow && proto.debuffs.curseOfShadowNew == TristateEffect.TristateEffectMissing) {
- proto.debuffs.curseOfShadowNew = TristateEffect.TristateEffectRegular;
- proto.debuffs.curseOfShadow = false;
- }
-
TypedEvent.freezeAllAndDo(() => {
this.setBuffs(eventID, proto.buffs || RaidBuffs.create());
this.setDebuffs(eventID, proto.debuffs || Debuffs.create());
diff --git a/ui/elemental_shaman/presets.ts b/ui/elemental_shaman/presets.ts
index 61f044221..b96900100 100644
--- a/ui/elemental_shaman/presets.ts
+++ b/ui/elemental_shaman/presets.ts
@@ -4,7 +4,6 @@ import {
AttackPowerBuff,
Consumes,
Debuffs,
- EnchantedSigil,
FirePowerBuff,
Flask,
Food,
@@ -96,14 +95,12 @@ export const DefaultOptions = ElementalShamanOptions.create({});
export const DefaultConsumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultPotion: Potions.MajorManaPotion,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodRunnTumTuberSurprise,
mainHandImbue: WeaponImbue.FlametongueWeapon,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
- offHandImbue: WeaponImbue.MagnificentTrollshine,
+ //offHandImbue: WeaponImbue.MagnificentTrollshine,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
zanzaBuff: ZanzaBuff.CerebralCortexCompound,
@@ -111,36 +108,27 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
- demonicPact: 110,
divineSpirit: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
manaSpringTotem: TristateEffect.TristateEffectRegular,
moonkinAura: true,
strengthOfEarthTotem: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
fengusFerocity: true,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
faerieFire: true,
- homunculi: 70, // 70% average uptime default
- improvedFaerieFire: true,
improvedScorch: true,
- markOfChaos: true,
- occultPoison: true,
stormstrike: true,
sunderArmor: true,
});
diff --git a/ui/elemental_shaman/sim.ts b/ui/elemental_shaman/sim.ts
index 7ae240709..db530b4c3 100644
--- a/ui/elemental_shaman/sim.ts
+++ b/ui/elemental_shaman/sim.ts
@@ -3,7 +3,7 @@ import * as OtherInputs from '../core/components/other_inputs';
import { Phase } from '../core/constants/other';
import { IndividualSimUI, registerSpecConfig } from '../core/individual_sim_ui';
import { Player } from '../core/player';
-import { Class, Faction, ItemSlot, PartyBuffs, PseudoStat, Race, Spec, Stat } from '../core/proto/common';
+import { Class, Faction, ItemSlot, PartyBuffs, Race, Spec, Stat } from '../core/proto/common';
import { Stats } from '../core/proto_utils/stats';
import { getSpecIcon, specNames } from '../core/proto_utils/utils';
import * as Presets from './presets';
@@ -31,7 +31,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecElementalShaman, {
Stat.StatMP5,
],
epPseudoStats: [
- PseudoStat.TimewornBonus,
+
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatSpellPower,
@@ -90,7 +90,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecElementalShaman, {
playerIconInputs: [],
// Buff and Debuff inputs to include/exclude, overriding the EP-based defaults.
includeBuffDebuffInputs: [],
- excludeBuffDebuffInputs: [BuffDebuffInputs.BleedDebuff],
+ excludeBuffDebuffInputs: [],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [OtherInputs.DistanceFromTarget],
diff --git a/ui/enhancement_shaman/presets.ts b/ui/enhancement_shaman/presets.ts
index a5b495313..f77f36da0 100644
--- a/ui/enhancement_shaman/presets.ts
+++ b/ui/enhancement_shaman/presets.ts
@@ -5,7 +5,6 @@ import {
AttackPowerBuff,
Consumes,
Debuffs,
- EnchantedSigil,
FirePowerBuff,
Flask,
Food,
@@ -108,13 +107,11 @@ export const DefaultConsumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodBlessSunfruit,
mainHandImbue: WeaponImbue.WindfuryWeapon,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
offHandImbue: WeaponImbue.WindfuryWeapon,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
@@ -123,9 +120,7 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -134,7 +129,6 @@ export const DefaultRaidBuffs = RaidBuffs.create({
leaderOfThePack: true,
manaSpringTotem: TristateEffect.TristateEffectRegular,
strengthOfEarthTotem: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
@@ -144,7 +138,6 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -152,11 +145,7 @@ export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
- homunculi: 70, // 70% average uptime default
- improvedFaerieFire: true,
improvedScorch: true,
- markOfChaos: true,
- occultPoison: true,
stormstrike: true,
sunderArmor: true,
});
diff --git a/ui/enhancement_shaman/sim.ts b/ui/enhancement_shaman/sim.ts
index a9e665c75..bbad7a53f 100644
--- a/ui/enhancement_shaman/sim.ts
+++ b/ui/enhancement_shaman/sim.ts
@@ -115,7 +115,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecEnhancementShaman, {
playerIconInputs: [],
// Buff and Debuff inputs to include/exclude, overriding the EP-based defaults.
includeBuffDebuffInputs: [BuffDebuffInputs.BlessingOfWisdom, BuffDebuffInputs.ManaSpringTotem, BuffDebuffInputs.SpiritBuff],
- excludeBuffDebuffInputs: [BuffDebuffInputs.BleedDebuff],
+ excludeBuffDebuffInputs: [],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [ShamanInputs.SyncTypeInput, OtherInputs.TankAssignment, OtherInputs.InFrontOfTarget],
diff --git a/ui/feral_druid/presets.ts b/ui/feral_druid/presets.ts
index 6de5e1216..f927fb4c2 100644
--- a/ui/feral_druid/presets.ts
+++ b/ui/feral_druid/presets.ts
@@ -6,7 +6,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
IndividualBuffs,
@@ -126,14 +125,11 @@ export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfDistilledWisdom,
food: Food.FoodSmokedDesertDumpling,
mainHandImbue: WeaponImbue.ElementalSharpeningStone,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
miscConsumes: {
- catnip: true,
jujuEmber: true,
},
strengthBuff: StrengthBuff.JujuPower,
@@ -142,7 +138,6 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
divineSpirit: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
@@ -157,12 +152,10 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfMight: TristateEffect.TristateEffectImproved,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -170,7 +163,6 @@ export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
- homunculi: 70, // 70% average uptime default
sunderArmor: true,
});
diff --git a/ui/feral_druid/sim.ts b/ui/feral_druid/sim.ts
index b3554d6e2..e236eb8d5 100644
--- a/ui/feral_druid/sim.ts
+++ b/ui/feral_druid/sim.ts
@@ -114,7 +114,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecFeralDruid, {
BuffDebuffInputs.ManaSpringTotem,
BuffDebuffInputs.JudgementOfWisdom,
],
- excludeBuffDebuffInputs: [WeaponImbue.ElementalSharpeningStone, WeaponImbue.DenseSharpeningStone, WeaponImbue.WildStrikes],
+ excludeBuffDebuffInputs: [WeaponImbue.ElementalSharpeningStone, WeaponImbue.DenseSharpeningStone],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [
diff --git a/ui/hunter/gear_sets/placeholder.gear.json b/ui/hunter/gear_sets/placeholder.gear.json
index 97627a58b..022a9d11b 100644
--- a/ui/hunter/gear_sets/placeholder.gear.json
+++ b/ui/hunter/gear_sets/placeholder.gear.json
@@ -6,8 +6,8 @@
{"id":14811,"enchant":866},
{"id":18458},
{"id":15063,"enchant":904},
- {"id":18393,"rune":415352},
- {"id":8309,"rune":415320},
+ {"id":18393},
+ {"id":8309},
{"id":6423,"enchant":849},
{"id":2951},
{"id":9533},
diff --git a/ui/hunter/inputs.ts b/ui/hunter/inputs.ts
index eac936800..3e20b0baa 100644
--- a/ui/hunter/inputs.ts
+++ b/ui/hunter/inputs.ts
@@ -61,23 +61,6 @@ export const PetUptime = InputHelpers.makeSpecOptionsNumberInput({
- fieldName: 'newRaptorStrike',
- label: 'New Raptor Strike',
- labelTooltip: 'New Raptor Strike with removed same weapon type 30% damage bonus.',
- showWhen: player => player.getEquippedItem(ItemSlot.ItemSlotFeet)?.rune?.id == HunterRune.RuneBootsDualWieldSpecialization,
- changeEmitter: (player: Player) => TypedEvent.onAny([player.gearChangeEmitter, player.specOptionsChangeEmitter]),
-});
-
-export const SniperTrainingUptime = InputHelpers.makeSpecOptionsNumberInput({
- fieldName: 'sniperTrainingUptime',
- label: 'Sniper Training Uptime (%)',
- labelTooltip: 'Percent of the fight duration for which you will have the buff.',
- percent: true,
- showWhen: player => player.getEquippedItem(ItemSlot.ItemSlotLegs)?.rune?.id == HunterRune.RuneLegsSniperTraining,
- changeEmitter: (player: Player) => TypedEvent.onAny([player.gearChangeEmitter, player.specOptionsChangeEmitter]),
-});
-
export const PetAttackSpeedInput = InputHelpers.makeSpecOptionsEnumInput({
fieldName: 'petAttackSpeed',
label: 'Pet Attack Speed',
diff --git a/ui/hunter/presets.ts b/ui/hunter/presets.ts
index 191e10ed9..e518d1af9 100644
--- a/ui/hunter/presets.ts
+++ b/ui/hunter/presets.ts
@@ -7,7 +7,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
HealthElixir,
@@ -221,11 +220,10 @@ export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodSmokedDesertDumpling,
healthElixir: HealthElixir.ElixirOfFortitude,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
offHandImbue: WeaponImbue.ElementalSharpeningStone,
petAttackPowerConsumable: 1,
@@ -239,10 +237,7 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- commandingShout: true,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -259,31 +254,22 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfMight: TristateEffect.TristateEffectRegular,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- fervorOfTheTempleExplorer: true,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
- dreamstate: true,
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
- homunculi: 70, // 70% average uptime default
huntersMark: TristateEffect.TristateEffectImproved,
improvedScorch: true,
- improvedFaerieFire: true,
judgementOfWisdom: true,
- mangle: true,
- markOfChaos: true,
- occultPoison: true,
stormstrike: true,
sunderArmor: true,
});
diff --git a/ui/hunter/sim.ts b/ui/hunter/sim.ts
index fc127cede..cafd44b27 100644
--- a/ui/hunter/sim.ts
+++ b/ui/hunter/sim.ts
@@ -1,7 +1,6 @@
import * as BuffDebuffInputs from '../core/components/inputs/buffs_debuffs';
import * as ConsumablesInputs from '../core/components/inputs/consumables.js';
import * as OtherInputs from '../core/components/other_inputs.js';
-import * as Mechanics from '../core/constants/mechanics.js';
import { Phase } from '../core/constants/other.js';
import { IndividualSimUI, registerSpecConfig } from '../core/individual_sim_ui.js';
import { Player } from '../core/player.js';
@@ -129,7 +128,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecHunter, {
//HunterInputs.NewRaptorStrike,
HunterInputs.PetAttackSpeedInput,
HunterInputs.PetUptime,
- HunterInputs.SniperTrainingUptime,
OtherInputs.DistanceFromTarget,
OtherInputs.TankAssignment,
OtherInputs.InFrontOfTarget,
@@ -166,10 +164,10 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecHunter, {
autoRotation: player => {
const level = player.getLevel();
- const isMelee =
- player.hasRune(ItemSlot.ItemSlotWaist, HunterRune.RuneBeltMeleeSpecialist) ||
- player.hasRune(ItemSlot.ItemSlotFeet, HunterRune.RuneBootsDualWieldSpecialization) ||
- player.hasRune(ItemSlot.ItemSlotFeet, HunterRune.RuneBootsWyvernStrike);
+ const isMelee = false;
+ //player.hasRune(ItemSlot.ItemSlotWaist, HunterRune.RuneBeltMeleeSpecialist) ||
+ //player.hasRune(ItemSlot.ItemSlotFeet, HunterRune.RuneBootsDualWieldSpecialization) ||
+ //player.hasRune(ItemSlot.ItemSlotFeet, HunterRune.RuneBootsWyvernStrike);
if (isMelee) {
switch (level) {
diff --git a/ui/mage/inputs.ts b/ui/mage/inputs.ts
index 25884ca67..3c4fb63c4 100644
--- a/ui/mage/inputs.ts
+++ b/ui/mage/inputs.ts
@@ -11,11 +11,6 @@ export const Armor = InputHelpers.makeSpecOptionsEnumIconInput ActionId.fromSpellId(428741),
- value: ArmorType.MoltenArmor,
- showWhen: player => player.hasRune(ItemSlot.ItemSlotWrist, MageRune.RuneBracersMoltenArmor),
- },
{
actionId: player =>
player.getMatchingSpellActionId([
diff --git a/ui/mage/presets.ts b/ui/mage/presets.ts
index 7bf39c31f..1861ae391 100644
--- a/ui/mage/presets.ts
+++ b/ui/mage/presets.ts
@@ -4,7 +4,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
FirePowerBuff,
Flask,
Food,
@@ -206,7 +205,6 @@ export const DefaultOptions = MageOptions.create({
export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodRunnTumTuberSurprise,
@@ -215,41 +213,31 @@ export const DefaultConsumes = Consumes.create({
mainHandImbue: WeaponImbue.BrilliantWizardOil,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
zanzaBuff: ZanzaBuff.CerebralCortexCompound,
});
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
- demonicPact: 110,
divineSpirit: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
manaSpringTotem: TristateEffect.TristateEffectRegular,
moonkinAura: true,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfWisdom: TristateEffect.TristateEffectImproved,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
- dreamstate: true,
- improvedFaerieFire: true,
improvedScorch: true,
judgementOfWisdom: true,
- markOfChaos: true,
- occultPoison: true,
wintersChill: true,
});
diff --git a/ui/protection_paladin/inputs.ts b/ui/protection_paladin/inputs.ts
index 266ab88c2..329001f0f 100644
--- a/ui/protection_paladin/inputs.ts
+++ b/ui/protection_paladin/inputs.ts
@@ -1,7 +1,7 @@
import * as InputHelpers from '../core/components/input_helpers.js';
import { Player } from '../core/player.js';
import { ItemSlot, Spec } from '../core/proto/common.js';
-import { PaladinRune, PaladinSeal, PaladinAura, Blessings } from '../core/proto/paladin.js';
+import { Blessings,PaladinAura, PaladinRune, PaladinSeal } from '../core/proto/paladin.js';
import { ActionId } from '../core/proto_utils/action_id.js';
import { TypedEvent } from '../core/typed_event.js';
// Configuration for spec-specific UI elements on the settings tab.
@@ -41,8 +41,7 @@ export const BlessingSelection = InputHelpers.makeSpecOptionsEnumIconInput({
fieldName: 'righteousFury',
- actionId: (player: Player) =>
- player.hasRune(ItemSlot.ItemSlotHands, PaladinRune.RuneHandsHandOfReckoning) ? ActionId.fromSpellId(407627) : ActionId.fromSpellId(25780),
+ actionId: (_player: Player) => ActionId.fromSpellId(25780),
changeEmitter: (player: Player) => TypedEvent.onAny([player.gearChangeEmitter, player.specOptionsChangeEmitter]),
});
diff --git a/ui/protection_paladin/presets.ts b/ui/protection_paladin/presets.ts
index 7ac4eca11..8ed9c0776 100644
--- a/ui/protection_paladin/presets.ts
+++ b/ui/protection_paladin/presets.ts
@@ -8,7 +8,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Explosive,
FirePowerBuff,
Flask,
@@ -116,8 +115,8 @@ export const DefaultConsumes = Consumes.create({
flask: Flask.FlaskOfTheTitans,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
fillerExplosive: Explosive.ExplosiveDenseDynamite,
- mainHandImbue: WeaponImbue.WildStrikes,
- offHandImbue: WeaponImbue.MagnificentTrollshine,
+ //mainHandImbue: WeaponImbue.WildStrikes,
+ //offHandImbue: WeaponImbue.MagnificentTrollshine,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
@@ -136,36 +135,25 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
- mightOfStormwind: true,
});
export const DefaultRaidBuffs = RaidBuffs.create({
- hornOfLordaeron: true,
powerWordFortitude: TristateEffect.TristateEffectImproved,
arcaneBrilliance: true,
battleShout: TristateEffect.TristateEffectImproved,
divineSpirit: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
sanctityAura: true,
- demonicPact: 110,
- aspectOfTheLion: true,
- vampiricTouch: 300,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
- homunculi: 70, // 70% average uptime default
faerieFire: true,
giftOfArthas: true,
exposeArmor: TristateEffect.TristateEffectImproved,
judgementOfWisdom: true,
judgementOfTheCrusader: TristateEffect.TristateEffectImproved,
- improvedFaerieFire: true,
improvedScorch: true,
- markOfChaos: true,
- occultPoison: true,
- mangle: true,
});
export const OtherDefaults = {
diff --git a/ui/restoration_shaman/sim.ts b/ui/restoration_shaman/sim.ts
index b8f1bb433..999265d8c 100644
--- a/ui/restoration_shaman/sim.ts
+++ b/ui/restoration_shaman/sim.ts
@@ -66,7 +66,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRestorationShaman, {
debuffs: Debuffs.create({
faerieFire: true,
judgementOfWisdom: true,
- curseOfElementsNew: TristateEffect.TristateEffectRegular,
}),
},
// IconInputs to include in the 'Player' section on the settings tab.
diff --git a/ui/retribution_paladin/presets.ts b/ui/retribution_paladin/presets.ts
index 7acac886c..e9cb1e477 100644
--- a/ui/retribution_paladin/presets.ts
+++ b/ui/retribution_paladin/presets.ts
@@ -6,7 +6,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Explosive,
FirePowerBuff,
Flask,
@@ -161,13 +160,12 @@ export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
fillerExplosive: Explosive.ExplosiveUnknown,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
food: Food.FoodBlessSunfruit,
flask: Flask.FlaskOfSupremePower,
- mainHandImbue: WeaponImbue.WildStrikes,
- offHandImbue: WeaponImbue.MagnificentTrollshine,
+ //mainHandImbue: WeaponImbue.WildStrikes,
+ //offHandImbue: WeaponImbue.MagnificentTrollshine,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
zanzaBuff: ZanzaBuff.ROIDS,
@@ -178,14 +176,12 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -198,25 +194,17 @@ export const DefaultRaidBuffs = RaidBuffs.create({
giftOfTheWild: TristateEffect.TristateEffectImproved,
sanctityAura: true,
leaderOfThePack: true,
- demonicPact: 110,
- aspectOfTheLion: true,
moonkinAura: true,
- vampiricTouch: 300,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
- homunculi: 70, // 70% average uptime default
faerieFire: true,
giftOfArthas: true,
sunderArmor: true,
judgementOfWisdom: true,
judgementOfTheCrusader: TristateEffect.TristateEffectImproved,
- improvedFaerieFire: true,
improvedScorch: true,
- markOfChaos: true,
- occultPoison: true,
- mangle: true,
});
export const OtherDefaults = {
diff --git a/ui/retribution_paladin/sim.ts b/ui/retribution_paladin/sim.ts
index 8fbd73580..8d80bc6ba 100644
--- a/ui/retribution_paladin/sim.ts
+++ b/ui/retribution_paladin/sim.ts
@@ -56,7 +56,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRetributionPaladin, {
epPseudoStats: [
PseudoStat.PseudoStatMainHandDps,
PseudoStat.PseudoStatMeleeSpeedMultiplier,
- PseudoStat.TimewornBonus
],
// Reference stat against which to calculate EP. I think all classes use either spell power or attack power.
epReferenceStat: Stat.StatAttackPower,
diff --git a/ui/rogue/presets.ts b/ui/rogue/presets.ts
index 4ae4cbfaa..76770842e 100644
--- a/ui/rogue/presets.ts
+++ b/ui/rogue/presets.ts
@@ -6,7 +6,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
IndividualBuffs,
@@ -337,15 +336,15 @@ export const P1Consumes = Consumes.create({
agilityElixir: AgilityElixir.ElixirOfLesserAgility,
dragonBreathChili: false,
strengthBuff: StrengthBuff.ElixirOfOgresStrength,
- mainHandImbue: WeaponImbue.WildStrikes,
- offHandImbue: WeaponImbue.BlackfathomSharpeningStone,
+ mainHandImbue: WeaponImbue.Windfury,
+ //offHandImbue: WeaponImbue.BlackfathomSharpeningStone,
});
export const P2Consumes = Consumes.create({
agilityElixir: AgilityElixir.ElixirOfAgility,
dragonBreathChili: false,
strengthBuff: StrengthBuff.ElixirOfOgresStrength,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.ShadowOil,
});
@@ -353,7 +352,7 @@ export const P3Consumes = Consumes.create({
agilityElixir: AgilityElixir.ElixirOfGreaterAgility,
dragonBreathChili: false,
strengthBuff: StrengthBuff.ElixirOfOgresStrength,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.ShadowOil,
});
@@ -362,10 +361,9 @@ export const P4Consumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultConjured: Conjured.ConjuredRogueThistleTea,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodGrilledSquid,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
miscConsumes: {
jujuEmber: true,
},
@@ -380,10 +378,9 @@ export const P5Consumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultConjured: Conjured.ConjuredRogueThistleTea,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodGrilledSquid,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.ElementalSharpeningStone,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
@@ -399,9 +396,7 @@ export const DefaultConsumes = {
};
export const DefaultRaidBuffs = RaidBuffs.create({
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- demonicPact: 110,
fireResistanceAura: true,
fireResistanceTotem: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
@@ -414,25 +409,18 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfMight: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
- dreamstate: true,
faerieFire: true,
- homunculi: 100,
- improvedFaerieFire: true,
improvedScorch: true,
- mangle: true,
- markOfChaos: true,
sunderArmor: true,
});
diff --git a/ui/rogue/sim.ts b/ui/rogue/sim.ts
index 6642bf51f..acf153246 100644
--- a/ui/rogue/sim.ts
+++ b/ui/rogue/sim.ts
@@ -136,7 +136,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, {
BuffDebuffInputs.SpellCritBuff,
BuffDebuffInputs.SpellShadowWeavingDebuff,
BuffDebuffInputs.NatureSpellDamageDebuff,
- BuffDebuffInputs.MekkatorqueFistDebuff,
BuffDebuffInputs.SpellScorchDebuff,
BuffDebuffInputs.PowerInfusion,
],
@@ -183,7 +182,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecRogue, {
autoRotation: player => {
// Try to find a rotation by hand rune
- const handRuneID = player.getEquippedItem(ItemSlot.ItemSlotHands)?._rune?.id ?? 0;
+ const handRuneID = 0;
const preset = Presets.DefaultAPLs[player.getLevel()][handRuneID];
if (preset) return preset.rotation.rotation!;
diff --git a/ui/scss/core/components/gear_picker/_gear_picker.scss b/ui/scss/core/components/gear_picker/_gear_picker.scss
index 64e6ec225..622f9d2c5 100644
--- a/ui/scss/core/components/gear_picker/_gear_picker.scss
+++ b/ui/scss/core/components/gear_picker/_gear_picker.scss
@@ -65,16 +65,6 @@
.item-picker-name,
.item-picker-enchant,
- .item-picker-rune {
- letter-spacing: normal;
-
- .gear-picker-right & {
- text-align: right;
- @include media-breakpoint-down(md) {
- text-align: left;
- }
- }
- }
.item-picker-name {
color: var(--bs-white);
@@ -84,23 +74,6 @@
color: var(--bs-uncommon);
font-size: var(--content-font-size);
}
- .item-picker-rune {
- color: var(--bs-brand);
- font-size: var(--content-font-size);
- }
- }
-
- .item-picker-rune-container {
- @include vertical-top;
- @include horizontal-right;
- display: flex;
- justify-content: center;
- pointer-events: none;
-
- .item-picker-rune-icon {
- width: 1.75rem;
- height: 1.75rem;
- }
}
}
diff --git a/ui/shadow_priest/presets.ts b/ui/shadow_priest/presets.ts
index 05718eae2..51f390a3a 100644
--- a/ui/shadow_priest/presets.ts
+++ b/ui/shadow_priest/presets.ts
@@ -4,7 +4,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
IndividualBuffs,
@@ -107,12 +106,10 @@ export const DefaultOptions = Options.create({});
export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
food: Food.FoodRunnTumTuberSurprise,
mainHandImbue: WeaponImbue.BrilliantWizardOil,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
shadowPowerBuff: ShadowPowerBuff.ElixirOfShadowPower,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
@@ -121,8 +118,6 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -134,22 +129,17 @@ export const DefaultRaidBuffs = RaidBuffs.create({
export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfWisdom: TristateEffect.TristateEffectImproved,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
- improvedFaerieFire: true,
improvedShadowBolt: true,
judgementOfWisdom: true,
- occultPoison: true,
- markOfChaos: true,
wintersChill: true,
});
diff --git a/ui/tank_rogue/presets.ts b/ui/tank_rogue/presets.ts
index 0390f884d..4d73f30cd 100644
--- a/ui/tank_rogue/presets.ts
+++ b/ui/tank_rogue/presets.ts
@@ -1,20 +1,17 @@
import { Phase } from '../core/constants/other.js';
import * as PresetUtils from '../core/preset_utils.js';
-import { Player } from '../core/proto/api';
import {
AgilityElixir,
AttackPowerBuff,
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
IndividualBuffs,
Profession,
RaidBuffs,
SaygesFortune,
- SpellPowerBuff,
StrengthBuff,
TristateEffect,
WeaponImbue,
@@ -22,7 +19,6 @@ import {
} from '../core/proto/common.js';
import { RogueOptions } from '../core/proto/rogue.js';
import { SavedTalents } from '../core/proto/ui.js';
-import { playerPresets } from '../raid/presets';
import MutilateApl from './apls/mutilate.apl.json';
import P3MutilateApl from './apls/Mutilate_DPS_50.apl.json';
import MutilateIEAApl from './apls/mutilate_IEA.apl.json';
@@ -198,19 +194,16 @@ export const DefaultConsumes = Consumes.create({
agilityElixir: AgilityElixir.ElixirOfTheMongoose,
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultConjured: Conjured.ConjuredRogueThistleTea,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfTheTitans,
food: Food.FoodGrilledSquid,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.DeadlyPoison,
strengthBuff: StrengthBuff.JujuPower,
zanzaBuff: ZanzaBuff.GroundScorpokAssay,
});
export const DefaultRaidBuffs = RaidBuffs.create({
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- demonicPact: 80,
fireResistanceAura: true,
fireResistanceTotem: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
@@ -223,25 +216,18 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfMight: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
spiritOfZandalar: true,
});
export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
- dreamstate: true,
faerieFire: true,
- homunculi: 100,
- improvedFaerieFire: true,
improvedScorch: true,
- mangle: true,
- markOfChaos: true,
sunderArmor: true,
});
diff --git a/ui/tank_rogue/sim.ts b/ui/tank_rogue/sim.ts
index 1f392a2e5..725809169 100644
--- a/ui/tank_rogue/sim.ts
+++ b/ui/tank_rogue/sim.ts
@@ -115,7 +115,6 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankRogue, {
BuffDebuffInputs.SpellCritBuff,
BuffDebuffInputs.SpellShadowWeavingDebuff,
BuffDebuffInputs.NatureSpellDamageDebuff,
- BuffDebuffInputs.MekkatorqueFistDebuff,
BuffDebuffInputs.SpellScorchDebuff,
BuffDebuffInputs.PowerInfusion,
],
diff --git a/ui/tank_warlock/presets.ts b/ui/tank_warlock/presets.ts
index 0af1b8225..79cb3d605 100644
--- a/ui/tank_warlock/presets.ts
+++ b/ui/tank_warlock/presets.ts
@@ -8,7 +8,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
Explosive,
FirePowerBuff,
Flask,
@@ -186,7 +185,6 @@ export const DefaultConsumes = Consumes.create({
defaultConjured: Conjured.ConjuredDemonicRune,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
fillerExplosive: Explosive.ExplosiveDenseDynamite,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
flask: Flask.FlaskOfSupremePower,
@@ -202,10 +200,8 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
bloodPact: TristateEffect.TristateEffectImproved,
- demonicPact: 110,
devotionAura: TristateEffect.TristateEffectImproved,
divineSpirit: true,
fireResistanceAura: true,
@@ -218,7 +214,6 @@ export const DefaultRaidBuffs = RaidBuffs.create({
shadowProtection: true,
strengthOfEarthTotem: TristateEffect.TristateEffectRegular,
thorns: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
@@ -227,14 +222,12 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfSanctuary: true,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -244,12 +237,8 @@ export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
demoralizingShout: TristateEffect.TristateEffectImproved,
faerieFire: true,
- homunculi: 100,
- improvedFaerieFire: true,
improvedScorch: true,
judgementOfWisdom: true,
- markOfChaos: true,
- occultPoison: true,
shadowWeaving: true,
});
diff --git a/ui/tank_warlock/sim.ts b/ui/tank_warlock/sim.ts
index 517213022..39e3db014 100644
--- a/ui/tank_warlock/sim.ts
+++ b/ui/tank_warlock/sim.ts
@@ -125,7 +125,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankWarlock, {
// Buff and Debuff inputs to include/exclude, overriding the EP-based defaults.
includeBuffDebuffInputs: [BuffDebuffInputs.ResistanceBuff],
- excludeBuffDebuffInputs: [BuffDebuffInputs.BleedDebuff, BuffDebuffInputs.SpellWintersChillDebuff, ...ConsumablesInputs.FROST_POWER_CONFIG],
+ excludeBuffDebuffInputs: [BuffDebuffInputs.SpellWintersChillDebuff, ...ConsumablesInputs.FROST_POWER_CONFIG],
petConsumeInputs: [ConsumablesInputs.PetAttackPowerConsumable, ConsumablesInputs.PetAgilityConsumable, ConsumablesInputs.PetStrengthConsumable],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
@@ -180,8 +180,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecTankWarlock, {
// Pre-60 had fewer options so it basically came down to master channeler vs no master channeler
if (level < 60) {
- const hasMasterChanneler = player.getEquippedItem(ItemSlot.ItemSlotChest)?.rune?.id == WarlockRune.RuneChestMasterChanneler;
- specNumber = hasMasterChanneler ? 0 : 1;
+ specNumber = 1;
return Presets.DefaultAPLs[level][specNumber].rotation.rotation!;
}
diff --git a/ui/tank_warrior/gear_sets/placeholder.gear.json b/ui/tank_warrior/gear_sets/placeholder.gear.json
index 361dc6dac..601acc7dc 100644
--- a/ui/tank_warrior/gear_sets/placeholder.gear.json
+++ b/ui/tank_warrior/gear_sets/placeholder.gear.json
@@ -6,8 +6,8 @@
{"id":14811,"enchant":866},
{"id":18458},
{"id":15063,"enchant":904},
- {"id":18393,"rune":415352},
- {"id":8309,"rune":415320},
+ {"id":18393},
+ {"id":8309},
{"id":6423,"enchant":849},
{"id":2951},
{"id":9533},
diff --git a/ui/tank_warrior/presets.ts b/ui/tank_warrior/presets.ts
index 67ee324b7..7d9ae4f60 100644
--- a/ui/tank_warrior/presets.ts
+++ b/ui/tank_warrior/presets.ts
@@ -7,7 +7,6 @@ import {
AttackPowerBuff,
Consumes,
Debuffs,
- EnchantedSigil,
Flask,
Food,
HealthElixir,
@@ -103,20 +102,17 @@ export const DefaultConsumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultPotion: Potions.MightyRagePotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
food: Food.FoodSmokedDesertDumpling,
flask: Flask.FlaskOfTheTitans,
healthElixir: HealthElixir.ElixirOfFortitude,
- mainHandImbue: WeaponImbue.WildStrikes,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.ElementalSharpeningStone,
strengthBuff: StrengthBuff.JujuPower,
zanzaBuff: ZanzaBuff.ROIDS,
});
export const DefaultRaidBuffs = RaidBuffs.create({
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- commandingShout: true,
devotionAura: TristateEffect.TristateEffectRegular,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -132,13 +128,11 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfMight: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -147,11 +141,8 @@ export const DefaultDebuffs = Debuffs.create({
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
giftOfArthas: true,
- homunculi: 70, // 70% average uptime default
- improvedFaerieFire: true,
improvedScorch: true,
insectSwarm: true,
- mangle: true,
sunderArmor: true,
});
diff --git a/ui/warden_shaman/presets.ts b/ui/warden_shaman/presets.ts
index 9eadab5d8..8816aa22c 100644
--- a/ui/warden_shaman/presets.ts
+++ b/ui/warden_shaman/presets.ts
@@ -7,7 +7,6 @@ import {
AttackPowerBuff,
Consumes,
Debuffs,
- EnchantedSigil,
FirePowerBuff,
Flask,
Food,
@@ -99,15 +98,12 @@ export const DefaultConsumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultPotion: Potions.MajorManaPotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
flask: Flask.FlaskOfTheTitans,
food: Food.FoodBlessSunfruit,
healthElixir: HealthElixir.ElixirOfFortitude,
mainHandImbue: WeaponImbue.RockbiterWeapon,
manaRegenElixir: ManaRegenElixir.MagebloodPotion,
- mildlyIrradiatedRejuvPot: true,
- offHandImbue: WeaponImbue.ConductiveShieldCoating,
spellPowerBuff: SpellPowerBuff.GreaterArcaneElixir,
strengthBuff: StrengthBuff.JujuPower,
zanzaBuff: ZanzaBuff.ROIDS,
@@ -115,10 +111,7 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- commandingShout: true,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -128,7 +121,6 @@ export const DefaultRaidBuffs = RaidBuffs.create({
manaSpringTotem: TristateEffect.TristateEffectRegular,
powerWordFortitude: TristateEffect.TristateEffectImproved,
strengthOfEarthTotem: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
@@ -139,7 +131,6 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -147,12 +138,8 @@ export const DefaultDebuffs = Debuffs.create({
curseOfRecklessness: true,
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
- homunculi: 70, // 70% average uptime default
- improvedFaerieFire: true,
improvedScorch: true,
insectSwarm: true,
- markOfChaos: true,
- occultPoison: true,
stormstrike: true,
sunderArmor: true,
});
diff --git a/ui/warden_shaman/sim.ts b/ui/warden_shaman/sim.ts
index 8be5dc58f..098f1e28f 100644
--- a/ui/warden_shaman/sim.ts
+++ b/ui/warden_shaman/sim.ts
@@ -143,7 +143,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecWardenShaman, {
playerIconInputs: [],
// Buff and Debuff inputs to include/exclude, overriding the EP-based defaults.
includeBuffDebuffInputs: [BuffDebuffInputs.BlessingOfWisdom, BuffDebuffInputs.ManaSpringTotem, BuffDebuffInputs.SpiritBuff],
- excludeBuffDebuffInputs: [BuffDebuffInputs.BleedDebuff],
+ excludeBuffDebuffInputs: [],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
inputs: [
diff --git a/ui/warlock/presets.ts b/ui/warlock/presets.ts
index efa6330f4..fd9d766a5 100644
--- a/ui/warlock/presets.ts
+++ b/ui/warlock/presets.ts
@@ -6,7 +6,6 @@ import {
Conjured,
Consumes,
Debuffs,
- EnchantedSigil,
FirePowerBuff,
Flask,
Food,
@@ -208,7 +207,6 @@ export const DefaultConsumes = Consumes.create({
alcohol: Alcohol.AlcoholKreegsStoutBeatdown,
defaultPotion: Potions.MajorManaPotion,
defaultConjured: Conjured.ConjuredDemonicRune,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
flask: Flask.FlaskOfSupremePower,
firePowerBuff: FirePowerBuff.ElixirOfGreaterFirepower,
food: Food.FoodTenderWolfSteak,
@@ -222,8 +220,6 @@ export const DefaultConsumes = Consumes.create({
export const DefaultRaidBuffs = RaidBuffs.create({
arcaneBrilliance: true,
- aspectOfTheLion: true,
- demonicPact: 110,
divineSpirit: true,
fireResistanceAura: true,
fireResistanceTotem: true,
@@ -231,31 +227,24 @@ export const DefaultRaidBuffs = RaidBuffs.create({
manaSpringTotem: TristateEffect.TristateEffectRegular,
moonkinAura: true,
powerWordFortitude: TristateEffect.TristateEffectImproved,
- vampiricTouch: 300,
});
export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfWisdom: TristateEffect.TristateEffectImproved,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
slipkiksSavvy: true,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
export const DefaultDebuffs = Debuffs.create({
faerieFire: true,
- homunculi: 100,
- improvedFaerieFire: true,
improvedScorch: true,
judgementOfWisdom: true,
- markOfChaos: true,
- occultPoison: true,
shadowWeaving: true,
});
diff --git a/ui/warlock/sim.ts b/ui/warlock/sim.ts
index 923390c2a..66046e2f3 100644
--- a/ui/warlock/sim.ts
+++ b/ui/warlock/sim.ts
@@ -174,9 +174,8 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecWarlock, {
BuffDebuffInputs.CurseOfVulnerability,
BuffDebuffInputs.GiftOfArthas,
BuffDebuffInputs.CrystalYield,
- BuffDebuffInputs.AncientCorrosivePoison,
],
- excludeBuffDebuffInputs: [BuffDebuffInputs.BleedDebuff, BuffDebuffInputs.SpellWintersChillDebuff, ...ConsumablesInputs.FROST_POWER_CONFIG],
+ excludeBuffDebuffInputs: [BuffDebuffInputs.SpellWintersChillDebuff, ...ConsumablesInputs.FROST_POWER_CONFIG],
petConsumeInputs: [ConsumablesInputs.PetAttackPowerConsumable, ConsumablesInputs.PetAgilityConsumable, ConsumablesInputs.PetStrengthConsumable],
// Inputs to include in the 'Other' section on the settings tab.
otherInputs: {
@@ -222,8 +221,7 @@ const SPEC_CONFIG = registerSpecConfig(Spec.SpecWarlock, {
return Presets.DefaultAPLs[player.getLevel()][player.getTalentTree()].rotation.rotation!;
}
- const hasIncinerate = player.getEquippedItem(ItemSlot.ItemSlotWrist)?.rune?.id == WarlockRune.RuneBracerIncinerate;
- const specNumber = hasIncinerate ? 2 : 0;
+ const specNumber = 0;
return Presets.DefaultAPLs[level][specNumber].rotation.rotation!;
},
diff --git a/ui/warrior/presets.ts b/ui/warrior/presets.ts
index 0bad87ad9..f2beb0e11 100644
--- a/ui/warrior/presets.ts
+++ b/ui/warrior/presets.ts
@@ -7,7 +7,6 @@ import {
AttackPowerBuff,
Consumes,
Debuffs,
- EnchantedSigil,
Food,
HealthElixir,
IndividualBuffs,
@@ -178,11 +177,9 @@ export const DefaultConsumes = Consumes.create({
attackPowerBuff: AttackPowerBuff.JujuMight,
defaultPotion: Potions.MightyRagePotion,
dragonBreathChili: true,
- enchantedSigil: EnchantedSigil.FlowingWatersSigil,
food: Food.FoodSmokedDesertDumpling,
healthElixir: HealthElixir.ElixirOfFortitude,
- mainHandImbue: WeaponImbue.WildStrikes,
- mildlyIrradiatedRejuvPot: true,
+ mainHandImbue: WeaponImbue.Windfury,
offHandImbue: WeaponImbue.ElementalSharpeningStone,
sapperExplosive: SapperExplosive.SapperGoblinSapper,
strengthBuff: StrengthBuff.JujuPower,
@@ -190,12 +187,9 @@ export const DefaultConsumes = Consumes.create({
});
export const DefaultRaidBuffs = RaidBuffs.create({
- aspectOfTheLion: true,
battleShout: TristateEffect.TristateEffectImproved,
- commandingShout: true,
giftOfTheWild: TristateEffect.TristateEffectImproved,
graceOfAirTotem: TristateEffect.TristateEffectImproved,
- hornOfLordaeron: true,
leaderOfThePack: true,
powerWordFortitude: TristateEffect.TristateEffectImproved,
strengthOfEarthTotem: TristateEffect.TristateEffectImproved,
@@ -206,13 +200,11 @@ export const DefaultIndividualBuffs = IndividualBuffs.create({
blessingOfKings: true,
blessingOfMight: TristateEffect.TristateEffectImproved,
fengusFerocity: true,
- mightOfStormwind: true,
moldarsMoxie: true,
rallyingCryOfTheDragonslayer: true,
saygesFortune: SaygesFortune.SaygesDamage,
songflowerSerenade: true,
spiritOfZandalar: true,
- valorOfAzeroth: true,
warchiefsBlessing: true,
});
@@ -221,10 +213,7 @@ export const DefaultDebuffs = Debuffs.create({
exposeArmor: TristateEffect.TristateEffectImproved,
faerieFire: true,
giftOfArthas: true,
- homunculi: 70, // 70% average uptime default
- improvedFaerieFire: true,
improvedScorch: true,
- mangle: true,
sunderArmor: true,
});
From 605290b50dab19db810d23fb66f0ec2aba07e1f2 Mon Sep 17 00:00:00 2001
From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com>
Date: Thu, 21 Nov 2024 18:01:12 +0100
Subject: [PATCH 2/3] Remove runes field from db gen output.
---
assets/database/db.bin | Bin 5124999 -> 5124854 bytes
assets/database/db.json | 7 ++-----
assets/database/leftover_db.json | 2 +-
assets/db_inputs/atlasloot_db.json | 2 --
4 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/assets/database/db.bin b/assets/database/db.bin
index 2970e3eb1bb9e17f8c0d22047336fbabcccee63e..8e1d3be0f144a079bde7fc2a3c990a72e09fae9c 100644
GIT binary patch
delta 18525
zcmZu&c|cU<`o1$Nj!Q6NDQeQ-y9QX6JE&>7|DNxCzjtQz{{Fz@JkRq!@3)@sobQ{N@cTyV
zl@lASxo(Tw>aOFi>#pYxa@Tj;+zs3f-HqIh-S@bI-63wfyNNs0-PC=r`#yIwcXM}`
zyM?=@yOsNXcWZaJyN%o7j&QeiKj41Q{gC_b?so3>?*DOja6jyR#NE-|$=%uQbVs_Q
z++Ey{x*u~t?(XW2cK^d2^JO>N9Lt3X4d!&i-xK(I5`VGy>yAGc{^HCAb9$_wW%ldb
zbB4v-(y`}Ei}|aw=f7SzE0^}1Y%vo*>p9CZ;nih5@%K;s^)g>w_SCjPW=2r_1EJ=s
zu=v6#b9z#IaTiNJGbJbf4NJX#7p=A+WAS|n&CFxD@dE%{u-bx+h{S}}X6|#=ehh>d
zyQ2~wGILurPP8D@@nL*66HQp@DQv8jp&Dpr(?C-ST~|4XB5Nkazs^aUbJF*wP*Rj4
zi~wWOwB(cdu54An=~Tc=R$EJ>Z%%w?Gi_wu9tf_r+FBXjg7`;a8l#G{ssP2owaqLt
zM+IVyj1kF~4bL#kyHue>`dm;sh(A8hblSUh-bGl=Tna;;L7bnDUqaVz|EP
z+zG{k9zs1k`M
zSlC^YuAqLX=R^zJXNK2t6uGDk3)hLg!S+V&%*Hm;Go?u)Cz-=Za{G6o;@CGzhPgUJ
z)uNt>$O-#-+CFA(@~M2+D3oX9W^rFG?qvz6Sqv9)C4*+gx<~t|y6!3!`D!h%@Yb`h
zs|r!wf(ozUvN(%+Qdv5G8~-K~UM4Dz+hSBx!m9NS;np&jSD7GOqaRQQXmWm}x?tR_
zw{VA(L6DjX8#Ll6kEeDzQo%8O_DB)G()G{#S0eQvHTxzF>XO)zWzBwx*enrT6gxFq
zF*n+*%p~cO;3F6@#Fa2-E;@?ILP)7@;uej4@~lddV}R_{jh1#IppAdhV0zzAmJ!5z+51LSuQ*Zjn~w2yVh>jV~5gxLMq
z4IdVe@1`HDeLqS^-(pKO*$unXYBT-R?Yk(lr_q;d_4QW^wCq3BBuWcTP`5%1gGI)u
zP6>ZE9q;pesHbiT>kQ9*3C)eGZ#>DpiKaM0;?_5yF))cdV_r
zloDXnU+r3+?^+A(nukb>YL`*94d+w$g8GzNVi&hW-iI*`Sa*OtxP!D(1#ugmN$}tF
zcQaJmQw=h8%NX8C)O*?7bvX!gvy{w#V)NY3>8|f0Y#+<2dRdeV4snl)!vU68J(i$u
z=qT?&)|M`4uC<@P)~W#O-;AxjFhxDzK5R1`7ksym+fPW)NftPE{ljLuIs{bf
z6cgSXd^bX=2E|Fx86DIVH>I@Xl$NNtlS+4%iM&4^!MIFp;mLQcKwxn%2|Uky$o97J
zMXp9%qZ-C4J3E)dTRN^
z$QYXNnCUu$Dj?gyp$W7=?*2EfB$&?vsv`jl2tWlXpyO~3SUf@kJj5G3aJ>|=m_2l@
zoXB%Co5MzpmaxxQgVCxVl9sX$*U5{RvbQ-V?p=z(GO*5wd@mtl_TKv2^Iemn==fg3
zTPQV{^}^uxyE;*p|JJ#}n|{9HjYh)X^MUYR5pUq}#BK%%Zhk0&uLA_Nr51WBIX6+*
z;s7=;wgs`rCJS4lSv=vG!j?@Fc55K}jj!y*`6Bp_PoS&4dZtj{GNo30BWqxDn^EPh
zXL8#tFhsQdZjtwJG^WoyG~m>^BKrO=k(u=r7CcDaTOg7jSfcI^Mun?2o-wp!xJM*q
zcS($j=`Hl&9k@h9<#&l@Z;r*H^f79VbSa;UY&Xl)-NvvVX<)lU_T(2L+Z!NrM6~Kq
zvVj;lnlFF>Gt499|Q75x6ux{yRzY%Uw4HYBuB4X!p;=nft}C=Fzipt9<(ou)ljV4R2$OdaN;RHLNi?yRbUY!FxpztAp_?+yV=^nED`s|{iBVmv+Jql@
zS|YOhWrJ3uh=Dx$oxt$Q9-W_bF^A>80
z_%XL-e(z+q^tlH5_V}8$w_X)~WXjXb*1&MowSpgy&==|nzstwlHq`G;zDYJAEBvHc
z+kn|_jfCC9Z0)56HnVEaqZIpau&_TdTVZV&hId*TA+4GSx!)J63*6{lp$=+Fy_kFN
zEDG*E21IJn9S8u1D?{>Ss-rC1Bcyv+ECSgslo-vm%)Nx~;Is1K9Kj
znO*siu)k_{L>D~VwPSW(dtra`vARf;9~SDQk3yGrSXq{NMX+g
zu=Xy@zVN89=l$%4$C*s(Dr7B_YI2#i(ad&>5%yvLTh)!(ho2Poj{vqJmf2P=VXqK7
z`vRJ{G>*weJ%#+sPkR5!-cUh|WlcqY#z2zi5(;>p@(<|Q(FBuUs?0c>sxSb7p%
zVDx>tcbG9Kt+&mrN$st-kQNeZ0#)xqZnKY<1Y244
z$aoaaVR7A|y5$zte^{0CF;eF2>#ZKW!>BCZ1Q7O#QkHKCH6hn!`Hp47ry%~;B*;*P
zzEi|~ho3b@d>&&nD++j$be}Ggokrvgw9yUmJCtA>5Cgt+YV0m9ZZHo7sJq6l#|r
zHJ)n?>nDW*>HZUSR!?6OjhXQh9@=V?R?iZ6e{*x37ATh>1v*+wbR%kH_k!}CHXJ-UgUYqW_3(e
zw-8;VdtyGH5-^vk^mC194b>H#$Eb5^EQUr54~=O@C1!zfp$bjq
z9qUwkdAfoN1B|esQbo>HNr;D8M=@FqE2>Vjn2gNmo&tOtAj8^9CR=|Klh2s-{I3i9
z0=-cxs@zgS&GZnQ<0ay+J?JfmXBLx{~r<*TPB6}0rKIF~c&
z=~2gK)EtdgjY^Yo%?(jtr%{FTWSm5fdk8WeYxo{T7KEh5sLuU|llp#GcRcE0c
zjxp%Wz%9W$qmkZCa5fR+O6FzAfTs>{cd{iqj|1E&UOeA)2xUeUUz7dH|qbe*4H>PG$G%`~nggs5M
zYM$z+wli$z`6`^YFev?5#&{MM5Oj_q|8(W;OHX?-u3>>pL`pmDVPP*2YnC2GX%R`5
z7de6^H0Gi1pG%B-(w*v_q&wpe2CKR@#1_!5INVIs@TiUwdu*7fkt36qTBQ6jVXYJe#Y;VCN~`+@q>IijrtCc7voPA8|5Pg
zCkpWyhmA~0r0pLnPu~<_KM!Qpp)i$l8Kde%SnUC6bUC3WP+iO~0%QRP!fT!u_mwQz
z@+^D;1fFL_u$l$l0RaLk!5Yp5Lgy+BP|{f}$-IVTFlsFa#Wx3u@meP6oK)QwGKBb&
zeQv*kjKWsGBJ2icU(FPjvX}v=K4issMaOLVc6CD6ymlxqv;0-c&tIf2ON5!3vlcO!mRjMngt7zQUVCOQ;9<`A+WJS?bCXi`0p_yrX@xR9+EG&
zf{TV_W+HAB!z}8El@1?o76|!=BBL>nV|eOcrqBAMcMRPPu5dioPL3z=PX=>y)MKT3
zhD@6$mRFg=aw;doW5CBQ6#lxOH!DKx>BKh(#oCEIK6PxYZ$zr-1p1Y?d`g_K(rqt)
zsd(oaqgJA>Rhv8LV&yCsYP_PNC1m(Y!QF)OK?f!MkUg+QVuS5{EH#9F6oAs92%!@K
zP&(;AO-t8`^~cO+?SCSn$YoWddChv^CNqZ_rq4*oZwjOKtS(VS___gMQv;MZ@X+O%
z#%SL0dRSl8@r|Wetn--4jY9?U)ENlani64W7}eVnqkY7&Z9>eXFf;cXSwv^C54K$G
z`Y43g@!0`5pMLOaYG{0=)u%^h=T1rRiJw=e9aOIHGGXU2i-i-F^ufsAVpomc@Pj#X`$lq?{{hHX^__{jLL6Z>VlwXDX
zUXfk(RRRtewbzkXFQcH$v)6??#2lS-
z(9ZZ_HmkHGIpla`eQJ_!wxgUHdK29nH^_94n1x)66LR)cKSV%_5>RPaQF^9((NMu-AHQ+V>t;)ZYsnn_BnR1_?%`R
z0BAXV#IdHi$j`F8dkc}DV>tjvz=?+aehH|V-6pAP0COW;mE#g1YxJH1SQUrGv
z;SJ8a$SHZ}8R?HF(L}ME(xZF1E6(?%33vCaOP
zCEo7;IhR6i;ML9CJtZmHVyL&Idi?+_VgQd_{Mn-g*r(`$D(wC!>3#J`kv5U98GO$Ji
zRo{d&P^bZKE1lLWA(w+#QKW&2Z-P`6w=U$WxIBCo?w`+E*ou_?nX}+RWG1TO`>r@ouHPf7SrLtHf57
z8bBj5P^AHUzm9=w4U~EssANsHbCT&h_fJUJamu87R^K9(fp8E5J%C1M4(^CTHMF@yHBiV7&&=
z{P7*v?c?`HGtaz1HWhht;xWz8o&T%;DiQnyJg@v4PYcQ
z@Vf>uk{LKDA(w*~IHdtJJp-r3qnAZhG5;~HioGjer$_TOIEJrNyWvW|Y?*9WQj+Hv
zR1WG}P&H^ALUUr1vzeMolp4Wl>YwqXpT;0w?$ZqX!{BrVF>uq=?Sa8O1~FFC4E&>Z
z=C|~MH?EQKlA}OJPHKqANewx2rUnZl02V|rIE%rwgRSkl&ehRaKu6e9h>6z
zP|GaRw)LOn&mQ_*VBe93KjnA+MJ{v3An{$oAr(&tqoPj-v+rjNmc9ZI|1h|eL1+Ib
z(U`+xm0ibI*v>PA>~I#h-LSlxd_{H3yL7U&gFa(kysKI)Gg+V5?qnG@Oj-8BU7vsC
z&p5+Sal1!K+%Cq^!5mkvKbHn8opZG4b~B#-Tyxg#G5d~7&Qkq8{cX|gV-3ayYxeVJ
z+{cvH`LUuqc$e299hVuZbSdLRcZ6{aA@)1UpE1Yy^D+Nt#6?U<*6+c!W|K+Dqg2`M
znIzan16Xr&;pAlfIDIJqfO6zCQC=ouL!Jn)u<+~*01)n;A;Q0mt+SGEt1ZNA;Kj29
zzs3QnhB#ag0HAC$SCluI@XizEEe7T<{hJDeppsn@bo{@0iu;9d)3rC5zJ(ILR{~B15TyLg9Cv`*
z;JpJPI>{LErzk*wm$u5^B&YuyN6Gpg6OXgR8@2dpUB2s}KknRr4!2Zt)rfB9>Zx(Niu5R
zsgIvra77n0WN%hSK~PU?AnGMVncisuiC51KPI+DZ9*(x!Z`>o=Lc-BIgxA^yFCrYB
zW94pKOP{fBkZ#a@qWh9?bdA=nr_Z?8lkUeBqB9k)H^l~^w59h8^Oa)IE81Wa8RTAi
zlngpWh-@?CpW}Bo)RM(y$iGf{8;0{A5@iW7+#`y~YcI@J@~9dw9@|LCov{|mTaSqH
z8&aY#bhd9vS@B#4G`8{_7AeZ@Mph(h#{HnE^hbsIo+#B1$_0m6dyU=EDJal9Yg;uJ
z%A!;BvGG18&<#YCbQ9tL6X*vbieiO0!~_=Xw(NbF0rZ3hjxeBJA6Rje06kmgAb;>v
z;`TFZ>6_Md{`R+i8+r>eFAS-`NQrq<*}mz5^KdjBuwE*VhbrF69BP&S@6w`NC<>us8S994g6KiZg27
zsXsa2rP3`ND3<5hA#EegxG->e>ELi}@KVZK>N@UaTxqy1GA;~Fc|mnuO9ng);6~R{
zDbEd+UjLK{y^*gr|EgaV?la~vjkL>B2GEV<(r2V7muZ(R7Oh-PfbP9KxE8-I+7+xt
z?~zH-n?kH&0+UIbtkx#fdoRGG%^1-ZGQ~ZXM|JjcIBs_2J2gkNYnjkL_fl0HH(t0e
z*@q|9PV!lAWK2fe*`GtVLR<5ZXie5~cX7^*q}6viRn38uMZJl$>h4lm`%VLg>krdY
z#-LZOT5aDM<({d+Vy9U+k2)FAKd>0RLE_GHS-f(d
zhMjmYc!A(XHiPWHc?*C
z#Ncy{Sb0$c<&zpJWzKh^{6iDnF9)&mvIZ)9k>}4lMfs;DO5(y<`IiPlwuLFrC(A{7
zO%a1EhO@LzDAnk?2C(2Va6^XKc8XO`ow1a1DXMCsW?V%z$i;52lZwa1>^alI5Hg**wNEf!J-n|1)&8
zwW7nf{*e_gq%6aC{`E(wGA@e>-}F~ytLpU_%Ras9^9mFEn`(xpT&Ea3Gi^3YZ>Okt
zI{d$w{||oiZMiR$_%N?ERXxzWd&YBRQkgxU;G%U1Y4>`(m5&`zyW_3Q5Mq%%vxQwON_
zYw19laGf3@MyGv7cEkBbSA5M^{V?v(IuVu>X~&I_P&}(Q6TEtPN`?Db90>
zo9&T;YFERx!&eEz)Ul7lVjx=8t?XgSiUzo#B(Vk`FTJB~ofxIahOeFb>YU~3j^Tj1
zUg89(E9x-7SP_}pvh{$Lwr4}{?J;cR$X8y^$QVL+NU9@Ko8j_T
zWNPaU1De`y)d_9<^uLEV{yF4dnZsBTYRj)1+9)o2=#UYk9skUDYlI5x9+lc`$beS1
zvbv%7KASmWG^80X4as&qot=?6g5#Rms_TY^^c*rGBRg~C2uIJ%?3afPLF|3DL-j&~
zpUNKj`slYt4*Qp*=dcWA+01shUT8@F(Ic~mXJx)N#1a2SM)oTz)uyP_`=gQSYEbCC
z{WFKXIVAh7%n?H!{ZSmG8m4LyX1f*?+T_`c?AJ$v>GQ_u?95km{eruswtz|dE~#yC
PN$QgNATC*5Qk(xDnnh6J
delta 18697
zcmZu(XJAy-wtf?eL(LG76xsxziU<;d2vWiXE+&~20_xS9D~VM+ctSi4J&io~dK!B|
zJz<`3PlTt5r>Uozr@5zv$LWdmwDjEP`Crfdo(DV+dRloN^0f9m>}lg^>v_b}&J*Qn
z?}_$w@I312=y}Z3$ZE4AIyBq)^!14F^ufb3hL3rD;EQ8Njv1Og@P*7FV@D5t
zK7IHI>xMh7q(hCg%R%-U%DW@3os|<_x2LT}+NB_SP35>ZzOj{*6PE_yVvxPQYTrA)
znU(WwP(KEORe9U^`?ZPNW=peXd*ZU0Xh2F8b;)M83QoJDZC+Oxxd>qw1&!^-MMHA2
z?)U)mFd#Q>GzSmm;Af{(aFiyD09E;fJG{sh3lWMOPDO^XE-~&SxC*J6)iqENWN)JO
zzYzZ@1YP*PDcxHTbkPN#^)7`&)ne4B;Yn9jL56J{mD5f4bB_<;+kY{gI5@vGBQuiiRcwK|3I$2yj-^DJ-
zpPec+iYufcvdZT4vBW{mHkuO^Zm(AAb>-^fuArF6p-07*#5G@68myClCCL7^%G(ha
zWjQO|6am`e)zSb{Rpi0A2ZV!bRQDY<=}26t%Dv`x7P%;c&DV)37pBx#gPl=rS94jSih5C5mTZrEg$wCpqVyNLq+!Mm;np(e8jY}&
z@pY>GZ*d(hc%cNG|5m!tdM3yVDK{`svLntkmc;;kk?Gd`Qryou8KtL_TBB}GYQ{|l
z<3c%5y=DhRznM8I6!i?`Z;NT00q(FO7gg}hBXMInx5dO+^^ekEg1Cgm|9ZK7V6u<@
zOa|yE-*Nu();?^voWm2THKKy0Sc9KrDh3_nbXfo}-eyBu$rgUo%l|VPa4VQEp||
z_Si>**HyUhLtks9Tdt)Tl(2zHith(b_lsut6Njqr;i^YH(P+8X^#NsLFF{t`+g+TH
zw}$-9ha^*_%sHDU2Z4(x{eHqWRA8czUVebR`mVarji$px-*)2Rd-hNf6|W~ml;8)}
zmi4yfdR-;Z`Z|dAN7niV#`{O+A(odc4mI-N<fzsMzMp>sm+7e^dKi7%l~0VSqa(
z()6##+{kWXbD9Oty^q^BJQeS+!S94ynNL$_ZL`NEHh&nKhHdRCFTd+fuWK>|JIi?9
zl{R+eaEBLoT`LGb$9PuVc6L=VsP1I1YbX3IeM04roxxkS9x;=_)5YT}vnGGoUJlWXg?L5P8U;?2~bqx$xXk5b&s?}JM2C)8x3
ztkPVX`LSBQ#eivJ7p*BC!b}@uiKa!BTyh)hsiNRt;&Li`KpWFAob{X#(}++}CnEIp
zLT++dOKnWRbk=YKZzO1jf#x45LLEY~&azMg{EGb+sl!`pC~xHbbpwS~o3hbj^AQVB6%%L~
zJK?JM5U1N~Y~y>KY%s;IQw8JWBj^48E%K8MGLbve>|DP(}RJZB7LVd-QUU5}c|4_T-8p5@zt35LJx5LLhV
zo`}A=OJrp|!OO(iMI!l@C3;d&rLJc7D#_7&k?grkqDp6no7(LDKt%iQ5?KY~xX7EA
ziDW-Z^z>p?9IjfIS1uR9cYc9#MmA|($_3ZSjvWL(9`b^%BG0K#D>GK~Fd=7b6LPYj
z9YS!foW5Y7AlrJGwwXg%
z_!x9fd=&hbikG=LP$gA}>VvygvcZX=9-izc;J$niekP(JE8p)!kI6pPAa{t8Q0=5~^8V*Id-4OAF!4n7{LJ
zhxj5_ZJn;xErt7qIP3WK1ijVN`@M+!g*#zFj_hE!iXY(8)@~*2Z&j=*P-SbOPFGQO
zE58jJo@p!W8D{mvr^>s}vC-?&J@!bH@MrzJH8Gm4cXbfJh{Cxjlsa)5Pu;Z@1dTGCQuPu-5|E7XM)O
zrQX6;2C%_#%%;T)dz0DVBRw4|Yj5Z$yt=y+g}=>wahK|L>p~K&X@9s_d7n-QQ+xU(
z*sVJsw{W8c?MP)&p9Hi0&1b=n!EJgJxti#f&+jMPQs$=Rw8I4T3>RqT)53nJS*I$!
z(pa}HMf->#EC1O9^Ll9+d9doICFo~CY>hu=mjLXlc&%Phbw@0FPMj`hgSfizz(w6V
zP`DM$Js83q`7309eV#}C$_7i=m8=A6!mjemRO;3k`-ZIc^xTBlk;BCQ8WwdQhO%WX
zyDv}_{E~=@lx+lRT~H>o&aDig)-hFob60+jr2>A&PA80lQ{T`!cp}16G!n6%iwN8l
zaf4rI?Yj@j=IW=85%(KekTC{TUDKF0OnNZJyefiCEGT{h0ve3)K(W3EAX3Lkk~R}+
zL2gR0g=MQIps0OXJZ7Jt*}+T{-U$+;I6$*+DYkBoDcmn6P7=vBHOhkwIc+XKJHjLE
zf5^dxDH3!$-OrzbGEbZ;Mf<7>R3%>`h_8*?Jbxl{Uvm+TPKOB%U`|xYbP2IDKtLmu
z1*>O?U>6G-N3}uyKBN?VOOUnEE9KhFK)bmD>|rASn3(n0Wv{mR;&mSjUi|!Vhf00-
zVUxNG3xwa#9-rvy*0#Fojx7}KJ5|0g!O7#6S`APCmsI+yghy1=yWK8%U8#_}3KGm)
znJY~BDmo7Hx_+X^;;RH%cWjuYq0RqDw0|*ip*jdsUSngt$*x-dqP5BGkOPw(PTnE^IT|pfzh^MbPiH^DHs&Fy&f_*)OLSdJC2HZAMf7S>G63_(BY(
zGF9+-SG|(9X8k)Fe9Wwn`oTS=MD)2#MYXMsIqMDbKAl`xQTJjjLc40aXlJtTvNv3*
zUe_hk&SEGh7S+YrH07JkD7Lxw`9t(G;T!NXX_xr%GF=ka)NV!X7Na=I50
zY~E!S`%zgs`3=mx0ACeOBnXjud?!}QSQQ4@t@GbYqy>zYMFgWW>nEQjKZ?Qo%62s2
zF+KiFRTi=~YGw>J!)@Huqi+2q^2N*+42lZK_7e7iA!>Z&n|PgSOp!>_k
z%Tnema${tKaYKB-xN{4Vi=jz%i~3EhJ~FYNcFDqt#R}tV8RMn7i00eZ4Rb!Ns=A)D
z&xr9SevuV(RtmbDQCH4AwANC<^XFwS?^KaD6Iv-Aoxjrb@(n>&@Ev-!he>P~0~oGm
zq5hTu3{%?j#r`SY_OQ3W;Y#t^T^GeZt%y<=j&|1T4rRXCO(FL)SrHM07r5vOh<$)O
z&h=fSeXE`o0De~mR*h8MDqy}RMrAeXir!p_>||AQo6W;Pru@T{=fnXuMR3RnXvEGT
zcX;)$vm+zbgvZN&jb;sNspm}+{=^UuUcLV-swZxb5oP6+(3VthX!0Gx9ar9lZoJQ<
zfvU&w%!Wdhvl#}gN%}7wf(L3PMg5f_|B&Q&aVHp-@k;}~EJ7Ur7QkXi61%sVu&0^D
zFs`cG?^O_9emLdz;u%H*#xCy_{$RY|^XBprB=UZ7e$Lobja+Vm;8r5IzycYV)OT*R
z7WSgDJ&bIbt*)M%(c+f~)Vo{LI+slWc=#IC6$Z=vqg8i~)M#=2C-XEau@$DI#B>z)
znsMnLmE7vr8P}uI8q`@bQ|U(o$10oL@RL?bSDuW$-6YU0W@W5WF(&qKzlN&*8Dw9q
zBA;?csKq_pVRVR$8jR{GWImI#dm54~3jCmc=c6+OKT8=sn-D1dzz?z%-uEVm_m7zU
zImt~gkEmcJNy2{YXX)h+?Fta+6T+?1KJGM*yqtvq_$`qLKlS5sgsTTiv!^6Np%z33
za>36Cw~CEhq@ip9XT!EM5v&Oi&~Ykd!N+JWP9XK`Ba@pVLM@=C$ZG>+=B-c|iZ&o!
zynn`mkzQ16O
zj#g2s{Eau{LSz9@BI~@i_`QacKbRKTH9E)e3TJ#Y`zH)+%ie
z03DH!)?5fMAy0<)B~`T8-AaG9!S8Qr0=vxMnrof1y{psv2o7Cd(262@%utu*HmY72CVmLs}>7&gD9&sq(&E>L~oKCtg_}bmr8NV5Bin2
zt3aIU>iK!YGVz+DBG;pKWt&@@vYh`!sL4!W9o2`yCg@v!P#^Ug)Z<6ZfeH3anCIVS
zJSyGhU^QwKyG8=w^A8=H*wV3ec+;^~*lC*WYzfh9y%5vM%qrO+iJrlJ99bQri(Fxx
zoSBSa{Lxv7Dd#Lk^M0ve-n3_J7O#0s<;2?X)IrB5I{gERg`dMb23{3URh;X`^|6Tw
z^e&?qW`9@D^W&^WjH0h4hB9m+UaONYu=(Ez`(6NxgB42G%-zB+RNmc47ZFsjMFg0`
z6K)QyMLOZWf%*uLU#Ki$C~tU(L!<~=_MN!JVx#s>0x4+@VJsEV)Xc7MyN2KbN(
zEVB*^XEP=*Sdz57tlRzmrdsA#ngf=XP=v^zB?J~EZG-jI5x@tRyUi=&9V-2_JJc%p
zg@!cV#P1|P%{b|H@?i|zjXEjvT>-3oq}Bhlu)8(eDd4PS4+C=6QhZjF`^b-#dS1eo
zvSR>FIZcVYDCz^M!4-EW!RuWS{CoDYK!-lk8&gOMpPmQAX4e_JkT$ClM!D{M{1#on!#Ri~9AxU{Rjp$b%Y4<0iUtUn2Yd}0%kUtqbTnaC?x4!{|35>nnm
z4DeMz%fwCr)Si|?T_LLKe1r0bw<+kfs-zX%`HxK6Jt#JKsiHeIc$09vRM7@2A4YKl
zPD;EFiv`}PR0#r(JKlUm1UJ>BN01ufs2B@X`!0#0s&%;=2YDB;dEvdv@n|txOad$G
zQ7Oj~wgBM3ewH64JBhkLlMf2swu|5&5H24b@uA&^?8xa#ly9Es!8k^2mJx4(HyQYt
z4Z2-KS727}Y!78GAe<3yzVHPvY_NeX`>?vx94jdCsp7PVh
zU<(HZYcjr-L^#cVH#K}i75-vfLI{@jbgf2l6Mh@2RTO7I_o^fE=k`-~9n
zR~)=-qy+z(odb}SM+Yw&B?ddy(lKz(9|ve^@fe|Yv9Cv75ntc3F95U{QRq9biF^;s
z^TvsMFUtWq6fbJ6^z4xSrdX7!zBz~;z$NDpcQeSo#M+jd*x9DAV)U$$1|XjSY}9(f
z$u>{o1ntZl`hwi;Il1t<(+S3ep6`DNgc0gzt?4jTaZ)xq*M
zagh3(`8s2Z1Un|an;73e8vvg@v8&?-DBW&=G6UdqJyw((proLd4wmyZ2f4k2uj9Xw
zU?)Ww+Z>jaLH0^3>p)@*r4=vT0o-5!Y32KyMu4>Hx9=B96UXbMWgNhj405dU!`g#>
z!X;pm0kDH+V6p*dO~*$AhuFoj!{Xv?BS1FUVu}HfO$MeK0NK=~*ngZ|q?C(`Tq8i=
zWQ*wrK;L9wh5?XP24)%nY1KZ9Pm8bFhCnu1nP-5!H)0v^iehmn19JqJ+fe(8s^Idi
zx+op|Q>*A=;fY{~?9JIWVNvYJMTT{V)WB{q>
z`$I;6)a&nRy-m0#j%IwF-JGxWoqU}ci7PoeE{0oe?5RwE!XO694S;Mi@QVSEO$L57
z06H=QCk%jTmw}T8z_iQ2Zw5fuX5f?o(6t#jEhblMGVr?rka}IkNgb#v8#;20CO*d3
z+nxCO=Hs|h4KEnGl2{!IziF9{ABrR`!cSBB&Mg}-39im}Ps-NgKfMR8B$-7L{qUZu
z|CvnSYzEO)Q}x8aU><|$ov8}{=yytOd$YTOC&b-cW0_kUmbtar@?8VYjRZJ1lEHZl
zrXFf?fMU+)d-SeUg@3gBmvqBo(G737{uOKE2Ez5o~rUPVi?5!Sc7@TkV5>UV+0Q+
z-#ClHL-P2fKXpruqq8YIBjX-}gKxiK8e?M|%*tO%GUveGGLA<`*5UD3yQ$b&PwQNn
zqT97#3Q0`&H55DOlU1yRhyc-(y14y8h!u
zhv#3dtMYf4?=kM!?g-x-|LrG>-BHFd*jR_BUy6r&_|Kb?WS)B~tej~{qjb+7KTWVp
z3RtLBZ+ep1CSMK!p!|8JD6cY+Ia`!}GVt#?0HAcu5#==%H81Ioe#w{(yv;npE7@Sn
zeDQE20DyAVd!oF>M2m%@yv;zJB^;|_u_$w_vI4Ht(E`CHGe%qVw-oq03g>~kEHTTV
zp)c>=uBRqVOKNQG`xqVxnG%RVTkxs)d&kOK$uVZE6#HCOtBGrqPLp@?G5u~7e$M;E
zW~PY%8xwO@AOdab`lQ!&E_ZFfwMN=sLH5;Z?}nty`jwR)0$V>9+{ZW;DvTEliSL#7
zKob3&r$Q%wFo8e(f8fEpK)7wNO}f${Ch2#GzAuyX!5^F-z8i&2)>mS4lv#W}7!djx
zgZS2$L0IhjMl5jXs0&*~QjjtNE&QIZpH9Iedqw?A06|KuKL?Vsv}oo55n;vA81cW6
zLDg5ir~L^z_5U&OlYU72{7wpd(Hl^gGk?dRFF7juv+OarYn=dtb9aHTXi+XL_m1+O
zOiI)*<@9G1XyR!M;1R1e)#;=tr!#^1iik<4g_y|%CMe@#mT|Eoj+7V9iZYK0yb>}>
zF9GH)4b9vaMLU3wD)xMq<5vt6v-p~57chZeFPNC`u`&O8
zp#Xl{-V!Zd^y*|(JVZYOLd^A%$)@MyTfCD=Zk7La_XTvujZ7_JM_9J-TMF%Hc6Ct~
zu=>L5_e=*x1;qDw+CgyRY8rz2mR;2N7!QGm1u5M>b)Xdk0o%K#P>QtoLa%Fm389dSf#3l(Am6KEgf!Xm)5Pa49tYbx5$
zSxfCh72L!?&gDnR>td%UH#32zA;No~5L=l*)0l9@1SoEr*AVW`gQDGLoam;Za9DS&ZQ3L?^&6ftyHU_|NzBGWgX{ihKNY`X@QjK4HX##CSgfm8n!%Sf8
z7#H}l7rEFGXMmp=(9atj6+frc3N#Y=db79q`k4uOgIVo={wK}Kj2EhmDE!WeOwtnt
z|AkG^G{*U_1nA8k^09zwd4e@)C8IgX8g8WpsOQ#x;_sC4#{h%|&=UJV#DHgvz(}U{HKv1~8mY)2o
zzE%vzm0CJq4H}mGZ{2zk3=}Yc){D@}=Y~ncf4~He&WT8UNr;b_z<@F?mN9_VBjwhS
zqWpvjG@4N^X8?^x$~L1#xq=Ba8WGM{gjmT0hLdrziU7rv-oH`eS>r^zhAD2fJgTmb
z&CzP)_vQrAu4OHrN6-xV6Pt=jLVZRQhLnl89*+yj|28eAr30pj)M78(OdN3|tGSu-
zpx&J;>P@WXX3{NKG7}W8U1lf0f!4ULKMakTojgL1rP>VaU;tyOwpOm53ni|t=ZVEG
ztNB7|Tv&h0Vl)Jam%PW~h=n5F%L3%zxZg*Bnb`)z@vMBdsl8Ne4zLYcz}S4pHrxV<
zu$i!oZ7M$&n}ckFv>Tfr*@g#84s1pivdx*5Vsqqfo1fI)jmaZS-bce`KoQ#xs?sZ>TFTaCy*sk(1OGjAvDZac$T)@{bbkfeH(TDC
zDPwi%i*Csru$3|5i>vq+K`CZ~wJm`EvWlNsQ~2#w*rZy5eH~!4ql&*!Px#URet#9;
zKP1I;^D-+vB*kpg%N73n0Ts2S6FvbNlITR^Y^8p=xp9hF#eY>LjZ<1Hi~+ot8Bd>6
zt_~-XPFa^WO$k+7+oj;g5f9)i{DO!k_&)G^{vGP#rpO090-jRPwNL}++-Fwv2;+)a;6vv^W#&%l6KP5SLAJqwK>RBqJm3M!N
zn**L>gHP9oI;=ij`3u#)t*AH%i^Eu5ZG4^>rcaJgZ9S6Fa@`)Lh>%>ot7PWT>2>8R
z3_|Zk%u4}@$#V5TCqP0jQ(OxPNwakx9B%I#((tJlGqZ<}9pUVmojK;kq1i8HWcIN0YuV!Yv;Ov!=PA(fn
zr-Z`uL(wTsJHzw!njwvz9G>yY(Ck--j~wQF64Bu~Ll-*CURg7w!87UEqcg$u89OF>
c`17VZZ$_tt!-A(n+a
diff --git a/assets/database/db.json b/assets/database/db.json
index 82d6bc35c..ff7f88a83 100644
--- a/assets/database/db.json
+++ b/assets/database/db.json
@@ -8740,8 +8740,8 @@
{"effectId":63,"spellId":13538,"name":"Enchant Chest - Lesser Absorption","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":66,"spellId":7457,"name":"Enchant Bracer - Minor Stamina","type":6,"stats":[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":66,"spellId":7863,"name":"Enchant Boots - Minor Stamina","type":10,"stats":[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
-{"effectId":241,"spellId":13503,"name":"Enchant Weapon - Lesser Striking","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":241,"spellId":7745,"name":"Enchant 2H Weapon - Minor Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
+{"effectId":241,"spellId":13503,"name":"Enchant Weapon - Lesser Striking","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":242,"spellId":7748,"name":"Enchant Chest - Lesser Health","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":243,"spellId":7766,"name":"Enchant Bracer - Minor Spirit","type":6,"stats":[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":246,"spellId":7776,"name":"Enchant Chest - Lesser Mana","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
@@ -8843,8 +8843,8 @@
{"effectId":1893,"spellId":20028,"name":"Enchant Chest - Major Mana","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1894,"spellId":20029,"name":"Enchant Weapon - Icy Chill","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1896,"spellId":20030,"name":"Enchant 2H Weapon - Superior Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
-{"effectId":1897,"spellId":13695,"name":"Enchant 2H Weapon - Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":1897,"spellId":20031,"name":"Enchant Weapon - Superior Striking","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
+{"effectId":1897,"spellId":13695,"name":"Enchant 2H Weapon - Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":1898,"spellId":20032,"name":"Enchant Weapon - Lifestealing","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":3},
{"effectId":1899,"spellId":20033,"name":"Enchant Weapon - Unholy Weapon","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1900,"spellId":20034,"name":"Enchant Weapon - Crusader","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
@@ -13044,7 +13044,6 @@
{"id":409552,"name":"Explosive Shot","icon":"ability_hunter_explosiveshot","requiresLevel":1,"hasBuff":true},
{"id":409554,"name":"Explosive Shot","icon":"ability_hunter_explosiveshot","requiresLevel":1,"hasBuff":true},
{"id":409580,"name":"Heart of the Lion","icon":"ability_hunter_pet_cat","requiresLevel":1,"hasBuff":true},
-{"id":409583,"name":"Heart of the Lion","icon":"ability_hunter_pet_cat","requiresLevel":1,"hasBuff":true},
{"id":409593,"name":"Kill Shot","icon":"ability_hunter_assassinate2","requiresLevel":1},
{"id":409691,"name":"Raptor Strike","icon":"ability_meleedamage","requiresLevel":1},
{"id":409693,"name":"Raptor Strike","icon":"ability_meleedamage","requiresLevel":8},
@@ -13122,7 +13121,6 @@
{"id":415071,"name":"Exorcism","icon":"spell_holy_excorcism_02","requiresLevel":44},
{"id":415072,"name":"Exorcism","icon":"spell_holy_excorcism_02","requiresLevel":52},
{"id":415073,"name":"Exorcism","icon":"spell_holy_excorcism_02","requiresLevel":60},
-{"id":415105,"name":"Power Surge","icon":"inv_misc_orb_05","requiresLevel":1,"hasBuff":true},
{"id":415236,"name":"Healing Rain","icon":"spell_nature_tranquility","hasBuff":true},
{"id":415242,"name":"Healing Rain","icon":"spell_nature_tranquility","requiresLevel":1},
{"id":415320,"name":"Flanking Strike","icon":"ability_hunter_harass","requiresLevel":1,"hasBuff":true},
@@ -13333,7 +13331,6 @@
{"id":440492,"name":"Engrave Cloak - Fresh Meat","icon":"inv_misc_cape_20","requiresLevel":1},
{"id":440494,"name":"Engrave Cloak - Sudden Death","icon":"inv_misc_cape_20","requiresLevel":1},
{"id":440496,"name":"Engrave Cloak - Shockwave","icon":"inv_misc_cape_20","requiresLevel":1},
-{"id":440520,"name":"Improved Volley","icon":"ability_hunter_focusedaim","requiresLevel":1},
{"id":440677,"name":"Righteous Vengeance","icon":"ability_paladin_righteousvengeance","requiresLevel":1},
{"id":440802,"name":"Frozen Orb","icon":"spell_frost_frozencore","requiresLevel":1},
{"id":440809,"name":"Frozen Orb","icon":"spell_frost_frozencore","requiresLevel":1,"hasBuff":true},
diff --git a/assets/database/leftover_db.json b/assets/database/leftover_db.json
index 00abbb49c..2b51c860a 100644
--- a/assets/database/leftover_db.json
+++ b/assets/database/leftover_db.json
@@ -1559,8 +1559,8 @@
{"effectId":1893,"spellId":20028,"name":"Enchant Chest - Major Mana","type":5,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1894,"spellId":20029,"name":"Enchant Weapon - Icy Chill","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1896,"spellId":20030,"name":"Enchant 2H Weapon - Superior Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
-{"effectId":1897,"spellId":13695,"name":"Enchant 2H Weapon - Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":1897,"spellId":20031,"name":"Enchant Weapon - Superior Striking","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
+{"effectId":1897,"spellId":13695,"name":"Enchant 2H Weapon - Impact","type":13,"enchantType":1,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":1},
{"effectId":1898,"spellId":20032,"name":"Enchant Weapon - Lifestealing","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":3},
{"effectId":1899,"spellId":20033,"name":"Enchant Weapon - Unholy Weapon","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
{"effectId":1900,"spellId":20034,"name":"Enchant Weapon - Crusader","type":13,"stats":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"quality":2},
diff --git a/assets/db_inputs/atlasloot_db.json b/assets/db_inputs/atlasloot_db.json
index aa9895ab9..18ff3a804 100644
--- a/assets/db_inputs/atlasloot_db.json
+++ b/assets/db_inputs/atlasloot_db.json
@@ -5071,8 +5071,6 @@
],
"enchants":[
],
-"runes":[
-],
"zones":[
{"id":209,"name":"Shadowfang Keep","expansion":1},
{"id":491,"name":"Razorfen Kraul","expansion":1},
From ca318a44344503bf9db759903d7d47200beb2f10 Mon Sep 17 00:00:00 2001
From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com>
Date: Thu, 21 Nov 2024 19:35:49 +0100
Subject: [PATCH 3/3] Remove coalesced regret, allow warchief's sun thieves in
the grasslands
---
proto/common.proto | 9 ++-
sim/core/buffs.go | 2 +-
sim/core/consumes.go | 10 ---
sim/druid/balance/TestBalance.results | 8 +--
sim/druid/feral/TestFeral.results | 24 +++----
sim/hunter/TestBM.results | 24 +++----
sim/hunter/TestMM.results | 6 +-
sim/hunter/TestSV.results | 12 ++--
sim/mage/TestArcane.results | 10 +--
sim/mage/TestFire.results | 12 ++--
sim/mage/TestFrost.results | 10 +--
sim/paladin/protection/TestProtection.results | 54 +++++++-------
sim/paladin/retribution/TestExodin.results | 48 ++++++-------
.../retribution/TestRetribution.results | 72 +++++++++----------
sim/paladin/retribution/TestShockadin.results | 54 +++++++-------
sim/priest/shadow/TestShadow.results | 4 +-
sim/rogue/dps_rogue/TestAssassination.results | 22 +++---
sim/rogue/dps_rogue/TestCombat.results | 22 +++---
ui/core/components/inputs/buffs_debuffs.ts | 2 +-
ui/core/components/inputs/consumables.ts | 2 -
20 files changed, 197 insertions(+), 210 deletions(-)
diff --git a/proto/common.proto b/proto/common.proto
index 0f88ca3f5..a2d0679b0 100644
--- a/proto/common.proto
+++ b/proto/common.proto
@@ -469,11 +469,10 @@ enum ZanzaBuff {
message MiscConsumes {
bool bogling_root = 1;
- bool elixir_of_coalesced_regret = 2;
- bool juju_ember = 3;
- bool juju_chill = 4;
- bool juju_escape = 5;
- bool juju_flurry = 6;
+ bool juju_ember = 2;
+ bool juju_chill = 3;
+ bool juju_escape = 4;
+ bool juju_flurry = 5;
}
message PetMiscConsumes {
diff --git a/sim/core/buffs.go b/sim/core/buffs.go
index fd5b16204..7968333f2 100644
--- a/sim/core/buffs.go
+++ b/sim/core/buffs.go
@@ -2143,7 +2143,7 @@ func ApplySongflowerSerenade(unit *Unit) {
}
func ApplyWarchiefsBuffs(unit *Unit, buffs *proto.IndividualBuffs, isAlliance bool, isHorde bool) {
- if buffs.WarchiefsBlessing && isHorde {
+ if buffs.WarchiefsBlessing /* && isHorde */ {
ApplyWarchiefsBlessing(unit, "WarchiefsBuff")
}
}
diff --git a/sim/core/consumes.go b/sim/core/consumes.go
index 389de3bc2..0193d9153 100644
--- a/sim/core/consumes.go
+++ b/sim/core/consumes.go
@@ -611,16 +611,6 @@ func applyMiscConsumes(character *Character, miscConsumes *proto.MiscConsumes) {
character.PseudoStats.BonusPhysicalDamage += 1
}
- if miscConsumes.ElixirOfCoalescedRegret {
- character.AddStats(stats.Stats{
- stats.Stamina: 1,
- stats.Agility: 1,
- stats.Strength: 1,
- stats.Intellect: 1,
- stats.Spirit: 1,
- })
- }
-
if miscConsumes.JujuEmber {
character.AddStat(stats.FireResistance, 15)
}
diff --git a/sim/druid/balance/TestBalance.results b/sim/druid/balance/TestBalance.results
index da67fd51c..5843f41bb 100644
--- a/sim/druid/balance/TestBalance.results
+++ b/sim/druid/balance/TestBalance.results
@@ -106,15 +106,15 @@ dps_results: {
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 514.55703
- tps: 750.86219
+ dps: 520.28089
+ tps: 758.25771
}
}
dps_results: {
key: "TestBalance-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 403.21466
- tps: 416.06733
+ dps: 409.77009
+ tps: 422.72601
}
}
dps_results: {
diff --git a/sim/druid/feral/TestFeral.results b/sim/druid/feral/TestFeral.results
index 652ba9e93..288b814f9 100644
--- a/sim/druid/feral/TestFeral.results
+++ b/sim/druid/feral/TestFeral.results
@@ -106,15 +106,15 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 402.37416
- tps: 518.26188
+ dps: 405.3226
+ tps: 520.99922
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-NoBleed-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 381.0503
- tps: 282.21897
+ dps: 384.24199
+ tps: 284.53209
}
}
dps_results: {
@@ -148,15 +148,15 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 402.37416
- tps: 518.26188
+ dps: 405.3226
+ tps: 520.99922
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Default-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 381.0503
- tps: 282.21897
+ dps: 384.24199
+ tps: 284.53209
}
}
dps_results: {
@@ -190,15 +190,15 @@ dps_results: {
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 402.37416
- tps: 518.26188
+ dps: 405.3226
+ tps: 520.99922
}
}
dps_results: {
key: "TestFeral-Phase5-Lvl60-Settings-NightElf-blank-Flower-Aoe-phase_5-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 381.0503
- tps: 282.21897
+ dps: 384.24199
+ tps: 284.53209
}
}
dps_results: {
diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results
index 6918db27b..36900a9d3 100644
--- a/sim/hunter/TestBM.results
+++ b/sim/hunter/TestBM.results
@@ -106,22 +106,22 @@ dps_results: {
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 859.33765
- tps: 874.55169
+ dps: 938.88875
+ tps: 912.66402
}
}
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 598.76357
- tps: 279.15801
+ dps: 667.23482
+ tps: 313.89596
}
}
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_melee-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 627.58942
- tps: 276.35825
+ dps: 701.09983
+ tps: 319.47299
}
}
dps_results: {
@@ -148,22 +148,22 @@ dps_results: {
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 747.70435
- tps: 718.10614
+ dps: 787.77778
+ tps: 681.30603
}
}
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 660.88371
- tps: 342.06625
+ dps: 698.66246
+ tps: 339.611
}
}
dps_results: {
key: "TestBM-Phase2-Lvl40-Settings-NightElf-placeholder-Basic-p2_ranged_bm-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 701.0324
- tps: 342.51098
+ dps: 734.58089
+ tps: 336.78729
}
}
dps_results: {
diff --git a/sim/hunter/TestMM.results b/sim/hunter/TestMM.results
index 3f42642e8..54e9f0763 100644
--- a/sim/hunter/TestMM.results
+++ b/sim/hunter/TestMM.results
@@ -121,21 +121,21 @@ dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
dps: 419.37663
- tps: 579.53896
+ tps: 579.42693
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
dps: 274.78179
- tps: 282.80957
+ tps: 282.80397
}
}
dps_results: {
key: "TestMM-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_ranged-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
dps: 266.84113
- tps: 276.58129
+ tps: 276.55328
}
}
dps_results: {
diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results
index 9e4af1299..a77972337 100644
--- a/sim/hunter/TestSV.results
+++ b/sim/hunter/TestSV.results
@@ -120,22 +120,22 @@ dps_results: {
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 1267.77882
- tps: 1879.29945
+ dps: 1324.90663
+ tps: 1909.48506
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 426.59025
- tps: 362.74026
+ dps: 459.93206
+ tps: 397.14761
}
}
dps_results: {
key: "TestSV-Phase4-Lvl60-Settings-Dwarf-placeholder-Weave-p4_weave-FullBuffs-P4-Consumes-ShortSingleTarget"
value: {
- dps: 425.95885
- tps: 351.13112
+ dps: 460.26913
+ tps: 394.30809
}
}
dps_results: {
diff --git a/sim/mage/TestArcane.results b/sim/mage/TestArcane.results
index afac9b966..017e8f275 100644
--- a/sim/mage/TestArcane.results
+++ b/sim/mage/TestArcane.results
@@ -106,22 +106,22 @@ dps_results: {
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 371.87485
- tps: 653.94848
+ dps: 371.0616
+ tps: 648.00894
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 371.87485
- tps: 385.97853
+ dps: 371.0616
+ tps: 384.90897
}
}
dps_results: {
key: "TestArcane-Phase5-Lvl60-Settings-Gnome-blank-Arcane-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
dps: 388.44813
- tps: 404.37983
+ tps: 404.27494
}
}
dps_results: {
diff --git a/sim/mage/TestFire.results b/sim/mage/TestFire.results
index 6429976e5..1899b21a0 100644
--- a/sim/mage/TestFire.results
+++ b/sim/mage/TestFire.results
@@ -106,22 +106,22 @@ dps_results: {
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 328.52541
- tps: 562.21997
+ dps: 336.04823
+ tps: 563.87387
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 328.52541
- tps: 246.5804
+ dps: 336.04823
+ tps: 251.66577
}
}
dps_results: {
key: "TestFire-Phase5-Lvl60-Settings-Gnome-blank-Fire-p5_fire-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 414.68439
- tps: 302.05357
+ dps: 414.69838
+ tps: 302.05805
}
}
dps_results: {
diff --git a/sim/mage/TestFrost.results b/sim/mage/TestFrost.results
index 51cb08fe6..fbbdfca19 100644
--- a/sim/mage/TestFrost.results
+++ b/sim/mage/TestFrost.results
@@ -106,22 +106,22 @@ dps_results: {
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 397.37884
- tps: 587.62691
+ dps: 399.58783
+ tps: 587.87827
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 397.37884
- tps: 317.79797
+ dps: 399.58783
+ tps: 318.94962
}
}
dps_results: {
key: "TestFrost-Phase5-Lvl60-Settings-Gnome-blank-Frost-p5_spellfrost-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
dps: 400.34254
- tps: 323.00782
+ tps: 322.31659
}
}
dps_results: {
diff --git a/sim/paladin/protection/TestProtection.results b/sim/paladin/protection/TestProtection.results
index 61fb3ab45..6e68cc2c7 100644
--- a/sim/paladin/protection/TestProtection.results
+++ b/sim/paladin/protection/TestProtection.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 39.6
+ final_stats: 49.6
final_stats: 0
final_stats: 27.28857
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 8.84509
final_stats: 10.4
final_stats: 0
- final_stats: 4910.6125
+ final_stats: 5210.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,27 +50,27 @@ character_stats_results: {
stat_weights_results: {
key: "TestProtection-Phase4-Lvl60-StatWeights-Default"
value: {
- weights: 0.36836
- weights: 0.14659
+ weights: 0.42023
+ weights: 0.15825
weights: 0
weights: 0
weights: 0
- weights: 0.10482
+ weights: 0.10858
weights: 0
weights: 0
weights: 0
- weights: 0.04693
+ weights: 0.04691
weights: 0
weights: 0
weights: 0
- weights: 1.31055
- weights: 0.08066
+ weights: 1.30854
+ weights: 0.07653
weights: 0
weights: 0
- weights: 0.1456
- weights: 2.98915
- weights: 2.16293
- weights: 1.88267
+ weights: 0.1661
+ weights: 3.47278
+ weights: 2.46567
+ weights: 2.57716
weights: 0
weights: 0
weights: 0
@@ -78,7 +78,7 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.20964
+ weights: 0.21716
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestProtection-Phase4-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 311.90154
- tps: 480.2634
+ dps: 344.87219
+ tps: 523.27171
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Average-Default"
value: {
- dps: 312.49877
- tps: 480.43802
+ dps: 345.01187
+ tps: 522.72475
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 51.69456
- tps: 109.26224
+ dps: 52.63206
+ tps: 112.15163
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Dwarf-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 32.51277
- tps: 62.09519
+ dps: 33.74085
+ tps: 64.59191
}
}
dps_results: {
@@ -155,15 +155,15 @@ dps_results: {
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 51.53097
- tps: 108.53323
+ dps: 54.15443
+ tps: 113.64298
}
}
dps_results: {
key: "TestProtection-Phase4-Lvl60-Settings-Human-blank-P4 Prot-p4prot-FullBuffs-P4-Consumes-LongSingleTarget"
value: {
- dps: 32.41881
- tps: 61.89564
+ dps: 33.98391
+ tps: 64.97911
}
}
dps_results: {
@@ -197,7 +197,7 @@ dps_results: {
dps_results: {
key: "TestProtection-Phase4-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 270.48257
- tps: 419.98409
+ dps: 296.79219
+ tps: 452.21141
}
}
diff --git a/sim/paladin/retribution/TestExodin.results b/sim/paladin/retribution/TestExodin.results
index e86e9ff09..e124ae319 100644
--- a/sim/paladin/retribution/TestExodin.results
+++ b/sim/paladin/retribution/TestExodin.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 39.6
+ final_stats: 49.6
final_stats: 0
final_stats: 27.28857
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 4910.6125
+ final_stats: 5210.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestExodin-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.39797
- weights: 0.16031
+ weights: 0.45025
+ weights: 0.17414
weights: 0
weights: 0
weights: 0
- weights: 0.25561
+ weights: 0.27825
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.21625
- weights: 0.09094
+ weights: 0.21247
+ weights: 0.09393
weights: 0
weights: 0
- weights: 0.143
- weights: 3.8024
- weights: 2.80308
+ weights: 0.16179
+ weights: 4.15191
+ weights: 3.18399
weights: 0
weights: 0
weights: 0
@@ -99,29 +99,29 @@ stat_weights_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 308.86702
- tps: 344.25151
+ dps: 345.99852
+ tps: 382.73754
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Average-Default"
value: {
- dps: 306.84691
- tps: 342.5715
+ dps: 343.74315
+ tps: 380.52419
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 23.37335
- tps: 218.3785
+ dps: 23.84256
+ tps: 218.55272
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 9.84742
- tps: 19.59768
+ dps: 9.77675
+ tps: 19.51226
}
}
dps_results: {
@@ -154,15 +154,15 @@ dps_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 25.01923
- tps: 220.31939
+ dps: 24.49557
+ tps: 218.61572
}
}
dps_results: {
key: "TestExodin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-exodin-6CF2DR-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 10.05073
- tps: 19.81574
+ dps: 9.52886
+ tps: 19.23487
}
}
dps_results: {
@@ -195,7 +195,7 @@ dps_results: {
dps_results: {
key: "TestExodin-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 253.59155
- tps: 288.6616
+ dps: 282.33836
+ tps: 316.6778
}
}
diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results
index d7b91f453..5e5930d0a 100644
--- a/sim/paladin/retribution/TestRetribution.results
+++ b/sim/paladin/retribution/TestRetribution.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 39.6
+ final_stats: 49.6
final_stats: 0
final_stats: 27.28857
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 4910.6125
+ final_stats: 5210.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestRetribution-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.43784
- weights: 0.17111
+ weights: 0.47964
+ weights: 0.19354
weights: 0
weights: 0
weights: 0
- weights: 0.14884
+ weights: 0.14806
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.81482
- weights: 0.08142
+ weights: 0.94395
+ weights: 0.09534
weights: 0
weights: 0
- weights: 0.15733
- weights: 3.57897
- weights: 3.08603
+ weights: 0.17157
+ weights: 3.67644
+ weights: 3.24639
weights: 0
weights: 0
weights: 0
@@ -99,36 +99,36 @@ stat_weights_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 333.07757
- tps: 365.39866
+ dps: 353.12213
+ tps: 391.8802
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Average-Default"
value: {
- dps: 332.98738
- tps: 365.47503
+ dps: 351.08433
+ tps: 389.51809
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 44.48615
- tps: 252.66798
+ dps: 51.42291
+ tps: 259.99807
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 26.1478
- tps: 36.57164
+ dps: 31.82402
+ tps: 42.28228
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 37.54176
- tps: 54.39718
+ dps: 39.32693
+ tps: 56.20694
}
}
dps_results: {
@@ -155,15 +155,15 @@ dps_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 16.82326
- tps: 202.29009
+ dps: 17.2822
+ tps: 203.14236
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 14.86719
- tps: 24.14053
+ dps: 15.32613
+ tps: 24.61914
}
}
dps_results: {
@@ -197,22 +197,22 @@ dps_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 47.81643
- tps: 256.68659
+ dps: 47.90962
+ tps: 256.48477
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 28.02238
- tps: 38.46589
+ dps: 28.96899
+ tps: 39.4125
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.5-3.6-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 37.45917
- tps: 54.31459
+ dps: 39.24434
+ tps: 56.12435
}
}
dps_results: {
@@ -239,15 +239,15 @@ dps_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 15.59483
- tps: 201.15999
+ dps: 17.38803
+ tps: 203.24819
}
}
dps_results: {
key: "TestRetribution-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Martyrdom Ret-p5ret-twist-4DR-3.7-4.0-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 14.53231
- tps: 23.81057
+ dps: 15.43201
+ tps: 24.72502
}
}
dps_results: {
@@ -281,7 +281,7 @@ dps_results: {
dps_results: {
key: "TestRetribution-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 278.77629
- tps: 310.94343
+ dps: 294.7041
+ tps: 329.75827
}
}
diff --git a/sim/paladin/retribution/TestShockadin.results b/sim/paladin/retribution/TestShockadin.results
index 4bdbcc3c1..6d3f3e0fe 100644
--- a/sim/paladin/retribution/TestShockadin.results
+++ b/sim/paladin/retribution/TestShockadin.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 39.6
+ final_stats: 49.6
final_stats: 0
final_stats: 27.56742
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 8.44509
final_stats: 5
final_stats: 0
- final_stats: 4910.6125
+ final_stats: 5210.6125
final_stats: 27
final_stats: 60
final_stats: 60
@@ -50,12 +50,12 @@ character_stats_results: {
stat_weights_results: {
key: "TestShockadin-Phase5-Lvl60-StatWeights-Default"
value: {
- weights: 0.24563
- weights: 0.11292
+ weights: 0.28168
+ weights: 0.1433
weights: 0
weights: 0
weights: 0
- weights: 0.42509
+ weights: 0.48361
weights: 0
weights: 0
weights: 0
@@ -63,13 +63,13 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 1.81149
- weights: 0.39963
+ weights: 2.0315
+ weights: 0.38404
weights: 0
weights: 0
- weights: 0.08826
+ weights: 0.10121
weights: 0
- weights: 2.14476
+ weights: 2.47585
weights: 0
weights: 0
weights: 0
@@ -99,36 +99,36 @@ stat_weights_results: {
dps_results: {
key: "TestShockadin-Phase5-Lvl60-AllItems-SanctifiedOrb-20512"
value: {
- dps: 397.64754
- tps: 435.20541
+ dps: 445.35192
+ tps: 487.33093
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Average-Default"
value: {
- dps: 395.11448
- tps: 432.6894
+ dps: 444.12122
+ tps: 486.11029
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 281.61762
- tps: 496.48611
+ dps: 289.83657
+ tps: 506.18006
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 84.97457
- tps: 95.66883
+ dps: 88.83583
+ tps: 99.61367
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Dwarf-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 181.60249
- tps: 199.0725
+ dps: 182.76437
+ tps: 200.25897
}
}
dps_results: {
@@ -155,22 +155,22 @@ dps_results: {
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongMultiTarget"
value: {
- dps: 283.81885
- tps: 499.17901
+ dps: 289.57719
+ tps: 506.90401
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-LongSingleTarget"
value: {
- dps: 85.37421
- tps: 96.05863
+ dps: 89.04673
+ tps: 99.82949
}
}
dps_results: {
key: "TestShockadin-Phase5-Lvl60-Settings-Human-blank-P5 Seal of Righteousness Shockadin-p5Shockadin-FullBuffs-P5-Consumes-ShortSingleTarget"
value: {
- dps: 181.47227
- tps: 198.99145
+ dps: 183.28967
+ tps: 200.80884
}
}
dps_results: {
@@ -197,7 +197,7 @@ dps_results: {
dps_results: {
key: "TestShockadin-Phase5-Lvl60-SwitchInFrontOfTarget-Default"
value: {
- dps: 355.92742
- tps: 391.45531
+ dps: 399.54508
+ tps: 439.01167
}
}
diff --git a/sim/priest/shadow/TestShadow.results b/sim/priest/shadow/TestShadow.results
index 8d2b0b1b8..b3478b8bf 100644
--- a/sim/priest/shadow/TestShadow.results
+++ b/sim/priest/shadow/TestShadow.results
@@ -106,8 +106,8 @@ dps_results: {
dps_results: {
key: "TestShadow-Phase5-Lvl60-Settings-NightElf-blank-Basic-phase_5-FullBuffs-P4-Consumes-LongMultiTarget"
value: {
- dps: 626.36854
- tps: 813.79835
+ dps: 644.32784
+ tps: 810.64669
}
}
dps_results: {
diff --git a/sim/rogue/dps_rogue/TestAssassination.results b/sim/rogue/dps_rogue/TestAssassination.results
index 5691d6e61..20e0b4a76 100644
--- a/sim/rogue/dps_rogue/TestAssassination.results
+++ b/sim/rogue/dps_rogue/TestAssassination.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 24
+ final_stats: 34
final_stats: 0
final_stats: 21
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 17.44283
final_stats: 5
final_stats: 0
- final_stats: 2806.9575
+ final_stats: 3106.9575
final_stats: 13
final_stats: 30
final_stats: 30
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestAssassination-Phase2-Lvl40-StatWeights-Default"
value: {
- weights: 0.10757
- weights: 0.15682
+ weights: 0.12364
+ weights: 0.18085
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.08503
- weights: 0.36349
- weights: 0.71253
+ weights: 0.09774
+ weights: 0.41048
+ weights: 0.82634
weights: 0
weights: 0
weights: 0
@@ -99,8 +99,8 @@ stat_weights_results: {
dps_results: {
key: "TestAssassination-Phase2-Lvl40-Average-Default"
value: {
- dps: 77.62275
- tps: 55.11216
+ dps: 89.26122
+ tps: 63.37547
}
}
dps_results: {
@@ -154,7 +154,7 @@ dps_results: {
dps_results: {
key: "TestAssassination-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 72.75594
- tps: 51.65672
+ dps: 83.64203
+ tps: 59.38584
}
}
diff --git a/sim/rogue/dps_rogue/TestCombat.results b/sim/rogue/dps_rogue/TestCombat.results
index b7193926f..4766a6389 100644
--- a/sim/rogue/dps_rogue/TestCombat.results
+++ b/sim/rogue/dps_rogue/TestCombat.results
@@ -13,7 +13,7 @@ character_stats_results: {
final_stats: 0
final_stats: 0
final_stats: 0
- final_stats: 24
+ final_stats: 34
final_stats: 0
final_stats: 21
final_stats: 0
@@ -35,7 +35,7 @@ character_stats_results: {
final_stats: 22.44283
final_stats: 5
final_stats: 0
- final_stats: 2806.9575
+ final_stats: 3106.9575
final_stats: 13
final_stats: 30
final_stats: 30
@@ -50,8 +50,8 @@ character_stats_results: {
stat_weights_results: {
key: "TestCombat-Phase2-Lvl40-StatWeights-Default"
value: {
- weights: 0.10951
- weights: 0.1612
+ weights: 0.1259
+ weights: 0.18396
weights: 0
weights: 0
weights: 0
@@ -67,9 +67,9 @@ stat_weights_results: {
weights: 0
weights: 0
weights: 0
- weights: 0.08657
- weights: 0.7808
- weights: 0.71495
+ weights: 0.09953
+ weights: 0.8715
+ weights: 0.8414
weights: 0
weights: 0
weights: 0
@@ -99,8 +99,8 @@ stat_weights_results: {
dps_results: {
key: "TestCombat-Phase2-Lvl40-Average-Default"
value: {
- dps: 79.16551
- tps: 56.20751
+ dps: 91.03793
+ tps: 64.63693
}
}
dps_results: {
@@ -154,7 +154,7 @@ dps_results: {
dps_results: {
key: "TestCombat-Phase2-Lvl40-SwitchInFrontOfTarget-Default"
value: {
- dps: 74.38794
- tps: 52.81544
+ dps: 85.51688
+ tps: 60.71699
}
}
diff --git a/ui/core/components/inputs/buffs_debuffs.ts b/ui/core/components/inputs/buffs_debuffs.ts
index b26a99d20..0544bfa15 100644
--- a/ui/core/components/inputs/buffs_debuffs.ts
+++ b/ui/core/components/inputs/buffs_debuffs.ts
@@ -498,7 +498,7 @@ export const WarchiefsBlessing = withLabel(
makeBooleanIndividualBuffInput({
actionId: () => ActionId.fromSpellId(16609),
fieldName: 'warchiefsBlessing',
- showWhen: player => player.getFaction() === Faction.Horde,
+ // showWhen: player => player.getFaction() === Faction.Horde,
}),
`Warchief's Blessing`,
);
diff --git a/ui/core/components/inputs/consumables.ts b/ui/core/components/inputs/consumables.ts
index feee3ca08..8c8ca49b1 100644
--- a/ui/core/components/inputs/consumables.ts
+++ b/ui/core/components/inputs/consumables.ts
@@ -545,12 +545,10 @@ export const JujuFlurry = makeBooleanMiscConsumeInput({
fieldName: 'jujuFlurry',
showWhen: player => player.getLevel() >= 55,
});
-export const elixirOfCoalescedRegret = makeBooleanMiscConsumeInput({ actionId: () => ActionId.fromItemId(210708), fieldName: 'elixirOfCoalescedRegret' });
export const BoglingRoot = makeBooleanMiscConsumeInput({ actionId: () => ActionId.fromItemId(5206), fieldName: 'boglingRoot' });
export const MISC_OFFENSIVE_CONSUMES_CONFIG: PickerStatOptions[] = [
{ config: JujuFlurry, picker: IconPicker, stats: [Stat.StatAttackPower] },
- { config: elixirOfCoalescedRegret, picker: IconPicker, stats: [] },
{ config: BoglingRoot, picker: IconPicker, stats: [Stat.StatAttackPower] },
];