diff --git a/proto/death_knight.proto b/proto/death_knight.proto index 24eff60e0c..54eb753cca 100644 --- a/proto/death_knight.proto +++ b/proto/death_knight.proto @@ -72,21 +72,6 @@ message DeathKnightTalents { int32 sudden_doom = 59; bool summon_gargoyle = 60; } - -enum DeathKnightPrimeGlyph { - DeathKnightPrimeGlyphNone = 0; - GlyphOfDeathAndDecay = 43542; - GlyphOfDeathCoil = 45804; - GlyphOfDeathStrike = 43827; - GlyphOfFrostStrike = 43543; - GlyphOfHeartStrike = 43534; - GlyphOfHowlingBlast = 45806; - GlyphOfIcyTouch = 43546; - GlyphOfObliterate = 43547; - GlyphOfRaiseDead = 43549; - GlyphOfRuneStrike = 43550; - GlyphOfScourgeStrike = 43551; -} enum DeathKnightMajorGlyph { DeathKnightMajorGlyphNone = 0; GlyphOfAntiMagicShell = 43533; diff --git a/proto/druid.proto b/proto/druid.proto index 4f198bd9ca..793a735d72 100644 --- a/proto/druid.proto +++ b/proto/druid.proto @@ -76,25 +76,6 @@ message DruidTalents { bool tree_of_life = 63; } -enum DruidPrimeGlyph { - DruidPrimeGlyphNone = 0; - GlyphOfBerserk = 45601; - GlyphOfBloodletting = 40901; - GlyphOfInsectSwarm = 40919; - GlyphOfLacerate = 67484; - GlyphOfLifebloom = 40915; - GlyphOfMangle = 40900; - GlyphOfMoonfire = 40923; - GlyphOfRegrowth = 40912; - GlyphOfRejuvenation = 40913; - GlyphOfRip = 40902; - GlyphOfSavageRoar = 45604; - GlyphOfStarfire = 40916; - GlyphOfStarsurge = 45603; - GlyphOfSwiftmend = 40906; - GlyphOfTigersFury = 67487; - GlyphOfWrath = 40922; -} enum DruidMajorGlyph { DruidMajorGlyphNone = 0; GlyphOfBarkskin = 45623; diff --git a/proto/hunter.proto b/proto/hunter.proto index e51d03e159..87e026ca72 100644 --- a/proto/hunter.proto +++ b/proto/hunter.proto @@ -70,19 +70,6 @@ message HunterTalents { int32 serpent_spread = 57; bool black_arrow = 58; } -enum HunterPrimeGlyph { - HunterPrimeGlyphNone = 0; - GlyphOfAimedShot = 42897; - GlyphOfArcaneShot = 42898; - GlyphOfChimeraShot = 45625; - GlyphOfDazzledPrey = 42909; - GlyphOfExplosiveShot = 45731; - GlyphOfKillCommand = 42915; - GlyphOfKillShot = 45732; - GlyphOfRapidFire = 42911; - GlyphOfSerpentSting = 42912; - GlyphOfSteadyShot = 42914; -} enum HunterMajorGlyph { HunterMajorGlyphNone = 0; GlyphOfBestialWrath = 42902; diff --git a/proto/mage.proto b/proto/mage.proto index 979578e746..43738b1afe 100644 --- a/proto/mage.proto +++ b/proto/mage.proto @@ -73,22 +73,6 @@ message MageTalents { int32 frostfire_orb = 60; bool deep_freeze = 61; } -enum MagePrimeGlyph { - MagePrimeGlyphNone = 0; - GlyphOfArcaneBarrage = 45738; - GlyphOfArcaneBlast = 44955; - GlyphOfArcaneMissiles = 42735; - GlyphOfConeOfCold = 42753; - GlyphOfDeepFreeze = 45736; - GlyphOfFireball = 42739; - GlyphOfFrostbolt = 42742; - GlyphOfFrostfire = 44684; - GlyphOfIceLance = 42745; - GlyphOfLivingBomb = 63539; - GlyphOfMageArmor = 42749; - GlyphOfMoltenArmor = 42751; - GlyphOfPyroblast = 42743; -} enum MageMajorGlyph { MageMajorGlyphNone = 0; GlyphOfArcanePower = 42736; diff --git a/proto/monk.proto b/proto/monk.proto index 4af082d056..d37e38acb9 100644 --- a/proto/monk.proto +++ b/proto/monk.proto @@ -28,11 +28,6 @@ message MonkTalents { bool invoke_xuen_the_white_tiger = 17; bool chi_torpedo = 18; } - -enum MonkPrimeGlyph { - MonkPrimeGlyphNone = 0; -} - enum MonkMajorGlyph { MonkMajorGlyphNone = 0; MonkMajorGlyphAfterlife = 87891; diff --git a/proto/paladin.proto b/proto/paladin.proto index 40b52ecd51..026ce36e59 100644 --- a/proto/paladin.proto +++ b/proto/paladin.proto @@ -70,20 +70,7 @@ message PaladinTalents { int32 acts_of_sacrifice = 59; bool zealotry = 60; } -enum PaladinPrimeGlyph { - PaladinPrimeGlyphNone = 0; - GlyphOfCrusaderStrike = 41098; - GlyphOfDivineFavor = 41106; - GlyphOfExorcism = 41103; - GlyphOfHammerOfTheRighteous = 45742; - GlyphOfHolyShock = 45746; - GlyphOfJudgement = 41092; - GlyphOfSealOfInsight = 41110; - GlyphOfSealOfTruth = 43869; - GlyphOfShieldOfTheRighteous = 45744; - GlyphOfTemplarSVerdict = 45743; - GlyphOfWordOfGlory = 41105; -} + enum PaladinMajorGlyph { PaladinMajorGlyphNone = 0; GlyphOfBeaconOfLight = 45741; diff --git a/proto/priest.proto b/proto/priest.proto index 2e2725e1ae..ea454b41b9 100644 --- a/proto/priest.proto +++ b/proto/priest.proto @@ -75,22 +75,6 @@ message PriestTalents { int32 shadowy_apparition = 62; bool dispersion = 63; } - -enum PriestPrimeGlyph { - PriestPrimeGlyphNone = 0; - GlyphOfDispersion = 45753; - GlyphOfFlashHeal = 42400; - GlyphOfGuardianSpirit = 45755; - GlyphOfLightwell = 42403; - GlyphOfMindFlay = 42415; - GlyphOfPenance = 45756; - GlyphOfPowerWordBarrier = 42407; - GlyphOfPowerWordShield = 42408; - GlyphOfPrayerOfHealing = 42409; - GlyphOfRenew = 42411; - GlyphOfShadowWordDeath = 42414; - GlyphOfShadowWordPain = 42406; -} enum PriestMajorGlyph { PriestMajorGlyphNone = 0; GlyphOfCircleOfHealing = 42396; diff --git a/proto/rogue.proto b/proto/rogue.proto index 36119b3f86..94eee83916 100644 --- a/proto/rogue.proto +++ b/proto/rogue.proto @@ -69,22 +69,6 @@ message RogueTalents { int32 serrated_blades = 56; bool shadow_dance = 57; } - -enum RoguePrimeGlyph { - RoguePrimeGlyphNone = 0; - GlyphOfAdrenalineRush = 42954; - GlyphOfBackstab = 42956; - GlyphOfEviscerate = 42961; - GlyphOfHemorrhage = 42967; - GlyphOfKillingSpree = 45762; - GlyphOfMutilate = 45768; - GlyphOfRevealingStrike = 42965; - GlyphOfRupture = 42969; - GlyphOfShadowDance = 45764; - GlyphOfSinisterStrike = 42972; - GlyphOfSliceAndDice = 42973; - GlyphOfVendetta = 45761; -} enum RogueMajorGlyph { RogueMajorGlyphNone = 0; GlyphOfAmbush = 42955; diff --git a/proto/shaman.proto b/proto/shaman.proto index c427f349b1..07f4821b47 100644 --- a/proto/shaman.proto +++ b/proto/shaman.proto @@ -68,24 +68,6 @@ message ShamanTalents { int32 blessing_of_the_eternals = 57; bool riptide = 58; } -enum ShamanPrimeGlyph { - ShamanPrimeGlyphNone = 0; - GlyphOfEarthShield = 45775; - GlyphOfEarthlivingWeapon = 41527; - GlyphOfFeralSpirit = 45771; - GlyphOfFireElementalTotem = 41529; - GlyphOfFlameShock = 41531; - GlyphOfFlametongueWeapon = 41532; - GlyphOfLavaBurst = 41524; - GlyphOfLavaLash = 41540; - GlyphOfLightningBolt = 41536; - GlyphOfRiptide = 45772; - GlyphOfShocking = 41526; - GlyphOfStormstrike = 41539; - GlyphOfUnleashedLightning = 71155; - GlyphOfWaterShield = 41541; - GlyphOfWindfuryWeapon = 41542; -} enum ShamanMajorGlyph { ShamanMajorGlyphNone = 0; GlyphOfChainHeal = 41517; diff --git a/proto/warlock.proto b/proto/warlock.proto index 8fe410c7a9..d5ccb6ee64 100644 --- a/proto/warlock.proto +++ b/proto/warlock.proto @@ -66,23 +66,6 @@ message WarlockTalents { bool bane_of_havoc = 55; bool chaos_bolt = 56; } - -enum WarlockPrimeGlyph { - WarlockPrimeGlyphNone = 0; - GlyphOfBaneOfAgony = 42456; - GlyphOfChaosBolt = 45781; - GlyphOfConflagrate = 42454; - GlyphOfCorruption = 42455; - GlyphOfFelguard = 42459; - GlyphOfHaunt = 45779; - GlyphOfImmolate = 42464; - GlyphOfImp = 42465; - GlyphOfIncinerate = 42453; - GlyphOfLashOfPain = 50077; - GlyphOfMetamorphosis = 45780; - GlyphOfShadowburn = 42468; - GlyphOfUnstableAffliction = 42472; -} enum WarlockMajorGlyph { WarlockMajorGlyphNone = 0; GlyphOfDeathCoilWl = 42457; diff --git a/proto/warrior.proto b/proto/warrior.proto index 7aead4ef90..0b55313c97 100644 --- a/proto/warrior.proto +++ b/proto/warrior.proto @@ -71,18 +71,6 @@ message WarriorTalents { int32 sword_and_board = 60; bool shockwave = 61; } -enum WarriorPrimeGlyph { - WarriorPrimeGlyphNone = 0; - GlyphOfBladestorm = 45790; - GlyphOfBloodthirst = 43416; - GlyphOfDevastate = 43415; - GlyphOfMortalStrike = 43421; - GlyphOfOverpower = 43422; - GlyphOfRagingBlow = 43432; - GlyphOfRevenge = 43424; - GlyphOfShieldSlam = 43425; - GlyphOfSlam = 43423; -} enum WarriorMajorGlyph { WarriorMajorGlyphNone = 0; GlyphOfCleaving = 43414; diff --git a/sim/core/sim_concurrent_test.go b/sim/core/_sim_concurrent_test.go similarity index 89% rename from sim/core/sim_concurrent_test.go rename to sim/core/_sim_concurrent_test.go index 5a0336afda..a9a5488034 100644 --- a/sim/core/sim_concurrent_test.go +++ b/sim/core/_sim_concurrent_test.go @@ -18,11 +18,7 @@ func getTestPlayerMM() *proto.Player { } var MMTalents = "032002-2302320032120231221-03" - var MMGlyphs = &proto.Glyphs{ - Prime1: int32(proto.HunterPrimeGlyph_GlyphOfArcaneShot), - Prime2: int32(proto.HunterPrimeGlyph_GlyphOfRapidFire), - Prime3: int32(proto.HunterPrimeGlyph_HunterPrimeGlyphNone), - } + var MMGlyphs = &proto.Glyphs{} var FerocityTalents = &proto.HunterPetTalents{ SerpentSwiftness: 2, Dive: true, @@ -67,9 +63,6 @@ func getTestPlayerMM() *proto.Player { func getTestPlayerBloodDk() *proto.Player { var BloodTalents = "03323203132212311321--003" var BloodDefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DeathKnightPrimeGlyph_GlyphOfDeathStrike), - Prime2: int32(proto.DeathKnightPrimeGlyph_GlyphOfHeartStrike), - Prime3: int32(proto.DeathKnightPrimeGlyph_GlyphOfRuneStrike), Major1: int32(proto.DeathKnightMajorGlyph_GlyphOfVampiricBlood), Major2: int32(proto.DeathKnightMajorGlyph_GlyphOfDancingRuneWeapon), Major3: int32(proto.DeathKnightMajorGlyph_GlyphOfBoneShield), @@ -109,9 +102,6 @@ func getTestPlayerBloodDk() *proto.Player { func getTestPlayerFeralCat() *proto.Player { var StandardTalents = "-2320322312012121202301-020301" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DruidPrimeGlyph_GlyphOfRip), - Prime2: int32(proto.DruidPrimeGlyph_GlyphOfBloodletting), - Prime3: int32(proto.DruidPrimeGlyph_GlyphOfBerserk), Major1: int32(proto.DruidMajorGlyph_GlyphOfThorns), Major2: int32(proto.DruidMajorGlyph_GlyphOfFeralCharge), Major3: int32(proto.DruidMajorGlyph_GlyphOfRebirth), diff --git a/sim/core/character.go b/sim/core/character.go index 5b6726355c..81176508f4 100644 --- a/sim/core/character.go +++ b/sim/core/character.go @@ -67,7 +67,7 @@ type Character struct { professions [2]proto.Profession - glyphs [9]int32 + glyphs [6]int32 PrimaryTalentTree uint8 // Used for effects like "Increased Armor Value from Items" @@ -136,10 +136,7 @@ func NewCharacter(party *Party, partyIndex int, player *proto.Player) Character character.Label = fmt.Sprintf("%s (#%d)", character.Name, character.Index+1) if player.Glyphs != nil { - character.glyphs = [9]int32{ - player.Glyphs.Prime1, - player.Glyphs.Prime2, - player.Glyphs.Prime3, + character.glyphs = [6]int32{ player.Glyphs.Major1, player.Glyphs.Major2, player.Glyphs.Major3, diff --git a/sim/core/simsignals/api_test.go b/sim/core/simsignals/_api_test.go similarity index 100% rename from sim/core/simsignals/api_test.go rename to sim/core/simsignals/_api_test.go diff --git a/sim/death_knight/anti_magic_shell.go b/sim/death_knight/_anti_magic_shell.go similarity index 100% rename from sim/death_knight/anti_magic_shell.go rename to sim/death_knight/_anti_magic_shell.go diff --git a/sim/death_knight/army_of_the_dead.go b/sim/death_knight/_army_of_the_dead.go similarity index 100% rename from sim/death_knight/army_of_the_dead.go rename to sim/death_knight/_army_of_the_dead.go diff --git a/sim/death_knight/blood_boil.go b/sim/death_knight/_blood_boil.go similarity index 100% rename from sim/death_knight/blood_boil.go rename to sim/death_knight/_blood_boil.go diff --git a/sim/death_knight/_blood_strike.go b/sim/death_knight/_blood_strike.go index 2482d259c4..dfe041a4f9 100644 --- a/sim/death_knight/_blood_strike.go +++ b/sim/death_knight/_blood_strike.go @@ -2,20 +2,42 @@ package death_knight import ( "github.com/wowsims/mop/sim/core" + "github.com/wowsims/mop/sim/core/proto" ) -var BloodStrikeActionID = core.ActionID{SpellID: 49930} +var BloodStrikeActionID = core.ActionID{SpellID: 45902} -func (dk *DeathKnight) newBloodStrikeSpell(isMH bool) *core.Spell { - bonusBaseDamage := dk.sigilOfTheDarkRiderBonus() - diseaseMulti := dk.dkDiseaseMultiplier(0.125) - deathConvertChance := float64(dk.Talents.BloodOfTheNorth+dk.Talents.Reaping) / 3 +func (dk *DeathKnight) registerBloodStrikeSpell() { + ohSpell := dk.GetOrRegisterSpell(core.SpellConfig{ + ActionID: BloodStrikeActionID.WithTag(2), + SpellSchool: core.SpellSchoolPhysical, + ProcMask: core.ProcMaskMeleeOHSpecial, + Flags: core.SpellFlagMeleeMetrics, + ClassSpellMask: DeathKnightSpellBloodStrike, + + DamageMultiplier: 0.8, + DamageMultiplierAdditive: 1, + CritMultiplier: dk.DefaultMeleeCritMultiplier(), + ThreatMultiplier: 1, - conf := core.SpellConfig{ - ActionID: BloodStrikeActionID.WithTag(core.TernaryInt32(isMH, 1, 2)), - SpellSchool: core.SpellSchoolPhysical, - ProcMask: dk.threatOfThassarianProcMask(isMH), - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagIncludeTargetBonusDamage, + ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { + baseDamage := dk.ClassSpellScaling*0.37799999118 + + spell.Unit.OHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) + + baseDamage *= dk.GetDiseaseMulti(target, 1.0, 0.025) + + spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeSpecialCritOnly) + }, + }) + + hasReaping := dk.Inputs.Spec == proto.Spec_SpecUnholyDeathKnight + + dk.GetOrRegisterSpell(core.SpellConfig{ + ActionID: BloodStrikeActionID.WithTag(1), + SpellSchool: core.SpellSchoolPhysical, + ProcMask: core.ProcMaskMeleeMHSpecial, + Flags: core.SpellFlagMeleeMetrics | core.SpellFlagAPL, + ClassSpellMask: DeathKnightSpellBloodStrike, RuneCost: core.RuneCostOptions{ BloodRuneCost: 1, @@ -29,88 +51,40 @@ func (dk *DeathKnight) newBloodStrikeSpell(isMH bool) *core.Spell { IgnoreHaste: true, }, - BonusCritRating: (dk.subversionCritBonus() + dk.annihilationCritBonus()) * core.CritRatingPerCritChance, - DamageMultiplier: 0.4 * - core.TernaryFloat64(isMH, 1, dk.nervesOfColdSteelBonus()) * - dk.bloodOfTheNorthCoeff() * - dk.thassariansPlateDamageBonus() * - dk.bloodyStrikesBonus(BloodyStrikesBS), - CritMultiplier: dk.bonusCritMultiplier(dk.Talents.MightOfMograine + dk.Talents.GuileOfGorefiend), + DamageMultiplier: 0.8, + CritMultiplier: dk.DefaultMeleeCritMultiplier(), ThreatMultiplier: 1, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - var baseDamage float64 - if isMH { - baseDamage = 764 + - bonusBaseDamage + - spell.Unit.MHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) + - spell.BonusWeaponDamage() - } else { - // SpellID 66979 - baseDamage = 382 + - bonusBaseDamage + - spell.Unit.OHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) + - spell.BonusWeaponDamage() - } - baseDamage *= dk.RoRTSBonus(target) * - (1.0 + dk.dkCountActiveDiseases(target)*diseaseMulti) + baseDamage := dk.ClassSpellScaling*0.75599998236 + + spell.Unit.MHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) - result := spell.CalcDamage(sim, target, baseDamage, dk.threatOfThassarianOutcomeApplier(spell)) + baseDamage *= dk.GetDiseaseMulti(target, 1.0, 0.125) - if isMH { - spell.SpendRefundableCostAndConvertBloodRune(sim, result, deathConvertChance) - dk.threatOfThassarianProc(sim, result, dk.BloodStrikeOhHit) + result := spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMeleeWeaponSpecialHitAndCrit) - if result.Landed() { - if dk.DesolationAura != nil { - dk.DesolationAura.Activate(sim) - } - } + if hasReaping { + spell.SpendRefundableCostAndConvertBloodRune(sim, result, 1) + } else { + spell.SpendRefundableCost(sim, result) } + dk.ThreatOfThassarianProc(sim, result, ohSpell) spell.DealDamage(sim, result) }, - } - - if !isMH { // offhand doesn't need GCD - conf.RuneCost = core.RuneCostOptions{} - conf.Cast = core.CastConfig{} - } else { - conf.Flags |= core.SpellFlagAPL - } - - return dk.RegisterSpell(conf) -} - -func (dk *DeathKnight) registerBloodStrikeSpell() { - dk.BloodStrikeMhHit = dk.newBloodStrikeSpell(true) - dk.BloodStrikeOhHit = dk.newBloodStrikeSpell(false) - dk.BloodStrike = dk.BloodStrikeMhHit + }) } -func (dk *DeathKnight) registerDrwBloodStrikeSpell() { - bonusBaseDamage := dk.sigilOfTheDarkRiderBonus() - diseaseMulti := dk.dkDiseaseMultiplier(0.125) - - dk.RuneWeapon.BloodStrike = dk.RuneWeapon.RegisterSpell(core.SpellConfig{ +func (dk *DeathKnight) registerDrwBloodStrikeSpell() *core.Spell { + return dk.RuneWeapon.RegisterSpell(core.SpellConfig{ ActionID: BloodStrikeActionID.WithTag(1), SpellSchool: core.SpellSchoolPhysical, ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagIncludeTargetBonusDamage, - - BonusCritRating: (dk.subversionCritBonus() + dk.annihilationCritBonus()) * core.CritRatingPerCritChance, - DamageMultiplier: 0.4 * - dk.bloodOfTheNorthCoeff() * - dk.thassariansPlateDamageBonus() * - dk.bloodyStrikesBonus(BloodyStrikesBS), - CritMultiplier: dk.bonusCritMultiplier(dk.Talents.MightOfMograine + dk.Talents.GuileOfGorefiend), - ThreatMultiplier: 1, + Flags: core.SpellFlagMeleeMetrics, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := 764 + bonusBaseDamage + dk.DrwWeaponDamage(sim, spell) - - baseDamage *= dk.RoRTSBonus(target) * - (1.0 + dk.drwCountActiveDiseases(target)*diseaseMulti) + baseDamage := dk.ClassSpellScaling*0.75599998236 + + spell.Unit.MHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeWeaponSpecialHitAndCrit) }, diff --git a/sim/death_knight/bone_shield.go b/sim/death_knight/_bone_shield.go similarity index 100% rename from sim/death_knight/bone_shield.go rename to sim/death_knight/_bone_shield.go diff --git a/sim/death_knight/dancing_rune_weapon.go b/sim/death_knight/_dancing_rune_weapon.go similarity index 100% rename from sim/death_knight/dancing_rune_weapon.go rename to sim/death_knight/_dancing_rune_weapon.go diff --git a/sim/death_knight/death_coil.go b/sim/death_knight/_death_coil.go similarity index 100% rename from sim/death_knight/death_coil.go rename to sim/death_knight/_death_coil.go diff --git a/sim/death_knight/death_pact.go b/sim/death_knight/_death_pact.go similarity index 100% rename from sim/death_knight/death_pact.go rename to sim/death_knight/_death_pact.go diff --git a/sim/death_knight/death_strike.go b/sim/death_knight/_death_strike.go similarity index 100% rename from sim/death_knight/death_strike.go rename to sim/death_knight/_death_strike.go diff --git a/sim/death_knight/diseases.go b/sim/death_knight/_diseases.go similarity index 100% rename from sim/death_knight/diseases.go rename to sim/death_knight/_diseases.go diff --git a/sim/death_knight/festering_strike.go b/sim/death_knight/_festering_strike.go similarity index 100% rename from sim/death_knight/festering_strike.go rename to sim/death_knight/_festering_strike.go diff --git a/sim/death_knight/ghoul_pet.go b/sim/death_knight/_ghoul_pet.go similarity index 100% rename from sim/death_knight/ghoul_pet.go rename to sim/death_knight/_ghoul_pet.go diff --git a/sim/death_knight/glyphs.go b/sim/death_knight/_glyphs.go similarity index 100% rename from sim/death_knight/glyphs.go rename to sim/death_knight/_glyphs.go diff --git a/sim/death_knight/howling_blast.go b/sim/death_knight/_howling_blast.go similarity index 100% rename from sim/death_knight/howling_blast.go rename to sim/death_knight/_howling_blast.go diff --git a/sim/death_knight/icebound_fortitude.go b/sim/death_knight/_icebound_fortitude.go similarity index 100% rename from sim/death_knight/icebound_fortitude.go rename to sim/death_knight/_icebound_fortitude.go diff --git a/sim/death_knight/icy_touch.go b/sim/death_knight/_icy_touch.go similarity index 100% rename from sim/death_knight/icy_touch.go rename to sim/death_knight/_icy_touch.go diff --git a/sim/death_knight/obliterate.go b/sim/death_knight/_obliterate.go similarity index 100% rename from sim/death_knight/obliterate.go rename to sim/death_knight/_obliterate.go diff --git a/sim/death_knight/pillar_of_frost.go b/sim/death_knight/_pillar_of_frost.go similarity index 100% rename from sim/death_knight/pillar_of_frost.go rename to sim/death_knight/_pillar_of_frost.go diff --git a/sim/death_knight/plague_strike.go b/sim/death_knight/_plague_strike.go similarity index 100% rename from sim/death_knight/plague_strike.go rename to sim/death_knight/_plague_strike.go diff --git a/sim/death_knight/presences.go b/sim/death_knight/_presences.go similarity index 100% rename from sim/death_knight/presences.go rename to sim/death_knight/_presences.go diff --git a/sim/death_knight/raise_dead.go b/sim/death_knight/_raise_dead.go similarity index 100% rename from sim/death_knight/raise_dead.go rename to sim/death_knight/_raise_dead.go diff --git a/sim/death_knight/rune_strike.go b/sim/death_knight/_rune_strike.go similarity index 100% rename from sim/death_knight/rune_strike.go rename to sim/death_knight/_rune_strike.go diff --git a/sim/death_knight/rune_tap.go b/sim/death_knight/_rune_tap.go similarity index 100% rename from sim/death_knight/rune_tap.go rename to sim/death_knight/_rune_tap.go diff --git a/sim/death_knight/summon_gargoyle.go b/sim/death_knight/_summon_gargoyle.go similarity index 100% rename from sim/death_knight/summon_gargoyle.go rename to sim/death_knight/_summon_gargoyle.go diff --git a/sim/death_knight/talents_blood.go b/sim/death_knight/_talents_blood.go similarity index 100% rename from sim/death_knight/talents_blood.go rename to sim/death_knight/_talents_blood.go diff --git a/sim/death_knight/talents_frost.go b/sim/death_knight/_talents_frost.go similarity index 100% rename from sim/death_knight/talents_frost.go rename to sim/death_knight/_talents_frost.go diff --git a/sim/death_knight/talents_unholy.go b/sim/death_knight/_talents_unholy.go similarity index 100% rename from sim/death_knight/talents_unholy.go rename to sim/death_knight/_talents_unholy.go diff --git a/sim/death_knight/unholy_frenzy.go b/sim/death_knight/_unholy_frenzy.go similarity index 100% rename from sim/death_knight/unholy_frenzy.go rename to sim/death_knight/_unholy_frenzy.go diff --git a/sim/death_knight/vampiric_blood.go b/sim/death_knight/_vampiric_blood.go similarity index 100% rename from sim/death_knight/vampiric_blood.go rename to sim/death_knight/_vampiric_blood.go diff --git a/sim/death_knight/blood/blood_test.go b/sim/death_knight/blood/_blood_test.go similarity index 92% rename from sim/death_knight/blood/blood_test.go rename to sim/death_knight/blood/_blood_test.go index 445a04005e..0cd7433811 100644 --- a/sim/death_knight/blood/blood_test.go +++ b/sim/death_knight/blood/_blood_test.go @@ -38,9 +38,6 @@ func TestBlood(t *testing.T) { var BloodTalents = "02323203102122111321-3-033" var BloodDefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DeathKnightPrimeGlyph_GlyphOfDeathStrike), - Prime2: int32(proto.DeathKnightPrimeGlyph_GlyphOfHeartStrike), - Prime3: int32(proto.DeathKnightPrimeGlyph_GlyphOfRuneStrike), Major1: int32(proto.DeathKnightMajorGlyph_GlyphOfAntiMagicShell), Major2: int32(proto.DeathKnightMajorGlyph_GlyphOfDancingRuneWeapon), Major3: int32(proto.DeathKnightMajorGlyph_GlyphOfBoneShield), diff --git a/sim/death_knight/blood/heart_strike.go b/sim/death_knight/blood/_heart_strike.go similarity index 100% rename from sim/death_knight/blood/heart_strike.go rename to sim/death_knight/blood/_heart_strike.go diff --git a/sim/death_knight/blood/blood.go b/sim/death_knight/blood/blood.go index bac13c0eb2..4748c8c8ee 100644 --- a/sim/death_knight/blood/blood.go +++ b/sim/death_knight/blood/blood.go @@ -61,11 +61,12 @@ func (bdk *BloodDeathKnight) GetDeathKnight() *death_knight.DeathKnight { func (bdk *BloodDeathKnight) Initialize() { bdk.DeathKnight.Initialize() - bdk.registerHeartStrikeSpell() + // bdk.registerHeartStrikeSpell() - if bdk.Talents.DancingRuneWeapon { - bdk.RuneWeapon.AddCopySpell(HeartStrikeActionID, bdk.registerDrwHeartStrikeSpell()) - } + // TODO: Fix this to work with the new talent system. + // if bdk.Talents.DancingRuneWeapon { + // bdk.RuneWeapon.AddCopySpell(HeartStrikeActionID, bdk.registerDrwHeartStrikeSpell()) + // } } func (bdk BloodDeathKnight) getBloodShieldMasteryBonus() float64 { diff --git a/sim/death_knight/blood_strike.go b/sim/death_knight/blood_strike.go deleted file mode 100644 index dfe041a4f9..0000000000 --- a/sim/death_knight/blood_strike.go +++ /dev/null @@ -1,92 +0,0 @@ -package death_knight - -import ( - "github.com/wowsims/mop/sim/core" - "github.com/wowsims/mop/sim/core/proto" -) - -var BloodStrikeActionID = core.ActionID{SpellID: 45902} - -func (dk *DeathKnight) registerBloodStrikeSpell() { - ohSpell := dk.GetOrRegisterSpell(core.SpellConfig{ - ActionID: BloodStrikeActionID.WithTag(2), - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeOHSpecial, - Flags: core.SpellFlagMeleeMetrics, - ClassSpellMask: DeathKnightSpellBloodStrike, - - DamageMultiplier: 0.8, - DamageMultiplierAdditive: 1, - CritMultiplier: dk.DefaultMeleeCritMultiplier(), - ThreatMultiplier: 1, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := dk.ClassSpellScaling*0.37799999118 + - spell.Unit.OHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) - - baseDamage *= dk.GetDiseaseMulti(target, 1.0, 0.025) - - spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeSpecialCritOnly) - }, - }) - - hasReaping := dk.Inputs.Spec == proto.Spec_SpecUnholyDeathKnight - - dk.GetOrRegisterSpell(core.SpellConfig{ - ActionID: BloodStrikeActionID.WithTag(1), - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagAPL, - ClassSpellMask: DeathKnightSpellBloodStrike, - - RuneCost: core.RuneCostOptions{ - BloodRuneCost: 1, - RunicPowerGain: 10, - Refundable: true, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - IgnoreHaste: true, - }, - - DamageMultiplier: 0.8, - CritMultiplier: dk.DefaultMeleeCritMultiplier(), - ThreatMultiplier: 1, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := dk.ClassSpellScaling*0.75599998236 + - spell.Unit.MHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) - - baseDamage *= dk.GetDiseaseMulti(target, 1.0, 0.125) - - result := spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMeleeWeaponSpecialHitAndCrit) - - if hasReaping { - spell.SpendRefundableCostAndConvertBloodRune(sim, result, 1) - } else { - spell.SpendRefundableCost(sim, result) - } - dk.ThreatOfThassarianProc(sim, result, ohSpell) - - spell.DealDamage(sim, result) - }, - }) -} - -func (dk *DeathKnight) registerDrwBloodStrikeSpell() *core.Spell { - return dk.RuneWeapon.RegisterSpell(core.SpellConfig{ - ActionID: BloodStrikeActionID.WithTag(1), - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagMeleeMetrics, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := dk.ClassSpellScaling*0.75599998236 + - spell.Unit.MHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) - - spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeWeaponSpecialHitAndCrit) - }, - }) -} diff --git a/sim/death_knight/death_knight.go b/sim/death_knight/death_knight.go index 3e83d809eb..cd5f08e33f 100644 --- a/sim/death_knight/death_knight.go +++ b/sim/death_knight/death_knight.go @@ -53,11 +53,11 @@ type DeathKnight struct { Inputs DeathKnightInputs // Pets - Ghoul *GhoulPet - Gargoyle *GargoylePet - ArmyGhoul []*GhoulPet - RuneWeapon *RuneWeaponPet - Bloodworm []*BloodwormPet + // Ghoul *GhoulPet + // Gargoyle *GargoylePet + // ArmyGhoul []*GhoulPet + // RuneWeapon *RuneWeaponPet + Bloodworm []*BloodwormPet // Diseases FrostFeverSpell *core.Spell @@ -97,68 +97,65 @@ func (dk *DeathKnight) GetCharacter() *core.Character { func (dk *DeathKnight) AddPartyBuffs(partyBuffs *proto.PartyBuffs) { } -func (dk *DeathKnight) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if dk.Talents.AbominationsMight > 0 { - raidBuffs.AbominationsMight = true - } +// func (dk *DeathKnight) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// if dk.Talents.AbominationsMight > 0 { +// raidBuffs.AbominationsMight = true +// } - if dk.Talents.ImprovedIcyTalons { - raidBuffs.IcyTalons = true - } +// if dk.Talents.ImprovedIcyTalons { +// raidBuffs.IcyTalons = true +// } - // TODO: Make horn of winter dynamic - raidBuffs.HornOfWinter = true -} +// // TODO: Make horn of winter dynamic +// raidBuffs.HornOfWinter = true +// } func (dk *DeathKnight) ApplyTalents() { - dk.ApplyBloodTalents() - dk.ApplyFrostTalents() - dk.ApplyUnholyTalents() + // dk.ApplyBloodTalents() + // dk.ApplyFrostTalents() + // dk.ApplyUnholyTalents() - dk.ApplyGlyphs() + // dk.ApplyGlyphs() } func (dk *DeathKnight) Initialize() { - dk.registerPresences() - dk.registerFrostFever() - dk.registerBloodPlague() - dk.registerOutbreak() - dk.registerHornOfWinterSpell() - dk.registerIcyTouchSpell() - dk.registerPlagueStrikeSpell() - dk.registerDeathCoilSpell() - dk.registerDeathAndDecaySpell() - dk.registerFesteringStrikeSpell() - dk.registerEmpowerRuneWeaponSpell() - dk.registerUnholyFrenzySpell() - dk.registerSummonGargoyleSpell() - dk.registerArmyOfTheDeadSpell() - dk.registerRaiseDeadSpell() - dk.registerBloodTapSpell() - dk.registerObliterateSpell() - dk.registerHowlingBlastSpell() - dk.registerPillarOfFrostSpell() - dk.registerPestilenceSpell() - dk.registerBloodBoilSpell() - dk.registerRuneStrikeSpell() - dk.registerDeathStrikeSpell() - dk.registerRuneTapSpell() - dk.registerVampiricBloodSpell() - dk.registerIceboundFortitudeSpell() - dk.registerBoneShieldSpell() - dk.registerDancingRuneWeaponSpell() - dk.registerDeathPactSpell() - dk.registerAntiMagicShellSpell() - dk.registerRunicPowerDecay() - dk.registerBloodStrikeSpell() + // dk.registerPresences() + // dk.registerFrostFever() + // dk.registerBloodPlague() + // dk.registerOutbreak() + // dk.registerHornOfWinterSpell() + // dk.registerIcyTouchSpell() + // dk.registerPlagueStrikeSpell() + // dk.registerDeathCoilSpell() + // dk.registerDeathAndDecaySpell() + // dk.registerFesteringStrikeSpell() + // dk.registerEmpowerRuneWeaponSpell() + // dk.registerUnholyFrenzySpell() + // dk.registerSummonGargoyleSpell() + // dk.registerArmyOfTheDeadSpell() + // dk.registerRaiseDeadSpell() + // dk.registerBloodTapSpell() + // dk.registerObliterateSpell() + // dk.registerHowlingBlastSpell() + // dk.registerPillarOfFrostSpell() + // dk.registerPestilenceSpell() + // dk.registerBloodBoilSpell() + // dk.registerRuneStrikeSpell() + // dk.registerDeathStrikeSpell() + // dk.registerRuneTapSpell() + // dk.registerVampiricBloodSpell() + // dk.registerIceboundFortitudeSpell() + // dk.registerBoneShieldSpell() + // dk.registerDancingRuneWeaponSpell() + // dk.registerDeathPactSpell() + // dk.registerAntiMagicShellSpell() + // dk.registerRunicPowerDecay() + // dk.registerBloodStrikeSpell() } func (dk *DeathKnight) Reset(sim *core.Simulation) { } -func (dk *DeathKnight) HasPrimeGlyph(glyph proto.DeathKnightPrimeGlyph) bool { - return dk.HasGlyph(int32(glyph)) -} func (dk *DeathKnight) HasMajorGlyph(glyph proto.DeathKnightMajorGlyph) bool { return dk.HasGlyph(int32(glyph)) } @@ -175,7 +172,9 @@ func NewDeathKnight(character *core.Character, inputs DeathKnightInputs, talents } core.FillTalentsProto(dk.Talents.ProtoReflect(), talents, TalentTreeSizes) - maxRunicPower := 100.0 + 10.0*float64(dk.Talents.RunicPowerMastery) + // TODO: Fix this to work with the new talent system. + // maxRunicPower := 100.0 + 10.0*float64(dk.Talents.RunicPowerMastery) + maxRunicPower := 100.0 currentRunicPower := math.Min(maxRunicPower, dk.Inputs.StartingRunicPower) dk.EnableRunicPowerBar( @@ -221,27 +220,27 @@ func NewDeathKnight(character *core.Character, inputs DeathKnightInputs, talents dk.PseudoStats.BaseDodgeChance += 0.05 dk.PseudoStats.BaseParryChance += 0.05 - if dk.Talents.SummonGargoyle { - dk.Gargoyle = dk.NewGargoyle() - } + // if dk.Talents.SummonGargoyle { + // dk.Gargoyle = dk.NewGargoyle() + // } - dk.Ghoul = dk.NewGhoulPet(dk.Inputs.Spec == proto.Spec_SpecUnholyDeathKnight) + // dk.Ghoul = dk.NewGhoulPet(dk.Inputs.Spec == proto.Spec_SpecUnholyDeathKnight) - dk.ArmyGhoul = make([]*GhoulPet, 8) - for i := 0; i < 8; i++ { - dk.ArmyGhoul[i] = dk.NewArmyGhoulPet(i) - } + // dk.ArmyGhoul = make([]*GhoulPet, 8) + // for i := 0; i < 8; i++ { + // dk.ArmyGhoul[i] = dk.NewArmyGhoulPet(i) + // } - if dk.Talents.BloodParasite > 0 { - dk.Bloodworm = make([]*BloodwormPet, 5) - for i := 0; i < 5; i++ { - dk.Bloodworm[i] = dk.NewBloodwormPet(i) - } - } + // if dk.Talents.BloodParasite > 0 { + // dk.Bloodworm = make([]*BloodwormPet, 5) + // for i := 0; i < 5; i++ { + // dk.Bloodworm[i] = dk.NewBloodwormPet(i) + // } + // } - if dk.Talents.DancingRuneWeapon { - dk.RuneWeapon = dk.NewRuneWeapon() - } + // if dk.Talents.DancingRuneWeapon { + // dk.RuneWeapon = dk.NewRuneWeapon() + // } dk.EnableAutoAttacks(dk, core.AutoAttackOptions{ MainHand: dk.WeaponFromMainHand(dk.DefaultMeleeCritMultiplier()), @@ -263,9 +262,11 @@ func NewDeathKnight(character *core.Character, inputs DeathKnightInputs, talents func (dk *DeathKnight) registerRunicPowerDecay() { decayMetrics := dk.NewRunicPowerMetrics(core.ActionID{OtherID: proto.OtherAction_OtherActionPrepull}) + // TODO: Fix this to work with the new talent system. // Base decay rate is about 1.25/s // For some reason Butchery works out of combat which reduces this by 1/5 or 2/5 respectively - decayRate := []float64{1.25, 1.05, 0.85}[dk.Talents.Butchery] + // decayRate := []float64{1.25, 1.05, 0.85}[dk.Talents.Butchery] + decayRate := 1.25 var decay *core.PendingAction dk.RunicPowerDecayAura = dk.GetOrRegisterAura(core.Aura{ diff --git a/sim/death_knight/frost/frost_strike.go b/sim/death_knight/frost/_frost_strike.go similarity index 100% rename from sim/death_knight/frost/frost_strike.go rename to sim/death_knight/frost/_frost_strike.go diff --git a/sim/death_knight/frost/frost_test.go b/sim/death_knight/frost/_frost_test.go similarity index 93% rename from sim/death_knight/frost/frost_test.go rename to sim/death_knight/frost/_frost_test.go index 85e6392430..7203ab2617 100644 --- a/sim/death_knight/frost/frost_test.go +++ b/sim/death_knight/frost/_frost_test.go @@ -46,9 +46,6 @@ var TwoHandTalents = "103-32030022233112012031-033" var MasterfrostTalents = "2032-30330012233112012301-03" var FrostDefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DeathKnightPrimeGlyph_GlyphOfFrostStrike), - Prime2: int32(proto.DeathKnightPrimeGlyph_GlyphOfObliterate), - Prime3: int32(proto.DeathKnightPrimeGlyph_GlyphOfHowlingBlast), Major1: int32(proto.DeathKnightMajorGlyph_GlyphOfPestilence), Major2: int32(proto.DeathKnightMajorGlyph_GlyphOfBloodBoil), Major3: int32(proto.DeathKnightMajorGlyph_GlyphOfDarkSuccor), diff --git a/sim/death_knight/frost/frost.go b/sim/death_knight/frost/frost.go index 45f18657b1..8c0eef05a0 100644 --- a/sim/death_knight/frost/frost.go +++ b/sim/death_knight/frost/frost.go @@ -54,7 +54,7 @@ func (fdk FrostDeathKnight) getMasteryFrostBonus() float64 { func (fdk *FrostDeathKnight) Initialize() { fdk.DeathKnight.Initialize() - fdk.registerFrostStrikeSpell() + // fdk.registerFrostStrikeSpell() } func (fdk *FrostDeathKnight) ApplyTalents() { diff --git a/sim/death_knight/unholy/scourge_strike.go b/sim/death_knight/unholy/_scourge_strike.go similarity index 100% rename from sim/death_knight/unholy/scourge_strike.go rename to sim/death_knight/unholy/_scourge_strike.go diff --git a/sim/death_knight/unholy/unholy_test.go b/sim/death_knight/unholy/_unholy_test.go similarity index 92% rename from sim/death_knight/unholy/unholy_test.go rename to sim/death_knight/unholy/_unholy_test.go index 3c7b576ac4..ea4cc64a7a 100644 --- a/sim/death_knight/unholy/unholy_test.go +++ b/sim/death_knight/unholy/_unholy_test.go @@ -31,9 +31,6 @@ func TestUnholy(t *testing.T) { var UnholyTalents = "2032-1-13300321230231021231" var UnholyDefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DeathKnightPrimeGlyph_GlyphOfDeathCoil), - Prime2: int32(proto.DeathKnightPrimeGlyph_GlyphOfScourgeStrike), - Prime3: int32(proto.DeathKnightPrimeGlyph_GlyphOfRaiseDead), Major1: int32(proto.DeathKnightMajorGlyph_GlyphOfPestilence), Major2: int32(proto.DeathKnightMajorGlyph_GlyphOfBloodBoil), Major3: int32(proto.DeathKnightMajorGlyph_GlyphOfAntiMagicShell), diff --git a/sim/death_knight/unholy/unholy.go b/sim/death_knight/unholy/unholy.go index d3b6ce3614..7c5df6bda5 100644 --- a/sim/death_knight/unholy/unholy.go +++ b/sim/death_knight/unholy/unholy.go @@ -63,7 +63,7 @@ func (uhdk *UnholyDeathKnight) GetDeathKnight() *death_knight.DeathKnight { func (uhdk *UnholyDeathKnight) Initialize() { uhdk.DeathKnight.Initialize() - uhdk.registerScourgeStrikeSpell() + // uhdk.registerScourgeStrikeSpell() } func (uhdk *UnholyDeathKnight) ApplyTalents() { diff --git a/sim/druid/apl_values.go b/sim/druid/_apl_values.go similarity index 100% rename from sim/druid/apl_values.go rename to sim/druid/_apl_values.go diff --git a/sim/druid/berserk.go b/sim/druid/_berserk.go similarity index 100% rename from sim/druid/berserk.go rename to sim/druid/_berserk.go diff --git a/sim/druid/eclipse.go b/sim/druid/_eclipse.go similarity index 100% rename from sim/druid/eclipse.go rename to sim/druid/_eclipse.go diff --git a/sim/druid/enrage.go b/sim/druid/_enrage.go similarity index 100% rename from sim/druid/enrage.go rename to sim/druid/_enrage.go diff --git a/sim/druid/faerie_fire.go b/sim/druid/_faerie_fire.go similarity index 100% rename from sim/druid/faerie_fire.go rename to sim/druid/_faerie_fire.go diff --git a/sim/druid/feral_charge.go b/sim/druid/_feral_charge.go similarity index 100% rename from sim/druid/feral_charge.go rename to sim/druid/_feral_charge.go diff --git a/sim/druid/ferocious_bite.go b/sim/druid/_ferocious_bite.go similarity index 100% rename from sim/druid/ferocious_bite.go rename to sim/druid/_ferocious_bite.go diff --git a/sim/druid/force_of_nature.go b/sim/druid/_force_of_nature.go similarity index 100% rename from sim/druid/force_of_nature.go rename to sim/druid/_force_of_nature.go diff --git a/sim/druid/glyphs.go b/sim/druid/_glyphs.go similarity index 100% rename from sim/druid/glyphs.go rename to sim/druid/_glyphs.go diff --git a/sim/druid/innervate.go b/sim/druid/_innervate.go similarity index 100% rename from sim/druid/innervate.go rename to sim/druid/_innervate.go diff --git a/sim/druid/items.go b/sim/druid/_items.go similarity index 100% rename from sim/druid/items.go rename to sim/druid/_items.go diff --git a/sim/druid/lacerate.go b/sim/druid/_lacerate.go similarity index 100% rename from sim/druid/lacerate.go rename to sim/druid/_lacerate.go diff --git a/sim/druid/mangle.go b/sim/druid/_mangle.go similarity index 100% rename from sim/druid/mangle.go rename to sim/druid/_mangle.go diff --git a/sim/druid/maul.go b/sim/druid/_maul.go similarity index 100% rename from sim/druid/maul.go rename to sim/druid/_maul.go diff --git a/sim/druid/pulverize.go b/sim/druid/_pulverize.go similarity index 100% rename from sim/druid/pulverize.go rename to sim/druid/_pulverize.go diff --git a/sim/druid/rake.go b/sim/druid/_rake.go similarity index 100% rename from sim/druid/rake.go rename to sim/druid/_rake.go diff --git a/sim/druid/ravage.go b/sim/druid/_ravage.go similarity index 100% rename from sim/druid/ravage.go rename to sim/druid/_ravage.go diff --git a/sim/druid/rip.go b/sim/druid/_rip.go similarity index 100% rename from sim/druid/rip.go rename to sim/druid/_rip.go diff --git a/sim/druid/savage_roar.go b/sim/druid/_savage_roar.go similarity index 100% rename from sim/druid/savage_roar.go rename to sim/druid/_savage_roar.go diff --git a/sim/druid/shred.go b/sim/druid/_shred.go similarity index 100% rename from sim/druid/shred.go rename to sim/druid/_shred.go diff --git a/sim/druid/starfall.go b/sim/druid/_starfall.go similarity index 100% rename from sim/druid/starfall.go rename to sim/druid/_starfall.go diff --git a/sim/druid/starfire.go b/sim/druid/_starfire.go similarity index 100% rename from sim/druid/starfire.go rename to sim/druid/_starfire.go diff --git a/sim/druid/survival_instincts.go b/sim/druid/_survival_instincts.go similarity index 100% rename from sim/druid/survival_instincts.go rename to sim/druid/_survival_instincts.go diff --git a/sim/druid/talents.go b/sim/druid/_talents.go similarity index 100% rename from sim/druid/talents.go rename to sim/druid/_talents.go diff --git a/sim/druid/thrash.go b/sim/druid/_thrash.go similarity index 100% rename from sim/druid/thrash.go rename to sim/druid/_thrash.go diff --git a/sim/druid/tigers_fury.go b/sim/druid/_tigers_fury.go similarity index 100% rename from sim/druid/tigers_fury.go rename to sim/druid/_tigers_fury.go diff --git a/sim/druid/typhoon.go b/sim/druid/_typhoon.go similarity index 100% rename from sim/druid/typhoon.go rename to sim/druid/_typhoon.go diff --git a/sim/druid/balance/balance_test.go b/sim/druid/balance/_balance_test.go similarity index 93% rename from sim/druid/balance/balance_test.go rename to sim/druid/balance/_balance_test.go index b6dad53ebe..f6f1bcb542 100644 --- a/sim/druid/balance/balance_test.go +++ b/sim/druid/balance/_balance_test.go @@ -35,9 +35,6 @@ func TestBalance(t *testing.T) { var StandardTalents = "33230221123212111001-01-020331" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DruidPrimeGlyph_GlyphOfInsectSwarm), - Prime2: int32(proto.DruidPrimeGlyph_GlyphOfMoonfire), - Prime3: int32(proto.DruidPrimeGlyph_GlyphOfWrath), Major1: int32(proto.DruidMajorGlyph_GlyphOfStarfall), Major2: int32(proto.DruidMajorGlyph_GlyphOfRebirth), Major3: int32(proto.DruidMajorGlyph_GlyphOfMonsoon), diff --git a/sim/druid/balance/balance.go b/sim/druid/balance/balance.go index 52cf40ae98..ded3f8b82c 100644 --- a/sim/druid/balance/balance.go +++ b/sim/druid/balance/balance.go @@ -69,9 +69,9 @@ func (moonkin *BalanceDruid) Initialize() { func (moonkin *BalanceDruid) ApplyTalents() { - moonkin.EnableEclipseBar() - moonkin.RegisterEclipseAuras() - moonkin.RegisterEclipseEnergyGainAura() + // moonkin.EnableEclipseBar() + // moonkin.RegisterEclipseAuras() + // moonkin.RegisterEclipseEnergyGainAura() // Moonfury passive moonkin.RegisterAura( @@ -101,7 +101,7 @@ func (moonkin *BalanceDruid) ApplyTalents() { }) // Apply druid talents - moonkin.Druid.ApplyTalents() + // moonkin.Druid.ApplyTalents() } func (moonkin *BalanceDruid) Reset(sim *core.Simulation) { diff --git a/sim/druid/druid.go b/sim/druid/druid.go index e0a45707ef..f75d1478a2 100644 --- a/sim/druid/druid.go +++ b/sim/druid/druid.go @@ -18,7 +18,7 @@ var TalentTreeSizes = [3]int{20, 22, 21} type Druid struct { core.Character SelfBuffs - eclipseEnergyBar + // eclipseEnergyBar Talents *proto.DruidTalents ClassSpellScaling float64 @@ -109,7 +109,7 @@ type Druid struct { StampedeBearAura *core.Aura StrengthOfThePantherAura *core.Aura SurvivalInstinctsAura *core.Aura - TigersFuryAura *core.Aura + // TigersFuryAura *core.Aura BleedCategories core.ExclusiveCategoryArray @@ -210,26 +210,22 @@ func (druid *Druid) GetCharacter() *core.Character { return &druid.Character } -func (druid *Druid) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if druid.InForm(Cat|Bear) && druid.Talents.LeaderOfThePack { - raidBuffs.LeaderOfThePack = true - } +// func (druid *Druid) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// if druid.InForm(Cat|Bear) && druid.Talents.LeaderOfThePack { +// raidBuffs.LeaderOfThePack = true +// } - if druid.InForm(Moonkin) { - raidBuffs.MoonkinForm = true - } +// if druid.InForm(Moonkin) { +// raidBuffs.MoonkinForm = true +// } - raidBuffs.MarkOfTheWild = true -} +// raidBuffs.MarkOfTheWild = true +// } func (druid *Druid) BalanceCritMultiplier() float64 { return druid.SpellCritMultiplier(1, 0) } -func (druid *Druid) HasPrimeGlyph(glyph proto.DruidPrimeGlyph) bool { - return druid.HasGlyph(int32(glyph)) -} - func (druid *Druid) HasMajorGlyph(glyph proto.DruidMajorGlyph) bool { return druid.HasGlyph(int32(glyph)) } @@ -290,9 +286,9 @@ func (druid *Druid) Initialize() { } }) - druid.registerFaerieFireSpell() + // druid.registerFaerieFireSpell() // druid.registerRebirthSpell() - druid.registerInnervateCD() + // druid.registerInnervateCD() druid.registerTranquilityCD() druid.applyOmenOfClarity() } @@ -302,54 +298,54 @@ func (druid *Druid) RegisterBalanceSpells() { druid.registerInsectSwarmSpell() druid.registerMoonfireSpell() druid.registerSunfireSpell() - druid.registerStarfireSpell() + // druid.registerStarfireSpell() druid.registerWrathSpell() - druid.registerStarfallSpell() - druid.registerTyphoonSpell() - druid.registerForceOfNature() + // druid.registerStarfallSpell() + // druid.registerTyphoonSpell() + // druid.registerForceOfNature() druid.registerStarsurgeSpell() druid.registerWildMushrooms() } func (druid *Druid) RegisterFeralCatSpells() { druid.registerBearFormSpell() - druid.registerBerserkCD() - druid.registerCatCharge() + // druid.registerBerserkCD() + // druid.registerCatCharge() druid.registerCatFormSpell() - druid.registerEnrageSpell() - druid.registerFerociousBiteSpell() - druid.registerLacerateSpell() - druid.registerMangleBearSpell() - druid.registerMangleCatSpell() - druid.registerMaulSpell() - druid.registerRakeSpell() - druid.registerRavageSpell() - druid.registerRipSpell() - druid.registerSavageRoarSpell() - druid.registerShredSpell() + // druid.registerEnrageSpell() + // druid.registerFerociousBiteSpell() + // druid.registerLacerateSpell() + // druid.registerMangleBearSpell() + // druid.registerMangleCatSpell() + // druid.registerMaulSpell() + // druid.registerRakeSpell() + // druid.registerRavageSpell() + // druid.registerRipSpell() + // druid.registerSavageRoarSpell() + // druid.registerShredSpell() druid.registerSwipeBearSpell() druid.registerSwipeCatSpell() - druid.registerThrashBearSpell() - druid.registerTigersFurySpell() + // druid.registerThrashBearSpell() + // druid.registerTigersFurySpell() } func (druid *Druid) RegisterFeralTankSpells() { druid.registerBarkskinCD() druid.registerBearFormSpell() - druid.registerBerserkCD() + // druid.registerBerserkCD() druid.registerDemoralizingRoarSpell() - druid.registerEnrageSpell() + // druid.registerEnrageSpell() druid.registerFrenziedRegenerationCD() - druid.registerMangleBearSpell() - druid.registerMaulSpell() - druid.registerLacerateSpell() - druid.registerPulverizeSpell() - druid.registerRakeSpell() - druid.registerRipSpell() + // druid.registerMangleBearSpell() + // druid.registerMaulSpell() + // druid.registerLacerateSpell() + // druid.registerPulverizeSpell() + // druid.registerRakeSpell() + // druid.registerRipSpell() druid.registerSavageDefensePassive() - druid.registerSurvivalInstinctsCD() + // druid.registerSurvivalInstinctsCD() druid.registerSwipeBearSpell() - druid.registerThrashBearSpell() + // druid.registerThrashBearSpell() } func (druid *Druid) RegisterLeatherSpecialization() { @@ -365,7 +361,7 @@ func (druid *Druid) RegisterLeatherSpecialization() { } func (druid *Druid) Reset(_ *core.Simulation) { - druid.eclipseEnergyBar.reset() + // druid.eclipseEnergyBar.reset() druid.BleedsActive = 0 druid.form = druid.StartingForm druid.disabledMCDs = []*core.MajorCooldown{} @@ -397,17 +393,17 @@ func New(char *core.Character, form DruidForm, selfBuffs SelfBuffs, talents stri druid.RegisterLeatherSpecialization() - if druid.Talents.ForceOfNature { - druid.Treants = &Treants{ - Treant1: druid.NewTreant(), - Treant2: druid.NewTreant(), - Treant3: druid.NewTreant(), - } - } - - if druid.CouldHaveSetBonus(ItemSetObsidianArborweaveRegalia, 2) { - druid.BurningTreant = druid.NewBurningTreant() - } + // if druid.Talents.ForceOfNature { + // druid.Treants = &Treants{ + // Treant1: druid.NewTreant(), + // Treant2: druid.NewTreant(), + // Treant3: druid.NewTreant(), + // } + // } + + // if druid.CouldHaveSetBonus(ItemSetObsidianArborweaveRegalia, 2) { + // druid.BurningTreant = druid.NewBurningTreant() + // } return druid } diff --git a/sim/druid/feral/apl_values.go b/sim/druid/feral/_apl_values.go similarity index 100% rename from sim/druid/feral/apl_values.go rename to sim/druid/feral/_apl_values.go diff --git a/sim/druid/feral/feral_test.go b/sim/druid/feral/_feral_test.go similarity index 94% rename from sim/druid/feral/feral_test.go rename to sim/druid/feral/_feral_test.go index eabcbf0aa1..987ef49750 100644 --- a/sim/druid/feral/feral_test.go +++ b/sim/druid/feral/_feral_test.go @@ -105,9 +105,6 @@ func TestFeral(t *testing.T) { var StandardTalents = "-2320322312012121202301-020301" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DruidPrimeGlyph_GlyphOfRip), - Prime2: int32(proto.DruidPrimeGlyph_GlyphOfBloodletting), - Prime3: int32(proto.DruidPrimeGlyph_GlyphOfBerserk), Major1: int32(proto.DruidMajorGlyph_GlyphOfThorns), Major2: int32(proto.DruidMajorGlyph_GlyphOfFeralCharge), Major3: int32(proto.DruidMajorGlyph_GlyphOfRebirth), @@ -115,9 +112,6 @@ var StandardGlyphs = &proto.Glyphs{ var HybridTalents = "-2300322312310001220311-020331" var HybridGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DruidPrimeGlyph_GlyphOfRip), - Prime2: int32(proto.DruidPrimeGlyph_GlyphOfBloodletting), - Prime3: int32(proto.DruidPrimeGlyph_GlyphOfBerserk), Major1: int32(proto.DruidMajorGlyph_GlyphOfFrenziedRegeneration), Major2: int32(proto.DruidMajorGlyph_GlyphOfMaul), Major3: int32(proto.DruidMajorGlyph_GlyphOfRebirth), diff --git a/sim/druid/feral/pooling_actions.go b/sim/druid/feral/_pooling_actions.go similarity index 100% rename from sim/druid/feral/pooling_actions.go rename to sim/druid/feral/_pooling_actions.go diff --git a/sim/druid/feral/rotation.go b/sim/druid/feral/_rotation.go similarity index 100% rename from sim/druid/feral/rotation.go rename to sim/druid/feral/_rotation.go diff --git a/sim/druid/feral/rotation_aoe.go b/sim/druid/feral/_rotation_aoe.go similarity index 100% rename from sim/druid/feral/rotation_aoe.go rename to sim/druid/feral/_rotation_aoe.go diff --git a/sim/druid/feral/feral.go b/sim/druid/feral/feral.go index c1f9fd0b46..316ebad4fb 100644 --- a/sim/druid/feral/feral.go +++ b/sim/druid/feral/feral.go @@ -41,8 +41,11 @@ func NewFeralDruid(character *core.Character, options *proto.Player) *FeralDruid cat.AssumeBleedActive = feralOptions.Options.AssumeBleedActive cat.CannotShredTarget = feralOptions.Options.CannotShredTarget - cat.maxRipTicks = cat.MaxRipTicks() - cat.primalMadnessBonus = 10.0 * float64(cat.Talents.PrimalMadness) + // TODO: Fix this to work with the new talent system. + // cat.maxRipTicks = cat.MaxRipTicks() + // cat.primalMadnessBonus = 10.0 * float64(cat.Talents.PrimalMadness) + cat.maxRipTicks = 0 + cat.primalMadnessBonus = 0 cat.EnableEnergyBar(core.EnergyBarOptions{ MaxComboPoints: 5, @@ -66,7 +69,7 @@ func NewFeralDruid(character *core.Character, options *proto.Player) *FeralDruid type FeralDruid struct { *druid.Druid - Rotation FeralDruidRotation + // Rotation FeralDruidRotation readyToShift bool readyToGift bool @@ -80,8 +83,8 @@ type FeralDruid struct { cachedRipEndThresh time.Duration nextActionAt time.Duration usingHardcodedAPL bool - pendingPool *PoolingActions - pendingPoolWeaves *PoolingActions + // pendingPool *PoolingActions + // pendingPoolWeaves *PoolingActions } func (cat *FeralDruid) GetDruid() *druid.Druid { @@ -114,15 +117,15 @@ func (cat *FeralDruid) Initialize() { } } - cat.TigersFuryAura.ApplyOnGain(snapshotHandler) - cat.TigersFuryAura.ApplyOnExpire(snapshotHandler) + // cat.TigersFuryAura.ApplyOnGain(snapshotHandler) + // cat.TigersFuryAura.ApplyOnExpire(snapshotHandler) cat.AddOnTemporaryStatsChange(func(sim *core.Simulation, buffAura *core.Aura, _ stats.Stats) { snapshotHandler(buffAura, sim) }) } func (cat *FeralDruid) ApplyTalents() { - cat.Druid.ApplyTalents() + // cat.Druid.ApplyTalents() cat.MultiplyStat(stats.AttackPower, 1.25) // Aggression passive } diff --git a/sim/druid/forms.go b/sim/druid/forms.go index ebe0a1a571..4815e271ad 100644 --- a/sim/druid/forms.go +++ b/sim/druid/forms.go @@ -75,7 +75,9 @@ func (druid *Druid) GetBearWeapon() core.Weapon { func (druid *Druid) RegisterCatFormAura() { actionID := core.ActionID{SpellID: 768} - srm := druid.GetSavageRoarMultiplier() + // TODO: Fix this to work with the new talent system. + // srm := druid.GetSavageRoarMultiplier() + srm := 1.8 statBonus := stats.Stats{ stats.AttackPower: -20, // This offset is needed because the first 10 points of Agility do not contribute any Attack Power. @@ -160,7 +162,7 @@ func (druid *Druid) RegisterCatFormAura() { druid.AutoAttacks.EnableAutoSwing(sim) druid.UpdateManaRegenRates() - druid.TigersFuryAura.Deactivate(sim) + // druid.TigersFuryAura.Deactivate(sim) // These buffs stay up, but corresponding changes don't if druid.SavageRoarAura.IsActive() { @@ -178,9 +180,9 @@ func (druid *Druid) RegisterCatFormAura() { }, }) - if druid.Talents.FeralSwiftness > 0 { - druid.CatFormAura.NewMovementSpeedEffect(0.15 * float64(druid.Talents.FeralSwiftness)) - } + // if druid.Talents.FeralSwiftness > 0 { + // druid.CatFormAura.NewMovementSpeedEffect(0.15 * float64(druid.Talents.FeralSwiftness)) + // } } func (druid *Druid) registerCatFormSpell() { @@ -193,7 +195,9 @@ func (druid *Druid) registerCatFormSpell() { ManaCost: core.ManaCostOptions{ BaseCostPercent: 5, - PercentModifier: 100 - (10 * druid.Talents.NaturalShapeshifter), + // TODO: Fix this to work with the new talent system. + // PercentModifier: 100 - (10 * druid.Talents.NaturalShapeshifter), + PercentModifier: 100, }, Cast: core.CastConfig{ DefaultCast: core.Cast{ @@ -203,7 +207,9 @@ func (druid *Druid) registerCatFormSpell() { }, ApplyEffects: func(sim *core.Simulation, _ *core.Unit, spell *core.Spell) { - maxShiftEnergy := float64(100*druid.Talents.Furor) / 3.0 + // TODO: Fix this to work with the new talent system. + // maxShiftEnergy := float64(100*druid.Talents.Furor) / 3.0 + maxShiftEnergy := 100 / 3.0 energyDelta := maxShiftEnergy - druid.CurrentEnergy() @@ -319,7 +325,9 @@ func (druid *Druid) registerBearFormSpell() { actionID := core.ActionID{SpellID: 5487} rageMetrics := druid.NewRageMetrics(actionID) - furorProcChance := float64(druid.Talents.Furor) / 3.0 + // TODO: Fix this to work with the new talent system. + // furorProcChance := float64(druid.Talents.Furor) / 3.0 + furorProcChance := 0 / 3.0 druid.BearForm = druid.RegisterSpell(Any, core.SpellConfig{ ActionID: actionID, @@ -327,7 +335,9 @@ func (druid *Druid) registerBearFormSpell() { ManaCost: core.ManaCostOptions{ BaseCostPercent: 5, - PercentModifier: 100 - (10 * druid.Talents.NaturalShapeshifter), + // TODO: Fix this to work with the new talent system. + // PercentModifier: 100 - (10 * druid.Talents.NaturalShapeshifter), + PercentModifier: 100, }, Cast: core.CastConfig{ DefaultCast: core.Cast{ diff --git a/sim/druid/guardian/tank_test.go b/sim/druid/guardian/_tank_test.go similarity index 94% rename from sim/druid/guardian/tank_test.go rename to sim/druid/guardian/_tank_test.go index 0d5cce0af4..6102f0cac4 100644 --- a/sim/druid/guardian/tank_test.go +++ b/sim/druid/guardian/_tank_test.go @@ -78,9 +78,6 @@ func TestGuardian(t *testing.T) { var StandardTalents = "-2300322312310001220311-020331" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.DruidPrimeGlyph_GlyphOfMangle), - Prime2: int32(proto.DruidPrimeGlyph_GlyphOfLacerate), - Prime3: int32(proto.DruidPrimeGlyph_GlyphOfBerserk), Major1: int32(proto.DruidMajorGlyph_GlyphOfFrenziedRegeneration), Major2: int32(proto.DruidMajorGlyph_GlyphOfMaul), Major3: int32(proto.DruidMajorGlyph_GlyphOfRebirth), diff --git a/sim/druid/guardian/tank.go b/sim/druid/guardian/tank.go index 8787d03ef1..e1d11e74cb 100644 --- a/sim/druid/guardian/tank.go +++ b/sim/druid/guardian/tank.go @@ -74,7 +74,7 @@ func (bear *GuardianDruid) Initialize() { } func (bear *GuardianDruid) ApplyTalents() { - bear.Druid.ApplyTalents() + // bear.Druid.ApplyTalents() bear.MultiplyStat(stats.AttackPower, 1.25) // Aggression passive core.ApplyVengeanceEffect(&bear.Character, bear.vengeance, 84840) } diff --git a/sim/druid/restoration/restoration_test.go b/sim/druid/restoration/_restoration_test.go similarity index 100% rename from sim/druid/restoration/restoration_test.go rename to sim/druid/restoration/_restoration_test.go diff --git a/sim/druid/restoration/restoration.go b/sim/druid/restoration/restoration.go index 625ff638df..bf49e100fe 100644 --- a/sim/druid/restoration/restoration.go +++ b/sim/druid/restoration/restoration.go @@ -51,6 +51,8 @@ func (resto *RestorationDruid) Initialize() { resto.Druid.Initialize() } +func (resto *RestorationDruid) ApplyTalents() {} + func (resto *RestorationDruid) Reset(sim *core.Simulation) { resto.Druid.Reset(sim) } diff --git a/sim/hunter/aspects.go b/sim/hunter/_aspects.go similarity index 100% rename from sim/hunter/aspects.go rename to sim/hunter/_aspects.go diff --git a/sim/hunter/bm_talents.go b/sim/hunter/_bm_talents.go similarity index 100% rename from sim/hunter/bm_talents.go rename to sim/hunter/_bm_talents.go diff --git a/sim/hunter/cata_items.go b/sim/hunter/_cata_items.go similarity index 100% rename from sim/hunter/cata_items.go rename to sim/hunter/_cata_items.go diff --git a/sim/hunter/cobra_shot.go b/sim/hunter/_cobra_shot.go similarity index 100% rename from sim/hunter/cobra_shot.go rename to sim/hunter/_cobra_shot.go diff --git a/sim/hunter/explosive_trap.go b/sim/hunter/_explosive_trap.go similarity index 100% rename from sim/hunter/explosive_trap.go rename to sim/hunter/_explosive_trap.go diff --git a/sim/hunter/glyphs.go b/sim/hunter/_glyphs.go similarity index 100% rename from sim/hunter/glyphs.go rename to sim/hunter/_glyphs.go diff --git a/sim/hunter/kill_command.go b/sim/hunter/_kill_command.go similarity index 100% rename from sim/hunter/kill_command.go rename to sim/hunter/_kill_command.go diff --git a/sim/hunter/mm_talents.go b/sim/hunter/_mm_talents.go similarity index 100% rename from sim/hunter/mm_talents.go rename to sim/hunter/_mm_talents.go diff --git a/sim/hunter/multi_shot.go b/sim/hunter/_multi_shot.go similarity index 100% rename from sim/hunter/multi_shot.go rename to sim/hunter/_multi_shot.go diff --git a/sim/hunter/pet.go b/sim/hunter/_pet.go similarity index 100% rename from sim/hunter/pet.go rename to sim/hunter/_pet.go diff --git a/sim/hunter/pet_abilities.go b/sim/hunter/_pet_abilities.go similarity index 100% rename from sim/hunter/pet_abilities.go rename to sim/hunter/_pet_abilities.go diff --git a/sim/hunter/pet_talents.go b/sim/hunter/_pet_talents.go similarity index 100% rename from sim/hunter/pet_talents.go rename to sim/hunter/_pet_talents.go diff --git a/sim/hunter/rapid_fire.go b/sim/hunter/_rapid_fire.go similarity index 100% rename from sim/hunter/rapid_fire.go rename to sim/hunter/_rapid_fire.go diff --git a/sim/hunter/serpent_sting.go b/sim/hunter/_serpent_sting.go similarity index 100% rename from sim/hunter/serpent_sting.go rename to sim/hunter/_serpent_sting.go diff --git a/sim/hunter/silencing_shot.go b/sim/hunter/_silencing_shot.go similarity index 100% rename from sim/hunter/silencing_shot.go rename to sim/hunter/_silencing_shot.go diff --git a/sim/hunter/steady_shot.go b/sim/hunter/_steady_shot.go similarity index 100% rename from sim/hunter/steady_shot.go rename to sim/hunter/_steady_shot.go diff --git a/sim/hunter/survival_talents.go b/sim/hunter/_survival_talents.go similarity index 100% rename from sim/hunter/survival_talents.go rename to sim/hunter/_survival_talents.go diff --git a/sim/hunter/talents.go b/sim/hunter/_talents.go similarity index 100% rename from sim/hunter/talents.go rename to sim/hunter/_talents.go diff --git a/sim/hunter/trap_launcher.go b/sim/hunter/_trap_launcher.go similarity index 100% rename from sim/hunter/trap_launcher.go rename to sim/hunter/_trap_launcher.go diff --git a/sim/hunter/beast_mastery/beast_mastery_test.go b/sim/hunter/beast_mastery/_beast_mastery_test.go similarity index 94% rename from sim/hunter/beast_mastery/beast_mastery_test.go rename to sim/hunter/beast_mastery/_beast_mastery_test.go index 025afc6452..939374baff 100644 --- a/sim/hunter/beast_mastery/beast_mastery_test.go +++ b/sim/hunter/beast_mastery/_beast_mastery_test.go @@ -89,9 +89,6 @@ var FullConsumes = &proto.Consumes{ var BMTalents = "2330230311320112121-2302-03" var BMGlyphs = &proto.Glyphs{ Major1: int32(proto.HunterMajorGlyph_GlyphOfBestialWrath), - Prime1: int32(proto.HunterPrimeGlyph_GlyphOfKillCommand), - Prime2: int32(proto.HunterPrimeGlyph_GlyphOfKillShot), - Prime3: int32(proto.HunterPrimeGlyph_GlyphOfArcaneShot), } var FerocityTalents = &proto.HunterPetTalents{ SerpentSwiftness: 2, diff --git a/sim/hunter/beast_mastery/beast_mastery.go b/sim/hunter/beast_mastery/beast_mastery.go index 584a24bba2..8a56a2119a 100644 --- a/sim/hunter/beast_mastery/beast_mastery.go +++ b/sim/hunter/beast_mastery/beast_mastery.go @@ -41,29 +41,31 @@ func (bmHunter *BeastMasteryHunter) Initialize() { bmHunter.Hunter.Initialize() // Apply BM Hunter mastery - baseMasteryRating := bmHunter.GetStat(stats.MasteryRating) - kcMod := bmHunter.AddDynamicMod(core.SpellModConfig{ - Kind: core.SpellMod_DamageDone_Pct, - ClassMask: hunter.HunterSpellKillCommand, - FloatValue: bmHunter.getMasteryBonus(baseMasteryRating), - }) + // baseMasteryRating := bmHunter.GetStat(stats.MasteryRating) + // kcMod := bmHunter.AddDynamicMod(core.SpellModConfig{ + // Kind: core.SpellMod_DamageDone_Pct, + // ClassMask: hunter.HunterSpellKillCommand, + // FloatValue: bmHunter.getMasteryBonus(baseMasteryRating), + // }) - if bmHunter.Pet != nil { - bmHunter.Pet.PseudoStats.DamageDealtMultiplier *= bmHunter.getMasteryBonus(baseMasteryRating) - kcMod.Activate() - } + // if bmHunter.Pet != nil { + // bmHunter.Pet.PseudoStats.DamageDealtMultiplier *= bmHunter.getMasteryBonus(baseMasteryRating) + // kcMod.Activate() + // } - bmHunter.AddOnMasteryStatChanged(func(sim *core.Simulation, oldMasteryRating float64, newMasteryRating float64) { - if bmHunter.Pet != nil { - bmHunter.Pet.PseudoStats.DamageDealtMultiplier /= bmHunter.getMasteryBonus(oldMasteryRating) - bmHunter.Pet.PseudoStats.DamageDealtMultiplier *= bmHunter.getMasteryBonus(newMasteryRating) - kcMod.UpdateFloatValue(bmHunter.getMasteryBonus(newMasteryRating)) - } - }) + // bmHunter.AddOnMasteryStatChanged(func(sim *core.Simulation, oldMasteryRating float64, newMasteryRating float64) { + // if bmHunter.Pet != nil { + // bmHunter.Pet.PseudoStats.DamageDealtMultiplier /= bmHunter.getMasteryBonus(oldMasteryRating) + // bmHunter.Pet.PseudoStats.DamageDealtMultiplier *= bmHunter.getMasteryBonus(newMasteryRating) + // kcMod.UpdateFloatValue(bmHunter.getMasteryBonus(newMasteryRating)) + // } + // }) // BM Hunter Spec Bonus bmHunter.MultiplyStat(stats.RangedAttackPower, 1.30) } +func (hunter *BeastMasteryHunter) ApplyTalents() {} + func (hunter *BeastMasteryHunter) getMasteryBonus(masteryRating float64) float64 { return 1.134 + ((masteryRating / core.MasteryRatingPerMasteryPoint) * 0.0167) } diff --git a/sim/hunter/hunter.go b/sim/hunter/hunter.go index 73f5bb51c1..c0251c9d6f 100644 --- a/sim/hunter/hunter.go +++ b/sim/hunter/hunter.go @@ -23,7 +23,7 @@ type Hunter struct { MarksmanshipOptions *proto.MarksmanshipHunter_Options SurvivalOptions *proto.SurvivalHunter_Options - Pet *HunterPet + // Pet *HunterPet // The most recent time at which moving could have started, for trap weaving. mayMoveAt time.Duration @@ -97,7 +97,9 @@ func NewHunter(character *core.Character, options *proto.Player, hunterOptions * core.FillTalentsProto(hunter.Talents.ProtoReflect(), options.TalentsString, TalentTreeSizes) focusPerSecond := 4.0 - hunter.EnableFocusBar(100+(float64(hunter.Talents.KindredSpirits)*5), focusPerSecond, true, nil) + // TODO: Fix this to work with the new talent system. + // hunter.EnableFocusBar(100+(float64(hunter.Talents.KindredSpirits)*5), focusPerSecond, true, nil) + hunter.EnableFocusBar(100, focusPerSecond, true, nil) hunter.PseudoStats.CanParry = true @@ -127,7 +129,7 @@ func NewHunter(character *core.Character, options *proto.Player, hunterOptions * } hunter.AddStatDependencies() - hunter.Pet = hunter.NewHunterPet() + // hunter.Pet = hunter.NewHunterPet() return hunter } @@ -138,28 +140,30 @@ func (hunter *Hunter) Initialize() { hunter.FireTrapTimer = hunter.NewTimer() - hunter.ApplyGlyphs() + // hunter.ApplyGlyphs() hunter.RegisterSpells() - hunter.addBloodthirstyGloves() + // hunter.addBloodthirstyGloves() } +func (hunter *Hunter) ApplyTalents() {} + func (hunter *Hunter) RegisterSpells() { - hunter.registerSteadyShotSpell() + // hunter.registerSteadyShotSpell() hunter.registerArcaneShotSpell() hunter.registerKillShotSpell() - hunter.registerAspectOfTheHawkSpell() - hunter.registerSerpentStingSpell() - hunter.registerMultiShotSpell() - hunter.registerKillCommandSpell() - hunter.registerExplosiveTrapSpell(hunter.FireTrapTimer) - hunter.registerCobraShotSpell() - hunter.registerRapidFireCD() - hunter.registerSilencingShotSpell() + // hunter.registerAspectOfTheHawkSpell() + // hunter.registerSerpentStingSpell() + // hunter.registerMultiShotSpell() + // hunter.registerKillCommandSpell() + // hunter.registerExplosiveTrapSpell(hunter.FireTrapTimer) + // hunter.registerCobraShotSpell() + // hunter.registerRapidFireCD() + // hunter.registerSilencingShotSpell() hunter.registerRaptorStrikeSpell() - hunter.registerTrapLauncher() + // hunter.registerTrapLauncher() hunter.registerHuntersMarkSpell() - hunter.registerAspectOfTheFoxSpell() + // hunter.registerAspectOfTheFoxSpell() } func (hunter *Hunter) AddStatDependencies() { @@ -169,12 +173,13 @@ func (hunter *Hunter) AddStatDependencies() { } func (hunter *Hunter) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if hunter.Talents.TrueshotAura { - raidBuffs.TrueshotAura = true - } - if hunter.Talents.FerociousInspiration && hunter.Options.PetType != proto.HunterOptions_PetNone { - raidBuffs.FerociousInspiration = true - } + // TODO: Fix this to work with the new talent system. + // if hunter.Talents.TrueshotAura { + // raidBuffs.TrueshotAura = true + // } + // if hunter.Talents.FerociousInspiration && hunter.Options.PetType != proto.HunterOptions_PetNone { + // raidBuffs.FerociousInspiration = true + // } if hunter.Options.PetType == proto.HunterOptions_CoreHound { raidBuffs.Bloodlust = true @@ -195,9 +200,11 @@ func (hunter *Hunter) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { raidBuffs.FuriousHowl = true } - if hunter.Talents.HuntingParty { - raidBuffs.HuntingParty = true - } + // TODO: Fix this to work with the new talent system. + // + // if hunter.Talents.HuntingParty { + // raidBuffs.HuntingParty = true + // } } func (hunter *Hunter) AddPartyBuffs(_ *proto.PartyBuffs) { @@ -210,9 +217,6 @@ func (hunter *Hunter) CritMultiplier(isRanged bool, isMFDSpell bool, doubleDipMS return hunter.MeleeCritMultiplier(primaryModifier, secondaryModifier) } -func (hunter *Hunter) HasPrimeGlyph(glyph proto.HunterPrimeGlyph) bool { - return hunter.HasGlyph(int32(glyph)) -} func (hunter *Hunter) HasMajorGlyph(glyph proto.HunterMajorGlyph) bool { return hunter.HasGlyph(int32(glyph)) } diff --git a/sim/hunter/marksmanship/aimed_shot.go b/sim/hunter/marksmanship/_aimed_shot.go similarity index 100% rename from sim/hunter/marksmanship/aimed_shot.go rename to sim/hunter/marksmanship/_aimed_shot.go diff --git a/sim/hunter/marksmanship/chimera_shot.go b/sim/hunter/marksmanship/_chimera_shot.go similarity index 100% rename from sim/hunter/marksmanship/chimera_shot.go rename to sim/hunter/marksmanship/_chimera_shot.go diff --git a/sim/hunter/marksmanship/marksmanship_test.go b/sim/hunter/marksmanship/_marksmanship_test.go similarity index 93% rename from sim/hunter/marksmanship/marksmanship_test.go rename to sim/hunter/marksmanship/_marksmanship_test.go index 63c173100f..07ddd81a92 100644 --- a/sim/hunter/marksmanship/marksmanship_test.go +++ b/sim/hunter/marksmanship/_marksmanship_test.go @@ -87,11 +87,7 @@ var FullConsumes = &proto.Consumes{ } var MMTalents = "032002-2302320032120231221-03" -var MMGlyphs = &proto.Glyphs{ - Prime1: int32(proto.HunterPrimeGlyph_GlyphOfArcaneShot), - Prime2: int32(proto.HunterPrimeGlyph_GlyphOfRapidFire), - Prime3: int32(proto.HunterPrimeGlyph_HunterPrimeGlyphNone), -} +var MMGlyphs = &proto.Glyphs{} var FerocityTalents = &proto.HunterPetTalents{ SerpentSwiftness: 2, Dive: true, diff --git a/sim/hunter/marksmanship/marksmanship.go b/sim/hunter/marksmanship/marksmanship.go index e5a6f651d8..55e6ad468c 100644 --- a/sim/hunter/marksmanship/marksmanship.go +++ b/sim/hunter/marksmanship/marksmanship.go @@ -78,8 +78,8 @@ func (mmHunter *MarksmanshipHunter) Initialize() { FloatValue: 0.15, }) - mmHunter.registerAimedShotSpell() - mmHunter.registerChimeraShotSpell() + // mmHunter.registerAimedShotSpell() + // mmHunter.registerChimeraShotSpell() mmHunter.applyMastery() } diff --git a/sim/hunter/survival/black_arrow.go b/sim/hunter/survival/_black_arrow.go similarity index 100% rename from sim/hunter/survival/black_arrow.go rename to sim/hunter/survival/_black_arrow.go diff --git a/sim/hunter/survival/explosive_shot.go b/sim/hunter/survival/_explosive_shot.go similarity index 100% rename from sim/hunter/survival/explosive_shot.go rename to sim/hunter/survival/_explosive_shot.go diff --git a/sim/hunter/survival/survival_test.go b/sim/hunter/survival/_survival_test.go similarity index 93% rename from sim/hunter/survival/survival_test.go rename to sim/hunter/survival/_survival_test.go index 578920b807..47340add8e 100644 --- a/sim/hunter/survival/survival_test.go +++ b/sim/hunter/survival/_survival_test.go @@ -85,11 +85,7 @@ var FullConsumes = &proto.Consumes{ DefaultPotion: proto.Potions_PotionOfTheTolvir, } var SVTalents = "03-2302-23203003023022121311" -var SVGlyphs = &proto.Glyphs{ - Prime1: int32(proto.HunterPrimeGlyph_GlyphOfExplosiveShot), - Prime2: int32(proto.HunterPrimeGlyph_GlyphOfKillShot), - Prime3: int32(proto.HunterPrimeGlyph_GlyphOfSerpentSting), -} +var SVGlyphs = &proto.Glyphs{} var FerocityTalents = &proto.HunterPetTalents{ SerpentSwiftness: 2, diff --git a/sim/hunter/survival/survival.go b/sim/hunter/survival/survival.go index 578c5da7a6..30e6c6f482 100644 --- a/sim/hunter/survival/survival.go +++ b/sim/hunter/survival/survival.go @@ -28,8 +28,8 @@ func (hunter *SurvivalHunter) Initialize() { // Initialize global Hunter spells hunter.Hunter.Initialize() - hunter.registerExplosiveShotSpell() - hunter.registerBlackArrowSpell(hunter.FireTrapTimer) + // hunter.registerExplosiveShotSpell() + // hunter.registerBlackArrowSpell(hunter.FireTrapTimer) // Apply SV Hunter mastery schoolsAffectedBySurvivalMastery := []stats.SchoolIndex{ stats.SchoolIndexNature, diff --git a/sim/mage/apl_values.go b/sim/mage/_apl_values.go similarity index 100% rename from sim/mage/apl_values.go rename to sim/mage/_apl_values.go diff --git a/sim/mage/arcane_blast.go b/sim/mage/_arcane_blast.go similarity index 100% rename from sim/mage/arcane_blast.go rename to sim/mage/_arcane_blast.go diff --git a/sim/mage/arcane_explosion.go b/sim/mage/_arcane_explosion.go similarity index 100% rename from sim/mage/arcane_explosion.go rename to sim/mage/_arcane_explosion.go diff --git a/sim/mage/blast_wave.go b/sim/mage/_blast_wave.go similarity index 100% rename from sim/mage/blast_wave.go rename to sim/mage/_blast_wave.go diff --git a/sim/mage/blizzard.go b/sim/mage/_blizzard.go similarity index 100% rename from sim/mage/blizzard.go rename to sim/mage/_blizzard.go diff --git a/sim/mage/combustion.go b/sim/mage/_combustion.go similarity index 100% rename from sim/mage/combustion.go rename to sim/mage/_combustion.go diff --git a/sim/mage/flame_orb.go b/sim/mage/_flame_orb.go similarity index 100% rename from sim/mage/flame_orb.go rename to sim/mage/_flame_orb.go diff --git a/sim/mage/focus_magic.go b/sim/mage/_focus_magic.go similarity index 100% rename from sim/mage/focus_magic.go rename to sim/mage/_focus_magic.go diff --git a/sim/mage/frostbolt.go b/sim/mage/_frostbolt.go similarity index 100% rename from sim/mage/frostbolt.go rename to sim/mage/_frostbolt.go diff --git a/sim/mage/frostfire_bolt.go b/sim/mage/_frostfire_bolt.go similarity index 100% rename from sim/mage/frostfire_bolt.go rename to sim/mage/_frostfire_bolt.go diff --git a/sim/mage/frostfire_orb.go b/sim/mage/_frostfire_orb.go similarity index 100% rename from sim/mage/frostfire_orb.go rename to sim/mage/_frostfire_orb.go diff --git a/sim/mage/glyphs.go b/sim/mage/_glyphs.go similarity index 100% rename from sim/mage/glyphs.go rename to sim/mage/_glyphs.go diff --git a/sim/mage/mana_gems.go b/sim/mage/_mana_gems.go similarity index 100% rename from sim/mage/mana_gems.go rename to sim/mage/_mana_gems.go diff --git a/sim/mage/talents_arcane.go b/sim/mage/_talents_arcane.go similarity index 100% rename from sim/mage/talents_arcane.go rename to sim/mage/_talents_arcane.go diff --git a/sim/mage/talents_fire.go b/sim/mage/_talents_fire.go similarity index 100% rename from sim/mage/talents_fire.go rename to sim/mage/_talents_fire.go diff --git a/sim/mage/talents_frost.go b/sim/mage/_talents_frost.go similarity index 100% rename from sim/mage/talents_frost.go rename to sim/mage/_talents_frost.go diff --git a/sim/mage/arcane/arcane_test.go b/sim/mage/arcane/_arcane_test.go similarity index 92% rename from sim/mage/arcane/arcane_test.go rename to sim/mage/arcane/_arcane_test.go index 71b8a7feee..efe2b98117 100644 --- a/sim/mage/arcane/arcane_test.go +++ b/sim/mage/arcane/_arcane_test.go @@ -47,9 +47,6 @@ var ItemFilter = core.ItemFilter{ var ArcaneTalents = "303322021230122210121-23-03" var ArcaneGlyphs = &proto.Glyphs{ - Prime1: int32(proto.MagePrimeGlyph_GlyphOfArcaneMissiles), - Prime2: int32(proto.MagePrimeGlyph_GlyphOfArcaneBlast), - Prime3: int32(proto.MagePrimeGlyph_GlyphOfMageArmor), Major1: int32(proto.MageMajorGlyph_GlyphOfEvocation), Major2: int32(proto.MageMajorGlyph_GlyphOfArcanePower), Major3: int32(proto.MageMajorGlyph_GlyphOfManaShield), diff --git a/sim/mage/fire/fire_test.go b/sim/mage/fire/_fire_test.go similarity index 91% rename from sim/mage/fire/fire_test.go rename to sim/mage/fire/_fire_test.go index f9fd72e1f4..1db63f61ce 100644 --- a/sim/mage/fire/fire_test.go +++ b/sim/mage/fire/_fire_test.go @@ -44,9 +44,6 @@ var ItemFilter = core.ItemFilter{ var FireTalents = "203-230330221120121213031-03" var FireGlyphs = &proto.Glyphs{ - Prime1: int32(proto.MagePrimeGlyph_GlyphOfFireball), - Prime2: int32(proto.MagePrimeGlyph_GlyphOfPyroblast), - Prime3: int32(proto.MagePrimeGlyph_GlyphOfMoltenArmor), Major1: int32(proto.MageMajorGlyph_GlyphOfEvocation), Major2: int32(proto.MageMajorGlyph_GlyphOfDragonSBreath), Major3: int32(proto.MageMajorGlyph_GlyphOfInvisibility), diff --git a/sim/mage/frost/frost_test.go b/sim/mage/frost/_frost_test.go similarity index 100% rename from sim/mage/frost/frost_test.go rename to sim/mage/frost/_frost_test.go diff --git a/sim/mage/mage.go b/sim/mage/mage.go index 790ad8e73d..5c07e03c33 100644 --- a/sim/mage/mage.go +++ b/sim/mage/mage.go @@ -1,8 +1,6 @@ package mage import ( - "time" - "github.com/wowsims/mop/sim/core" "github.com/wowsims/mop/sim/core/proto" "github.com/wowsims/mop/sim/core/stats" @@ -19,9 +17,9 @@ type Mage struct { FireOptions *proto.FireMage_Options FrostOptions *proto.FrostMage_Options - mirrorImage *MirrorImage - flameOrb *FlameOrb - frostfireOrb *FrostfireOrb + mirrorImage *MirrorImage + // flameOrb *FlameOrb + // frostfireOrb *FrostfireOrb t12MirrorImage *T12MirrorImage t13ProcAura *core.StatBuffAura @@ -68,10 +66,6 @@ func (mage *Mage) GetMage() *Mage { return mage } -func (mage *Mage) HasPrimeGlyph(glyph proto.MagePrimeGlyph) bool { - return mage.HasGlyph(int32(glyph)) -} - func (mage *Mage) HasMajorGlyph(glyph proto.MageMajorGlyph) bool { return mage.HasGlyph(int32(glyph)) } @@ -89,78 +83,79 @@ func (mage *Mage) AddPartyBuffs(partyBuffs *proto.PartyBuffs) { func (mage *Mage) ApplyTalents() { mage.ApplyArmorSpecializationEffect(stats.Intellect, proto.ArmorType_ArmorTypeCloth, 89744) - mage.ApplyArcaneTalents() - mage.ApplyFireTalents() - mage.ApplyFrostTalents() + // mage.ApplyArcaneTalents() + // mage.ApplyFireTalents() + // mage.ApplyFrostTalents() - mage.applyGlyphs() + // mage.applyGlyphs() } func (mage *Mage) Initialize() { - mage.applyArmorSpells() - mage.registerArcaneBlastSpell() - mage.registerArcaneExplosionSpell() + // mage.applyArmorSpells() + // mage.registerArcaneBlastSpell() + // mage.registerArcaneExplosionSpell() mage.registerArcaneMissilesSpell() - mage.registerBlizzardSpell() + // mage.registerBlizzardSpell() mage.registerDeepFreezeSpell() mage.registerFireballSpell() mage.registerFireBlastSpell() - mage.registerFlameOrbSpell() - mage.registerFlameOrbExplodeSpell() + // mage.registerFlameOrbSpell() + // mage.registerFlameOrbExplodeSpell() mage.registerFlamestrikeSpell() mage.registerFreezeSpell() - mage.registerFrostboltSpell() - mage.registerFrostfireOrbSpell() + // mage.registerFrostboltSpell() + // mage.registerFrostfireOrbSpell() mage.registerIceLanceSpell() mage.registerScorchSpell() mage.registerLivingBombSpell() - mage.registerFrostfireBoltSpell() + // mage.registerFrostfireBoltSpell() mage.registerEvocation() - mage.registerManaGemsCD() + // mage.registerManaGemsCD() mage.registerMirrorImageCD() - mage.registerCombustionSpell() - mage.registerBlastWaveSpell() + // mage.registerCombustionSpell() + // mage.registerBlastWaveSpell() mage.registerDragonsBreathSpell() // mage.registerSummonWaterElementalCD() - mage.applyArcaneMissileProc() + // mage.applyArcaneMissileProc() } -func (mage *Mage) applyArcaneMissileProc() { - if mage.Talents.HotStreak || mage.Talents.BrainFreeze > 0 { - return - } - - // Aura for when proc is successful - mage.arcaneMissilesProcAura = mage.RegisterAura(core.Aura{ - Label: "Arcane Missiles Proc", - ActionID: core.ActionID{SpellID: 79683}, - Duration: time.Second * 20, - OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { - if spell.ClassSpellMask == MageSpellArcaneMissilesCast { - aura.Deactivate(sim) - } - }, - }) - - procChance := 0.4 - - const MageSpellsArcaneMissilesNow = MageSpellArcaneBarrage | MageSpellArcaneBlast | - MageSpellFireball | MageSpellFrostbolt | MageSpellFrostfireBolt | MageSpellFrostfireOrb - - // Listener for procs - core.MakePermanent(mage.RegisterAura(core.Aura{ - Label: "Arcane Missiles Activation", - OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { - if spell.ClassSpellMask&MageSpellsArcaneMissilesNow == 0 { - return - } - if sim.Proc(procChance, "Arcane Missiles") { - mage.arcaneMissilesProcAura.Activate(sim) - } - }, - })) -} +// TODO: Fix this to work with the new talent system. +// func (mage *Mage) applyArcaneMissileProc() { +// if mage.Talents.HotStreak || mage.Talents.BrainFreeze > 0 { +// return +// } + +// // Aura for when proc is successful +// mage.arcaneMissilesProcAura = mage.RegisterAura(core.Aura{ +// Label: "Arcane Missiles Proc", +// ActionID: core.ActionID{SpellID: 79683}, +// Duration: time.Second * 20, +// OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { +// if spell.ClassSpellMask == MageSpellArcaneMissilesCast { +// aura.Deactivate(sim) +// } +// }, +// }) + +// procChance := 0.4 + +// const MageSpellsArcaneMissilesNow = MageSpellArcaneBarrage | MageSpellArcaneBlast | +// MageSpellFireball | MageSpellFrostbolt | MageSpellFrostfireBolt | MageSpellFrostfireOrb + +// // Listener for procs +// core.MakePermanent(mage.RegisterAura(core.Aura{ +// Label: "Arcane Missiles Activation", +// OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { +// if spell.ClassSpellMask&MageSpellsArcaneMissilesNow == 0 { +// return +// } +// if sim.Proc(procChance, "Arcane Missiles") { +// mage.arcaneMissilesProcAura.Activate(sim) +// } +// }, +// })) +// } func (mage *Mage) Reset(sim *core.Simulation) { mage.arcaneMissileCritSnapshot = 0.0 @@ -180,8 +175,8 @@ func NewMage(character *core.Character, options *proto.Player, mageOptions *prot mage.SetDefaultSpellCritMultiplier(mage.SpellCritMultiplier(1.33, 0.0)) mage.mirrorImage = mage.NewMirrorImage() - mage.flameOrb = mage.NewFlameOrb() - mage.frostfireOrb = mage.NewFrostfireOrb() + // mage.flameOrb = mage.NewFlameOrb() + // mage.frostfireOrb = mage.NewFrostfireOrb() if mage.CouldHaveSetBonus(ItemSetFirehawkRobesOfConflagration, 2) { mage.t12MirrorImage = mage.NewT12MirrorImage() @@ -190,108 +185,108 @@ func NewMage(character *core.Character, options *proto.Player, mageOptions *prot return mage } -func (mage *Mage) applyArmorSpells() { - // Molten Armor - // +3% spell crit, +5% with glyph - critPercentToAdd := 3.0 - if mage.HasPrimeGlyph(proto.MagePrimeGlyph_GlyphOfMoltenArmor) { - critPercentToAdd = 5.0 - } - - mageArmorEffectCategory := "MageArmors" - - moltenArmor := mage.RegisterAura(core.Aura{ - Label: "Molten Armor", - ActionID: core.ActionID{SpellID: 30482}, - Duration: core.NeverExpires, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - mage.AddStatDynamic(sim, stats.SpellCritPercent, critPercentToAdd) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - mage.AddStatDynamic(sim, stats.SpellCritPercent, -critPercentToAdd) - }, - }) - - moltenArmor.NewExclusiveEffect(mageArmorEffectCategory, true, core.ExclusiveEffect{}) - - mage.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 30482}, - SpellSchool: core.SpellSchoolFire, - Flags: core.SpellFlagAPL, - ClassSpellMask: MageSpellMoltenArmor, - - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - }, - ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return !moltenArmor.IsActive() - }, - - ApplyEffects: func(sim *core.Simulation, _ *core.Unit, _ *core.Spell) { - moltenArmor.Activate(sim) - }, - }) - - // Mage Armor - // Restores 3% of your max mana every 5 seconds (+20% affect with glyph) - mageArmorManaMetric := mage.NewManaMetrics(core.ActionID{SpellID: 6117}) - hasGlyph := mage.HasPrimeGlyph(proto.MagePrimeGlyph_GlyphOfMageArmor) - manaRegenPer5Second := core.TernaryFloat64(hasGlyph, .036, 0.03) - - var pa *core.PendingAction - mageArmor := mage.RegisterAura(core.Aura{ - ActionID: core.ActionID{SpellID: 6117}, - Label: "Mage Armor", - Duration: core.NeverExpires, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - pa = core.StartPeriodicAction(sim, core.PeriodicActionOptions{ - Period: time.Second * 5, - OnAction: func(sim *core.Simulation) { - mage.AddMana(sim, mage.MaxMana()*manaRegenPer5Second, mageArmorManaMetric) - }, - }) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - pa.Cancel(sim) - }, - }) - - mageArmor.NewExclusiveEffect(mageArmorEffectCategory, true, core.ExclusiveEffect{}) - - mage.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 6117}, - SpellSchool: core.SpellSchoolArcane, - Flags: core.SpellFlagAPL, - ClassSpellMask: MageSpellMageArmor, - - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - }, - ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return !mageArmor.IsActive() - }, - - ApplyEffects: func(sim *core.Simulation, _ *core.Unit, _ *core.Spell) { - mageArmor.Activate(sim) - }, - }) - - // Frost Armor - // TODO: -} +// func (mage *Mage) applyArmorSpells() { +// // Molten Armor +// // +3% spell crit, +5% with glyph +// critPercentToAdd := 3.0 +// if mage.HasPrimeGlyph(proto.MagePrimeGlyph_GlyphOfMoltenArmor) { +// critPercentToAdd = 5.0 +// } + +// mageArmorEffectCategory := "MageArmors" + +// moltenArmor := mage.RegisterAura(core.Aura{ +// Label: "Molten Armor", +// ActionID: core.ActionID{SpellID: 30482}, +// Duration: core.NeverExpires, +// OnGain: func(aura *core.Aura, sim *core.Simulation) { +// mage.AddStatDynamic(sim, stats.SpellCritPercent, critPercentToAdd) +// }, +// OnExpire: func(aura *core.Aura, sim *core.Simulation) { +// mage.AddStatDynamic(sim, stats.SpellCritPercent, -critPercentToAdd) +// }, +// }) + +// moltenArmor.NewExclusiveEffect(mageArmorEffectCategory, true, core.ExclusiveEffect{}) + +// mage.RegisterSpell(core.SpellConfig{ +// ActionID: core.ActionID{SpellID: 30482}, +// SpellSchool: core.SpellSchoolFire, +// Flags: core.SpellFlagAPL, +// ClassSpellMask: MageSpellMoltenArmor, + +// Cast: core.CastConfig{ +// DefaultCast: core.Cast{ +// GCD: core.GCDDefault, +// }, +// }, +// ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { +// return !moltenArmor.IsActive() +// }, + +// ApplyEffects: func(sim *core.Simulation, _ *core.Unit, _ *core.Spell) { +// moltenArmor.Activate(sim) +// }, +// }) + +// // Mage Armor +// // Restores 3% of your max mana every 5 seconds (+20% affect with glyph) +// mageArmorManaMetric := mage.NewManaMetrics(core.ActionID{SpellID: 6117}) +// hasGlyph := mage.HasPrimeGlyph(proto.MagePrimeGlyph_GlyphOfMageArmor) +// manaRegenPer5Second := core.TernaryFloat64(hasGlyph, .036, 0.03) + +// var pa *core.PendingAction +// mageArmor := mage.RegisterAura(core.Aura{ +// ActionID: core.ActionID{SpellID: 6117}, +// Label: "Mage Armor", +// Duration: core.NeverExpires, +// OnGain: func(aura *core.Aura, sim *core.Simulation) { +// pa = core.StartPeriodicAction(sim, core.PeriodicActionOptions{ +// Period: time.Second * 5, +// OnAction: func(sim *core.Simulation) { +// mage.AddMana(sim, mage.MaxMana()*manaRegenPer5Second, mageArmorManaMetric) +// }, +// }) +// }, +// OnExpire: func(aura *core.Aura, sim *core.Simulation) { +// pa.Cancel(sim) +// }, +// }) + +// mageArmor.NewExclusiveEffect(mageArmorEffectCategory, true, core.ExclusiveEffect{}) + +// mage.RegisterSpell(core.SpellConfig{ +// ActionID: core.ActionID{SpellID: 6117}, +// SpellSchool: core.SpellSchoolArcane, +// Flags: core.SpellFlagAPL, +// ClassSpellMask: MageSpellMageArmor, + +// Cast: core.CastConfig{ +// DefaultCast: core.Cast{ +// GCD: core.GCDDefault, +// }, +// }, +// ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { +// return !mageArmor.IsActive() +// }, + +// ApplyEffects: func(sim *core.Simulation, _ *core.Unit, _ *core.Spell) { +// mageArmor.Activate(sim) +// }, +// }) + +// // Frost Armor +// // TODO: +// } // Agent is a generic way to access underlying mage on any of the agents. type MageAgent interface { GetMage() *Mage } -func (mage *Mage) hasChillEffect(spell *core.Spell) bool { - return spell.ClassSpellMask&MageSpellChill > 0 || (spell.ClassSpellMask == MageSpellBlizzard && mage.Talents.IceShards > 0) -} +// func (mage *Mage) hasChillEffect(spell *core.Spell) bool { +// return spell.ClassSpellMask&MageSpellChill > 0 || (spell.ClassSpellMask == MageSpellBlizzard && mage.Talents.IceShards > 0) +// } const ( MageSpellFlagNone int64 = 0 diff --git a/sim/monk/monk.go b/sim/monk/monk.go index 11c5ac8e17..e6b803d541 100644 --- a/sim/monk/monk.go +++ b/sim/monk/monk.go @@ -112,9 +112,6 @@ func (monk *Monk) GetMonk() *Monk { func (monk *Monk) AddRaidBuffs(_ *proto.RaidBuffs) {} func (monk *Monk) AddPartyBuffs(_ *proto.PartyBuffs) {} -func (monk *Monk) HasPrimeGlyph(glyph proto.MonkPrimeGlyph) bool { - return monk.HasGlyph(int32(glyph)) -} func (monk *Monk) HasMajorGlyph(glyph proto.MonkMajorGlyph) bool { return monk.HasGlyph(int32(glyph)) } diff --git a/sim/paladin/glyphs.go b/sim/paladin/_glyphs.go similarity index 100% rename from sim/paladin/glyphs.go rename to sim/paladin/_glyphs.go diff --git a/sim/paladin/hammer_of_wrath.go b/sim/paladin/_hammer_of_wrath.go similarity index 100% rename from sim/paladin/hammer_of_wrath.go rename to sim/paladin/_hammer_of_wrath.go diff --git a/sim/paladin/inquisition.go b/sim/paladin/_inquisition.go similarity index 100% rename from sim/paladin/inquisition.go rename to sim/paladin/_inquisition.go diff --git a/sim/paladin/seal_of_righteousness.go b/sim/paladin/_seal_of_righteousness.go similarity index 100% rename from sim/paladin/seal_of_righteousness.go rename to sim/paladin/_seal_of_righteousness.go diff --git a/sim/paladin/seal_of_truth.go b/sim/paladin/_seal_of_truth.go similarity index 100% rename from sim/paladin/seal_of_truth.go rename to sim/paladin/_seal_of_truth.go diff --git a/sim/paladin/talents.go b/sim/paladin/_talents.go similarity index 100% rename from sim/paladin/talents.go rename to sim/paladin/_talents.go diff --git a/sim/paladin/talents_holy.go b/sim/paladin/_talents_holy.go similarity index 100% rename from sim/paladin/talents_holy.go rename to sim/paladin/_talents_holy.go diff --git a/sim/paladin/talents_protection.go b/sim/paladin/_talents_protection.go similarity index 100% rename from sim/paladin/talents_protection.go rename to sim/paladin/_talents_protection.go diff --git a/sim/paladin/talents_retribution.go b/sim/paladin/_talents_retribution.go similarity index 100% rename from sim/paladin/talents_retribution.go rename to sim/paladin/_talents_retribution.go diff --git a/sim/paladin/holy/holy_test.go b/sim/paladin/holy/_holy_test.go similarity index 100% rename from sim/paladin/holy/holy_test.go rename to sim/paladin/holy/_holy_test.go diff --git a/sim/paladin/paladin.go b/sim/paladin/paladin.go index 5041e15f88..f8d5476e82 100644 --- a/sim/paladin/paladin.go +++ b/sim/paladin/paladin.go @@ -212,10 +212,6 @@ func (paladin *Paladin) GetCharacter() *core.Character { return &paladin.Character } -func (paladin *Paladin) HasPrimeGlyph(glyph proto.PaladinPrimeGlyph) bool { - return paladin.HasGlyph(int32(glyph)) -} - func (paladin *Paladin) HasMajorGlyph(glyph proto.PaladinMajorGlyph) bool { return paladin.HasGlyph(int32(glyph)) } @@ -227,40 +223,42 @@ func (paladin *Paladin) GetPaladin() *Paladin { return paladin } -func (paladin *Paladin) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if paladin.PaladinAura == proto.PaladinAura_Devotion { - raidBuffs.DevotionAura = true - } - if paladin.PaladinAura == proto.PaladinAura_Retribution { - raidBuffs.RetributionAura = true - } - if paladin.PaladinAura == proto.PaladinAura_Resistance { - raidBuffs.ResistanceAura = true - } - if paladin.Talents.Communion { - raidBuffs.Communion = true - } -} +// func (paladin *Paladin) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// if paladin.PaladinAura == proto.PaladinAura_Devotion { +// raidBuffs.DevotionAura = true +// } +// if paladin.PaladinAura == proto.PaladinAura_Retribution { +// raidBuffs.RetributionAura = true +// } +// if paladin.PaladinAura == proto.PaladinAura_Resistance { +// raidBuffs.ResistanceAura = true +// } +// if paladin.Talents.Communion { +// raidBuffs.Communion = true +// } +// } func (paladin *Paladin) AddPartyBuffs(_ *proto.PartyBuffs) { } func (paladin *Paladin) Initialize() { - paladin.applyGlyphs() + // paladin.applyGlyphs() paladin.registerSpells() paladin.addBloodthirstyGloves() } +func (paladin *Paladin) ApplyTalents() {} + func (paladin *Paladin) registerSpells() { paladin.registerCrusaderStrike() paladin.registerExorcism() paladin.registerJudgement() - paladin.registerSealOfTruth() + // paladin.registerSealOfTruth() paladin.registerSealOfInsight() - paladin.registerSealOfRighteousness() + // paladin.registerSealOfRighteousness() paladin.registerSealOfJustice() - paladin.registerInquisition() - paladin.registerHammerOfWrathSpell() + // paladin.registerInquisition() + // paladin.registerHammerOfWrathSpell() paladin.registerAvengingWrath() paladin.registerDivinePleaSpell() paladin.registerConsecrationSpell() diff --git a/sim/paladin/protection/protection_test.go b/sim/paladin/protection/_protection_test.go similarity index 94% rename from sim/paladin/protection/protection_test.go rename to sim/paladin/protection/_protection_test.go index fa7ea662f7..1908ffaf84 100644 --- a/sim/paladin/protection/protection_test.go +++ b/sim/paladin/protection/_protection_test.go @@ -81,9 +81,6 @@ func BenchmarkSimulate(b *testing.B) { var StandardTalents = "-32023013122121101231-032032" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.PaladinPrimeGlyph_GlyphOfHammerOfTheRighteous), - Prime2: int32(proto.PaladinPrimeGlyph_GlyphOfCrusaderStrike), - Prime3: int32(proto.PaladinPrimeGlyph_GlyphOfSealOfTruth), Major1: int32(proto.PaladinMajorGlyph_GlyphOfTheAsceticCrusader), Major2: int32(proto.PaladinMajorGlyph_GlyphOfLayOnHands), Major3: int32(proto.PaladinMajorGlyph_GlyphOfFocusedShield), diff --git a/sim/paladin/retribution/retribution_test.go b/sim/paladin/retribution/_retribution_test.go similarity index 95% rename from sim/paladin/retribution/retribution_test.go rename to sim/paladin/retribution/_retribution_test.go index 3254200604..7a7b3d121c 100644 --- a/sim/paladin/retribution/retribution_test.go +++ b/sim/paladin/retribution/_retribution_test.go @@ -87,9 +87,6 @@ func BenchmarkSimulate(b *testing.B) { var StandardTalents = "203002-02-23203213211113002311" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.PaladinPrimeGlyph_GlyphOfTemplarSVerdict), - Prime2: int32(proto.PaladinPrimeGlyph_GlyphOfSealOfTruth), - Prime3: int32(proto.PaladinPrimeGlyph_GlyphOfExorcism), Major1: int32(proto.PaladinMajorGlyph_GlyphOfHammerOfWrath), Major2: int32(proto.PaladinMajorGlyph_GlyphOfTheAsceticCrusader), Major3: int32(proto.PaladinMajorGlyph_GlyphOfConsecration), diff --git a/sim/priest/dispersion.go b/sim/priest/_dispersion.go similarity index 100% rename from sim/priest/dispersion.go rename to sim/priest/_dispersion.go diff --git a/sim/priest/glyphs.go b/sim/priest/_glyphs.go similarity index 100% rename from sim/priest/glyphs.go rename to sim/priest/_glyphs.go diff --git a/sim/priest/power_infusion.go b/sim/priest/_power_infusion.go similarity index 100% rename from sim/priest/power_infusion.go rename to sim/priest/_power_infusion.go diff --git a/sim/priest/shadow_word_pain.go b/sim/priest/_shadow_word_pain.go similarity index 100% rename from sim/priest/shadow_word_pain.go rename to sim/priest/_shadow_word_pain.go diff --git a/sim/priest/talents.go b/sim/priest/_talents.go similarity index 100% rename from sim/priest/talents.go rename to sim/priest/_talents.go diff --git a/sim/priest/vampiric_touch.go b/sim/priest/_vampiric_touch.go similarity index 100% rename from sim/priest/vampiric_touch.go rename to sim/priest/_vampiric_touch.go diff --git a/sim/priest/discipline/discipline.go b/sim/priest/discipline/discipline.go index 3ddf3027d6..c5e17aceb3 100644 --- a/sim/priest/discipline/discipline.go +++ b/sim/priest/discipline/discipline.go @@ -44,9 +44,10 @@ func newDisciplinePriest(character *core.Character, options *proto.Player) *Disc } discPriest.SelfBuffs.PowerInfusionTarget = &proto.UnitReference{} - if discPriest.Talents.PowerInfusion && discPriest.Options.PowerInfusionTarget != nil { - discPriest.SelfBuffs.PowerInfusionTarget = discPriest.Options.PowerInfusionTarget - } + // TODO: Fix this to work with the new talent system. + // if discPriest.Talents.PowerInfusion && discPriest.Options.PowerInfusionTarget != nil { + // discPriest.SelfBuffs.PowerInfusionTarget = discPriest.Options.PowerInfusionTarget + // } return discPriest } @@ -73,6 +74,9 @@ func (discPriest *DisciplinePriest) Initialize() { // discPriest.RegisterHymnOfHopeCD() } +func (holyPriest *DisciplinePriest) ApplyTalents() { +} + func (discPriest *DisciplinePriest) Reset(sim *core.Simulation) { //discPriest.Priest.Reset(sim) } diff --git a/sim/priest/holy/holy.go b/sim/priest/holy/holy.go index 1a18a812ba..3985470972 100644 --- a/sim/priest/holy/holy.go +++ b/sim/priest/holy/holy.go @@ -56,6 +56,9 @@ func (holyPriest *HolyPriest) Initialize() { // holyPriest.RegisterHymnOfHopeCD() } +func (holyPriest *HolyPriest) ApplyTalents() { +} + func (holyPriest *HolyPriest) Reset(sim *core.Simulation) { //holyPriest.Priest.Reset(sim) } diff --git a/sim/priest/priest.go b/sim/priest/priest.go index 812e2175fb..32595e6966 100644 --- a/sim/priest/priest.go +++ b/sim/priest/priest.go @@ -98,16 +98,16 @@ func (priest *Priest) Initialize() { } priest.registerDevouringPlagueSpell() - priest.registerShadowWordPainSpell() + // priest.registerShadowWordPainSpell() priest.registerMindBlastSpell() priest.registerShadowWordDeathSpell() priest.registerShadowfiendSpell() - priest.registerVampiricTouchSpell() - priest.registerDispersionSpell() + // priest.registerVampiricTouchSpell() + // priest.registerDispersionSpell() priest.registerMindSpike() - priest.registerPowerInfusionSpell() + // priest.registerPowerInfusionSpell() priest.newMindFlaySpell() priest.newMindSearSpell() @@ -161,9 +161,6 @@ type PriestAgent interface { GetPriest() *Priest } -func (hunter *Priest) HasPrimeGlyph(glyph proto.PriestPrimeGlyph) bool { - return hunter.HasGlyph(int32(glyph)) -} func (hunter *Priest) HasMajorGlyph(glyph proto.PriestMajorGlyph) bool { return hunter.HasGlyph(int32(glyph)) } diff --git a/sim/priest/shadow/shadow_test.go b/sim/priest/shadow/_shadow_test.go similarity index 92% rename from sim/priest/shadow/shadow_test.go rename to sim/priest/shadow/_shadow_test.go index 5ea1da2d00..459ebc1e60 100644 --- a/sim/priest/shadow/shadow_test.go +++ b/sim/priest/shadow/_shadow_test.go @@ -50,9 +50,6 @@ func TestShadow(t *testing.T) { var DefaultTalents = "032212--322032210201222100231" var DefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.PriestPrimeGlyph_GlyphOfMindFlay), - Prime2: int32(proto.PriestPrimeGlyph_GlyphOfShadowWordPain), - Prime3: int32(proto.PriestPrimeGlyph_GlyphOfShadowWordDeath), Major1: int32(proto.PriestMajorGlyph_GlyphOfFade), Major2: int32(proto.PriestMajorGlyph_GlyphOfInnerFire), Major3: int32(proto.PriestMajorGlyph_GlyphOfSpiritTap), diff --git a/sim/priest/shadow/shadow.go b/sim/priest/shadow/shadow.go index a9ba100645..651482574e 100644 --- a/sim/priest/shadow/shadow.go +++ b/sim/priest/shadow/shadow.go @@ -40,10 +40,11 @@ func NewShadowPriest(character *core.Character, options *proto.Player) *ShadowPr options: shadowOptions.Options, } - spriest.SelfBuffs.PowerInfusionTarget = &proto.UnitReference{} - if spriest.Talents.PowerInfusion && shadowOptions.Options.PowerInfusionTarget != nil { - spriest.SelfBuffs.PowerInfusionTarget = shadowOptions.Options.PowerInfusionTarget - } + // TODO: Fix this to work with the new talent system. + // spriest.SelfBuffs.PowerInfusionTarget = &proto.UnitReference{} + // if spriest.Talents.PowerInfusion && shadowOptions.Options.PowerInfusionTarget != nil { + // spriest.SelfBuffs.PowerInfusionTarget = shadowOptions.Options.PowerInfusionTarget + // } return spriest } @@ -70,7 +71,7 @@ func getMasteryBonus(masteryPoints float64) float64 { } func (spriest *ShadowPriest) ApplyTalents() { - spriest.Priest.ApplyTalents() + // spriest.Priest.ApplyTalents() // apply shadow spec specific auras // make it an aura so it's visible that it's used in the timeline @@ -174,7 +175,9 @@ func handleShadowOrbPower(spriest *ShadowPriest, sim *core.Simulation, spell *co } if spell.ClassSpellMask&(priest.PriestSpellShadowWordPain|priest.PriestSpellMindFlay) > 0 { - procChance := 0.1 + float64(spriest.Talents.HarnessedShadows)*0.04 + // TODO: Fix this to work with the new talent system. + // procChance := 0.1 + float64(spriest.Talents.HarnessedShadows)*0.04 + procChance := 0.1 if sim.Proc(procChance, "Shadow Orb Power") { spriest.ShadowOrbsAura.Activate(sim) spriest.ShadowOrbsAura.AddStack(sim) diff --git a/sim/rogue/ambush.go b/sim/rogue/_ambush.go similarity index 100% rename from sim/rogue/ambush.go rename to sim/rogue/_ambush.go diff --git a/sim/rogue/backstab.go b/sim/rogue/_backstab.go similarity index 100% rename from sim/rogue/backstab.go rename to sim/rogue/_backstab.go diff --git a/sim/rogue/envenom.go b/sim/rogue/_envenom.go similarity index 100% rename from sim/rogue/envenom.go rename to sim/rogue/_envenom.go diff --git a/sim/rogue/eviscerate.go b/sim/rogue/_eviscerate.go similarity index 100% rename from sim/rogue/eviscerate.go rename to sim/rogue/_eviscerate.go diff --git a/sim/rogue/expose_armor.go b/sim/rogue/_expose_armor.go similarity index 100% rename from sim/rogue/expose_armor.go rename to sim/rogue/_expose_armor.go diff --git a/sim/rogue/fan_of_knives.go b/sim/rogue/_fan_of_knives.go similarity index 100% rename from sim/rogue/fan_of_knives.go rename to sim/rogue/_fan_of_knives.go diff --git a/sim/rogue/garrote.go b/sim/rogue/_garrote.go similarity index 100% rename from sim/rogue/garrote.go rename to sim/rogue/_garrote.go diff --git a/sim/rogue/gouge.go b/sim/rogue/_gouge.go similarity index 100% rename from sim/rogue/gouge.go rename to sim/rogue/_gouge.go diff --git a/sim/rogue/items.go b/sim/rogue/_items.go similarity index 100% rename from sim/rogue/items.go rename to sim/rogue/_items.go diff --git a/sim/rogue/poisons.go b/sim/rogue/_poisons.go similarity index 100% rename from sim/rogue/poisons.go rename to sim/rogue/_poisons.go diff --git a/sim/rogue/recuperate.go b/sim/rogue/_recuperate.go similarity index 100% rename from sim/rogue/recuperate.go rename to sim/rogue/_recuperate.go diff --git a/sim/rogue/rupture.go b/sim/rogue/_rupture.go similarity index 100% rename from sim/rogue/rupture.go rename to sim/rogue/_rupture.go diff --git a/sim/rogue/shiv.go b/sim/rogue/_shiv.go similarity index 100% rename from sim/rogue/shiv.go rename to sim/rogue/_shiv.go diff --git a/sim/rogue/sinister_strike.go b/sim/rogue/_sinister_strike.go similarity index 100% rename from sim/rogue/sinister_strike.go rename to sim/rogue/_sinister_strike.go diff --git a/sim/rogue/slice_and_dice.go b/sim/rogue/_slice_and_dice.go similarity index 100% rename from sim/rogue/slice_and_dice.go rename to sim/rogue/_slice_and_dice.go diff --git a/sim/rogue/stealth.go b/sim/rogue/_stealth.go similarity index 100% rename from sim/rogue/stealth.go rename to sim/rogue/_stealth.go diff --git a/sim/rogue/talents.go b/sim/rogue/_talents.go similarity index 100% rename from sim/rogue/talents.go rename to sim/rogue/_talents.go diff --git a/sim/rogue/tricks_of_the_trade.go b/sim/rogue/_tricks_of_the_trade.go similarity index 100% rename from sim/rogue/tricks_of_the_trade.go rename to sim/rogue/_tricks_of_the_trade.go diff --git a/sim/rogue/vanish.go b/sim/rogue/_vanish.go similarity index 100% rename from sim/rogue/vanish.go rename to sim/rogue/_vanish.go diff --git a/sim/rogue/assassination/assassination_test.go b/sim/rogue/assassination/_assassination_test.go similarity index 95% rename from sim/rogue/assassination/assassination_test.go rename to sim/rogue/assassination/_assassination_test.go index 8d8104330f..c2755e0caf 100644 --- a/sim/rogue/assassination/assassination_test.go +++ b/sim/rogue/assassination/_assassination_test.go @@ -65,11 +65,7 @@ func TestAssassination(t *testing.T) { var AssassinationTalents = "0333230013122110321-002-203003" -var AssassinationGlyphs = &proto.Glyphs{ - Prime1: int32(proto.RoguePrimeGlyph_GlyphOfBackstab), - Prime2: int32(proto.RoguePrimeGlyph_GlyphOfRupture), - Prime3: int32(proto.RoguePrimeGlyph_GlyphOfMutilate), -} +var AssassinationGlyphs = &proto.Glyphs{} var PlayerOptionsAssassinationDI = &proto.Player_AssassinationRogue{ AssassinationRogue: &proto.AssassinationRogue{ diff --git a/sim/rogue/assassination/coldblood.go b/sim/rogue/assassination/_coldblood.go similarity index 100% rename from sim/rogue/assassination/coldblood.go rename to sim/rogue/assassination/_coldblood.go diff --git a/sim/rogue/assassination/mutilate.go b/sim/rogue/assassination/_mutilate.go similarity index 100% rename from sim/rogue/assassination/mutilate.go rename to sim/rogue/assassination/_mutilate.go diff --git a/sim/rogue/assassination/overkill.go b/sim/rogue/assassination/_overkill.go similarity index 100% rename from sim/rogue/assassination/overkill.go rename to sim/rogue/assassination/_overkill.go diff --git a/sim/rogue/assassination/sealfate.go b/sim/rogue/assassination/_sealfate.go similarity index 100% rename from sim/rogue/assassination/sealfate.go rename to sim/rogue/assassination/_sealfate.go diff --git a/sim/rogue/assassination/vendetta.go b/sim/rogue/assassination/_vendetta.go similarity index 100% rename from sim/rogue/assassination/vendetta.go rename to sim/rogue/assassination/_vendetta.go diff --git a/sim/rogue/assassination/venomous_wounds.go b/sim/rogue/assassination/_venomous_wounds.go similarity index 100% rename from sim/rogue/assassination/venomous_wounds.go rename to sim/rogue/assassination/_venomous_wounds.go diff --git a/sim/rogue/assassination/assassination.go b/sim/rogue/assassination/assassination.go index df87401463..08b31720f0 100644 --- a/sim/rogue/assassination/assassination.go +++ b/sim/rogue/assassination/assassination.go @@ -37,12 +37,12 @@ func (sinRogue *AssassinationRogue) Initialize() { sinRogue.MasteryBaseValue = 0.28 sinRogue.MasteryMultiplier = 0.035 - sinRogue.registerMutilateSpell() - sinRogue.registerOverkill() - sinRogue.registerColdBloodCD() - sinRogue.applySealFate() - sinRogue.registerVenomousWounds() - sinRogue.registerVendetta() + // sinRogue.registerMutilateSpell() + // sinRogue.registerOverkill() + // sinRogue.registerColdBloodCD() + // sinRogue.applySealFate() + // sinRogue.registerVenomousWounds() + // sinRogue.registerVendetta() // Apply Mastery // As far as I am able to find, Asn's Mastery is an additive bonus. To be tested. diff --git a/sim/rogue/combat/adrenaline_rush.go b/sim/rogue/combat/_adrenaline_rush.go similarity index 100% rename from sim/rogue/combat/adrenaline_rush.go rename to sim/rogue/combat/_adrenaline_rush.go diff --git a/sim/rogue/combat/bandits_guile.go b/sim/rogue/combat/_bandits_guile.go similarity index 100% rename from sim/rogue/combat/bandits_guile.go rename to sim/rogue/combat/_bandits_guile.go diff --git a/sim/rogue/combat/combat_potency.go b/sim/rogue/combat/_combat_potency.go similarity index 100% rename from sim/rogue/combat/combat_potency.go rename to sim/rogue/combat/_combat_potency.go diff --git a/sim/rogue/combat/combat_test.go b/sim/rogue/combat/_combat_test.go similarity index 94% rename from sim/rogue/combat/combat_test.go rename to sim/rogue/combat/_combat_test.go index 48634bd548..73ea38400a 100644 --- a/sim/rogue/combat/combat_test.go +++ b/sim/rogue/combat/_combat_test.go @@ -59,11 +59,7 @@ func TestCombat(t *testing.T) { var CombatTalents = "0322-2332030310230012321-003" -var CombatGlyphs = &proto.Glyphs{ - Prime1: int32(proto.RoguePrimeGlyph_GlyphOfSinisterStrike), - Prime2: int32(proto.RoguePrimeGlyph_GlyphOfSliceAndDice), - Prime3: int32(proto.RoguePrimeGlyph_GlyphOfAdrenalineRush), -} +var CombatGlyphs = &proto.Glyphs{} var PlayerOptionsDI = &proto.Player_CombatRogue{ CombatRogue: &proto.CombatRogue{ diff --git a/sim/rogue/combat/killing_spree.go b/sim/rogue/combat/_killing_spree.go similarity index 100% rename from sim/rogue/combat/killing_spree.go rename to sim/rogue/combat/_killing_spree.go diff --git a/sim/rogue/combat/revealing_strike.go b/sim/rogue/combat/_revealing_strike.go similarity index 100% rename from sim/rogue/combat/revealing_strike.go rename to sim/rogue/combat/_revealing_strike.go diff --git a/sim/rogue/combat/combat.go b/sim/rogue/combat/combat.go index 58d47d88bb..1c8f664a4c 100644 --- a/sim/rogue/combat/combat.go +++ b/sim/rogue/combat/combat.go @@ -54,14 +54,14 @@ func (combatRogue *CombatRogue) Initialize() { combatRogue.AdditiveEnergyRegenBonus += 0.25 combatRogue.MultiplyStat(stats.AttackPower, 1.3) - combatRogue.registerRevealingStrike() - combatRogue.registerBladeFlurry() - combatRogue.registerBanditsGuile() + // combatRogue.registerRevealingStrike() + // combatRogue.registerBladeFlurry() + // combatRogue.registerBanditsGuile() - combatRogue.applyCombatPotency() + // combatRogue.applyCombatPotency() - combatRogue.registerKillingSpreeCD() - combatRogue.registerAdrenalineRushCD() + // combatRogue.registerKillingSpreeCD() + // combatRogue.registerAdrenalineRushCD() combatRogue.applyMastery() } @@ -77,8 +77,9 @@ func (combatRogue *CombatRogue) GetRogue() *rogue.Rogue { func (combatRogue *CombatRogue) Reset(sim *core.Simulation) { combatRogue.Rogue.Reset(sim) - if combatRogue.Talents.BanditsGuile > 0 { - combatRogue.BanditsGuileAura.Activate(sim) - } + // TODO: Fix this to work with the new talent system. + // if combatRogue.Talents.BanditsGuile > 0 { + // combatRogue.BanditsGuileAura.Activate(sim) + // } } diff --git a/sim/rogue/rogue.go b/sim/rogue/rogue.go index 1c4cddfee5..e4f716ff4c 100644 --- a/sim/rogue/rogue.go +++ b/sim/rogue/rogue.go @@ -122,47 +122,44 @@ func (rogue *Rogue) AddPartyBuffs(_ *proto.PartyBuffs) {} // Apply the effect of successfully casting a finisher to combo points func (rogue *Rogue) ApplyFinisher(sim *core.Simulation, spell *core.Spell) { - numPoints := rogue.ComboPoints() - rogue.SpendComboPoints(sim, spell.ComboPointMetrics()) - - if rogue.Talents.Ruthlessness > 0 && (spell.ClassSpellMask&RogueSpellDamagingFinisher != 0) { - procChance := 0.2 * float64(rogue.Talents.Ruthlessness) - if sim.Proc(procChance, "Ruthlessness") { - rogue.AddComboPoints(sim, 1, rogue.ruthlessnessMetrics) - } - } - if rogue.Talents.RelentlessStrikes > 0 { - procChance := []float64{0.0, 0.07, 0.14, 0.2}[rogue.Talents.RelentlessStrikes] * float64(numPoints) - if sim.Proc(procChance, "Relentless Strikes") { - rogue.AddEnergy(sim, 25, rogue.relentlessStrikesMetrics) - } - } - if rogue.Talents.RestlessBlades > 0 && (spell.ClassSpellMask&RogueSpellDamagingFinisher != 0) { - cdReduction := time.Duration(rogue.Talents.RestlessBlades) * time.Second * time.Duration(numPoints) - - if rogue.KillingSpree != nil { - ksNewTime := rogue.KillingSpree.CD.Timer.ReadyAt() - cdReduction - rogue.KillingSpree.CD.Timer.Set(ksNewTime) - } - if rogue.AdrenalineRush != nil { - arNewTime := rogue.AdrenalineRush.CD.Timer.ReadyAt() - cdReduction - rogue.AdrenalineRush.CD.Timer.Set(arNewTime) - } - } - if rogue.Talents.SerratedBlades > 0 && spell == rogue.Eviscerate { - chancePerPoint := 0.1 * float64(rogue.Talents.SerratedBlades) - procChance := float64(numPoints) * chancePerPoint - if sim.Proc(procChance, "Serrated Blades") { - rupAura := rogue.Rupture.Dot(spell.Unit.CurrentTarget) - if rupAura.IsActive() { - rupAura.Activate(sim) - } - } - } -} - -func (rogue *Rogue) HasPrimeGlyph(glyph proto.RoguePrimeGlyph) bool { - return rogue.HasGlyph(int32(glyph)) + // numPoints := rogue.ComboPoints() + // rogue.SpendComboPoints(sim, spell.ComboPointMetrics()) + + // TODO: Fix this to work with the new talent system. + // if rogue.Talents.Ruthlessness > 0 && (spell.ClassSpellMask&RogueSpellDamagingFinisher != 0) { + // procChance := 0.2 * float64(rogue.Talents.Ruthlessness) + // if sim.Proc(procChance, "Ruthlessness") { + // rogue.AddComboPoints(sim, 1, rogue.ruthlessnessMetrics) + // } + // } + // if rogue.Talents.RelentlessStrikes > 0 { + // procChance := []float64{0.0, 0.07, 0.14, 0.2}[rogue.Talents.RelentlessStrikes] * float64(numPoints) + // if sim.Proc(procChance, "Relentless Strikes") { + // rogue.AddEnergy(sim, 25, rogue.relentlessStrikesMetrics) + // } + // } + // if rogue.Talents.RestlessBlades > 0 && (spell.ClassSpellMask&RogueSpellDamagingFinisher != 0) { + // cdReduction := time.Duration(rogue.Talents.RestlessBlades) * time.Second * time.Duration(numPoints) + + // if rogue.KillingSpree != nil { + // ksNewTime := rogue.KillingSpree.CD.Timer.ReadyAt() - cdReduction + // rogue.KillingSpree.CD.Timer.Set(ksNewTime) + // } + // if rogue.AdrenalineRush != nil { + // arNewTime := rogue.AdrenalineRush.CD.Timer.ReadyAt() - cdReduction + // rogue.AdrenalineRush.CD.Timer.Set(arNewTime) + // } + // } + // if rogue.Talents.SerratedBlades > 0 && spell == rogue.Eviscerate { + // chancePerPoint := 0.1 * float64(rogue.Talents.SerratedBlades) + // procChance := float64(numPoints) * chancePerPoint + // if sim.Proc(procChance, "Serrated Blades") { + // rupAura := rogue.Rupture.Dot(spell.Unit.CurrentTarget) + // if rupAura.IsActive() { + // rupAura.Activate(sim) + // } + // } + // } } func (rogue *Rogue) HasMajorGlyph(glyph proto.RogueMajorGlyph) bool { @@ -179,28 +176,28 @@ func (rogue *Rogue) Initialize() { rogue.AutoAttacks.OHConfig().CritMultiplier = rogue.MeleeCritMultiplier(false) rogue.AutoAttacks.RangedConfig().CritMultiplier = rogue.MeleeCritMultiplier(false) - rogue.registerStealthAura() - rogue.registerVanishSpell() + // rogue.registerStealthAura() + // rogue.registerVanishSpell() rogue.registerFeintSpell() - rogue.registerAmbushSpell() - rogue.registerGarrote() - rogue.registerSinisterStrikeSpell() - rogue.registerBackstabSpell() - rogue.registerRupture() - rogue.registerSliceAndDice() - rogue.registerEviscerate() - rogue.registerEnvenom() - rogue.registerExposeArmorSpell() - rogue.registerRecuperate() - rogue.registerFanOfKnives() - rogue.registerTricksOfTheTradeSpell() - rogue.registerDeadlyPoisonSpell() - rogue.registerInstantPoisonSpell() - rogue.registerWoundPoisonSpell() - rogue.registerPoisonAuras() - rogue.registerShivSpell() + // rogue.registerAmbushSpell() + // rogue.registerGarrote() + // rogue.registerSinisterStrikeSpell() + // rogue.registerBackstabSpell() + // rogue.registerRupture() + // rogue.registerSliceAndDice() + // rogue.registerEviscerate() + // rogue.registerEnvenom() + // rogue.registerExposeArmorSpell() + // rogue.registerRecuperate() + // rogue.registerFanOfKnives() + // rogue.registerTricksOfTheTradeSpell() + // rogue.registerDeadlyPoisonSpell() + // rogue.registerInstantPoisonSpell() + // rogue.registerWoundPoisonSpell() + // rogue.registerPoisonAuras() + // rogue.registerShivSpell() rogue.registerThistleTeaCD() - rogue.registerGougeSpell() + // rogue.registerGougeSpell() rogue.T12ToTLastBuff = 3 @@ -221,11 +218,13 @@ func (rogue *Rogue) Initialize() { rogue.Options.OhImbue = proto.RogueOptions_DeadlyPoison rogue.lastDeadlyPoisonProcMask = core.ProcMaskMeleeOH } - rogue.UpdateInstantPoisonPPM(0) + // rogue.UpdateInstantPoisonPPM(0) } }) } +func (rogue *Rogue) ApplyTalents() {} + func (rogue *Rogue) ApplyAdditiveEnergyRegenBonus(sim *core.Simulation, increment float64) { oldBonus := rogue.AdditiveEnergyRegenBonus newBonus := oldBonus + increment @@ -245,9 +244,10 @@ func (rogue *Rogue) Reset(sim *core.Simulation) { func (rogue *Rogue) MeleeCritMultiplier(applyLethality bool) float64 { secondaryModifier := 0.0 - if applyLethality { - secondaryModifier += 0.1 * float64(rogue.Talents.Lethality) - } + // TODO: Fix this to work with the new talent system. + // if applyLethality { + // secondaryModifier += 0.1 * float64(rogue.Talents.Lethality) + // } return rogue.Character.MeleeCritMultiplier(1.0, secondaryModifier) } func (rogue *Rogue) SpellCritMultiplier() float64 { @@ -289,7 +289,7 @@ func NewRogue(character *core.Character, options *proto.RogueOptions, talents st Ranged: rogue.WeaponFromRanged(0), AutoSwingMelee: true, }) - rogue.applyPoisons() + // rogue.applyPoisons() rogue.AddStatDependency(stats.Strength, stats.AttackPower, 1) rogue.AddStatDependency(stats.Agility, stats.AttackPower, 2) @@ -301,15 +301,15 @@ func NewRogue(character *core.Character, options *proto.RogueOptions, talents st // Apply the effects of the Cut to the Chase talent // TODO: Put a fresh instance of SnD rather than use the original as per client // TODO (TheBackstabi, 3/16/2024) - Assassination only talent, to be moved? -func (rogue *Rogue) ApplyCutToTheChase(sim *core.Simulation) { - if rogue.Talents.CutToTheChase > 0 && rogue.SliceAndDiceAura.IsActive() { - procChance := []float64{0.0, 0.33, 0.67, 1.0}[rogue.Talents.CutToTheChase] - if procChance == 1 || sim.Proc(procChance, "Cut to the Chase") { - rogue.SliceAndDiceAura.Duration = rogue.sliceAndDiceDurations[5] - rogue.SliceAndDiceAura.Activate(sim) - } - } -} +// func (rogue *Rogue) ApplyCutToTheChase(sim *core.Simulation) { +// if rogue.Talents.CutToTheChase > 0 && rogue.SliceAndDiceAura.IsActive() { +// procChance := []float64{0.0, 0.33, 0.67, 1.0}[rogue.Talents.CutToTheChase] +// if procChance == 1 || sim.Proc(procChance, "Cut to the Chase") { +// rogue.SliceAndDiceAura.Duration = rogue.sliceAndDiceDurations[5] +// rogue.SliceAndDiceAura.Activate(sim) +// } +// } +// } // Deactivate Stealth if it is active. This must be added to all abilities that cause Stealth to fade. func (rogue *Rogue) BreakStealth(sim *core.Simulation) { @@ -337,9 +337,10 @@ func (rogue *Rogue) IsStealthed() bool { if rogue.StealthAura.IsActive() { return true } - if rogue.Talents.ShadowDance && rogue.ShadowDanceAura.IsActive() { - return true - } + // TODO: Fix this to work with the new talent system. + // if rogue.Talents.ShadowDance && rogue.ShadowDanceAura.IsActive() { + // return true + // } return false } diff --git a/sim/rogue/subtlety/find_weakness.go b/sim/rogue/subtlety/_find_weakness.go similarity index 100% rename from sim/rogue/subtlety/find_weakness.go rename to sim/rogue/subtlety/_find_weakness.go diff --git a/sim/rogue/subtlety/hemorrhage.go b/sim/rogue/subtlety/_hemorrhage.go similarity index 100% rename from sim/rogue/subtlety/hemorrhage.go rename to sim/rogue/subtlety/_hemorrhage.go diff --git a/sim/rogue/subtlety/honor_among_thieves.go b/sim/rogue/subtlety/_honor_among_thieves.go similarity index 100% rename from sim/rogue/subtlety/honor_among_thieves.go rename to sim/rogue/subtlety/_honor_among_thieves.go diff --git a/sim/rogue/subtlety/initiative.go b/sim/rogue/subtlety/_initiative.go similarity index 100% rename from sim/rogue/subtlety/initiative.go rename to sim/rogue/subtlety/_initiative.go diff --git a/sim/rogue/subtlety/premeditation.go b/sim/rogue/subtlety/_premeditation.go similarity index 100% rename from sim/rogue/subtlety/premeditation.go rename to sim/rogue/subtlety/_premeditation.go diff --git a/sim/rogue/subtlety/preparation.go b/sim/rogue/subtlety/_preparation.go similarity index 100% rename from sim/rogue/subtlety/preparation.go rename to sim/rogue/subtlety/_preparation.go diff --git a/sim/rogue/subtlety/sanguinary_vein.go b/sim/rogue/subtlety/_sanguinary_vein.go similarity index 100% rename from sim/rogue/subtlety/sanguinary_vein.go rename to sim/rogue/subtlety/_sanguinary_vein.go diff --git a/sim/rogue/subtlety/shadow_dance.go b/sim/rogue/subtlety/_shadow_dance.go similarity index 100% rename from sim/rogue/subtlety/shadow_dance.go rename to sim/rogue/subtlety/_shadow_dance.go diff --git a/sim/rogue/subtlety/subtlety_test.go b/sim/rogue/subtlety/_subtlety_test.go similarity index 94% rename from sim/rogue/subtlety/subtlety_test.go rename to sim/rogue/subtlety/_subtlety_test.go index bbb61075f2..252ae11c98 100644 --- a/sim/rogue/subtlety/subtlety_test.go +++ b/sim/rogue/subtlety/_subtlety_test.go @@ -50,11 +50,7 @@ func TestSubtlety(t *testing.T) { var SubtletyTalents = "023003-002-0332031321310012321" -var SubtletyGlyphs = &proto.Glyphs{ - Prime1: int32(proto.RoguePrimeGlyph_GlyphOfBackstab), - Prime2: int32(proto.RoguePrimeGlyph_GlyphOfSliceAndDice), - Prime3: int32(proto.RoguePrimeGlyph_GlyphOfShadowDance), -} +var SubtletyGlyphs = &proto.Glyphs{} var PlayerOptionsDI = &proto.Player_SubtletyRogue{ SubtletyRogue: &proto.SubtletyRogue{ diff --git a/sim/rogue/subtlety/subtlety.go b/sim/rogue/subtlety/subtlety.go index b68d83e880..b53e620636 100644 --- a/sim/rogue/subtlety/subtlety.go +++ b/sim/rogue/subtlety/subtlety.go @@ -30,17 +30,17 @@ func (subRogue *SubtletyRogue) Initialize() { subRogue.MasteryBaseValue = 0.2 subRogue.MasteryMultiplier = .025 - subRogue.registerHemorrhageSpell() - subRogue.registerSanguinaryVein() - subRogue.registerPremeditation() - subRogue.registerHonorAmongThieves() + // subRogue.registerHemorrhageSpell() + // subRogue.registerSanguinaryVein() + // subRogue.registerPremeditation() + // subRogue.registerHonorAmongThieves() - subRogue.applyInitiative() - subRogue.applyFindWeakness() + // subRogue.applyInitiative() + // subRogue.applyFindWeakness() subRogue.registerMasterOfSubtletyCD() - subRogue.registerShadowDanceCD() - subRogue.registerPreparationCD() + // subRogue.registerShadowDanceCD() + // subRogue.registerPreparationCD() subRogue.registerShadowstepCD() // Apply Mastery diff --git a/sim/shaman/apl_values.go b/sim/shaman/_apl_values.go similarity index 100% rename from sim/shaman/apl_values.go rename to sim/shaman/_apl_values.go diff --git a/sim/shaman/chain_lightning.go b/sim/shaman/_chain_lightning.go similarity index 100% rename from sim/shaman/chain_lightning.go rename to sim/shaman/_chain_lightning.go diff --git a/sim/shaman/earth_elemental_totem.go b/sim/shaman/_earth_elemental_totem.go similarity index 100% rename from sim/shaman/earth_elemental_totem.go rename to sim/shaman/_earth_elemental_totem.go diff --git a/sim/shaman/electric_spell.go b/sim/shaman/_electric_spell.go similarity index 100% rename from sim/shaman/electric_spell.go rename to sim/shaman/_electric_spell.go diff --git a/sim/shaman/feral_spirit.go b/sim/shaman/_feral_spirit.go similarity index 100% rename from sim/shaman/feral_spirit.go rename to sim/shaman/_feral_spirit.go diff --git a/sim/shaman/fire_elemental_totem.go b/sim/shaman/_fire_elemental_totem.go similarity index 100% rename from sim/shaman/fire_elemental_totem.go rename to sim/shaman/_fire_elemental_totem.go diff --git a/sim/shaman/fire_totems.go b/sim/shaman/_fire_totems.go similarity index 100% rename from sim/shaman/fire_totems.go rename to sim/shaman/_fire_totems.go diff --git a/sim/shaman/firenova.go b/sim/shaman/_firenova.go similarity index 100% rename from sim/shaman/firenova.go rename to sim/shaman/_firenova.go diff --git a/sim/shaman/glyphs.go b/sim/shaman/_glyphs.go similarity index 100% rename from sim/shaman/glyphs.go rename to sim/shaman/_glyphs.go diff --git a/sim/shaman/items.go b/sim/shaman/_items.go similarity index 100% rename from sim/shaman/items.go rename to sim/shaman/_items.go diff --git a/sim/shaman/lavaburst.go b/sim/shaman/_lavaburst.go similarity index 100% rename from sim/shaman/lavaburst.go rename to sim/shaman/_lavaburst.go diff --git a/sim/shaman/lightning_bolt.go b/sim/shaman/_lightning_bolt.go similarity index 100% rename from sim/shaman/lightning_bolt.go rename to sim/shaman/_lightning_bolt.go diff --git a/sim/shaman/lightning_shield.go b/sim/shaman/_lightning_shield.go similarity index 100% rename from sim/shaman/lightning_shield.go rename to sim/shaman/_lightning_shield.go diff --git a/sim/shaman/shamanistic_rage.go b/sim/shaman/_shamanistic_rage.go similarity index 100% rename from sim/shaman/shamanistic_rage.go rename to sim/shaman/_shamanistic_rage.go diff --git a/sim/shaman/shocks.go b/sim/shaman/_shocks.go similarity index 100% rename from sim/shaman/shocks.go rename to sim/shaman/_shocks.go diff --git a/sim/shaman/spirit_wolves.go b/sim/shaman/_spirit_wolves.go similarity index 100% rename from sim/shaman/spirit_wolves.go rename to sim/shaman/_spirit_wolves.go diff --git a/sim/shaman/stormstrike.go b/sim/shaman/_stormstrike.go similarity index 100% rename from sim/shaman/stormstrike.go rename to sim/shaman/_stormstrike.go diff --git a/sim/shaman/talents.go b/sim/shaman/_talents.go similarity index 100% rename from sim/shaman/talents.go rename to sim/shaman/_talents.go diff --git a/sim/shaman/totems.go b/sim/shaman/_totems.go similarity index 100% rename from sim/shaman/totems.go rename to sim/shaman/_totems.go diff --git a/sim/shaman/unleash_elements.go b/sim/shaman/_unleash_elements.go similarity index 100% rename from sim/shaman/unleash_elements.go rename to sim/shaman/_unleash_elements.go diff --git a/sim/shaman/weapon_imbues.go b/sim/shaman/_weapon_imbues.go similarity index 100% rename from sim/shaman/weapon_imbues.go rename to sim/shaman/_weapon_imbues.go diff --git a/sim/shaman/elemental/dragonwrath.go b/sim/shaman/elemental/_dragonwrath.go similarity index 100% rename from sim/shaman/elemental/dragonwrath.go rename to sim/shaman/elemental/_dragonwrath.go diff --git a/sim/shaman/elemental/elemental_test.go b/sim/shaman/elemental/_elemental_test.go similarity index 88% rename from sim/shaman/elemental/elemental_test.go rename to sim/shaman/elemental/_elemental_test.go index 85a16ac696..f998120aa9 100644 --- a/sim/shaman/elemental/elemental_test.go +++ b/sim/shaman/elemental/_elemental_test.go @@ -63,25 +63,16 @@ func TestElemental(t *testing.T) { var TalentsTotemDuration = "303202321223110132-201-20302" var TalentsImprovedShields = "3032023212231101321-2030022" var StandardGlyphs = &proto.Glyphs{ - Prime1: int32(proto.ShamanPrimeGlyph_GlyphOfFlameShock), - Prime2: int32(proto.ShamanPrimeGlyph_GlyphOfLavaBurst), - Prime3: int32(proto.ShamanPrimeGlyph_GlyphOfUnleashedLightning), Major1: int32(proto.ShamanMajorGlyph_GlyphOfLightningShield), Major2: int32(proto.ShamanMajorGlyph_GlyphOfHealingStreamTotem), Major3: int32(proto.ShamanMajorGlyph_GlyphOfStoneclawTotem), } var AoEGlyphs = &proto.Glyphs{ - Prime1: int32(proto.ShamanPrimeGlyph_GlyphOfFlameShock), - Prime2: int32(proto.ShamanPrimeGlyph_GlyphOfLavaBurst), - Prime3: int32(proto.ShamanPrimeGlyph_GlyphOfUnleashedLightning), Major1: int32(proto.ShamanMajorGlyph_GlyphOfLightningShield), Major2: int32(proto.ShamanMajorGlyph_GlyphOfChainLightning), Major3: int32(proto.ShamanMajorGlyph_GlyphOfStoneclawTotem), } var AlternateGlyphs = &proto.Glyphs{ - Prime1: int32(proto.FireTotem_FireElementalTotem), - Prime2: int32(proto.ShamanImbue_FlametongueWeapon), - Prime3: int32(proto.ShamanPrimeGlyph_GlyphOfUnleashedLightning), Major1: int32(proto.ShamanMajorGlyph_GlyphOfLightningShield), Major2: int32(proto.ShamanMajorGlyph_GlyphOfHealingStreamTotem), Major3: int32(proto.ShamanMajorGlyph_GlyphOfStoneclawTotem), diff --git a/sim/shaman/elemental/elemental.go b/sim/shaman/elemental/elemental.go index 0d3c4f63eb..1a6d5ffbae 100644 --- a/sim/shaman/elemental/elemental.go +++ b/sim/shaman/elemental/elemental.go @@ -44,7 +44,7 @@ func NewElementalShaman(character *core.Character, options *proto.Player) *Eleme } if mh := ele.GetMHWeapon(); mh != nil { - ele.ApplyFlametongueImbueToItem(mh) + // ele.ApplyFlametongueImbueToItem(mh) ele.SelfBuffs.ImbueMH = proto.ShamanImbue_FlametongueWeapon } diff --git a/sim/shaman/enhancement/enhancement_test.go b/sim/shaman/enhancement/_enhancement_test.go similarity index 100% rename from sim/shaman/enhancement/enhancement_test.go rename to sim/shaman/enhancement/_enhancement_test.go diff --git a/sim/shaman/enhancement/lavalash.go b/sim/shaman/enhancement/_lavalash.go similarity index 100% rename from sim/shaman/enhancement/lavalash.go rename to sim/shaman/enhancement/_lavalash.go diff --git a/sim/shaman/enhancement/enhancement.go b/sim/shaman/enhancement/enhancement.go index 46e1b4ebac..0bc437d977 100644 --- a/sim/shaman/enhancement/enhancement.go +++ b/sim/shaman/enhancement/enhancement.go @@ -52,7 +52,7 @@ func NewEnhancementShaman(character *core.Character, options *proto.Player) *Enh }) enh.ApplySyncType(enhOptions.SyncType) - enh.ApplyFlametongueImbue(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) + // enh.ApplyFlametongueImbue(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) if !enh.HasMHWeapon() { enh.SelfBuffs.ImbueMH = proto.ShamanImbue_NoImbue @@ -62,10 +62,10 @@ func NewEnhancementShaman(character *core.Character, options *proto.Player) *Enh enh.SelfBuffs.ImbueOH = proto.ShamanImbue_NoImbue } - enh.SpiritWolves = &shaman.SpiritWolves{ - SpiritWolf1: enh.NewSpiritWolf(1), - SpiritWolf2: enh.NewSpiritWolf(2), - } + // enh.SpiritWolves = &shaman.SpiritWolves{ + // SpiritWolf1: enh.NewSpiritWolf(1), + // SpiritWolf2: enh.NewSpiritWolf(2), + // } return enh } @@ -97,12 +97,12 @@ func (enh *EnhancementShaman) ApplyTalents() { func (enh *EnhancementShaman) Initialize() { enh.Shaman.Initialize() // In the Initialize due to frost brand adding the aura to the enemy - enh.RegisterFrostbrandImbue(enh.getImbueProcMask(proto.ShamanImbue_FrostbrandWeapon)) - enh.RegisterFlametongueImbue(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) - enh.RegisterWindfuryImbue(enh.getImbueProcMask(proto.ShamanImbue_WindfuryWeapon)) + // enh.RegisterFrostbrandImbue(enh.getImbueProcMask(proto.ShamanImbue_FrostbrandWeapon)) + // enh.RegisterFlametongueImbue(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) + // enh.RegisterWindfuryImbue(enh.getImbueProcMask(proto.ShamanImbue_WindfuryWeapon)) if enh.ItemSwap.IsEnabled() { - enh.ApplyFlametongueImbueSwap(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) + // enh.ApplyFlametongueImbueSwap(enh.getImbueProcMask(proto.ShamanImbue_FlametongueWeapon)) enh.RegisterItemSwapCallback(core.MeleeWeaponSlots(), func(_ *core.Simulation, slot proto.ItemSlot) { enh.ApplySyncType(proto.ShamanSyncType_Auto) }) @@ -135,7 +135,7 @@ func (enh *EnhancementShaman) Initialize() { })) enh.applyPrimalWisdom() - enh.registerLavaLashSpell() + // enh.registerLavaLashSpell() } func (enh EnhancementShaman) getMasteryBonus() float64 { diff --git a/sim/shaman/restoration/restoration.go b/sim/shaman/restoration/restoration.go index 5893b0ecd8..6844eed351 100644 --- a/sim/shaman/restoration/restoration.go +++ b/sim/shaman/restoration/restoration.go @@ -40,9 +40,9 @@ func NewRestorationShaman(character *core.Character, options *proto.Player) *Res Shaman: shaman.NewShaman(character, options.TalentsString, totems, selfBuffs, false), } - if resto.HasMHWeapon() { - resto.ApplyEarthlivingImbueToItem(resto.GetMHWeapon()) - } + // if resto.HasMHWeapon() { + // resto.ApplyEarthlivingImbueToItem(resto.GetMHWeapon()) + // } return resto } diff --git a/sim/shaman/shaman.go b/sim/shaman/shaman.go index abe8435702..45ae780162 100644 --- a/sim/shaman/shaman.go +++ b/sim/shaman/shaman.go @@ -127,8 +127,8 @@ type Shaman struct { FlameShock *core.Spell FrostShock *core.Spell - FeralSpirit *core.Spell - SpiritWolves *SpiritWolves + FeralSpirit *core.Spell + // SpiritWolves *SpiritWolves FireElemental *FireElemental FireElementalTotem *core.Spell @@ -191,9 +191,6 @@ func (shaman *Shaman) GetCharacter() *core.Character { return &shaman.Character } -func (shaman *Shaman) HasPrimeGlyph(glyph proto.ShamanPrimeGlyph) bool { - return shaman.HasGlyph(int32(glyph)) -} func (shaman *Shaman) HasMajorGlyph(glyph proto.ShamanMajorGlyph) bool { return shaman.HasGlyph(int32(glyph)) } @@ -201,74 +198,74 @@ func (shaman *Shaman) HasMinorGlyph(glyph proto.ShamanMinorGlyph) bool { return shaman.HasGlyph(int32(glyph)) } -func (shaman *Shaman) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// func (shaman *Shaman) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if shaman.Totems.Fire != proto.FireTotem_NoFireTotem && shaman.Talents.TotemicWrath { - raidBuffs.TotemicWrath = true - } +// if shaman.Totems.Fire != proto.FireTotem_NoFireTotem && shaman.Talents.TotemicWrath { +// raidBuffs.TotemicWrath = true +// } - if shaman.Totems.Fire == proto.FireTotem_FlametongueTotem { - raidBuffs.FlametongueTotem = true - } +// if shaman.Totems.Fire == proto.FireTotem_FlametongueTotem { +// raidBuffs.FlametongueTotem = true +// } - if shaman.Totems.Water == proto.WaterTotem_ManaSpringTotem { - raidBuffs.ManaSpringTotem = true - } +// if shaman.Totems.Water == proto.WaterTotem_ManaSpringTotem { +// raidBuffs.ManaSpringTotem = true +// } - if shaman.Talents.ManaTideTotem { - raidBuffs.ManaTideTotemCount++ - } +// if shaman.Talents.ManaTideTotem { +// raidBuffs.ManaTideTotemCount++ +// } - switch shaman.Totems.Air { - case proto.AirTotem_WrathOfAirTotem: - raidBuffs.WrathOfAirTotem = true - case proto.AirTotem_WindfuryTotem: - raidBuffs.WindfuryTotem = true - } +// switch shaman.Totems.Air { +// case proto.AirTotem_WrathOfAirTotem: +// raidBuffs.WrathOfAirTotem = true +// case proto.AirTotem_WindfuryTotem: +// raidBuffs.WindfuryTotem = true +// } - switch shaman.Totems.Earth { - case proto.EarthTotem_StrengthOfEarthTotem: - raidBuffs.StrengthOfEarthTotem = true - case proto.EarthTotem_StoneskinTotem: - raidBuffs.StoneskinTotem = true - } +// switch shaman.Totems.Earth { +// case proto.EarthTotem_StrengthOfEarthTotem: +// raidBuffs.StrengthOfEarthTotem = true +// case proto.EarthTotem_StoneskinTotem: +// raidBuffs.StoneskinTotem = true +// } - if shaman.Talents.UnleashedRage > 0 { - raidBuffs.UnleashedRage = true - } +// if shaman.Talents.UnleashedRage > 0 { +// raidBuffs.UnleashedRage = true +// } - if shaman.Talents.ElementalOath > 0 { - raidBuffs.ElementalOath = true - } -} +// if shaman.Talents.ElementalOath > 0 { +// raidBuffs.ElementalOath = true +// } +// } func (shaman *Shaman) Initialize() { - shaman.registerChainLightningSpell() - shaman.registerFireElementalTotem() - shaman.registerEarthElementalTotem() - shaman.registerFireNovaSpell() - shaman.registerLavaBurstSpell() - shaman.registerLightningBoltSpell() - shaman.registerLightningShieldSpell() + // shaman.registerChainLightningSpell() + // shaman.registerFireElementalTotem() + // shaman.registerEarthElementalTotem() + // shaman.registerFireNovaSpell() + // shaman.registerLavaBurstSpell() + // shaman.registerLightningBoltSpell() + // shaman.registerLightningShieldSpell() shaman.registerSpiritwalkersGraceSpell() - shaman.registerMagmaTotemSpell() - shaman.registerSearingTotemSpell() - shaman.registerShocks() - shaman.registerUnleashElements() - - shaman.registerStrengthOfEarthTotemSpell() - shaman.registerFlametongueTotemSpell() - shaman.registerTremorTotemSpell() - shaman.registerStoneskinTotemSpell() - shaman.registerWindfuryTotemSpell() - shaman.registerWrathOfAirTotemSpell() - shaman.registerManaSpringTotemSpell() - shaman.registerHealingStreamTotemSpell() + // shaman.registerMagmaTotemSpell() + // shaman.registerSearingTotemSpell() + // shaman.registerShocks() + // shaman.registerUnleashElements() + + // shaman.registerStrengthOfEarthTotemSpell() + // shaman.registerFlametongueTotemSpell() + // shaman.registerTremorTotemSpell() + // shaman.registerStoneskinTotemSpell() + // shaman.registerWindfuryTotemSpell() + // shaman.registerWrathOfAirTotemSpell() + // shaman.registerManaSpringTotemSpell() + // shaman.registerHealingStreamTotemSpell() // // This registration must come after all the totems are registered - shaman.registerCallOfTheElements() - shaman.registerCallOfTheAncestors() - shaman.registerCallOfTheSpirits() + // shaman.registerCallOfTheElements() + // shaman.registerCallOfTheAncestors() + // shaman.registerCallOfTheSpirits() shaman.registerBloodlustCD() } @@ -302,6 +299,8 @@ func (shaman *Shaman) RegisterHealingSpells() { // } } +func (shaman *Shaman) ApplyTalents() {} + func (shaman *Shaman) Reset(sim *core.Simulation) { } diff --git a/sim/warlock/curses.go b/sim/warlock/_curses.go similarity index 100% rename from sim/warlock/curses.go rename to sim/warlock/_curses.go diff --git a/sim/warlock/demon_soul.go b/sim/warlock/_demon_soul.go similarity index 100% rename from sim/warlock/demon_soul.go rename to sim/warlock/_demon_soul.go diff --git a/sim/warlock/doomguard.go b/sim/warlock/_doomguard.go similarity index 100% rename from sim/warlock/doomguard.go rename to sim/warlock/_doomguard.go diff --git a/sim/warlock/drain_life.go b/sim/warlock/_drain_life.go similarity index 100% rename from sim/warlock/drain_life.go rename to sim/warlock/_drain_life.go diff --git a/sim/warlock/drain_soul.go b/sim/warlock/_drain_soul.go similarity index 100% rename from sim/warlock/drain_soul.go rename to sim/warlock/_drain_soul.go diff --git a/sim/warlock/fel_flame.go b/sim/warlock/_fel_flame.go similarity index 100% rename from sim/warlock/fel_flame.go rename to sim/warlock/_fel_flame.go diff --git a/sim/warlock/glyphs.go b/sim/warlock/_glyphs.go similarity index 100% rename from sim/warlock/glyphs.go rename to sim/warlock/_glyphs.go diff --git a/sim/warlock/immolate.go b/sim/warlock/_immolate.go similarity index 100% rename from sim/warlock/immolate.go rename to sim/warlock/_immolate.go diff --git a/sim/warlock/incinerate.go b/sim/warlock/_incinerate.go similarity index 100% rename from sim/warlock/incinerate.go rename to sim/warlock/_incinerate.go diff --git a/sim/warlock/infernal.go b/sim/warlock/_infernal.go similarity index 100% rename from sim/warlock/infernal.go rename to sim/warlock/_infernal.go diff --git a/sim/warlock/items.go b/sim/warlock/_items.go similarity index 100% rename from sim/warlock/items.go rename to sim/warlock/_items.go diff --git a/sim/warlock/lifetap.go b/sim/warlock/_lifetap.go similarity index 100% rename from sim/warlock/lifetap.go rename to sim/warlock/_lifetap.go diff --git a/sim/warlock/pets.go b/sim/warlock/_pets.go similarity index 100% rename from sim/warlock/pets.go rename to sim/warlock/_pets.go diff --git a/sim/warlock/shadowbolt.go b/sim/warlock/_shadowbolt.go similarity index 100% rename from sim/warlock/shadowbolt.go rename to sim/warlock/_shadowbolt.go diff --git a/sim/warlock/shadowburn.go b/sim/warlock/_shadowburn.go similarity index 100% rename from sim/warlock/shadowburn.go rename to sim/warlock/_shadowburn.go diff --git a/sim/warlock/soul_fire.go b/sim/warlock/_soul_fire.go similarity index 100% rename from sim/warlock/soul_fire.go rename to sim/warlock/_soul_fire.go diff --git a/sim/warlock/summon_demon.go b/sim/warlock/_summon_demon.go similarity index 100% rename from sim/warlock/summon_demon.go rename to sim/warlock/_summon_demon.go diff --git a/sim/warlock/talents_affliction.go b/sim/warlock/_talents_affliction.go similarity index 100% rename from sim/warlock/talents_affliction.go rename to sim/warlock/_talents_affliction.go diff --git a/sim/warlock/talents_demonology.go b/sim/warlock/_talents_demonology.go similarity index 100% rename from sim/warlock/talents_demonology.go rename to sim/warlock/_talents_demonology.go diff --git a/sim/warlock/talents_destruction.go b/sim/warlock/_talents_destruction.go similarity index 100% rename from sim/warlock/talents_destruction.go rename to sim/warlock/_talents_destruction.go diff --git a/sim/warlock/affliction/affliction_test.go b/sim/warlock/affliction/_affliction_test.go similarity index 100% rename from sim/warlock/affliction/affliction_test.go rename to sim/warlock/affliction/_affliction_test.go diff --git a/sim/warlock/affliction/haunt.go b/sim/warlock/affliction/_haunt.go similarity index 100% rename from sim/warlock/affliction/haunt.go rename to sim/warlock/affliction/_haunt.go diff --git a/sim/warlock/affliction/affliction.go b/sim/warlock/affliction/affliction.go index ccec06d4e7..3eda84333b 100644 --- a/sim/warlock/affliction/affliction.go +++ b/sim/warlock/affliction/affliction.go @@ -47,7 +47,7 @@ func (affliction *AfflictionWarlock) GetWarlock() *warlock.Warlock { func (affliction *AfflictionWarlock) Initialize() { affliction.Warlock.Initialize() - affliction.registerHaunt() + // affliction.registerHaunt() affliction.registerUnstableAffliction() } diff --git a/sim/warlock/demonology/demonology_test.go b/sim/warlock/demonology/_demonology_test.go similarity index 100% rename from sim/warlock/demonology/demonology_test.go rename to sim/warlock/demonology/_demonology_test.go diff --git a/sim/warlock/demonology/hand_of_guldan.go b/sim/warlock/demonology/_hand_of_guldan.go similarity index 100% rename from sim/warlock/demonology/hand_of_guldan.go rename to sim/warlock/demonology/_hand_of_guldan.go diff --git a/sim/warlock/demonology/metamorphosis.go b/sim/warlock/demonology/_metamorphosis.go similarity index 100% rename from sim/warlock/demonology/metamorphosis.go rename to sim/warlock/demonology/_metamorphosis.go diff --git a/sim/warlock/demonology/demonology.go b/sim/warlock/demonology/demonology.go index df4683f195..936e582c98 100644 --- a/sim/warlock/demonology/demonology.go +++ b/sim/warlock/demonology/demonology.go @@ -1,8 +1,6 @@ package demonology import ( - "time" - "github.com/wowsims/mop/sim/core" "github.com/wowsims/mop/sim/core/proto" "github.com/wowsims/mop/sim/warlock" @@ -46,9 +44,9 @@ func (demonology *DemonologyWarlock) GetWarlock() *warlock.Warlock { func (demonology *DemonologyWarlock) Initialize() { demonology.Warlock.Initialize() - demonology.registerHandOfGuldan() - demonology.registerMetamorphosis() - demonology.registerSummonFelguard() + // demonology.registerHandOfGuldan() + // demonology.registerMetamorphosis() + // demonology.registerSummonFelguard() } func (demonology *DemonologyWarlock) ApplyTalents() { @@ -62,39 +60,39 @@ func (demonology *DemonologyWarlock) ApplyTalents() { }) } -func (demonology *DemonologyWarlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - raidBuffs.DemonicPact = demonology.Talents.DemonicPact && demonology.Options.Summon != proto.WarlockOptions_NoSummon -} +// func (demonology *DemonologyWarlock) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// raidBuffs.DemonicPact = demonology.Talents.DemonicPact && demonology.Options.Summon != proto.WarlockOptions_NoSummon +// } func (demonology *DemonologyWarlock) Reset(sim *core.Simulation) { demonology.Warlock.Reset(sim) } -func (demonology *DemonologyWarlock) registerSummonFelguard() { - stunActionID := core.ActionID{SpellID: 32752} - - demonology.Felguard.RegisterAura(demonology.GetSummonStunAura()) - demonology.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 30146}, - SpellSchool: core.SpellSchoolShadow, - ProcMask: core.ProcMaskEmpty, - Flags: core.SpellFlagAPL, - ClassSpellMask: warlock.WarlockSpellSummonFelguard, - - ManaCost: core.ManaCostOptions{BaseCostPercent: 80}, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - CastTime: 6 * time.Second, - }, - ModifyCast: func(sim *core.Simulation, spell *core.Spell, cast *core.Cast) { - demonology.ActivatePetSummonStun(sim, stunActionID) - }, - }, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - demonology.SoulBurnAura.Deactivate(sim) - demonology.ChangeActivePet(sim, demonology.Warlock.Felguard) - }, - }) -} +// func (demonology *DemonologyWarlock) registerSummonFelguard() { +// stunActionID := core.ActionID{SpellID: 32752} + +// demonology.Felguard.RegisterAura(demonology.GetSummonStunAura()) +// demonology.RegisterSpell(core.SpellConfig{ +// ActionID: core.ActionID{SpellID: 30146}, +// SpellSchool: core.SpellSchoolShadow, +// ProcMask: core.ProcMaskEmpty, +// Flags: core.SpellFlagAPL, +// ClassSpellMask: warlock.WarlockSpellSummonFelguard, + +// ManaCost: core.ManaCostOptions{BaseCostPercent: 80}, +// Cast: core.CastConfig{ +// DefaultCast: core.Cast{ +// GCD: core.GCDDefault, +// CastTime: 6 * time.Second, +// }, +// ModifyCast: func(sim *core.Simulation, spell *core.Spell, cast *core.Cast) { +// demonology.ActivatePetSummonStun(sim, stunActionID) +// }, +// }, + +// ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { +// demonology.SoulBurnAura.Deactivate(sim) +// demonology.ChangeActivePet(sim, demonology.Warlock.Felguard) +// }, +// }) +// } diff --git a/sim/warlock/destruction/chaos_bolt.go b/sim/warlock/destruction/_chaos_bolt.go similarity index 100% rename from sim/warlock/destruction/chaos_bolt.go rename to sim/warlock/destruction/_chaos_bolt.go diff --git a/sim/warlock/destruction/destruction_test.go b/sim/warlock/destruction/_destruction_test.go similarity index 100% rename from sim/warlock/destruction/destruction_test.go rename to sim/warlock/destruction/_destruction_test.go diff --git a/sim/warlock/destruction/destruction.go b/sim/warlock/destruction/destruction.go index f66bcf435d..5f947314bb 100644 --- a/sim/warlock/destruction/destruction.go +++ b/sim/warlock/destruction/destruction.go @@ -49,7 +49,7 @@ func (destruction *DestructionWarlock) GetWarlock() *warlock.Warlock { func (destruction *DestructionWarlock) Initialize() { destruction.Warlock.Initialize() - destruction.registerChaosBolt() + // destruction.registerChaosBolt() destruction.registerConflagrate() } diff --git a/sim/warlock/warlock.go b/sim/warlock/warlock.go index 842bfaf445..24b33652b3 100644 --- a/sim/warlock/warlock.go +++ b/sim/warlock/warlock.go @@ -26,16 +26,16 @@ type Warlock struct { Shadowburn *core.Spell UnstableAffliction *core.Spell - ActivePet *WarlockPet - Felhunter *WarlockPet - Felguard *WarlockPet - Imp *WarlockPet - Succubus *WarlockPet + // ActivePet *WarlockPet + // Felhunter *WarlockPet + // Felguard *WarlockPet + // Imp *WarlockPet + // Succubus *WarlockPet - Doomguard *DoomguardPet - Infernal *InfernalPet - EbonImp *EbonImpPet - FieryImp *FieryImpPet + // Doomguard *DoomguardPet + // Infernal *InfernalPet + // EbonImp *EbonImpPet + // FieryImp *FieryImpPet SoulShards *core.Aura SoulBurnAura *core.Aura @@ -55,47 +55,47 @@ func (warlock *Warlock) GetWarlock() *Warlock { func (warlock *Warlock) ApplyTalents() { warlock.ApplyArmorSpecializationEffect(stats.Intellect, proto.ArmorType_ArmorTypeCloth, 86091) - warlock.ApplyAfflictionTalents() - warlock.ApplyDemonologyTalents() - warlock.ApplyDestructionTalents() + // warlock.ApplyAfflictionTalents() + // warlock.ApplyDemonologyTalents() + // warlock.ApplyDestructionTalents() - warlock.ApplyGlyphs() + // warlock.ApplyGlyphs() } func (warlock *Warlock) Initialize() { - warlock.registerBaneOfAgony() - warlock.registerBaneOfDoom() + // warlock.registerBaneOfAgony() + // warlock.registerBaneOfDoom() warlock.registerCorruption() - warlock.registerCurseOfElements() - warlock.registerCurseOfTongues() - warlock.registerCurseOfWeakness() - warlock.registerDemonSoul() - warlock.registerDrainLife() - warlock.registerDrainSoul() - warlock.registerFelFlame() - warlock.registerImmolate() - warlock.registerIncinerate() - warlock.registerLifeTap() + // warlock.registerCurseOfElements() + // warlock.registerCurseOfTongues() + // warlock.registerCurseOfWeakness() + // warlock.registerDemonSoul() + // warlock.registerDrainLife() + // warlock.registerDrainSoul() + // warlock.registerFelFlame() + // warlock.registerImmolate() + // warlock.registerIncinerate() + // warlock.registerLifeTap() warlock.registerSearingPain() warlock.registerSeed() - warlock.registerShadowBolt() + // warlock.registerShadowBolt() warlock.registerShadowflame() - warlock.registerSoulFire() + // warlock.registerSoulFire() warlock.registerSoulHarvest() warlock.registerSoulburn() - warlock.registerSummonDemon() + // warlock.registerSummonDemon() - doomguardInfernalTimer := warlock.NewTimer() - warlock.registerSummonDoomguard(doomguardInfernalTimer) - warlock.registerSummonInfernal(doomguardInfernalTimer) + // doomguardInfernalTimer := warlock.NewTimer() + // warlock.registerSummonDoomguard(doomguardInfernalTimer) + // warlock.registerSummonInfernal(doomguardInfernalTimer) // TODO: vile hack to make the APLs work for now ... - if !warlock.CouldHaveSetBonus(ItemSetMaleficRaiment, 4) { - warlock.RegisterAura(core.Aura{ - Label: "Fel Spark", - ActionID: core.ActionID{SpellID: 89937}, - }) - } + // if !warlock.CouldHaveSetBonus(ItemSetMaleficRaiment, 4) { + // warlock.RegisterAura(core.Aura{ + // Label: "Fel Spark", + // ActionID: core.ActionID{SpellID: 89937}, + // }) + // } core.MakePermanent( warlock.RegisterAura(core.Aura{ @@ -113,7 +113,7 @@ func (warlock *Warlock) Initialize() { }, })) - warlock.registerPetAbilities() + // warlock.registerPetAbilities() // warlock.registerBlackBook() } @@ -141,12 +141,12 @@ func NewWarlock(character *core.Character, options *proto.Player, warlockOptions // Add Fel Armor SP by default warlock.AddStat(stats.SpellPower, 638) - warlock.EbonImp = warlock.NewEbonImp() - warlock.Infernal = warlock.NewInfernalPet() - warlock.Doomguard = warlock.NewDoomguardPet() - warlock.FieryImp = warlock.NewFieryImp() + // warlock.EbonImp = warlock.NewEbonImp() + // warlock.Infernal = warlock.NewInfernalPet() + // warlock.Doomguard = warlock.NewDoomguardPet() + // warlock.FieryImp = warlock.NewFieryImp() - warlock.registerPets() + // warlock.registerPets() return warlock } @@ -156,10 +156,6 @@ type WarlockAgent interface { GetWarlock() *Warlock } -func (warlock *Warlock) HasPrimeGlyph(glyph proto.WarlockPrimeGlyph) bool { - return warlock.HasGlyph(int32(glyph)) -} - func (warlock *Warlock) HasMajorGlyph(glyph proto.WarlockMajorGlyph) bool { return warlock.HasGlyph(int32(glyph)) } diff --git a/sim/warrior/berserker_rage.go b/sim/warrior/_berserker_rage.go similarity index 100% rename from sim/warrior/berserker_rage.go rename to sim/warrior/_berserker_rage.go diff --git a/sim/warrior/charge.go b/sim/warrior/_charge.go similarity index 100% rename from sim/warrior/charge.go rename to sim/warrior/_charge.go diff --git a/sim/warrior/colossus_smash.go b/sim/warrior/_colossus_smash.go similarity index 100% rename from sim/warrior/colossus_smash.go rename to sim/warrior/_colossus_smash.go diff --git a/sim/warrior/deep_wounds.go b/sim/warrior/_deep_wounds.go similarity index 100% rename from sim/warrior/deep_wounds.go rename to sim/warrior/_deep_wounds.go diff --git a/sim/warrior/demoralizing_shout.go b/sim/warrior/_demoralizing_shout.go similarity index 100% rename from sim/warrior/demoralizing_shout.go rename to sim/warrior/_demoralizing_shout.go diff --git a/sim/warrior/execute.go b/sim/warrior/_execute.go similarity index 100% rename from sim/warrior/execute.go rename to sim/warrior/_execute.go diff --git a/sim/warrior/glyphs.go b/sim/warrior/_glyphs.go similarity index 100% rename from sim/warrior/glyphs.go rename to sim/warrior/_glyphs.go diff --git a/sim/warrior/heroic_strike_cleave.go b/sim/warrior/_heroic_strike_cleave.go similarity index 100% rename from sim/warrior/heroic_strike_cleave.go rename to sim/warrior/_heroic_strike_cleave.go diff --git a/sim/warrior/heroic_throw.go b/sim/warrior/_heroic_throw.go similarity index 100% rename from sim/warrior/heroic_throw.go rename to sim/warrior/_heroic_throw.go diff --git a/sim/warrior/items.go b/sim/warrior/_items.go similarity index 100% rename from sim/warrior/items.go rename to sim/warrior/_items.go diff --git a/sim/warrior/overpower.go b/sim/warrior/_overpower.go similarity index 100% rename from sim/warrior/overpower.go rename to sim/warrior/_overpower.go diff --git a/sim/warrior/rend.go b/sim/warrior/_rend.go similarity index 100% rename from sim/warrior/rend.go rename to sim/warrior/_rend.go diff --git a/sim/warrior/revenge.go b/sim/warrior/_revenge.go similarity index 100% rename from sim/warrior/revenge.go rename to sim/warrior/_revenge.go diff --git a/sim/warrior/shattering_throw.go b/sim/warrior/_shattering_throw.go similarity index 100% rename from sim/warrior/shattering_throw.go rename to sim/warrior/_shattering_throw.go diff --git a/sim/warrior/shield_block.go b/sim/warrior/_shield_block.go similarity index 100% rename from sim/warrior/shield_block.go rename to sim/warrior/_shield_block.go diff --git a/sim/warrior/shouts.go b/sim/warrior/_shouts.go similarity index 100% rename from sim/warrior/shouts.go rename to sim/warrior/_shouts.go diff --git a/sim/warrior/slam.go b/sim/warrior/_slam.go similarity index 100% rename from sim/warrior/slam.go rename to sim/warrior/_slam.go diff --git a/sim/warrior/stances.go b/sim/warrior/_stances.go similarity index 100% rename from sim/warrior/stances.go rename to sim/warrior/_stances.go diff --git a/sim/warrior/sunder_armor.go b/sim/warrior/_sunder_armor.go similarity index 100% rename from sim/warrior/sunder_armor.go rename to sim/warrior/_sunder_armor.go diff --git a/sim/warrior/talents.go b/sim/warrior/_talents.go similarity index 100% rename from sim/warrior/talents.go rename to sim/warrior/_talents.go diff --git a/sim/warrior/thunder_clap.go b/sim/warrior/_thunder_clap.go similarity index 100% rename from sim/warrior/thunder_clap.go rename to sim/warrior/_thunder_clap.go diff --git a/sim/warrior/whirlwind.go b/sim/warrior/_whirlwind.go similarity index 100% rename from sim/warrior/whirlwind.go rename to sim/warrior/_whirlwind.go diff --git a/sim/warrior/arms/arms_test.go b/sim/warrior/arms/_arms_test.go similarity index 92% rename from sim/warrior/arms/arms_test.go rename to sim/warrior/arms/_arms_test.go index cdec1358e7..169386fe1c 100644 --- a/sim/warrior/arms/arms_test.go +++ b/sim/warrior/arms/_arms_test.go @@ -34,9 +34,6 @@ func TestArms(t *testing.T) { var ArmsTalents = "32120303120212312201-0322-3" var ArmsDefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.WarriorPrimeGlyph_GlyphOfMortalStrike), - Prime2: int32(proto.WarriorPrimeGlyph_GlyphOfOverpower), - Prime3: int32(proto.WarriorPrimeGlyph_GlyphOfSlam), Major1: int32(proto.WarriorMajorGlyph_GlyphOfColossusSmash), Major2: int32(proto.WarriorMajorGlyph_GlyphOfShieldWall), Major3: int32(proto.WarriorMajorGlyph_GlyphOfRapidCharge), diff --git a/sim/warrior/arms/bladestorm.go b/sim/warrior/arms/_bladestorm.go similarity index 100% rename from sim/warrior/arms/bladestorm.go rename to sim/warrior/arms/_bladestorm.go diff --git a/sim/warrior/arms/blood_frenzy.go b/sim/warrior/arms/_blood_frenzy.go similarity index 100% rename from sim/warrior/arms/blood_frenzy.go rename to sim/warrior/arms/_blood_frenzy.go diff --git a/sim/warrior/arms/deadly_calm.go b/sim/warrior/arms/_deadly_calm.go similarity index 100% rename from sim/warrior/arms/deadly_calm.go rename to sim/warrior/arms/_deadly_calm.go diff --git a/sim/warrior/arms/glyphs.go b/sim/warrior/arms/_glyphs.go similarity index 100% rename from sim/warrior/arms/glyphs.go rename to sim/warrior/arms/_glyphs.go diff --git a/sim/warrior/arms/mortal_strike.go b/sim/warrior/arms/_mortal_strike.go similarity index 100% rename from sim/warrior/arms/mortal_strike.go rename to sim/warrior/arms/_mortal_strike.go diff --git a/sim/warrior/arms/sweeping_strikes.go b/sim/warrior/arms/_sweeping_strikes.go similarity index 100% rename from sim/warrior/arms/sweeping_strikes.go rename to sim/warrior/arms/_sweeping_strikes.go diff --git a/sim/warrior/arms/talents.go b/sim/warrior/arms/_talents.go similarity index 100% rename from sim/warrior/arms/talents.go rename to sim/warrior/arms/_talents.go diff --git a/sim/warrior/arms/arms.go b/sim/warrior/arms/arms.go index 7cf3b034cf..2cae63b7ef 100644 --- a/sim/warrior/arms/arms.go +++ b/sim/warrior/arms/arms.go @@ -137,9 +137,11 @@ func (war *ArmsWarrior) GetWarrior() *warrior.Warrior { func (war *ArmsWarrior) Initialize() { war.Warrior.Initialize() war.RegisterSpecializationEffects() - war.RegisterMortalStrike() + // war.RegisterMortalStrike() } +func (war *ArmsWarrior) ApplyTalents() {} + func (war *ArmsWarrior) Reset(sim *core.Simulation) { war.Warrior.Reset(sim) } diff --git a/sim/warrior/fury/death_wish.go b/sim/warrior/fury/_death_wish.go similarity index 100% rename from sim/warrior/fury/death_wish.go rename to sim/warrior/fury/_death_wish.go diff --git a/sim/warrior/fury/fury_test.go b/sim/warrior/fury/_fury_test.go similarity index 94% rename from sim/warrior/fury/fury_test.go rename to sim/warrior/fury/_fury_test.go index c64246b6a1..f9b8f66f35 100644 --- a/sim/warrior/fury/fury_test.go +++ b/sim/warrior/fury/_fury_test.go @@ -63,9 +63,6 @@ var ItemFilter = core.ItemFilter{ var SMFTalents = "302003-032222031301101223201-2" var TGTalents = "302003-03222203130110122321-2" var FuryGlyphs = &proto.Glyphs{ - Prime1: int32(proto.WarriorPrimeGlyph_GlyphOfBloodthirst), - Prime2: int32(proto.WarriorPrimeGlyph_GlyphOfRagingBlow), - Prime3: int32(proto.WarriorPrimeGlyph_GlyphOfSlam), Major1: int32(proto.WarriorMajorGlyph_GlyphOfColossusSmash), Major2: int32(proto.WarriorMajorGlyph_GlyphOfCleaving), Major3: int32(proto.WarriorMajorGlyph_GlyphOfDeathWish), diff --git a/sim/warrior/fury/glyphs.go b/sim/warrior/fury/_glyphs.go similarity index 100% rename from sim/warrior/fury/glyphs.go rename to sim/warrior/fury/_glyphs.go diff --git a/sim/warrior/fury/raging_blow.go b/sim/warrior/fury/_raging_blow.go similarity index 100% rename from sim/warrior/fury/raging_blow.go rename to sim/warrior/fury/_raging_blow.go diff --git a/sim/warrior/fury/talents.go b/sim/warrior/fury/_talents.go similarity index 100% rename from sim/warrior/fury/talents.go rename to sim/warrior/fury/_talents.go diff --git a/sim/warrior/fury/fury.go b/sim/warrior/fury/fury.go index 51f3219b84..fcf5f65ed9 100644 --- a/sim/warrior/fury/fury.go +++ b/sim/warrior/fury/fury.go @@ -101,6 +101,8 @@ func (war *FuryWarrior) Initialize() { war.RegisterBloodthirst() } +func (war *FuryWarrior) ApplyTalents() {} + func (war *FuryWarrior) Reset(sim *core.Simulation) { war.Warrior.Reset(sim) } diff --git a/sim/warrior/protection/concussion_blow.go b/sim/warrior/protection/_concussion_blow.go similarity index 100% rename from sim/warrior/protection/concussion_blow.go rename to sim/warrior/protection/_concussion_blow.go diff --git a/sim/warrior/protection/devastate.go b/sim/warrior/protection/_devastate.go similarity index 100% rename from sim/warrior/protection/devastate.go rename to sim/warrior/protection/_devastate.go diff --git a/sim/warrior/protection/glyphs.go b/sim/warrior/protection/_glyphs.go similarity index 100% rename from sim/warrior/protection/glyphs.go rename to sim/warrior/protection/_glyphs.go diff --git a/sim/warrior/protection/last_stand.go b/sim/warrior/protection/_last_stand.go similarity index 100% rename from sim/warrior/protection/last_stand.go rename to sim/warrior/protection/_last_stand.go diff --git a/sim/warrior/protection/protection_test.go b/sim/warrior/protection/_protection_test.go similarity index 93% rename from sim/warrior/protection/protection_test.go rename to sim/warrior/protection/_protection_test.go index e735a4ee87..8f44b2e4ce 100644 --- a/sim/warrior/protection/protection_test.go +++ b/sim/warrior/protection/_protection_test.go @@ -55,9 +55,6 @@ var ItemFilter = core.ItemFilter{ var DefaultTalents = "320003-002-33213201121210212031" var DefaultGlyphs = &proto.Glyphs{ - Prime1: int32(proto.WarriorPrimeGlyph_GlyphOfRevenge), - Prime2: int32(proto.WarriorPrimeGlyph_GlyphOfShieldSlam), - Prime3: int32(proto.WarriorPrimeGlyph_GlyphOfDevastate), Major1: int32(proto.WarriorMajorGlyph_GlyphOfShieldWall), Major2: int32(proto.WarriorMajorGlyph_GlyphOfShockwave), Major3: int32(proto.WarriorMajorGlyph_GlyphOfThunderClap), diff --git a/sim/warrior/protection/shockwave.go b/sim/warrior/protection/_shockwave.go similarity index 100% rename from sim/warrior/protection/shockwave.go rename to sim/warrior/protection/_shockwave.go diff --git a/sim/warrior/protection/talents.go b/sim/warrior/protection/_talents.go similarity index 100% rename from sim/warrior/protection/talents.go rename to sim/warrior/protection/_talents.go diff --git a/sim/warrior/protection/protection.go b/sim/warrior/protection/protection.go index 5a2daa0746..5ebfa87632 100644 --- a/sim/warrior/protection/protection.go +++ b/sim/warrior/protection/protection.go @@ -140,6 +140,8 @@ func (war *ProtectionWarrior) Initialize() { war.RegisterShieldSlam() } +func (war *ProtectionWarrior) ApplyTalents() {} + func (war *ProtectionWarrior) Reset(sim *core.Simulation) { war.Warrior.Reset(sim) } diff --git a/sim/warrior/warrior.go b/sim/warrior/warrior.go index e1af2ea325..b8d93ad721 100644 --- a/sim/warrior/warrior.go +++ b/sim/warrior/warrior.go @@ -1,8 +1,6 @@ package warrior import ( - "time" - "github.com/wowsims/mop/sim/common/cata" "github.com/wowsims/mop/sim/core" "github.com/wowsims/mop/sim/core/proto" @@ -85,7 +83,7 @@ type Warrior struct { WarriorInputs // Current state - Stance Stance + // Stance Stance EnrageEffectMultiplier float64 CriticalBlockChance []float64 // Can be gained as non-prot via certain talents and spells PrecisionKnown bool @@ -152,47 +150,47 @@ func (warrior *Warrior) GetCharacter() *core.Character { return &warrior.Character } -func (warrior *Warrior) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - if warrior.Talents.Rampage { - raidBuffs.Rampage = true - } -} +// func (warrior *Warrior) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { +// if warrior.Talents.Rampage { +// raidBuffs.Rampage = true +// } +// } func (warrior *Warrior) AddPartyBuffs(_ *proto.PartyBuffs) { } func (warrior *Warrior) Initialize() { - warrior.registerStances() + // warrior.registerStances() warrior.EnrageEffectMultiplier = 1.0 warrior.hsCleaveCD = warrior.NewTimer() warrior.shoutsCD = warrior.NewTimer() - warrior.RegisterBerserkerRageSpell() - warrior.RegisterColossusSmash() - warrior.RegisterDemoralizingShoutSpell() - warrior.RegisterExecuteSpell() - warrior.RegisterHeroicStrikeSpell() - warrior.RegisterCleaveSpell() + // warrior.RegisterBerserkerRageSpell() + // warrior.RegisterColossusSmash() + // warrior.RegisterDemoralizingShoutSpell() + // warrior.RegisterExecuteSpell() + // warrior.RegisterHeroicStrikeSpell() + // warrior.RegisterCleaveSpell() warrior.RegisterHeroicLeap() - warrior.RegisterHeroicThrow() + // warrior.RegisterHeroicThrow() warrior.RegisterInnerRage() - warrior.RegisterOverpowerSpell() + // warrior.RegisterOverpowerSpell() warrior.RegisterRecklessnessCD() - warrior.RegisterRendSpell() - warrior.RegisterRevengeSpell() - warrior.RegisterShatteringThrowCD() - warrior.RegisterShieldBlockCD() + // warrior.RegisterRendSpell() + // warrior.RegisterRevengeSpell() + // warrior.RegisterShatteringThrowCD() + // warrior.RegisterShieldBlockCD() warrior.RegisterShieldWallCD() - warrior.RegisterShouts() - warrior.RegisterSlamSpell() - warrior.RegisterSunderArmor() - warrior.RegisterThunderClapSpell() - warrior.RegisterWhirlwindSpell() - warrior.RegisterCharge() + // warrior.RegisterShouts() + // warrior.RegisterSlamSpell() + // warrior.RegisterSunderArmor() + // warrior.RegisterThunderClapSpell() + // warrior.RegisterWhirlwindSpell() + // warrior.RegisterCharge() } func (warrior *Warrior) Reset(_ *core.Simulation) { - warrior.Stance = StanceNone + // warrior.Stance = StanceNone } func NewWarrior(character *core.Character, talents string, inputs WarriorInputs) *Warrior { @@ -230,10 +228,6 @@ func NewWarrior(character *core.Character, talents string, inputs WarriorInputs) return warrior } -func (warrior *Warrior) HasPrimeGlyph(glyph proto.WarriorPrimeGlyph) bool { - return warrior.HasGlyph(int32(glyph)) -} - func (warrior *Warrior) HasMajorGlyph(glyph proto.WarriorMajorGlyph) bool { return warrior.HasGlyph(int32(glyph)) } @@ -242,11 +236,6 @@ func (warrior *Warrior) HasMinorGlyph(glyph proto.WarriorMinorGlyph) bool { return warrior.HasGlyph(int32(glyph)) } -func (warrior *Warrior) IntensifyRageCooldown(baseCd time.Duration) time.Duration { - baseCd /= 100 - return []time.Duration{baseCd * 100, baseCd * 90, baseCd * 80}[warrior.Talents.IntensifyRage] -} - // Shared cooldown for Deadly Calm and Recklessness Activation func (warrior *Warrior) RecklessnessDeadlyCalmLock() *core.Timer { return warrior.Character.GetOrInitTimer(&warrior.recklessnessDeadlyCalmCD) diff --git a/sim/warrior/weapon_dmg_pct_helper.go b/sim/warrior/weapon_dmg_pct_helper.go index b862a546f1..b6fd8d39de 100644 --- a/sim/warrior/weapon_dmg_pct_helper.go +++ b/sim/warrior/weapon_dmg_pct_helper.go @@ -10,7 +10,6 @@ type SpellEffectWeaponDmgPctConfig struct { } func (config *SpellEffectWeaponDmgPctConfig) CalcSpellDamagePct() float64 { - return config.BaseWeapon_Pct + (config.EffectPerLevel * (float64(config.MaxSpellLevel - config.BaseSpellLevel)) / 100) } diff --git a/ui/core/components/individual_sim_ui/exporters/individual_wowhead_gear_planner_exporter.tsx b/ui/core/components/individual_sim_ui/exporters/individual_wowhead_gear_planner_exporter.tsx index 2f37148fbc..ebdf8c59da 100644 --- a/ui/core/components/individual_sim_ui/exporters/individual_wowhead_gear_planner_exporter.tsx +++ b/ui/core/components/individual_sim_ui/exporters/individual_wowhead_gear_planner_exporter.tsx @@ -226,9 +226,6 @@ export class IndividualWowheadGearPlannerExporter extends level: CHARACTER_LEVEL, talents: player.getTalentsString().split('-'), glyphs: [ - addGlyph(glyphs.prime1), - addGlyph(glyphs.prime2), - addGlyph(glyphs.prime3), addGlyph(glyphs.major1), addGlyph(glyphs.major2), addGlyph(glyphs.major3), diff --git a/ui/core/components/individual_sim_ui/importers/individual_addon_importer.tsx b/ui/core/components/individual_sim_ui/importers/individual_addon_importer.tsx index 1ecd9b9b17..589802c6ac 100644 --- a/ui/core/components/individual_sim_ui/importers/individual_addon_importer.tsx +++ b/ui/core/components/individual_sim_ui/importers/individual_addon_importer.tsx @@ -81,14 +81,10 @@ export class IndividualAddonImporter extends IndividualIm const glyphsConfig = classGlyphsConfig[charClass]; const db = await Database.get(); - const primeGlyphIDs = (importJson['glyphs']['prime'] as Array).map(g => glyphToID(g, db, glyphsConfig.primeGlyphs)); const majorGlyphIDs = (importJson['glyphs']['major'] as Array).map(g => glyphToID(g, db, glyphsConfig.majorGlyphs)); const minorGlyphIDs = (importJson['glyphs']['minor'] as Array).map(g => glyphToID(g, db, glyphsConfig.minorGlyphs)); const glyphs = Glyphs.create({ - prime1: primeGlyphIDs[0] || 0, - prime2: primeGlyphIDs[1] || 0, - prime3: primeGlyphIDs[2] || 0, major1: majorGlyphIDs[0] || 0, major2: majorGlyphIDs[1] || 0, major3: majorGlyphIDs[2] || 0, diff --git a/ui/core/components/individual_sim_ui/importers/individual_wowhead_gear_planner_importer.tsx b/ui/core/components/individual_sim_ui/importers/individual_wowhead_gear_planner_importer.tsx index bb89692471..b7f36868f6 100644 --- a/ui/core/components/individual_sim_ui/importers/individual_wowhead_gear_planner_importer.tsx +++ b/ui/core/components/individual_sim_ui/importers/individual_wowhead_gear_planner_importer.tsx @@ -289,9 +289,6 @@ export class IndividualWowheadGearPlannerImporter extends }); const glyphs = Glyphs.create({ - prime1: this.simUI.sim.db.glyphSpellToItemId(glyphIds[0]), - prime2: this.simUI.sim.db.glyphSpellToItemId(glyphIds[1]), - prime3: this.simUI.sim.db.glyphSpellToItemId(glyphIds[2]), major1: this.simUI.sim.db.glyphSpellToItemId(glyphIds[3]), major2: this.simUI.sim.db.glyphSpellToItemId(glyphIds[4]), major3: this.simUI.sim.db.glyphSpellToItemId(glyphIds[5]), diff --git a/ui/core/player.ts b/ui/core/player.ts index 4322914f00..e48f1fe83b 100644 --- a/ui/core/player.ts +++ b/ui/core/player.ts @@ -936,10 +936,6 @@ export class Player { this.glyphsChangeEmitter.emit(eventID); } - getPrimeGlyps(): Array { - return [this.glyphs.prime1, this.glyphs.prime2, this.glyphs.prime3].filter(glyph => glyph != 0); - } - getMajorGlyphs(): Array { return [this.glyphs.major1, this.glyphs.major2, this.glyphs.major3].filter(glyph => glyph != 0); } @@ -949,7 +945,7 @@ export class Player { } getAllGlyphs(): Array { - return this.getPrimeGlyps().concat(this.getMajorGlyphs().concat(this.getMinorGlyphs())); + return this.getMajorGlyphs().concat(this.getMinorGlyphs()); } getClassOptions(): ClassOptions { diff --git a/ui/core/talents/death_knight.ts b/ui/core/talents/death_knight.ts index 58ef5ab8e2..7af851c11d 100644 --- a/ui/core/talents/death_knight.ts +++ b/ui/core/talents/death_knight.ts @@ -1,4 +1,4 @@ -import {DeathKnightMajorGlyph, DeathKnightMinorGlyph, DeathKnightPrimeGlyph, DeathKnightTalents } from '../proto/death_knight'; +import { DeathKnightMajorGlyph, DeathKnightMinorGlyph, DeathKnightTalents } from '../proto/death_knight'; import { GlyphsConfig } from './glyphs_picker.jsx'; import { newTalentsConfig, TalentsConfig } from './talents_picker.jsx'; import DkTalentsJson from './trees/death_knight.json'; @@ -6,63 +6,6 @@ import DkTalentsJson from './trees/death_knight.json'; export const deathKnightTalentsConfig: TalentsConfig = newTalentsConfig(DkTalentsJson); export const deathKnightGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [DeathKnightPrimeGlyph.GlyphOfDeathAndDecay]: { - name: 'Glyph of Death and Decay', - description: 'Increases the duration of your Death and Decay spell by 50%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_deathanddecay.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfDeathCoil]: { - name: 'Glyph of Death Coil', - description: 'Increases the damage or healing done by Death Coil by 15%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_deathcoil.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfDeathStrike]: { - name: 'Glyph of Death Strike', - description: 'Increases your Death Strike\'s damage by 2% for every 5 Runic Power you currently have (up to a maximum of 40%). The Runic Power is not consumed by this effect.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_butcher2.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfFrostStrike]: { - name: 'Glyph of Frost Strike', - description: 'Reduces the cost of your Frost Strike by 8 Runic Power.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_empowerruneblade2.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfHeartStrike]: { - name: 'Glyph of Heart Strike', - description: 'Increases the damage of your Heart Strike ability by 30%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_weapon_shortblade_40.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfHowlingBlast]: { - name: 'Glyph of Howling Blast', - description: 'Your Howling Blast ability now infects your targets with Frost Fever.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_arcticwinds.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfIcyTouch]: { - name: 'Glyph of Icy Touch', - description: 'Your Frost Fever disease deals 20% additional damage.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_icetouch.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfObliterate]: { - name: 'Glyph of Obliterate', - description: 'Increases the damage of your Obliterate ability by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_classicon.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfRaiseDead]: { - name: 'Glyph of Raise Dead', - description: 'Your Ghoul receives an additional 40% of your Strength and 40% of your Stamina.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_animatedead.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfRuneStrike]: { - name: 'Glyph of Rune Strike', - description: 'Increases the critical strike chance of your Rune Strike by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_darkconviction.jpg', - }, - [DeathKnightPrimeGlyph.GlyphOfScourgeStrike]: { - name: 'Glyph of Scourge Strike', - description: 'Increases the Shadow damage portion of your Scourge Strike by 30%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_scourgestrike.jpg', - }, - }, majorGlyphs: { [DeathKnightMajorGlyph.GlyphOfAntiMagicShell]: { name: 'Glyph of Anti-Magic Shell', @@ -91,7 +34,8 @@ export const deathKnightGlyphsConfig: GlyphsConfig = { }, [DeathKnightMajorGlyph.GlyphOfDarkSuccor]: { name: 'Glyph of Dark Succor', - description: 'Your next Death Strike performed while in Frost or Unholy Presence, within 15 sec after killing an enemy that yields experience or honor, will restore at least 20% of your maximum health.', + description: + 'Your next Death Strike performed while in Frost or Unholy Presence, within 15 sec after killing an enemy that yields experience or honor, will restore at least 20% of your maximum health.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_butcher2.jpg', }, [DeathKnightMajorGlyph.GlyphOfDeathGrip]: { @@ -111,7 +55,8 @@ export const deathKnightGlyphsConfig: GlyphsConfig = { }, [DeathKnightMajorGlyph.GlyphOfPillarOfFrost]: { name: 'Glyph of Pillar of Frost', - description: 'Empowers your Pillar of Frost, making you immune to all effects that cause loss of control of your character, but also freezing you in place while the ability is active.', + description: + 'Empowers your Pillar of Frost, making you immune to all effects that cause loss of control of your character, but also freezing you in place while the ability is active.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_deathknight_pillaroffrost.jpg', }, [DeathKnightMajorGlyph.GlyphOfRuneTap]: { @@ -126,7 +71,8 @@ export const deathKnightGlyphsConfig: GlyphsConfig = { }, [DeathKnightMajorGlyph.GlyphOfVampiricBlood]: { name: 'Glyph of Vampiric Blood', - description: 'Increases the bonus healing received while your Vampiric Blood is active by an additional 15%, but your Vampiric Blood no longer grants you health.', + description: + 'Increases the bonus healing received while your Vampiric Blood is active by an additional 15%, but your Vampiric Blood no longer grants you health.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_lifedrain.jpg', }, }, @@ -142,7 +88,7 @@ export const deathKnightGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_arcane_teleportundercity.jpg', }, [DeathKnightMinorGlyph.GlyphOfDeathSEmbrace]: { - name: 'Glyph of Death\'s Embrace', + name: "Glyph of Death's Embrace", description: 'Your Death Coil refunds 20 Runic Power when used to heal an allied minion.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_deathcoil.jpg', }, @@ -162,4 +108,4 @@ export const deathKnightGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_deathknight_strangulate.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/druid.ts b/ui/core/talents/druid.ts index 96648b368c..dd7e46301a 100644 --- a/ui/core/talents/druid.ts +++ b/ui/core/talents/druid.ts @@ -1,97 +1,15 @@ -import {DruidMajorGlyph, DruidMinorGlyph,DruidPrimeGlyph, DruidTalents } from '../proto/druid.js'; -import { GlyphsConfig, } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { DruidMajorGlyph, DruidMinorGlyph, DruidTalents } from '../proto/druid.js'; +import { GlyphsConfig } from './glyphs_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import DruidTalentsJson from './trees/druid.json'; export const druidTalentsConfig: TalentsConfig = newTalentsConfig(DruidTalentsJson); export const druidGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [DruidPrimeGlyph.GlyphOfBerserk]: { - name: 'Glyph of Berserk', - description: 'Increases the duration of Berserk by 10 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_druid_berserk.jpg', - }, - [DruidPrimeGlyph.GlyphOfBloodletting]: { - name: 'Glyph of Bloodletting', - description: 'Each time you Shred or Mangle in Cat Form, the duration of your Rip on the target is extended by 2 sec, up to a maximum of 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_vampiricaura.jpg', - }, - [DruidPrimeGlyph.GlyphOfInsectSwarm]: { - name: 'Glyph of Insect Swarm', - description: 'Increases the damage of your Insect Swarm ability by 30%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_insectswarm.jpg', - }, - [DruidPrimeGlyph.GlyphOfLacerate]: { - name: 'Glyph of Lacerate', - description: 'Increases the critical strike chance of your Lacerate ability by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_druid_lacerate.jpg', - }, - [DruidPrimeGlyph.GlyphOfLifebloom]: { - name: 'Glyph of Lifebloom', - description: 'Increases the critical effect chance of your Lifebloom by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_herb_felblossom.jpg', - }, - [DruidPrimeGlyph.GlyphOfMangle]: { - name: 'Glyph of Mangle', - description: 'Increases the damage done by Mangle by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_druid_mangle2.jpg', - }, - [DruidPrimeGlyph.GlyphOfMoonfire]: { - name: 'Glyph of Moonfire', - description: 'Increases the periodic damage of your Moonfire ability by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_starfall.jpg', - }, - [DruidPrimeGlyph.GlyphOfRegrowth]: { - name: 'Glyph of Regrowth', - description: 'Your Regrowth heal-over-time will automatically refresh its duration on targets at or below 50% health.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_resistnature.jpg', - }, - [DruidPrimeGlyph.GlyphOfRejuvenation]: { - name: 'Glyph of Rejuvenation', - description: 'Increases the healing done by your Rejuvenation by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_rejuvenation.jpg', - }, - [DruidPrimeGlyph.GlyphOfRip]: { - name: 'Glyph of Rip', - description: 'Increases the periodic damage of your Rip by 15%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_ghoulfrenzy.jpg', - }, - [DruidPrimeGlyph.GlyphOfSavageRoar]: { - name: 'Glyph of Savage Roar', - description: 'Your Savage Roar ability grants an additional 5% bonus damage done.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_druid_skinteeth.jpg', - }, - [DruidPrimeGlyph.GlyphOfStarfire]: { - name: 'Glyph of Starfire', - description: 'Your Starfire ability increases the duration of your Moonfire effect on the target by 3 sec, up to a maximum of 9 additional seconds. Only functions on the target with your most recently applied Moonfire.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_arcane_starfire.jpg', - }, - [DruidPrimeGlyph.GlyphOfStarsurge]: { - name: 'Glyph of Starsurge', - description: 'When your Starsurge deals damage, the cooldown remaining on your Starfall is reduced by 5 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_arcane_arcane03.jpg', - }, - [DruidPrimeGlyph.GlyphOfSwiftmend]: { - name: 'Glyph of Swiftmend', - description: 'Your Swiftmend ability no longer consumes a Rejuvenation or Regrowth effect from the target.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_relics_idolofrejuvenation.jpg', - }, - [DruidPrimeGlyph.GlyphOfTigersFury]: { - name: 'Glyph of Tiger\'s Fury', - description: 'Reduces the cooldown of your Tiger\'s Fury ability by 3 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mount_jungletiger.jpg', - }, - [DruidPrimeGlyph.GlyphOfWrath]: { - name: 'Glyph of Wrath', - description: 'Increases the damage done by your Wrath by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_wrathv2.jpg', - }, - }, majorGlyphs: { [DruidMajorGlyph.GlyphOfBarkskin]: { name: 'Glyph of Barkskin', - description: 'Reduces the chance you\'ll be critically hit by 25% while Barkskin is active.', + description: "Reduces the chance you'll be critically hit by 25% while Barkskin is active.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_stoneclawtotem.jpg', }, [DruidMajorGlyph.GlyphOfEntanglingRoots]: { @@ -121,12 +39,13 @@ export const druidGlyphsConfig: GlyphsConfig = { }, [DruidMajorGlyph.GlyphOfFrenziedRegeneration]: { name: 'Glyph of Frenzied Regeneration', - description: 'While Frenzied Regeneration is active, healing effects on you are 30% more powerful but causes your Frenzied Regeneration to no longer convert rage into health.', + description: + 'While Frenzied Regeneration is active, healing effects on you are 30% more powerful but causes your Frenzied Regeneration to no longer convert rage into health.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_bullrush.jpg', }, [DruidMajorGlyph.GlyphOfHealingTouch]: { name: 'Glyph of Healing Touch', - description: 'When you cast Healing Touch, the cooldown on your Nature\'s Swiftness is reduced by 10 sec.', + description: "When you cast Healing Touch, the cooldown on your Nature's Swiftness is reduced by 10 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_healingtouch.jpg', }, [DruidMajorGlyph.GlyphOfHurricane]: { @@ -151,7 +70,8 @@ export const druidGlyphsConfig: GlyphsConfig = { }, [DruidMajorGlyph.GlyphOfOmenOfClarity]: { name: 'Glyph of Omen of Clarity', - description: 'Your Omen of Clarity talent has a 100% chance to be triggered by successfully casting Faerie Fire (Feral). Does not trigger on players or player-controlled pets.', + description: + 'Your Omen of Clarity talent has a 100% chance to be triggered by successfully casting Faerie Fire (Feral). Does not trigger on players or player-controlled pets.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_questionmark.jpg', }, [DruidMajorGlyph.GlyphOfPounce]: { diff --git a/ui/core/talents/factory.ts b/ui/core/talents/factory.ts index 6c6656adb5..ca05c5b3a7 100644 --- a/ui/core/talents/factory.ts +++ b/ui/core/talents/factory.ts @@ -31,7 +31,7 @@ export const classTalentsConfig: Record> = { }; export const classGlyphsConfig: Record = { - [Class.ClassUnknown]: { primeGlyphs: [], majorGlyphs: [], minorGlyphs: [] }, + [Class.ClassUnknown]: { majorGlyphs: [], minorGlyphs: [] }, [Class.ClassDeathKnight]: deathKnightGlyphsConfig, [Class.ClassDruid]: druidGlyphsConfig, [Class.ClassShaman]: shamanGlyphsConfig, diff --git a/ui/core/talents/glyphs_picker.tsx b/ui/core/talents/glyphs_picker.tsx index b9cb5d1ec7..5642976f04 100644 --- a/ui/core/talents/glyphs_picker.tsx +++ b/ui/core/talents/glyphs_picker.tsx @@ -19,7 +19,6 @@ export type GlyphConfig = { }; export type GlyphsConfig = { - primeGlyphs: Record; majorGlyphs: Record; minorGlyphs: Record; }; @@ -46,7 +45,6 @@ export class GlyphsPicker extends Component { private readonly glyphsConfig: GlyphsConfig; readonly selectorModal: GlyphSelectorModal; readonly player: Player; - primeGlyphPickers: Array = []; majorGlyphPickers: Array = []; minorGlyphPickers: Array = []; @@ -55,14 +53,9 @@ export class GlyphsPicker extends Component { this.glyphsConfig = glyphsConfig; this.player = player; - const primeGlyphs = Object.keys(glyphsConfig.primeGlyphs).map(idStr => Number(idStr)); const majorGlyphs = Object.keys(glyphsConfig.majorGlyphs).map(idStr => Number(idStr)); const minorGlyphs = Object.keys(glyphsConfig.minorGlyphs).map(idStr => Number(idStr)); - const primeGlyphsBlock = new ContentBlock(this.rootElem, 'prime-glyphs', { - header: { title: 'Prime Glyphs', extraCssClasses: ['border-0'] }, - }); - const majorGlyphsBlock = new ContentBlock(this.rootElem, 'major-glyphs', { header: { title: 'Major Glyphs', extraCssClasses: ['border-0'] }, }); @@ -73,25 +66,12 @@ export class GlyphsPicker extends Component { this.selectorModal = new GlyphSelectorModal(this.rootElem.closest('.individual-sim-ui')!); Database.get().then(db => { - const primeGlyphsData = primeGlyphs.map(glyph => this.getGlyphData(glyph, db)); const majorGlyphsData = majorGlyphs.map(glyph => this.getGlyphData(glyph, db)); const minorGlyphsData = minorGlyphs.map(glyph => this.getGlyphData(glyph, db)); - primeGlyphsData.sort((a, b) => stringComparator(a.name, b.name)); majorGlyphsData.sort((a, b) => stringComparator(a.name, b.name)); minorGlyphsData.sort((a, b) => stringComparator(a.name, b.name)); - this.primeGlyphPickers = (['prime1', 'prime2', 'prime3'] as Array).map( - glyphField => - new GlyphPicker(primeGlyphsBlock.bodyElement, { - label: 'Prime', - player, - selectorModal: this.selectorModal, - glyphOptions: primeGlyphsData, - glyphField, - }), - ); - this.majorGlyphPickers = (['major1', 'major2', 'major3'] as Array).map( glyphField => new GlyphPicker(majorGlyphsBlock.bodyElement, { @@ -119,7 +99,7 @@ export class GlyphsPicker extends Component { // In case we ever want to parse description from tooltip HTML. //static descriptionRegex = /(.*)<\/a>/g; getGlyphData(glyph: number, db: Database): GlyphData { - const glyphConfig = this.glyphsConfig.primeGlyphs[glyph] || this.glyphsConfig.majorGlyphs[glyph] || this.glyphsConfig.minorGlyphs[glyph]; + const glyphConfig = this.glyphsConfig.majorGlyphs[glyph] || this.glyphsConfig.minorGlyphs[glyph]; return { id: glyph, diff --git a/ui/core/talents/hunter.ts b/ui/core/talents/hunter.ts index aea076709a..ce815656ab 100644 --- a/ui/core/talents/hunter.ts +++ b/ui/core/talents/hunter.ts @@ -1,63 +1,11 @@ -import { HunterMajorGlyph, HunterMinorGlyph, HunterPetTalents, HunterPrimeGlyph, HunterTalents } from '../proto/hunter.js'; +import { HunterMajorGlyph, HunterMinorGlyph, HunterTalents } from '../proto/hunter.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import HunterTalentJson from './trees/hunter.json'; export const hunterTalentsConfig: TalentsConfig = newTalentsConfig(HunterTalentJson); export const hunterGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [HunterPrimeGlyph.GlyphOfAimedShot]: { - name: 'Glyph of Aimed Shot', - description: 'When you critically hit with Aimed Shot, you instantly gain 5 Focus.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_spear_07.jpg', - }, - [HunterPrimeGlyph.GlyphOfArcaneShot]: { - name: 'Glyph of Arcane Shot', - description: 'Your Arcane Shot deals 12% more damage.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_impalingbolt.jpg', - }, - [HunterPrimeGlyph.GlyphOfChimeraShot]: { - name: 'Glyph of Chimera Shot', - description: 'Reduces the cooldown of Chimera Shot by 1 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_chimerashot2.jpg', - }, - [HunterPrimeGlyph.GlyphOfDazzledPrey]: { - name: 'Glyph of Dazzled Prey', - description: 'Your Steady Shot and Cobra Shot abilities generate an additional 2 Focus on targets afflicted by a daze effect.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_cheatdeath.jpg', - }, - [HunterPrimeGlyph.GlyphOfExplosiveShot]: { - name: 'Glyph of Explosive Shot', - description: 'Increases the critical strike chance of Explosive Shot by 6%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_explosiveshot.jpg', - }, - [HunterPrimeGlyph.GlyphOfKillCommand]: { - name: 'Glyph of Kill Command', - description: 'Reduces the Focus cost of your Kill Command by 3.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_killcommand.jpg', - }, - [HunterPrimeGlyph.GlyphOfKillShot]: { - name: 'Glyph of Kill Shot', - description: 'If the damage from your Kill Shot fails to kill a target at or below 20% health, your Kill Shot\'s cooldown is instantly reset. This effect has a 6 sec cooldown.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_assassinate2.jpg', - }, - [HunterPrimeGlyph.GlyphOfRapidFire]: { - name: 'Glyph of Rapid Fire', - description: 'Increases the haste from Rapid Fire by an additional 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_runningshot.jpg', - }, - [HunterPrimeGlyph.GlyphOfSerpentSting]: { - name: 'Glyph of Serpent Sting', - description: 'Increases the periodic critical strike chance of your Serpent Sting by 6%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_quickshot.jpg', - }, - [HunterPrimeGlyph.GlyphOfSteadyShot]: { - name: 'Glyph of Steady Shot', - description: 'Increases the damage dealt by Steady Shot by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_steadyshot.jpg', - }, - }, majorGlyphs: { [HunterMajorGlyph.GlyphOfBestialWrath]: { name: 'Glyph of Bestial Wrath', @@ -81,7 +29,7 @@ export const hunterGlyphsConfig: GlyphsConfig = { }, [HunterMajorGlyph.GlyphOfFreezingTrap]: { name: 'Glyph of Freezing Trap', - description: 'When your Freezing Trap breaks, the victim\'s movement speed is reduced by 70% for 4 sec.', + description: "When your Freezing Trap breaks, the victim's movement speed is reduced by 70% for 4 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_chainsofice.jpg', }, [HunterMajorGlyph.GlyphOfIceTrap]: { @@ -95,8 +43,8 @@ export const hunterGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_flameshock.jpg', }, [HunterMajorGlyph.GlyphOfMasterSCall]: { - name: 'Glyph of Master\'s Call', - description: 'Increases the duration of your Master\'s Call by 4 sec.', + name: "Glyph of Master's Call", + description: "Increases the duration of your Master's Call by 4 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_masterscall.jpg', }, [HunterMajorGlyph.GlyphOfMending]: { @@ -121,7 +69,7 @@ export const hunterGlyphsConfig: GlyphsConfig = { }, [HunterMajorGlyph.GlyphOfSilencingShot]: { name: 'Glyph of Silencing Shot', - description: 'When you successfully silence an enemy\'s spell cast with Silencing Shot, you instantly gain 10 Focus.', + description: "When you successfully silence an enemy's spell cast with Silencing Shot, you instantly gain 10 Focus.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_theblackarrow.jpg', }, [HunterMajorGlyph.GlyphOfSnakeTrap]: { @@ -167,4 +115,4 @@ export const hunterGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_druid_cower.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/mage.ts b/ui/core/talents/mage.ts index 0861b88ee7..a7a2163ba5 100644 --- a/ui/core/talents/mage.ts +++ b/ui/core/talents/mage.ts @@ -1,78 +1,11 @@ -import {MageMajorGlyph, MageMinorGlyph,MagePrimeGlyph, MageTalents } from '../proto/mage.js'; +import { MageMajorGlyph, MageMinorGlyph, MageTalents } from '../proto/mage.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import MageTalentJson from './trees/mage.json'; export const mageTalentsConfig: TalentsConfig = newTalentsConfig(MageTalentJson); export const mageGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [MagePrimeGlyph.GlyphOfArcaneBarrage]: { - name: 'Glyph of Arcane Barrage', - description: 'Increases the damage of your Arcane Barrage spell by 4%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mage_arcanebarrage.jpg', - }, - [MagePrimeGlyph.GlyphOfArcaneBlast]: { - name: 'Glyph of Arcane Blast', - description: 'Increases the damage from your Arcane Blast buff by 3%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_arcane_blast.jpg', - }, - [MagePrimeGlyph.GlyphOfArcaneMissiles]: { - name: 'Glyph of Arcane Missiles', - description: 'Increases the critical strike chance of your Arcane Missiles spell by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_starfall.jpg', - }, - [MagePrimeGlyph.GlyphOfConeOfCold]: { - name: 'Glyph of Cone of Cold', - description: 'Increases the damage of your Cone of Cold spell by 25%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_glacier.jpg', - }, - [MagePrimeGlyph.GlyphOfDeepFreeze]: { - name: 'Glyph of Deep Freeze', - description: 'Your Deep Freeze deals 20% additional damage.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mage_deepfreeze.jpg', - }, - [MagePrimeGlyph.GlyphOfFireball]: { - name: 'Glyph of Fireball', - description: 'Increases the critical strike chance of your Fireball spell by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_flamebolt.jpg', - }, - [MagePrimeGlyph.GlyphOfFrostbolt]: { - name: 'Glyph of Frostbolt', - description: 'Increases the critical strike chance of your Frostbolt spell by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_frostbolt02.jpg', - }, - [MagePrimeGlyph.GlyphOfFrostfire]: { - name: 'Glyph of Frostfire', - description: 'Increases the damage done by your Frostfire Bolt by 15% and your Frostfire Bolt now deals 3% additional damage over 12 sec, stacking up to 3 times, but no longer reduces the victim\'s movement speed.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mage_frostfirebolt.jpg', - }, - [MagePrimeGlyph.GlyphOfIceLance]: { - name: 'Glyph of Ice Lance', - description: 'Increases the damage of your Ice Lance spell by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_frostblast.jpg', - }, - [MagePrimeGlyph.GlyphOfLivingBomb]: { - name: 'Glyph of Living Bomb', - description: 'Increases the damage of your Living Bomb spell by 3%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mage_livingbomb.jpg', - }, - [MagePrimeGlyph.GlyphOfMageArmor]: { - name: 'Glyph of Mage Armor', - description: 'Your Mage Armor regenerates 20% more mana.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_magearmor.jpg', - }, - [MagePrimeGlyph.GlyphOfMoltenArmor]: { - name: 'Glyph of Molten Armor', - description: 'Your Molten Armor grants an additional 2% spell critical strike chance.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_mage_moltenarmor.jpg', - }, - [MagePrimeGlyph.GlyphOfPyroblast]: { - name: 'Glyph of Pyroblast', - description: 'Increases the critical strike chance of your Pyroblast spell by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_fireball02.jpg', - }, - }, majorGlyphs: { [MageMajorGlyph.GlyphOfArcanePower]: { name: 'Glyph of Arcane Power', @@ -81,7 +14,7 @@ export const mageGlyphsConfig: GlyphsConfig = { }, [MageMajorGlyph.GlyphOfBlastWave]: { name: 'Glyph of Blast Wave', - description: 'Increases the duration of Blast Wave\'s slowing effect by 1 sec.', + description: "Increases the duration of Blast Wave's slowing effect by 1 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_excorcism_02.jpg', }, [MageMajorGlyph.GlyphOfBlink]: { @@ -90,8 +23,8 @@ export const mageGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_arcane_blink.jpg', }, [MageMajorGlyph.GlyphOfDragonSBreath]: { - name: 'Glyph of Dragon\'s Breath', - description: 'Reduces the cooldown of your Dragon\'s Breath by 3 sec.', + name: "Glyph of Dragon's Breath", + description: "Reduces the cooldown of your Dragon's Breath by 3 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_head_dragon_01.jpg', }, [MageMajorGlyph.GlyphOfEvocation]: { @@ -182,4 +115,4 @@ export const mageGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_misc_penguinpet.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/monk.ts b/ui/core/talents/monk.ts index 2a306083f4..cef163e306 100644 --- a/ui/core/talents/monk.ts +++ b/ui/core/talents/monk.ts @@ -6,7 +6,6 @@ import MonkTalentJson from './trees/monk.json'; export const monkTalentsConfig: TalentsConfig = newTalentsConfig(MonkTalentJson); export const monkGlyphsConfig: GlyphsConfig = { - primeGlyphs: {}, majorGlyphs: { [MonkMajorGlyph.MonkMajorGlyphAfterlife]: { name: 'Glyph of Afterlife', diff --git a/ui/core/talents/paladin.ts b/ui/core/talents/paladin.ts index 98bc92f121..dc4f7d1aa0 100644 --- a/ui/core/talents/paladin.ts +++ b/ui/core/talents/paladin.ts @@ -1,68 +1,11 @@ -import {PaladinMajorGlyph, PaladinMinorGlyph,PaladinPrimeGlyph, PaladinTalents } from '../proto/paladin.js'; +import { PaladinMajorGlyph, PaladinMinorGlyph, PaladinTalents } from '../proto/paladin.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import PaladinTalentJson from './trees/paladin.json'; export const paladinTalentsConfig: TalentsConfig = newTalentsConfig(PaladinTalentJson); export const paladinGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [PaladinPrimeGlyph.GlyphOfCrusaderStrike]: { - name: 'Glyph of Crusader Strike', - description: 'Increases the critical strike chance of Crusader Strike by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_crusaderstrike.jpg', - }, - [PaladinPrimeGlyph.GlyphOfDivineFavor]: { - name: 'Glyph of Divine Favor', - description: 'Increases the duration of Divine Favor by 10 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_divineillumination.jpg', - }, - [PaladinPrimeGlyph.GlyphOfExorcism]: { - name: 'Glyph of Exorcism', - description: 'Your Exorcism causes an additional 20% of its damage over 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_excorcism_02.jpg', - }, - [PaladinPrimeGlyph.GlyphOfHammerOfTheRighteous]: { - name: 'Glyph of Hammer of the Righteous', - description: 'Increases the damage of both the physical and Holy components of Hammer of the Righteous by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_paladin_hammeroftherighteous.jpg', - }, - [PaladinPrimeGlyph.GlyphOfHolyShock]: { - name: 'Glyph of Holy Shock', - description: 'Increases the critical effect chance of Holy Shock by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_searinglight.jpg', - }, - [PaladinPrimeGlyph.GlyphOfJudgement]: { - name: 'Glyph of Judgement', - description: 'Your Judgement deals 10% more damage.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_righteousfury.jpg', - }, - [PaladinPrimeGlyph.GlyphOfSealOfInsight]: { - name: 'Glyph of Seal of Insight', - description: 'While Seal of Insight is active, the effect of your healing spells is increased by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_healingaura.jpg', - }, - [PaladinPrimeGlyph.GlyphOfSealOfTruth]: { - name: 'Glyph of Seal of Truth', - description: 'Your Seal of Truth and Seal of Righteousness also grant 10 expertise while active.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_sealofvengeance.jpg', - }, - [PaladinPrimeGlyph.GlyphOfShieldOfTheRighteous]: { - name: 'Glyph of Shield of the Righteous', - description: 'Increases the damage of Shield of the Righteous by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_paladin_shieldofvengeance.jpg', - }, - [PaladinPrimeGlyph.GlyphOfTemplarSVerdict]: { - name: 'Glyph of Templar\'s Verdict', - description: 'Increases the damage of Templar\'s Verdict by 15%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_paladin_templarsverdict.jpg', - }, - [PaladinPrimeGlyph.GlyphOfWordOfGlory]: { - name: 'Glyph of Word of Glory', - description: 'Increases the healing done by Word of Glory by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_helmet_96.jpg', - }, - }, majorGlyphs: { [PaladinMajorGlyph.GlyphOfBeaconOfLight]: { name: 'Glyph of Beacon of Light', @@ -81,7 +24,7 @@ export const paladinGlyphsConfig: GlyphsConfig = { }, [PaladinMajorGlyph.GlyphOfDazingShield]: { name: 'Glyph of Dazing Shield', - description: 'Your Avenger\'s Shield now also dazes targets.', + description: "Your Avenger's Shield now also dazes targets.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_avengersshield.jpg', }, [PaladinMajorGlyph.GlyphOfDivinePlea]: { @@ -101,7 +44,7 @@ export const paladinGlyphsConfig: GlyphsConfig = { }, [PaladinMajorGlyph.GlyphOfFocusedShield]: { name: 'Glyph of Focused Shield', - description: 'Your Avenger\'s Shield hits 2 fewer targets, but for 30% more damage.', + description: "Your Avenger's Shield hits 2 fewer targets, but for 30% more damage.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_avengersshield.jpg', }, [PaladinMajorGlyph.GlyphOfHammerOfJustice]: { @@ -192,4 +135,4 @@ export const paladinGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_sealofvengeance.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/priest.ts b/ui/core/talents/priest.ts index beff6562ba..d53db458b1 100644 --- a/ui/core/talents/priest.ts +++ b/ui/core/talents/priest.ts @@ -1,73 +1,11 @@ -import { PriestMajorGlyph, PriestMinorGlyph,PriestPrimeGlyph, PriestTalents } from '../proto/priest.js'; +import { PriestMajorGlyph, PriestMinorGlyph, PriestTalents } from '../proto/priest.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import PriestTalentJson from './trees/priest.json'; export const priestTalentsConfig: TalentsConfig = newTalentsConfig(PriestTalentJson); export const priestGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [PriestPrimeGlyph.GlyphOfDispersion]: { - name: 'Glyph of Dispersion', - description: 'Reduces the cooldown on Dispersion by 45 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_dispersion.jpg', - }, - [PriestPrimeGlyph.GlyphOfFlashHeal]: { - name: 'Glyph of Flash Heal', - description: 'Increases the critical effect chance of your Flash Heal on targets at or below 25% health by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_flashheal.jpg', - }, - [PriestPrimeGlyph.GlyphOfGuardianSpirit]: { - name: 'Glyph of Guardian Spirit', - description: 'Reduces the cooldown of your Guardian Spirit by 30 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_guardianspirit.jpg', - }, - [PriestPrimeGlyph.GlyphOfLightwell]: { - name: 'Glyph of Lightwell', - description: 'Increases the total amount of charges of your Lightwell by 5.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_summonlightwell.jpg', - }, - [PriestPrimeGlyph.GlyphOfMindFlay]: { - name: 'Glyph of Mind Flay', - description: 'Increases the damage done by your Mind Flay spell by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_siphonmana.jpg', - }, - [PriestPrimeGlyph.GlyphOfPenance]: { - name: 'Glyph of Penance', - description: 'Reduces the cooldown of Penance by 2 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_penance.jpg', - }, - [PriestPrimeGlyph.GlyphOfPowerWordBarrier]: { - name: 'Glyph of Power Word: Barrier', - description: 'Increases the healing received while under Power Word: Barrier by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_powerwordbarrier.jpg', - }, - [PriestPrimeGlyph.GlyphOfPowerWordShield]: { - name: 'Glyph of Power Word: Shield', - description: 'Your Power Word: Shield also heals the target for 20% of the absorption amount.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_powerwordshield.jpg', - }, - [PriestPrimeGlyph.GlyphOfPrayerOfHealing]: { - name: 'Glyph of Prayer of Healing', - description: 'Your Prayer of Healing spell also heals an additional 20% of its initial heal over 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_prayerofhealing02.jpg', - }, - [PriestPrimeGlyph.GlyphOfRenew]: { - name: 'Glyph of Renew', - description: 'Increases the amount healed by your Renew by an additional 25%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_renew.jpg', - }, - [PriestPrimeGlyph.GlyphOfShadowWordDeath]: { - name: 'Glyph of Shadow Word: Death', - description: 'If your Shadow Word: Death fails to kill the target at or below 25% health, your Shadow Word: Death\'s cooldown is instantly reset. This effect cannot occur more often than once every 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_demonicfortitude.jpg', - }, - [PriestPrimeGlyph.GlyphOfShadowWordPain]: { - name: 'Glyph of Shadow Word: Pain', - description: 'Increases the periodic damage of your Shadow Word: Pain by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_shadowwordpain.jpg', - }, - }, majorGlyphs: { [PriestMajorGlyph.GlyphOfCircleOfHealing]: { name: 'Glyph of Circle of Healing', @@ -126,7 +64,8 @@ export const priestGlyphsConfig: GlyphsConfig = { }, [PriestMajorGlyph.GlyphOfPsychicScream]: { name: 'Glyph of Psychic Scream', - description: 'Targets of your Psychic Scream spell now tremble in place instead of fleeing in fear, but the cooldown of Psychic Scream is increased by 3 sec.', + description: + 'Targets of your Psychic Scream spell now tremble in place instead of fleeing in fear, but the cooldown of Psychic Scream is increased by 3 sec.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_psychicscream.jpg', }, [PriestMajorGlyph.GlyphOfScourgeImprisonment]: { @@ -182,4 +121,4 @@ export const priestGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_shadowfiend.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/rogue.ts b/ui/core/talents/rogue.ts index 86074298e3..2c3f50bc55 100644 --- a/ui/core/talents/rogue.ts +++ b/ui/core/talents/rogue.ts @@ -1,73 +1,11 @@ -import { RogueMajorGlyph, RogueMinorGlyph,RoguePrimeGlyph, RogueTalents } from '../proto/rogue.js'; +import { RogueMajorGlyph, RogueMinorGlyph, RogueTalents } from '../proto/rogue.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import RogueTalentJson from './trees/rogue.json'; export const rogueTalentsConfig: TalentsConfig = newTalentsConfig(RogueTalentJson); export const rogueGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [RoguePrimeGlyph.GlyphOfAdrenalineRush]: { - name: 'Glyph of Adrenaline Rush', - description: 'Increases the duration of Adrenaline Rush by 5 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_shadowworddominate.jpg', - }, - [RoguePrimeGlyph.GlyphOfBackstab]: { - name: 'Glyph of Backstab', - description: 'Your Backstab critical strikes grant you 5 Energy.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_backstab.jpg', - }, - [RoguePrimeGlyph.GlyphOfEviscerate]: { - name: 'Glyph of Eviscerate', - description: 'Increases the critical strike chance of Eviscerate by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_eviscerate.jpg', - }, - [RoguePrimeGlyph.GlyphOfHemorrhage]: { - name: 'Glyph of Hemorrhage', - description: 'Your Hemorrhage ability also causes the target to bleed, dealing 40% of the direct strike\'s damage over 24 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_lifedrain.jpg', - }, - [RoguePrimeGlyph.GlyphOfKillingSpree]: { - name: 'Glyph of Killing Spree', - description: 'Increases the bonus to your damage while Killing Spree is active by an additional 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_murderspree.jpg', - }, - [RoguePrimeGlyph.GlyphOfMutilate]: { - name: 'Glyph of Mutilate', - description: 'Reduces the cost of Mutilate by 5 Energy.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_shadowstrikes.jpg', - }, - [RoguePrimeGlyph.GlyphOfRevealingStrike]: { - name: 'Glyph of Revealing Strike', - description: 'Increases Revealing Strike\'s bonus effectiveness to your finishing moves by an additional 10%', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_sword_97.jpg', - }, - [RoguePrimeGlyph.GlyphOfRupture]: { - name: 'Glyph of Rupture', - description: 'Increases the duration of Rupture by 4 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_rupture.jpg', - }, - [RoguePrimeGlyph.GlyphOfShadowDance]: { - name: 'Glyph of Shadow Dance', - description: 'Increases the duration of Shadow Dance by 2 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_shadowdance.jpg', - }, - [RoguePrimeGlyph.GlyphOfSinisterStrike]: { - name: 'Glyph of Sinister Strike', - description: 'Your Sinister Strikes have a 20% chance to add an additional combo point.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_ritualofsacrifice.jpg', - }, - [RoguePrimeGlyph.GlyphOfSliceAndDice]: { - name: 'Glyph of Slice and Dice', - description: 'Increases the duration of Slice and Dice by 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_slicedice.jpg', - }, - [RoguePrimeGlyph.GlyphOfVendetta]: { - name: 'Glyph of Vendetta', - description: 'Increases the duration of your Vendetta ability by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_deadliness.jpg', - }, - }, majorGlyphs: { [RogueMajorGlyph.GlyphOfAmbush]: { name: 'Glyph of Ambush', @@ -121,7 +59,7 @@ export const rogueGlyphsConfig: GlyphsConfig = { }, [RogueMajorGlyph.GlyphOfGarrote]: { name: 'Glyph of Garrote', - description: 'Increases the duration of your Garrote ability\'s silence effect by 1.5 sec.', + description: "Increases the duration of your Garrote ability's silence effect by 1.5 sec.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_garrote.jpg', }, [RogueMajorGlyph.GlyphOfGouge]: { @@ -131,7 +69,8 @@ export const rogueGlyphsConfig: GlyphsConfig = { }, [RogueMajorGlyph.GlyphOfKick]: { name: 'Glyph of Kick', - description: 'Increases the cooldown of your Kick ability by 4 sec, but this cooldown is reduced by 6 sec when your Kick successfully interrupts a spell.', + description: + 'Increases the cooldown of your Kick ability by 4 sec, but this cooldown is reduced by 6 sec when your Kick successfully interrupts a spell.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_kick.jpg', }, [RogueMajorGlyph.GlyphOfPreparation]: { @@ -151,7 +90,7 @@ export const rogueGlyphsConfig: GlyphsConfig = { }, [RogueMajorGlyph.GlyphOfTricksOfTheTrade]: { name: 'Glyph of Tricks of the Trade', - description: 'Removes the Energy cost of your Tricks of the Trade ability but reduces the recipient\'s damage bonus by 5%.', + description: "Removes the Energy cost of your Tricks of the Trade ability but reduces the recipient's damage bonus by 5%.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_rogue_tricksofthetrade.jpg', }, [RogueMajorGlyph.GlyphOfVanish]: { @@ -192,4 +131,4 @@ export const rogueGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_feather_01.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/shaman.ts b/ui/core/talents/shaman.ts index 3a3cc3907c..f53ab30081 100644 --- a/ui/core/talents/shaman.ts +++ b/ui/core/talents/shaman.ts @@ -1,91 +1,15 @@ -import { ShamanMajorGlyph, ShamanMinorGlyph,ShamanPrimeGlyph, ShamanTalents } from '../proto/shaman.js'; +import { ShamanMajorGlyph, ShamanMinorGlyph, ShamanTalents } from '../proto/shaman.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import ShamanTalentJson from './trees/shaman.json'; export const shamanTalentsConfig: TalentsConfig = newTalentsConfig(ShamanTalentJson); export const shamanGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [ShamanPrimeGlyph.GlyphOfEarthShield]: { - name: 'Glyph of Earth Shield', - description: 'Increases the amount healed by your Earth Shield by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_skinofearth.jpg', - }, - [ShamanPrimeGlyph.GlyphOfEarthlivingWeapon]: { - name: 'Glyph of Earthliving Weapon', - description: 'Increases the effectiveness of your Earthliving weapon\'s periodic healing by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_unleashweapon_life.jpg', - }, - [ShamanPrimeGlyph.GlyphOfFeralSpirit]: { - name: 'Glyph of Feral Spirit', - description: 'Your spirit wolves gain an additional 30% of your attack power.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_feralspirit.jpg', - }, - [ShamanPrimeGlyph.GlyphOfFireElementalTotem]: { - name: 'Glyph of Fire Elemental Totem', - description: 'Reduces the cooldown of your Fire Elemental Totem by 5 min.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_elemental_totem.jpg', - }, - [ShamanPrimeGlyph.GlyphOfFlameShock]: { - name: 'Glyph of Flame Shock', - description: 'Increases the duration of your Flame Shock by 50%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_flameshock.jpg', - }, - [ShamanPrimeGlyph.GlyphOfFlametongueWeapon]: { - name: 'Glyph of Flametongue Weapon', - description: 'Increases your spell critical strike chance by 2% on each of your weapons with Flametongue Weapon active.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_unleashweapon_flame.jpg', - }, - [ShamanPrimeGlyph.GlyphOfLavaBurst]: { - name: 'Glyph of Lava Burst', - description: 'Your Lava Burst spell deals 10% more damage.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_lavaburst.jpg', - }, - [ShamanPrimeGlyph.GlyphOfLavaLash]: { - name: 'Glyph of Lava Lash', - description: 'Increases the damage dealt by your Lava Lash ability by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_shaman_lavalash.jpg', - }, - [ShamanPrimeGlyph.GlyphOfLightningBolt]: { - name: 'Glyph of Lightning Bolt', - description: 'Increases the damage dealt by Lightning Bolt by 4%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_lightning.jpg', - }, - [ShamanPrimeGlyph.GlyphOfRiptide]: { - name: 'Glyph of Riptide', - description: 'Increases the duration of Riptide by 40%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_riptide.jpg', - }, - [ShamanPrimeGlyph.GlyphOfShocking]: { - name: 'Glyph of Shocking', - description: 'Reduces your global cooldown when casting your shock spells by 0.0 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_earthshock.jpg', - }, - [ShamanPrimeGlyph.GlyphOfStormstrike]: { - name: 'Glyph of Stormstrike', - description: 'Increases the critical strike chance bonus from your Stormstrike ability by an additional 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_shaman_stormstrike.jpg', - }, - [ShamanPrimeGlyph.GlyphOfUnleashedLightning]: { - name: 'Glyph of Unleashed Lightning', - description: 'Allows Lightning Bolt to be cast while moving.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_lightning.jpg', - }, - [ShamanPrimeGlyph.GlyphOfWaterShield]: { - name: 'Glyph of Water Shield', - description: 'Increases the passive mana regeneration of your Water Shield spell by 50%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_shaman_watershield.jpg', - }, - [ShamanPrimeGlyph.GlyphOfWindfuryWeapon]: { - name: 'Glyph of Windfury Weapon', - description: 'Increases the chance per swing for Windfury Weapon to trigger by 2%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_unleashweapon_wind.jpg', - }, - }, majorGlyphs: { [ShamanMajorGlyph.GlyphOfChainHeal]: { name: 'Glyph of Chain Heal', - description: 'Increases healing done by your Chain Heal spell to targets beyond the first by 15%, but decreases the amount received by the initial target by 10%.', + description: + 'Increases healing done by your Chain Heal spell to targets beyond the first by 15%, but decreases the amount received by the initial target by 10%.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_healingwavegreater.jpg', }, [ShamanMajorGlyph.GlyphOfChainLightning]: { @@ -115,7 +39,8 @@ export const shamanGlyphsConfig: GlyphsConfig = { }, [ShamanMajorGlyph.GlyphOfGroundingTotem]: { name: 'Glyph of Grounding Totem', - description: 'Instead of absorbing a spell, your Grounding Totem reflects the next harmful spell back at its caster, but the cooldown of your Grounding Totem is increased by 35 sec.', + description: + 'Instead of absorbing a spell, your Grounding Totem reflects the next harmful spell back at its caster, but the cooldown of your Grounding Totem is increased by 35 sec.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_groundingtotem.jpg', }, [ShamanMajorGlyph.GlyphOfHealingStreamTotem]: { @@ -145,7 +70,8 @@ export const shamanGlyphsConfig: GlyphsConfig = { }, [ShamanMajorGlyph.GlyphOfStoneclawTotem]: { name: 'Glyph of Stoneclaw Totem', - description: 'Your Stoneclaw Totem also places a damage absorb shield on you, equal to 4 times the strength of the shield it places on your totems.', + description: + 'Your Stoneclaw Totem also places a damage absorb shield on you, equal to 4 times the strength of the shield it places on your totems.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_stoneclawtotem.jpg', }, [ShamanMajorGlyph.GlyphOfThunder]: { @@ -177,7 +103,8 @@ export const shamanGlyphsConfig: GlyphsConfig = { }, [ShamanMinorGlyph.GlyphOfThunderstorm]: { name: 'Glyph of Thunderstorm', - description: 'Increases the mana you receive from your Thunderstorm spell by 2%, but it no longer knocks enemies back or reduces their movement speed.', + description: + 'Increases the mana you receive from your Thunderstorm spell by 2%, but it no longer knocks enemies back or reduces their movement speed.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shaman_thunderstorm.jpg', }, [ShamanMinorGlyph.GlyphOfWaterBreathing]: { @@ -191,4 +118,4 @@ export const shamanGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_frost_windwalkon.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/warlock.ts b/ui/core/talents/warlock.ts index e8ade0dffb..5091692d7d 100644 --- a/ui/core/talents/warlock.ts +++ b/ui/core/talents/warlock.ts @@ -1,78 +1,11 @@ -import { WarlockMajorGlyph, WarlockMinorGlyph,WarlockPrimeGlyph, WarlockTalents } from '../proto/warlock.js'; +import { WarlockMajorGlyph, WarlockMinorGlyph, WarlockTalents } from '../proto/warlock.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import WarlockTalentJson from './trees/warlock.json'; export const warlockTalentsConfig: TalentsConfig = newTalentsConfig(WarlockTalentJson); export const warlockGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [WarlockPrimeGlyph.GlyphOfBaneOfAgony]: { - name: 'Glyph of Bane of Agony', - description: 'Increases the duration of your Bane of Agony by 4 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_curseofsargeras.jpg', - }, - [WarlockPrimeGlyph.GlyphOfChaosBolt]: { - name: 'Glyph of Chaos Bolt', - description: 'Reduces the cooldown on Chaos Bolt by 2 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warlock_chaosbolt.jpg', - }, - [WarlockPrimeGlyph.GlyphOfConflagrate]: { - name: 'Glyph of Conflagrate', - description: 'Reduces the cooldown of your Conflagrate by 2 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_fireball.jpg', - }, - [WarlockPrimeGlyph.GlyphOfCorruption]: { - name: 'Glyph of Corruption', - description: 'Your Corruption spell has a 4% chance to cause you to enter a Shadow Trance state after damaging the opponent. The Shadow Trance state reduces the casting time of your next Shadow Bolt spell by 100%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_abominationexplosion.jpg', - }, - [WarlockPrimeGlyph.GlyphOfFelguard]: { - name: 'Glyph of Felguard', - description: 'Increases the damage done by your Felguard\'s Legion Strike by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_summonfelguard.jpg', - }, - [WarlockPrimeGlyph.GlyphOfHaunt]: { - name: 'Glyph of Haunt', - description: 'The bonus damage granted by your Haunt spell is increased by an additional 3%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warlock_haunt.jpg', - }, - [WarlockPrimeGlyph.GlyphOfImmolate]: { - name: 'Glyph of Immolate', - description: 'Increases the periodic damage of your Immolate by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_immolation.jpg', - }, - [WarlockPrimeGlyph.GlyphOfImp]: { - name: 'Glyph of Imp', - description: 'Increases the damage done by your Imp\'s Firebolt spell by 20%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_summonimp.jpg', - }, - [WarlockPrimeGlyph.GlyphOfIncinerate]: { - name: 'Glyph of Incinerate', - description: 'Increases the damage done by Incinerate by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_fire_burnout.jpg', - }, - [WarlockPrimeGlyph.GlyphOfLashOfPain]: { - name: 'Glyph of Lash of Pain', - description: 'Increases the damage done by your Succubus\' Lash of Pain by 25%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_curse.jpg', - }, - [WarlockPrimeGlyph.GlyphOfMetamorphosis]: { - name: 'Glyph of Metamorphosis', - description: 'Increases the duration of your Metamorphosis by 6 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_demonform.jpg', - }, - [WarlockPrimeGlyph.GlyphOfShadowburn]: { - name: 'Glyph of Shadowburn', - description: 'If your Shadowburn fails to kill the target at or below 20% health, your Shadowburn\'s cooldown is instantly reset. This effect has a 6 sec cooldown.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_scourgebuild.jpg', - }, - [WarlockPrimeGlyph.GlyphOfUnstableAffliction]: { - name: 'Glyph of Unstable Affliction', - description: 'Decreases the casting time of your Unstable Affliction by 0.2 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_unstableaffliction_3.jpg', - }, - }, majorGlyphs: { [WarlockMajorGlyph.GlyphOfDeathCoilWl]: { name: 'Glyph of Death Coil', @@ -111,7 +44,7 @@ export const warlockGlyphsConfig: GlyphsConfig = { }, [WarlockMajorGlyph.GlyphOfSeduction]: { name: 'Glyph of Seduction', - description: 'Your Succubus\'s Seduction ability also removes all damage over time effects from the target.', + description: "Your Succubus's Seduction ability also removes all damage over time effects from the target.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_mindsteal.jpg', }, [WarlockMajorGlyph.GlyphOfShadowBolt]: { @@ -131,7 +64,8 @@ export const warlockGlyphsConfig: GlyphsConfig = { }, [WarlockMajorGlyph.GlyphOfSoulSwap]: { name: 'Glyph of Soul Swap', - description: 'Your Soul Swap leaves your damage-over-time spells behind on the target you Soul Swapped from, but gives Soul Swap a 30 sec cooldown.', + description: + 'Your Soul Swap leaves your damage-over-time spells behind on the target you Soul Swapped from, but gives Soul Swap a 30 sec cooldown.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warlock_soulswap.jpg', }, [WarlockMajorGlyph.GlyphOfSoulstone]: { @@ -141,7 +75,7 @@ export const warlockGlyphsConfig: GlyphsConfig = { }, [WarlockMajorGlyph.GlyphOfVoidwalker]: { name: 'Glyph of Voidwalker', - description: 'Increases your Voidwalker\'s total health by 20%.', + description: "Increases your Voidwalker's total health by 20%.", iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_summonvoidwalker.jpg', }, }, @@ -182,4 +116,4 @@ export const warlockGlyphsConfig: GlyphsConfig = { iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_demonbreath.jpg', }, }, -}; \ No newline at end of file +}; diff --git a/ui/core/talents/warrior.ts b/ui/core/talents/warrior.ts index dd5c22a966..b51748297c 100644 --- a/ui/core/talents/warrior.ts +++ b/ui/core/talents/warrior.ts @@ -1,58 +1,11 @@ -import { WarriorMajorGlyph, WarriorMinorGlyph,WarriorPrimeGlyph, WarriorTalents } from '../proto/warrior.js'; +import { WarriorMajorGlyph, WarriorMinorGlyph, WarriorTalents } from '../proto/warrior.js'; import { GlyphsConfig } from './glyphs_picker.js'; -import { newTalentsConfig,TalentsConfig } from './talents_picker.js'; +import { newTalentsConfig, TalentsConfig } from './talents_picker.js'; import WarriorTalentJson from './trees/warrior.json'; export const warriorTalentsConfig: TalentsConfig = newTalentsConfig(WarriorTalentJson); export const warriorGlyphsConfig: GlyphsConfig = { - primeGlyphs: { - [WarriorPrimeGlyph.GlyphOfBladestorm]: { - name: 'Glyph of Bladestorm', - description: 'Reduces the cooldown on Bladestorm by 15 sec.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warrior_bladestorm.jpg', - }, - [WarriorPrimeGlyph.GlyphOfBloodthirst]: { - name: 'Glyph of Bloodthirst', - description: 'Increases the damage of Bloodthirst by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/spell_nature_bloodlust.jpg', - }, - [WarriorPrimeGlyph.GlyphOfDevastate]: { - name: 'Glyph of Devastate', - description: 'Increases the critical strike chance of Devastate by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_sword_11.jpg', - }, - [WarriorPrimeGlyph.GlyphOfMortalStrike]: { - name: 'Glyph of Mortal Strike', - description: 'Increases the damage of Mortal Strike by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warrior_savageblow.jpg', - }, - [WarriorPrimeGlyph.GlyphOfOverpower]: { - name: 'Glyph of Overpower', - description: 'Increases the damage of Overpower by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_meleedamage.jpg', - }, - [WarriorPrimeGlyph.GlyphOfRagingBlow]: { - name: 'Glyph of Raging Blow', - description: 'Increases the critical strike chance of Raging Blow by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_hunter_swiftstrike.jpg', - }, - [WarriorPrimeGlyph.GlyphOfRevenge]: { - name: 'Glyph of Revenge', - description: 'Increases the damage of Revenge by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warrior_revenge.jpg', - }, - [WarriorPrimeGlyph.GlyphOfShieldSlam]: { - name: 'Glyph of Shield Slam', - description: 'Increases the damage of Shield Slam by 10%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/inv_shield_05.jpg', - }, - [WarriorPrimeGlyph.GlyphOfSlam]: { - name: 'Glyph of Slam', - description: 'Increases the critical strike chance of Slam by 5%.', - iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_warrior_decisivestrike.jpg', - }, - }, majorGlyphs: { [WarriorMajorGlyph.GlyphOfCleaving]: { name: 'Glyph of Cleaving', @@ -180,6 +133,6 @@ export const warriorGlyphsConfig: GlyphsConfig = { name: 'Glyph of Intimidating Shout', description: 'All targets of your Intimidating Shout now tremble in place instead of fleeing in fear.', iconUrl: 'https://wow.zamimg.com/images/wow/icons/large/ability_golemthunderclap.jpg', - } + }, }, }; diff --git a/ui/death_knight/blood/presets.ts b/ui/death_knight/blood/presets.ts index 90ca5b5cdf..c0937197c8 100644 --- a/ui/death_knight/blood/presets.ts +++ b/ui/death_knight/blood/presets.ts @@ -1,6 +1,6 @@ import * as PresetUtils from '../../core/preset_utils.js'; import { Consumes, Flask, Food, Glyphs, Potions, Profession, PseudoStat, Stat, TinkerHands } from '../../core/proto/common.js'; -import { BloodDeathKnight_Options, DeathKnightMajorGlyph, DeathKnightMinorGlyph, DeathKnightPrimeGlyph } from '../../core/proto/death_knight'; +import { BloodDeathKnight_Options, DeathKnightMajorGlyph, DeathKnightMinorGlyph } from '../../core/proto/death_knight'; import { SavedTalents } from '../../core/proto/ui.js'; import { Stats } from '../../core/proto_utils/stats'; import DefensiveBloodApl from './apls/defensive.apl.json'; @@ -80,9 +80,6 @@ export const BloodTalents = { data: SavedTalents.create({ talentsString: '02323203102122111321-3-033', glyphs: Glyphs.create({ - prime1: DeathKnightPrimeGlyph.GlyphOfDeathStrike, - prime2: DeathKnightPrimeGlyph.GlyphOfHeartStrike, - prime3: DeathKnightPrimeGlyph.GlyphOfRuneStrike, major1: DeathKnightMajorGlyph.GlyphOfAntiMagicShell, major2: DeathKnightMajorGlyph.GlyphOfDancingRuneWeapon, major3: DeathKnightMajorGlyph.GlyphOfBoneShield, @@ -96,12 +93,12 @@ export const BloodTalents = { export const P1_PRESET = PresetUtils.makePresetBuild('P1', { gear: P1_BLOOD_PRESET, epWeights: P1_BLOOD_EP_PRESET, -}) +}); export const P3_PRESET = PresetUtils.makePresetBuild('P3', { gear: P3_BLOOD_BALANCED_PRESET, epWeights: P3_BLOOD_EP_PRESET, -}) +}); export const DefaultOptions = BloodDeathKnight_Options.create({ classOptions: { diff --git a/ui/death_knight/frost/presets.ts b/ui/death_knight/frost/presets.ts index eddae96b9f..9e97f731ed 100644 --- a/ui/death_knight/frost/presets.ts +++ b/ui/death_knight/frost/presets.ts @@ -4,7 +4,7 @@ import * as PresetUtils from '../../core/preset_utils'; import { makeSpecChangeWarningToast } from '../../core/preset_utils'; import { APLRotation_Type as APLRotationType } from '../../core/proto/apl'; import { Consumes, Flask, Food, Glyphs, HandType, ItemSlot, Potions, Profession, PseudoStat, Spec, Stat, TinkerHands } from '../../core/proto/common'; -import { DeathKnightMajorGlyph, DeathKnightMinorGlyph, DeathKnightPrimeGlyph, FrostDeathKnight_Options } from '../../core/proto/death_knight'; +import { DeathKnightMajorGlyph, DeathKnightMinorGlyph, FrostDeathKnight_Options } from '../../core/proto/death_knight'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import TwoHandAPL from '../../death_knight/frost/apls/2h.apl.json'; @@ -174,9 +174,6 @@ export const DualWieldTalents = { data: SavedTalents.create({ talentsString: '2032-20330022233112012301-003', glyphs: Glyphs.create({ - prime1: DeathKnightPrimeGlyph.GlyphOfFrostStrike, - prime2: DeathKnightPrimeGlyph.GlyphOfObliterate, - prime3: DeathKnightPrimeGlyph.GlyphOfRaiseDead, major1: DeathKnightMajorGlyph.GlyphOfAntiMagicShell, major2: DeathKnightMajorGlyph.GlyphOfDeathGrip, major3: DeathKnightMajorGlyph.GlyphOfDarkSuccor, @@ -193,9 +190,6 @@ export const TwoHandTalents = { data: SavedTalents.create({ talentsString: '103-32030022233112012031-033', glyphs: Glyphs.create({ - prime1: DeathKnightPrimeGlyph.GlyphOfFrostStrike, - prime2: DeathKnightPrimeGlyph.GlyphOfObliterate, - prime3: DeathKnightPrimeGlyph.GlyphOfHowlingBlast, major1: DeathKnightMajorGlyph.GlyphOfPestilence, major2: DeathKnightMajorGlyph.GlyphOfBloodBoil, major3: DeathKnightMajorGlyph.GlyphOfDarkSuccor, @@ -212,9 +206,6 @@ export const MasterfrostTalents = { data: SavedTalents.create({ talentsString: '2032-30330012233112012301-03', glyphs: Glyphs.create({ - prime1: DeathKnightPrimeGlyph.GlyphOfFrostStrike, - prime2: DeathKnightPrimeGlyph.GlyphOfObliterate, - prime3: DeathKnightPrimeGlyph.GlyphOfHowlingBlast, major1: DeathKnightMajorGlyph.GlyphOfPestilence, major2: DeathKnightMajorGlyph.GlyphOfBloodBoil, major3: DeathKnightMajorGlyph.GlyphOfDarkSuccor, diff --git a/ui/death_knight/unholy/presets.ts b/ui/death_knight/unholy/presets.ts index 7b70bde696..00c9224d5d 100644 --- a/ui/death_knight/unholy/presets.ts +++ b/ui/death_knight/unholy/presets.ts @@ -1,7 +1,7 @@ import * as PresetUtils from '../../core/preset_utils'; import { APLRotation_Type as APLRotationType } from '../../core/proto/apl.js'; import { Consumes, Flask, Food, Glyphs, Potions, Profession, PseudoStat, Stat, TinkerHands, UnitReference } from '../../core/proto/common'; -import { DeathKnightMajorGlyph, DeathKnightMinorGlyph, DeathKnightPrimeGlyph, UnholyDeathKnight_Options } from '../../core/proto/death_knight'; +import { DeathKnightMajorGlyph, DeathKnightMinorGlyph, UnholyDeathKnight_Options } from '../../core/proto/death_knight'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import DefaultApl from '../../death_knight/unholy/apls/default.apl.json'; @@ -31,7 +31,7 @@ export const P2_UNHOLY_EP_PRESET = PresetUtils.makePresetEpWeights( [Stat.StatExpertiseRating]: 0.94, [Stat.StatHasteRating]: 2.4, [Stat.StatHitRating]: 2.6, - [Stat.StatCritRating]: (1.43 + 0.69), + [Stat.StatCritRating]: 1.43 + 0.69, [Stat.StatMasteryRating]: 1.65, }, { @@ -48,7 +48,7 @@ export const P3_UNHOLY_EP_PRESET = PresetUtils.makePresetEpWeights( [Stat.StatArmor]: 0.03, [Stat.StatAttackPower]: 1, [Stat.StatExpertiseRating]: 1.13, - [Stat.StatHasteRating]: 2.40, + [Stat.StatHasteRating]: 2.4, [Stat.StatHitRating]: 2.61, [Stat.StatCritRating]: 2.33, [Stat.StatMasteryRating]: 1.87, @@ -67,9 +67,6 @@ export const DefaultTalents = { data: SavedTalents.create({ talentsString: '2032-1-13300321230231021231', glyphs: Glyphs.create({ - prime1: DeathKnightPrimeGlyph.GlyphOfDeathCoil, - prime2: DeathKnightPrimeGlyph.GlyphOfScourgeStrike, - prime3: DeathKnightPrimeGlyph.GlyphOfRaiseDead, major1: DeathKnightMajorGlyph.GlyphOfPestilence, major2: DeathKnightMajorGlyph.GlyphOfBloodBoil, major3: DeathKnightMajorGlyph.GlyphOfAntiMagicShell, @@ -84,25 +81,25 @@ export const PREBIS_PRESET = PresetUtils.makePresetBuild('Pre-bis', { gear: PREBIS_GEAR_PRESET, epWeights: P2_UNHOLY_EP_PRESET, rotationType: APLRotationType.TypeAuto, -}) +}); export const P2_PRESET = PresetUtils.makePresetBuild('P2', { gear: P2_BIS_GEAR_PRESET, epWeights: P2_UNHOLY_EP_PRESET, rotationType: APLRotationType.TypeAuto, -}) +}); export const P3_PRESET = PresetUtils.makePresetBuild('P3', { gear: P3_BIS_GEAR_PRESET, epWeights: P3_UNHOLY_EP_PRESET, rotationType: APLRotationType.TypeAuto, -}) +}); export const P4_PRESET = PresetUtils.makePresetBuild('P4', { gear: P4_BIS_GEAR_PRESET, epWeights: P3_UNHOLY_EP_PRESET, rotationType: APLRotationType.TypeAuto, -}) +}); export const DefaultOptions = UnholyDeathKnight_Options.create({ classOptions: { diff --git a/ui/druid/balance/presets.ts b/ui/druid/balance/presets.ts index e48207f220..adbd79c502 100644 --- a/ui/druid/balance/presets.ts +++ b/ui/druid/balance/presets.ts @@ -13,7 +13,7 @@ import { Stat, UnitReference, } from '../../core/proto/common.js'; -import { BalanceDruid_Options as BalanceDruidOptions, DruidMajorGlyph, DruidMinorGlyph, DruidPrimeGlyph } from '../../core/proto/druid.js'; +import { BalanceDruid_Options as BalanceDruidOptions, DruidMajorGlyph, DruidMinorGlyph } from '../../core/proto/druid.js'; import { SavedTalents } from '../../core/proto/ui.js'; import { Stats } from '../../core/proto_utils/stats'; import T11Apl from './apls/t11.apl.json'; @@ -56,9 +56,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '33230221123212111001-01-020331', glyphs: Glyphs.create({ - prime1: DruidPrimeGlyph.GlyphOfInsectSwarm, - prime2: DruidPrimeGlyph.GlyphOfMoonfire, - prime3: DruidPrimeGlyph.GlyphOfWrath, major1: DruidMajorGlyph.GlyphOfStarfall, major2: DruidMajorGlyph.GlyphOfRebirth, major3: DruidMajorGlyph.GlyphOfMonsoon, diff --git a/ui/druid/feral/presets.ts b/ui/druid/feral/presets.ts index 7c65c615ae..e218da4a0c 100644 --- a/ui/druid/feral/presets.ts +++ b/ui/druid/feral/presets.ts @@ -3,7 +3,6 @@ import { Consumes, Flask, Food, Glyphs, Potions, Profession, PseudoStat, Spec, S import { DruidMajorGlyph, DruidMinorGlyph, - DruidPrimeGlyph, FeralDruid_Options as FeralDruidOptions, FeralDruid_Rotation as FeralDruidRotation, FeralDruid_Rotation_AplType, @@ -116,9 +115,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '-2320322312012121202301-020301', glyphs: Glyphs.create({ - prime1: DruidPrimeGlyph.GlyphOfRip, - prime2: DruidPrimeGlyph.GlyphOfBloodletting, - prime3: DruidPrimeGlyph.GlyphOfBerserk, major1: DruidMajorGlyph.GlyphOfThorns, major2: DruidMajorGlyph.GlyphOfFeralCharge, major3: DruidMajorGlyph.GlyphOfRebirth, @@ -134,9 +130,6 @@ export const HybridTalents = { data: SavedTalents.create({ talentsString: '-2300322312310001220311-020331', glyphs: Glyphs.create({ - prime1: DruidPrimeGlyph.GlyphOfRip, - prime2: DruidPrimeGlyph.GlyphOfBloodletting, - prime3: DruidPrimeGlyph.GlyphOfBerserk, major1: DruidMajorGlyph.GlyphOfFrenziedRegeneration, major2: DruidMajorGlyph.GlyphOfMaul, major3: DruidMajorGlyph.GlyphOfRebirth, diff --git a/ui/druid/guardian/presets.ts b/ui/druid/guardian/presets.ts index f26bf675e5..2280378e27 100644 --- a/ui/druid/guardian/presets.ts +++ b/ui/druid/guardian/presets.ts @@ -4,7 +4,6 @@ import { Conjured, Consumes, Flask, Food, Glyphs, Potions, Profession, PseudoSta import { DruidMajorGlyph, DruidMinorGlyph, - DruidPrimeGlyph, GuardianDruid_Options as DruidOptions, GuardianDruid_Rotation as DruidRotation, } from '../../core/proto/druid.js'; @@ -109,9 +108,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '-2300322312310001220311-020331', glyphs: Glyphs.create({ - prime1: DruidPrimeGlyph.GlyphOfMangle, - prime2: DruidPrimeGlyph.GlyphOfLacerate, - prime3: DruidPrimeGlyph.GlyphOfBerserk, major1: DruidMajorGlyph.GlyphOfFrenziedRegeneration, major2: DruidMajorGlyph.GlyphOfMaul, major3: DruidMajorGlyph.GlyphOfRebirth, @@ -127,9 +123,6 @@ export const InfectedWoundsBuild = { data: SavedTalents.create({ talentsString: '-2302322310310001220311-020331', glyphs: Glyphs.create({ - prime1: DruidPrimeGlyph.GlyphOfMangle, - prime2: DruidPrimeGlyph.GlyphOfRip, - prime3: DruidPrimeGlyph.GlyphOfBerserk, major1: DruidMajorGlyph.GlyphOfFrenziedRegeneration, major2: DruidMajorGlyph.GlyphOfMaul, major3: DruidMajorGlyph.GlyphOfRebirth, diff --git a/ui/hunter/beast_mastery/presets.ts b/ui/hunter/beast_mastery/presets.ts index 458ac27d57..1caf7d92f4 100644 --- a/ui/hunter/beast_mastery/presets.ts +++ b/ui/hunter/beast_mastery/presets.ts @@ -6,7 +6,6 @@ import { BeastMasteryHunter_Rotation as BeastMasteryRotation, HunterMajorGlyph as MajorGlyph, HunterOptions_PetType as PetType, - HunterPrimeGlyph as PrimeGlyph, HunterStingType as StingType, } from '../../core/proto/hunter'; import { SavedTalents } from '../../core/proto/ui'; @@ -79,9 +78,6 @@ export const BeastMasteryTalents = { data: SavedTalents.create({ talentsString: '2330230311320112121-2302-03', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfArcaneShot, - prime2: PrimeGlyph.GlyphOfKillCommand, - prime3: PrimeGlyph.GlyphOfKillShot, major1: MajorGlyph.GlyphOfBestialWrath, major2: MajorGlyph.GlyphOfRaptorStrike, major3: MajorGlyph.GlyphOfTrapLauncher, diff --git a/ui/hunter/marksmanship/presets.ts b/ui/hunter/marksmanship/presets.ts index 3a42423297..21c3c59638 100644 --- a/ui/hunter/marksmanship/presets.ts +++ b/ui/hunter/marksmanship/presets.ts @@ -6,7 +6,6 @@ import { BeastMasteryHunter_Rotation as HunterRotation, HunterMajorGlyph as MajorGlyph, HunterOptions_PetType as PetType, - HunterPrimeGlyph as PrimeGlyph, HunterStingType, } from '../../core/proto/hunter'; import { SavedTalents } from '../../core/proto/ui'; @@ -80,9 +79,6 @@ export const MarksmanTalents = { data: SavedTalents.create({ talentsString: '032002-2302320232120231201-03', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfArcaneShot, - prime2: PrimeGlyph.GlyphOfRapidFire, - prime3: PrimeGlyph.GlyphOfSteadyShot, major1: MajorGlyph.GlyphOfDisengage, major2: MajorGlyph.GlyphOfRaptorStrike, major3: MajorGlyph.GlyphOfTrapLauncher, diff --git a/ui/hunter/survival/presets.ts b/ui/hunter/survival/presets.ts index 9a15adebd8..0e2534945d 100644 --- a/ui/hunter/survival/presets.ts +++ b/ui/hunter/survival/presets.ts @@ -7,7 +7,6 @@ import { HunterMinorGlyph as MinorGlyph, HunterOptions_Ammo as Ammo, HunterOptions_PetType as PetType, - HunterPrimeGlyph as PrimeGlyph, HunterStingType, SurvivalHunter_Options as HunterOptions, SurvivalHunter_Rotation as HunterRotation, @@ -37,9 +36,6 @@ export const SurvivalTalents = { data: SavedTalents.create({ talentsString: '03-2302-03203203023022121311', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfExplosiveShot, - prime2: PrimeGlyph.GlyphOfKillShot, - prime3: PrimeGlyph.GlyphOfArcaneShot, major1: MajorGlyph.GlyphOfDisengage, major2: MajorGlyph.GlyphOfRaptorStrike, major3: MajorGlyph.GlyphOfTrapLauncher, diff --git a/ui/mage/arcane/presets.ts b/ui/mage/arcane/presets.ts index 7af87be5c1..7da2ff80de 100644 --- a/ui/mage/arcane/presets.ts +++ b/ui/mage/arcane/presets.ts @@ -1,6 +1,6 @@ import * as PresetUtils from '../../core/preset_utils'; import { Consumes, Debuffs, Flask, Food, Glyphs, Potions, Profession, RaidBuffs, Stat, TinkerHands, UnitReference } from '../../core/proto/common'; -import { ArcaneMage_Options as MageOptions, MageMajorGlyph as MajorGlyph, MagePrimeGlyph as PrimeGlyph } from '../../core/proto/mage'; +import { ArcaneMage_Options as MageOptions, MageMajorGlyph as MajorGlyph } from '../../core/proto/mage'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import ArcaneApl from './apls/arcane.apl.json'; @@ -35,7 +35,7 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights( [Stat.StatSpellPower]: 1, [Stat.StatHitRating]: 1.52, [Stat.StatCritRating]: 0.65, - [Stat.StatHasteRating]: 0.70, + [Stat.StatHasteRating]: 0.7, [Stat.StatMasteryRating]: 0.67, }), ); @@ -47,9 +47,6 @@ export const ArcaneTalents = { data: SavedTalents.create({ talentsString: '303302221230122210121-23-03', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfArcaneMissiles, - prime2: PrimeGlyph.GlyphOfArcaneBlast, - prime3: PrimeGlyph.GlyphOfMageArmor, major1: MajorGlyph.GlyphOfEvocation, major2: MajorGlyph.GlyphOfArcanePower, major3: MajorGlyph.GlyphOfManaShield, diff --git a/ui/mage/fire/presets.ts b/ui/mage/fire/presets.ts index de4389d11c..813c7d468c 100644 --- a/ui/mage/fire/presets.ts +++ b/ui/mage/fire/presets.ts @@ -5,7 +5,6 @@ import { FireMage_Rotation, MageMajorGlyph as MajorGlyph, MageMinorGlyph as MinorGlyph, - MagePrimeGlyph as PrimeGlyph, } from '../../core/proto/mage'; import { SavedTalents } from '../../core/proto/ui'; import { Stats, UnitStat, UnitStatPresets } from '../../core/proto_utils/stats'; @@ -87,9 +86,6 @@ export const FireTalents = { data: SavedTalents.create({ talentsString: '003-230330221120121213231-03', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfFireball, - prime2: PrimeGlyph.GlyphOfPyroblast, - prime3: PrimeGlyph.GlyphOfMoltenArmor, major1: MajorGlyph.GlyphOfEvocation, major2: MajorGlyph.GlyphOfDragonSBreath, major3: MajorGlyph.GlyphOfInvisibility, diff --git a/ui/paladin/holy/presets.ts b/ui/paladin/holy/presets.ts index c3a182608a..1a1eba54ff 100644 --- a/ui/paladin/holy/presets.ts +++ b/ui/paladin/holy/presets.ts @@ -5,7 +5,6 @@ import { PaladinAura, PaladinMajorGlyph as MajorGlyph, PaladinMinorGlyph as MinorGlyph, - PaladinPrimeGlyph as PrimeGlyph, PaladinSeal, } from '../../core/proto/paladin.js'; import { SavedTalents } from '../../core/proto/ui.js'; @@ -44,9 +43,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '03331001221131312301-3-032002', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfHolyShock, - prime2: PrimeGlyph.GlyphOfSealOfInsight, - prime3: PrimeGlyph.GlyphOfDivineFavor, major1: MajorGlyph.GlyphOfDivinePlea, major2: MajorGlyph.GlyphOfDivinity, major3: MajorGlyph.GlyphOfTheAsceticCrusader, diff --git a/ui/paladin/protection/presets.ts b/ui/paladin/protection/presets.ts index cc2e435dea..f60587a27c 100644 --- a/ui/paladin/protection/presets.ts +++ b/ui/paladin/protection/presets.ts @@ -4,7 +4,6 @@ import { PaladinAura as PaladinAura, PaladinMajorGlyph, PaladinMinorGlyph, - PaladinPrimeGlyph, PaladinSeal, ProtectionPaladin_Options as ProtectionPaladinOptions, } from '../../core/proto/paladin.js'; @@ -58,17 +57,14 @@ export const P1_EP_PRESET = PresetUtils.makePresetEpWeights( export const DefaultTalents = { name: 'Default', data: SavedTalents.create({ - "talentsString": "-32023013122121101231-032032", - "glyphs": { - "prime1": PaladinPrimeGlyph.GlyphOfShieldOfTheRighteous, - "prime2": PaladinPrimeGlyph.GlyphOfCrusaderStrike, - "prime3": PaladinPrimeGlyph.GlyphOfSealOfTruth, - "major1": PaladinMajorGlyph.GlyphOfTheAsceticCrusader, - "major2": PaladinMajorGlyph.GlyphOfLayOnHands, - "major3": PaladinMajorGlyph.GlyphOfFocusedShield, - "minor1": PaladinMinorGlyph.GlyphOfTruth, - "minor2": PaladinMinorGlyph.GlyphOfBlessingOfMight, - "minor3": PaladinMinorGlyph.GlyphOfInsight, + talentsString: '-32023013122121101231-032032', + glyphs: { + major1: PaladinMajorGlyph.GlyphOfTheAsceticCrusader, + major2: PaladinMajorGlyph.GlyphOfLayOnHands, + major3: PaladinMajorGlyph.GlyphOfFocusedShield, + minor1: PaladinMinorGlyph.GlyphOfTruth, + minor2: PaladinMinorGlyph.GlyphOfBlessingOfMight, + minor3: PaladinMinorGlyph.GlyphOfInsight, }, }), }; diff --git a/ui/paladin/protection/sim.ts b/ui/paladin/protection/sim.ts index ff1626b394..39d5946d94 100644 --- a/ui/paladin/protection/sim.ts +++ b/ui/paladin/protection/sim.ts @@ -5,18 +5,19 @@ import { Player } from '../../core/player.js'; import { PlayerClasses } from '../../core/player_classes'; import { APLRotation, APLRotation_Type } from '../../core/proto/apl.js'; import { Debuffs, Faction, IndividualBuffs, PartyBuffs, PseudoStat, Race, RaidBuffs, Spec, Stat } from '../../core/proto/common.js'; -import { PaladinPrimeGlyph, PaladinSeal } from '../../core/proto/paladin.js'; +import { PaladinSeal } from '../../core/proto/paladin.js'; import { Stats, UnitStat } from '../../core/proto_utils/stats.js'; import { TypedEvent } from '../../core/typed_event.js'; import * as PaladinInputs from '../inputs.js'; import * as Presets from './presets.js'; const isGlyphOfSealOfTruthActive = (player: Player): boolean => { - const currentSeal = player.getSpecOptions().classOptions?.seal; - return ( - player.getPrimeGlyps().includes(PaladinPrimeGlyph.GlyphOfSealOfTruth) && - (currentSeal === PaladinSeal.Truth || currentSeal === PaladinSeal.Righteousness) - ); + // const currentSeal = player.getSpecOptions().classOptions?.seal; + // return ( + // player.getPrimeGlyps().includes(PaladinPrimeGlyph.GlyphOfSealOfTruth) && + // (currentSeal === PaladinSeal.Truth || currentSeal === PaladinSeal.Righteousness) + // ); + return false; }; const SPEC_CONFIG = registerSpecConfig(Spec.SpecProtectionPaladin, { diff --git a/ui/paladin/retribution/presets.ts b/ui/paladin/retribution/presets.ts index b68521205f..2cf3e1eee3 100644 --- a/ui/paladin/retribution/presets.ts +++ b/ui/paladin/retribution/presets.ts @@ -5,7 +5,6 @@ import { PaladinAura as PaladinAura, PaladinMajorGlyph, PaladinMinorGlyph, - PaladinPrimeGlyph, PaladinSeal, RetributionPaladin_Options as RetributionPaladinOptions, } from '../../core/proto/paladin.js'; @@ -99,9 +98,6 @@ export const DefaultTalents = { data: SavedTalents.create({ talentsString: '203002-02-23203213211113002311', glyphs: Glyphs.create({ - prime1: PaladinPrimeGlyph.GlyphOfSealOfTruth, - prime2: PaladinPrimeGlyph.GlyphOfExorcism, - prime3: PaladinPrimeGlyph.GlyphOfTemplarSVerdict, major1: PaladinMajorGlyph.GlyphOfTheAsceticCrusader, major2: PaladinMajorGlyph.GlyphOfHammerOfWrath, major3: PaladinMajorGlyph.GlyphOfConsecration, diff --git a/ui/paladin/retribution/sim.ts b/ui/paladin/retribution/sim.ts index 11bc580340..da7bceb3db 100644 --- a/ui/paladin/retribution/sim.ts +++ b/ui/paladin/retribution/sim.ts @@ -15,11 +15,12 @@ import * as RetributionInputs from './inputs.js'; import * as Presets from './presets.js'; const isGlyphOfSealOfTruthActive = (player: Player): boolean => { - const currentSeal = player.getSpecOptions().classOptions?.seal; - return ( - player.getPrimeGlyps().includes(PaladinPrimeGlyph.GlyphOfSealOfTruth) && - (currentSeal === PaladinSeal.Truth || currentSeal === PaladinSeal.Righteousness) - ); + // const currentSeal = player.getSpecOptions().classOptions?.seal; + // return ( + // player.getPrimeGlyps().includes(PaladinPrimeGlyph.GlyphOfSealOfTruth) && + // (currentSeal === PaladinSeal.Truth || currentSeal === PaladinSeal.Righteousness) + // ); + return false }; const modifyDisplayStats = (player: Player) => { diff --git a/ui/priest/shadow/presets.ts b/ui/priest/shadow/presets.ts index a75bbd9744..569c4848f2 100644 --- a/ui/priest/shadow/presets.ts +++ b/ui/priest/shadow/presets.ts @@ -18,7 +18,6 @@ import { PriestMajorGlyph as MajorGlyph, PriestMinorGlyph as MinorGlyph, PriestOptions_Armor, - PriestPrimeGlyph as PrimeGlyph, ShadowPriest_Options as Options, } from '../../core/proto/priest'; import { SavedTalents } from '../../core/proto/ui'; @@ -144,9 +143,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '032212--322032210201222100231', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfShadowWordPain, - prime2: PrimeGlyph.GlyphOfMindFlay, - prime3: PrimeGlyph.GlyphOfShadowWordDeath, major1: MajorGlyph.GlyphOfFade, major2: MajorGlyph.GlyphOfInnerFire, major3: MajorGlyph.GlyphOfSpiritTap, diff --git a/ui/rogue/assassination/presets.ts b/ui/rogue/assassination/presets.ts index 9be347d0de..5e7aa16e71 100644 --- a/ui/rogue/assassination/presets.ts +++ b/ui/rogue/assassination/presets.ts @@ -1,6 +1,6 @@ import * as PresetUtils from '../../core/preset_utils'; import { Conjured, Consumes, Flask, Food, Glyphs, Potions, PseudoStat, Stat } from '../../core/proto/common'; -import { AssassinationRogue_Options as RogueOptions, RogueMajorGlyph, RogueOptions_PoisonImbue, RoguePrimeGlyph } from '../../core/proto/rogue'; +import { AssassinationRogue_Options as RogueOptions, RogueMajorGlyph, RogueOptions_PoisonImbue } from '../../core/proto/rogue'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import MutilateApl from './apls/mutilate.apl.json'; @@ -97,9 +97,6 @@ export const AssassinationTalentsDefault = { data: SavedTalents.create({ talentsString: '0333230013122110321-002-203003', glyphs: Glyphs.create({ - prime1: RoguePrimeGlyph.GlyphOfMutilate, - prime2: RoguePrimeGlyph.GlyphOfBackstab, - prime3: RoguePrimeGlyph.GlyphOfRupture, major1: RogueMajorGlyph.GlyphOfFeint, major2: RogueMajorGlyph.GlyphOfTricksOfTheTrade, major3: RogueMajorGlyph.GlyphOfSprint, diff --git a/ui/rogue/combat/presets.ts b/ui/rogue/combat/presets.ts index 2baa5a2b49..cac4b2a1dd 100644 --- a/ui/rogue/combat/presets.ts +++ b/ui/rogue/combat/presets.ts @@ -1,13 +1,13 @@ import * as PresetUtils from '../../core/preset_utils'; import { Conjured, Consumes, Flask, Food, Glyphs, Potions, PseudoStat, Stat } from '../../core/proto/common'; -import { CombatRogue_Options as RogueOptions, RogueMajorGlyph, RogueOptions_PoisonImbue, RoguePrimeGlyph } from '../../core/proto/rogue'; +import { CombatRogue_Options as RogueOptions, RogueMajorGlyph, RogueOptions_PoisonImbue } from '../../core/proto/rogue'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import CombatApl from './apls/combat.apl.json'; import P1CombatGear from './gear_sets/p1_combat.gear.json'; import P3CombatGear from './gear_sets/p3_combat.gear.json'; import P4CombatGear from './gear_sets/p4_combat.gear.json'; -import PreraidCombatGear from './gear_sets/preraid_combat.gear.json' +import PreraidCombatGear from './gear_sets/preraid_combat.gear.json'; // Preset options for this spec. // Eventually we will import these values for the raid sim too, so its good to @@ -28,7 +28,7 @@ export const CBAT_STANDARD_EP_PRESET = PresetUtils.makePresetEpWeights( [Stat.StatAgility]: 2.85, [Stat.StatStrength]: 1.05, [Stat.StatAttackPower]: 1, - [Stat.StatCritRating]: 1.20, + [Stat.StatCritRating]: 1.2, [Stat.StatHitRating]: 2.5, [Stat.StatHasteRating]: 1.58, [Stat.StatMasteryRating]: 1.41, @@ -74,9 +74,6 @@ export const CombatTalents = { data: SavedTalents.create({ talentsString: '0322-2332030310230012321-003', glyphs: Glyphs.create({ - prime1: RoguePrimeGlyph.GlyphOfAdrenalineRush, - prime2: RoguePrimeGlyph.GlyphOfSinisterStrike, - prime3: RoguePrimeGlyph.GlyphOfSliceAndDice, major1: RogueMajorGlyph.GlyphOfBladeFlurry, major2: RogueMajorGlyph.GlyphOfTricksOfTheTrade, major3: RogueMajorGlyph.GlyphOfGouge, diff --git a/ui/rogue/subtlety/presets.ts b/ui/rogue/subtlety/presets.ts index ffe0364703..1a27796181 100644 --- a/ui/rogue/subtlety/presets.ts +++ b/ui/rogue/subtlety/presets.ts @@ -1,11 +1,11 @@ import * as Mechanics from '../../core/constants/mechanics'; import * as PresetUtils from '../../core/preset_utils'; import { Conjured, Consumes, Flask, Food, Glyphs, Potions, PseudoStat, Stat } from '../../core/proto/common'; -import { RogueMajorGlyph, RogueOptions_PoisonImbue, RoguePrimeGlyph, SubtletyRogue_Options as RogueOptions } from '../../core/proto/rogue'; +import { RogueMajorGlyph, RogueOptions_PoisonImbue, SubtletyRogue_Options as RogueOptions } from '../../core/proto/rogue'; import { SavedTalents } from '../../core/proto/ui'; import { Stats } from '../../core/proto_utils/stats'; import SubtletyApl from './apls/subtlety.apl.json'; -import SubtletyMasteryApl from './apls/subtlety_mastery_prepull.apl.json' +import SubtletyMasteryApl from './apls/subtlety_mastery_prepull.apl.json'; import P1SubtletyGear from './gear_sets/p1_subtlety.gear.json'; import P3SubtletyGear from './gear_sets/p3_subtlety.gear.json'; import P4SubtletyGear from './gear_sets/p4_subtlety.gear.json'; @@ -21,7 +21,7 @@ export const PRERAID_PRESET_SUB = PresetUtils.makePresetGear('Pre-Raid Sub', Pre export const P4_PRESET_SUB = PresetUtils.makePresetGear('P4 Sub', P4SubtletyGear); export const ROTATION_PRESET_SUBTLETY = PresetUtils.makePresetAPLRotation('Subtlety', SubtletyApl); -export const ROTATION_PRESET_SUBTLETY_MASTERY = PresetUtils.makePresetAPLRotation('Subtlety Mastery Prepull', SubtletyMasteryApl) +export const ROTATION_PRESET_SUBTLETY_MASTERY = PresetUtils.makePresetAPLRotation('Subtlety Mastery Prepull', SubtletyMasteryApl); // Preset options for EP weights export const P1_EP_PRESET = PresetUtils.makePresetEpWeights( @@ -76,9 +76,6 @@ export const SubtletyTalents = { data: SavedTalents.create({ talentsString: '023003-002-0332031321310012321', glyphs: Glyphs.create({ - prime1: RoguePrimeGlyph.GlyphOfBackstab, - prime2: RoguePrimeGlyph.GlyphOfHemorrhage, - prime3: RoguePrimeGlyph.GlyphOfSliceAndDice, major1: RogueMajorGlyph.GlyphOfTricksOfTheTrade, major2: RogueMajorGlyph.GlyphOfSprint, major3: RogueMajorGlyph.GlyphOfFeint, diff --git a/ui/shaman/elemental/presets.ts b/ui/shaman/elemental/presets.ts index f5eb67a81d..89a46b4d60 100644 --- a/ui/shaman/elemental/presets.ts +++ b/ui/shaman/elemental/presets.ts @@ -8,7 +8,6 @@ import { FireTotem, ShamanMajorGlyph, ShamanMinorGlyph, - ShamanPrimeGlyph, ShamanShield, ShamanTotems, TotemSet, @@ -74,9 +73,6 @@ export const TalentsTotemDuration = { data: SavedTalents.create({ talentsString: '303202321223110132-201-20302', glyphs: Glyphs.create({ - prime1: ShamanPrimeGlyph.GlyphOfFlameShock, - prime2: ShamanPrimeGlyph.GlyphOfLavaBurst, - prime3: ShamanPrimeGlyph.GlyphOfUnleashedLightning, major1: ShamanMajorGlyph.GlyphOfLightningShield, major2: ShamanMajorGlyph.GlyphOfHealingStreamTotem, major3: ShamanMajorGlyph.GlyphOfStoneclawTotem, @@ -92,9 +88,6 @@ export const TalentsImprovedShields = { data: SavedTalents.create({ talentsString: '3032023212231101321-2030022', glyphs: Glyphs.create({ - prime1: ShamanPrimeGlyph.GlyphOfFlameShock, - prime2: ShamanPrimeGlyph.GlyphOfLavaBurst, - prime3: ShamanPrimeGlyph.GlyphOfUnleashedLightning, major1: ShamanMajorGlyph.GlyphOfLightningShield, major2: ShamanMajorGlyph.GlyphOfHealingStreamTotem, major3: ShamanMajorGlyph.GlyphOfStoneclawTotem, diff --git a/ui/shaman/enhancement/presets.ts b/ui/shaman/enhancement/presets.ts index 7ca323e8cf..3d07f3eeb4 100644 --- a/ui/shaman/enhancement/presets.ts +++ b/ui/shaman/enhancement/presets.ts @@ -10,7 +10,6 @@ import { ShamanImbue, ShamanMajorGlyph, ShamanMinorGlyph, - ShamanPrimeGlyph, ShamanShield, ShamanSyncType, ShamanTotems, @@ -75,9 +74,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '3022003-2333310013003012321', glyphs: Glyphs.create({ - prime1: ShamanPrimeGlyph.GlyphOfLavaLash, - prime2: ShamanPrimeGlyph.GlyphOfStormstrike, - prime3: ShamanPrimeGlyph.GlyphOfFeralSpirit, major1: ShamanMajorGlyph.GlyphOfLightningShield, major2: ShamanMajorGlyph.GlyphOfHealingStreamTotem, major3: ShamanMajorGlyph.GlyphOfFireNova, diff --git a/ui/warlock/affliction/presets.ts b/ui/warlock/affliction/presets.ts index cdb166543c..875ae8aef8 100644 --- a/ui/warlock/affliction/presets.ts +++ b/ui/warlock/affliction/presets.ts @@ -6,7 +6,6 @@ import { WarlockMajorGlyph as MajorGlyph, WarlockMinorGlyph as MinorGlyph, WarlockOptions_Summon as Summon, - WarlockPrimeGlyph as PrimeGlyph, } from '../../core/proto/warlock'; import { Stats } from '../../core/proto_utils/stats'; import { WARLOCK_BREAKPOINTS } from '../presets'; @@ -51,9 +50,6 @@ export const AfflictionTalents = { data: SavedTalents.create({ talentsString: '223222003013321321-03-33', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfHaunt, - prime2: PrimeGlyph.GlyphOfUnstableAffliction, - prime3: PrimeGlyph.GlyphOfCorruption, major1: MajorGlyph.GlyphOfShadowBolt, major2: MajorGlyph.GlyphOfSoulLink, major3: MajorGlyph.GlyphOfSoulSwap, diff --git a/ui/warlock/demonology/presets.ts b/ui/warlock/demonology/presets.ts index 361c693027..c4bc01fc63 100644 --- a/ui/warlock/demonology/presets.ts +++ b/ui/warlock/demonology/presets.ts @@ -19,7 +19,6 @@ import { WarlockMajorGlyph as MajorGlyph, WarlockMinorGlyph as MinorGlyph, WarlockOptions_Summon as Summon, - WarlockPrimeGlyph as PrimeGlyph, } from '../../core/proto/warlock'; import { Stats, UnitStat } from '../../core/proto_utils/stats'; import { WARLOCK_BREAKPOINTS } from '../presets'; @@ -80,9 +79,6 @@ export const DemonologyTalentsShadowBolt = { data: SavedTalents.create({ talentsString: '-3312222300310212211-33202', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfImmolate, - prime2: PrimeGlyph.GlyphOfCorruption, - prime3: PrimeGlyph.GlyphOfMetamorphosis, major1: MajorGlyph.GlyphOfShadowBolt, major2: MajorGlyph.GlyphOfLifeTap, major3: MajorGlyph.GlyphOfFelhunter, @@ -97,9 +93,6 @@ export const DemonologyTalentsIncinerate = { data: SavedTalents.create({ talentsString: '003-3312222300310212211-03202', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfImmolate, - prime2: PrimeGlyph.GlyphOfIncinerate, - prime3: PrimeGlyph.GlyphOfMetamorphosis, major1: MajorGlyph.GlyphOfSoulstone, major2: MajorGlyph.GlyphOfLifeTap, major3: MajorGlyph.GlyphOfSoulLink, diff --git a/ui/warlock/destruction/presets.ts b/ui/warlock/destruction/presets.ts index 53731b1155..ff001ff262 100644 --- a/ui/warlock/destruction/presets.ts +++ b/ui/warlock/destruction/presets.ts @@ -6,7 +6,6 @@ import { WarlockMajorGlyph as MajorGlyph, WarlockMinorGlyph as MinorGlyph, WarlockOptions_Summon as Summon, - WarlockPrimeGlyph as PrimeGlyph, } from '../../core/proto/warlock'; import { Stats } from '../../core/proto_utils/stats'; import { WARLOCK_BREAKPOINTS } from '../presets'; @@ -53,9 +52,6 @@ export const DestructionTalents = { data: SavedTalents.create({ talentsString: '003-03202-3320202312201312211', glyphs: Glyphs.create({ - prime1: PrimeGlyph.GlyphOfConflagrate, - prime2: PrimeGlyph.GlyphOfImmolate, - prime3: PrimeGlyph.GlyphOfImp, major1: MajorGlyph.GlyphOfLifeTap, major2: MajorGlyph.GlyphOfSoulLink, major3: MajorGlyph.GlyphOfHealthstone, diff --git a/ui/warrior/arms/presets.ts b/ui/warrior/arms/presets.ts index 6938768e3c..19cd7a7aed 100644 --- a/ui/warrior/arms/presets.ts +++ b/ui/warrior/arms/presets.ts @@ -1,7 +1,7 @@ import * as PresetUtils from '../../core/preset_utils'; import { Consumes, Flask, Food, Glyphs, Potions, Profession, PseudoStat, Stat, TinkerHands } from '../../core/proto/common'; import { SavedTalents } from '../../core/proto/ui'; -import { ArmsWarrior_Options as WarriorOptions, WarriorMajorGlyph, WarriorMinorGlyph, WarriorPrimeGlyph } from '../../core/proto/warrior'; +import { ArmsWarrior_Options as WarriorOptions, WarriorMajorGlyph, WarriorMinorGlyph } from '../../core/proto/warrior'; import { Stats } from '../../core/proto_utils/stats'; import ArmsApl from './apls/arms.apl.json'; import P1ArmsBisGear from './gear_sets/p1_arms_bis.gear.json'; @@ -54,9 +54,6 @@ export const ArmsTalents = { data: SavedTalents.create({ talentsString: '30220303120212312211-0322-3', glyphs: Glyphs.create({ - prime1: WarriorPrimeGlyph.GlyphOfMortalStrike, - prime2: WarriorPrimeGlyph.GlyphOfOverpower, - prime3: WarriorPrimeGlyph.GlyphOfSlam, major1: WarriorMajorGlyph.GlyphOfCleaving, major2: WarriorMajorGlyph.GlyphOfSweepingStrikes, major3: WarriorMajorGlyph.GlyphOfThunderClap, diff --git a/ui/warrior/fury/presets.ts b/ui/warrior/fury/presets.ts index 11e0f8e912..b0173e1528 100644 --- a/ui/warrior/fury/presets.ts +++ b/ui/warrior/fury/presets.ts @@ -2,7 +2,7 @@ import { Player } from '../../core/player'; import * as PresetUtils from '../../core/preset_utils'; import { Consumes, Flask, Food, Glyphs, HandType, ItemSlot, Potions, Profession, PseudoStat, Spec, Stat, TinkerHands } from '../../core/proto/common'; import { SavedTalents } from '../../core/proto/ui'; -import { FuryWarrior_Options as WarriorOptions, WarriorMajorGlyph, WarriorMinorGlyph, WarriorPrimeGlyph } from '../../core/proto/warrior'; +import { FuryWarrior_Options as WarriorOptions, WarriorMajorGlyph, WarriorMinorGlyph } from '../../core/proto/warrior'; import { Stats } from '../../core/proto_utils/stats'; import SMFFuryApl from './apls/smf.apl.json'; import TGFuryApl from './apls/tg.apl.json'; @@ -172,9 +172,6 @@ export const FurySMFTalents = { data: SavedTalents.create({ talentsString: '302003-032222031301101223201-2', glyphs: Glyphs.create({ - prime1: WarriorPrimeGlyph.GlyphOfBloodthirst, - prime2: WarriorPrimeGlyph.GlyphOfRagingBlow, - prime3: WarriorPrimeGlyph.GlyphOfSlam, major1: WarriorMajorGlyph.GlyphOfCleaving, major2: WarriorMajorGlyph.GlyphOfDeathWish, major3: WarriorMajorGlyph.GlyphOfColossusSmash, @@ -191,9 +188,6 @@ export const FuryTGTalents = { data: SavedTalents.create({ talentsString: '302003-03222203130110122321-2', glyphs: Glyphs.create({ - prime1: WarriorPrimeGlyph.GlyphOfBloodthirst, - prime2: WarriorPrimeGlyph.GlyphOfRagingBlow, - prime3: WarriorPrimeGlyph.GlyphOfSlam, major1: WarriorMajorGlyph.GlyphOfCleaving, major2: WarriorMajorGlyph.GlyphOfDeathWish, major3: WarriorMajorGlyph.GlyphOfColossusSmash, diff --git a/ui/warrior/protection/presets.ts b/ui/warrior/protection/presets.ts index f4c47a5b9a..7bda7fd8ed 100644 --- a/ui/warrior/protection/presets.ts +++ b/ui/warrior/protection/presets.ts @@ -1,24 +1,7 @@ import * as PresetUtils from '../../core/preset_utils.js'; -import { - BattleElixir, - Consumes, - Food, - Glyphs, - GuardianElixir, - Potions, - Profession, - PseudoStat, - Race, - Stat, - TinkerHands, -} from '../../core/proto/common.js'; +import { BattleElixir, Consumes, Food, Glyphs, GuardianElixir, Potions, Profession, PseudoStat, Race, Stat, TinkerHands } from '../../core/proto/common.js'; import { SavedTalents } from '../../core/proto/ui.js'; -import { - ProtectionWarrior_Options as ProtectionWarriorOptions, - WarriorMajorGlyph, - WarriorMinorGlyph, - WarriorPrimeGlyph, -} from '../../core/proto/warrior.js'; +import { ProtectionWarrior_Options as ProtectionWarriorOptions, WarriorMajorGlyph, WarriorMinorGlyph } from '../../core/proto/warrior.js'; import { Stats } from '../../core/proto_utils/stats'; import ItemSwapP4Gear from '../arms/gear_sets/p4_arms_item_swap.gear.json'; import DefaultApl from './apls/default.apl.json'; @@ -74,9 +57,6 @@ export const StandardTalents = { data: SavedTalents.create({ talentsString: '320003-002-33213201121210212031', glyphs: Glyphs.create({ - prime1: WarriorPrimeGlyph.GlyphOfRevenge, - prime2: WarriorPrimeGlyph.GlyphOfShieldSlam, - prime3: WarriorPrimeGlyph.GlyphOfDevastate, major1: WarriorMajorGlyph.GlyphOfShieldWall, major2: WarriorMajorGlyph.GlyphOfShockwave, major3: WarriorMajorGlyph.GlyphOfThunderClap,