From ebdd0682014c14ce966342d6689eaf9c62ef93cb Mon Sep 17 00:00:00 2001
From: Putro <29204244+Pewtro@users.noreply.github.com>
Date: Fri, 3 May 2024 21:31:11 +0200
Subject: [PATCH] [Chore] Remove unused exports detected by Knip (#6734)
---
src/CHANGELOG.tsx | 1 +
.../modules/features/AlwaysBeCasting.tsx | 2 +-
.../modules/normalizers/CastLinkNormalizer.ts | 43 +--
.../normalizers/SwiftmendNormalizer.ts | 2 +-
.../shaman/shared/totems/totemConstants.ts | 4 +-
.../modules/spells/BloodShield/normalizer.tsx | 2 +-
.../retail/demonhunter/havoc/constants.ts | 18 -
.../AcceleratingBladeExplanation.tsx | 4 +-
.../normalizers/EssenceBreakNormalizer.ts | 8 -
.../normalizers/UnboundChaosNormalizer.ts | 19 +-
.../retail/demonhunter/shared/index.ts | 7 +-
.../retail/demonhunter/vengeance/constants.ts | 22 --
.../DefensiveBuffLinkNormalizer.tsx | 10 +-
.../SoulCleaveEventLinkNormalizer.ts | 16 +-
.../retail/druid/balance/constants.ts | 6 +-
.../balance/modules/spells/FriendOfTheFae.tsx | 2 +-
.../balance/normalizers/CastLinkNormalizer.ts | 16 +-
src/analysis/retail/druid/feral/constants.ts | 30 +-
.../feral/normalizers/CastLinkNormalizer.ts | 14 +-
.../FerociousBiteDrainLinkNormalizer.ts | 2 +-
.../normalizers/SuddenAmbushLinkNormalizer.ts | 10 -
.../modules/core/rage/RageTracker.tsx | 8 +-
.../guardian/test-fixtures/SimpleFight.jsx | 4 +-
.../druid/restoration/modules/core/Mastery.ts | 4 +-
.../restoration/modules/spells/Innervate.tsx | 2 +-
.../modules/spells/Tranquility.tsx | 2 +-
.../normalizers/CastLinkNormalizer.ts | 14 +-
.../normalizers/ClearcastingNormalizer.ts | 6 +-
.../SoulOfTheForestLinkNormalizer.ts | 4 +-
.../normalizers/SwiftmendNormalizer.ts | 2 +-
.../druid/shared/spells/ConvokeSpirits.tsx | 16 +-
.../breahtofeons/BreathOfEonsRotational.tsx | 2 +-
.../modules/normalizers/CastLinkNormalizer.ts | 28 +-
.../modules/normalizers/CastLinkNormalizer.ts | 4 +-
.../retail/evoker/preservation/constants.ts | 1 -
.../normalizers/CastLinkNormalizer.ts | 68 ++--
.../DefensiveCastLinkNormalizer.ts | 2 +-
.../modules/normalizers/EmpowerNormalizer.ts | 2 +-
.../retail/hunter/survival/constants.ts | 7 -
.../arcane/normalizers/CastLinkNormalizer.ts | 33 +-
.../fire/normalizers/CastLinkNormalizer.ts | 43 +--
.../retail/mage/fire/talents/SearingTouch.tsx | 2 +-
.../frost/normalizers/CastLinkNormalizer.ts | 60 +--
.../normalizers/CometStormLinkNormalizer.ts | 10 +-
src/analysis/retail/mage/shared/Abilities.tsx | 1 -
src/analysis/retail/mage/shared/constants.tsx | 1 -
.../retail/monk/brewmaster/constants.tsx | 8 -
.../retail/monk/brewmaster/modules/charts.ts | 2 +-
.../DefensiveBuffLinkNormalizer.tsx | 10 +-
.../modules/core/StaggerLinkNormalizer.tsx | 4 +-
.../modules/problems/PurifyingBrew/index.tsx | 6 +-
.../modules/spells/BreathOfFire/normalizer.ts | 2 +-
.../spells/CelestialBrew/normalizer.ts | 5 -
.../modules/spells/HighTolerance.tsx | 16 -
.../modules/spells/RushingJadeWind.tsx | 2 +-
.../talents/BonedustBrew/normalizer.tsx | 2 +-
.../talents/PressTheAdvantage/normalizer.ts | 14 +-
.../brewmaster/normalizers/GiftOfTheOx.jsx | 2 +-
.../normalizers/SpinningCraneKick.ts | 2 +-
.../brewmaster/test-fixtures/SimpleFight.jsx | 12 +-
.../retail/monk/mistweaver/constants.ts | 1 -
.../dragonflight/T31HealingBreakdown.tsx | 2 +-
.../normalizers/CastLinkNormalizer.ts | 68 ++--
.../retail/monk/windwalker/castDamage.ts | 11 -
.../retail/monk/windwalker/constants.ts | 89 -----
.../holy/normalizers/CastLinkNormalizer.ts | 6 +-
.../protection/modules/CastLinkNormalizer.ts | 16 -
.../DefensiveBuffLinkNormalizer.tsx | 10 +-
.../modules/talents/GiftOfTheGoldenValkyr.tsx | 2 +-
.../modules/talents/ResoluteDefender.tsx | 2 +-
.../retail/paladin/retribution/constants.tsx | 31 --
.../retail/paladin/shared/constants.ts | 4 +-
.../priest/discipline/SpellCalculations.ts | 26 --
.../retail/priest/discipline/constants.ts | 50 ---
.../normalizers/AtonementTracker.ts | 7 +-
.../discipline/normalizers/DamageCastLink.ts | 4 -
.../holy/normalizers/CastLinkNormalizer.ts | 17 +-
.../retail/priest/shadow/constants.ts | 7 -
.../shadow/modules/guide/ExtraComponents.tsx | 2 +-
.../priest/shared/BoonOfTheAscended.tsx | 352 ------------------
.../retail/priest/shared/FaeGuardians.tsx | 160 --------
.../retail/priest/shared/UnholyNova.tsx | 185 ---------
src/analysis/retail/priest/shared/index.ts | 3 -
.../retail/rogue/assassination/constants.tsx | 49 +--
.../guide/ExperimentalKingsbaneContext.tsx | 2 +-
.../normalizers/CastLinkNormalizer.ts | 14 +-
.../normalizers/KingsbaneLinkNormalizer.ts | 23 +-
.../outlaw/modules/core/RestlessBlades.ts | 4 +-
.../outlaw/normalizers/CastLinkNormalizer.ts | 21 +-
src/analysis/retail/rogue/shared/index.ts | 2 -
.../shadowlands/conduits/WellPlacedSteel.tsx | 62 ---
.../rogue/shared/talents/Reverberation.tsx | 41 --
.../talents/ThistleTeaCastLinkNormalizer.tsx | 21 +-
.../retail/shaman/elemental/constants.tsx | 11 -
.../retail/shaman/enhancement/constants.tsx | 4 -
.../retail/shaman/restoration/constants.ts | 17 -
.../normalizers/CastLinkNormalizer.ts | 26 --
.../retail/shaman/shared/constants.ts | 2 -
src/analysis/retail/shaman/shared/index.ts | 3 -
.../shadowlands/conduits/TumblingWaves.tsx | 30 --
.../legendaries/ElementalConduit.tsx | 60 ---
.../shared/shadowlands/spells/ChainHarvest.ts | 45 ---
.../shaman/shared/talents/ElementalOrbit.tsx | 2 +-
.../shaman/shared/talents/SurgingShields.tsx | 2 +-
.../demonology/modules/pets/CONSTANTS.ts | 4 +-
.../shared/images/warlock_soulshard_bw.jpg | Bin 2093 -> 0 bytes
src/analysis/retail/warlock/shared/index.ts | 4 -
src/common/SPELLS/classic/index.ts | 12 -
src/common/indexById.ts | 37 --
src/common/makeApiUrl.ts | 10 -
src/common/regions.ts | 11 +-
src/game/ROLES.ts | 41 --
src/game/VERSIONS.ts | 7 -
src/game/classColor.ts | 12 -
src/game/raids/index.ts | 7 +-
src/game/shadowlands/COVENANTS.ts | 16 -
src/interface/Ad.tsx | 4 +-
src/interface/PerformanceStrong.tsx | 2 +-
src/interface/PremiumPage.jsx | 2 +-
src/interface/ReportSelecter.tsx | 8 +-
.../guide/components/Explanation.tsx | 4 +-
.../guide/components/ExplanationRow.tsx | 2 +-
src/interface/guide/components/GuideDivs.tsx | 4 +-
.../MajorDefensives/AllCooldownUsagesList.tsx | 4 +-
.../components/MajorDefensives/Timeline.tsx | 8 +-
.../components/PerformanceBoxRow/index.tsx | 2 +-
src/interface/guide/index.tsx | 8 +-
src/interface/reducers/combatants.ts | 2 +-
src/interface/reducers/internetExplorer.ts | 2 +-
src/interface/reducers/language.ts | 2 +-
src/interface/reducers/openModals.ts | 2 +-
src/interface/reducers/report.ts | 2 +-
.../reportCodesIgnoredPreviousPatchWarning.ts | 3 +-
src/interface/reducers/reportHistory.ts | 2 +-
.../specsIgnoredNotSupportedWarning.ts | 3 +-
src/interface/reducers/user.ts | 1 -
.../report/CombatLogParserContext.tsx | 2 +-
src/interface/report/ExpansionContext.tsx | 4 +-
src/interface/report/context/PatchContext.tsx | 12 +-
.../report/context/PlayerContext.tsx | 2 -
.../report/context/ReportContext.tsx | 2 -
.../report/hooks/useTimeEventFilter.ts | 2 +-
.../selectors/url/report/getFightName.ts | 12 -
.../selectors/url/report/getPlayerId.ts | 7 -
src/interface/selectors/url/report/index.ts | 2 -
src/interface/useTooltip.tsx | 10 +-
.../modules/items/CombatPotionChecker.tsx | 2 +-
src/parser/core/DotSnapshots.ts | 6 +-
src/parser/core/EventCalculateLib.tsx | 61 ---
src/parser/core/ParseResults.tsx | 4 +-
src/parser/core/SpellUsage/core.tsx | 2 +-
src/parser/core/tests/constants.ts | 2 +-
src/parser/retail/armorMitigation.ts | 11 +-
.../shared/metrics/apl/ChecklistRule.tsx | 2 +-
src/parser/shared/metrics/apl/annotate.tsx | 2 +-
.../metrics/apl/conditions/test-tools.ts | 2 +-
src/parser/shared/metrics/apl/index.ts | 8 +-
src/parser/shared/metrics/buffApplications.ts | 2 +-
src/parser/shared/metrics/resourceGained.ts | 12 -
src/parser/shared/metrics/resourceWasted.ts | 17 -
src/parser/shared/modules/Enemies.ts | 5 -
src/parser/shared/modules/Entities.ts | 2 +-
src/parser/shared/modules/SpellUsable.ts | 2 +-
src/parser/shared/modules/StatTracker.ts | 2 +-
src/parser/shared/modules/features/STAT.tsx | 4 -
.../shared/modules/helpers/Probability.tsx | 28 +-
.../shared/modules/hit-tracking/utilities.ts | 2 +-
src/parser/shared/normalizers/Channeling.ts | 12 +-
src/parser/ui/PerformanceLabel.tsx | 2 +-
169 files changed, 317 insertions(+), 2305 deletions(-)
delete mode 100644 src/analysis/retail/priest/shared/BoonOfTheAscended.tsx
delete mode 100644 src/analysis/retail/priest/shared/FaeGuardians.tsx
delete mode 100644 src/analysis/retail/priest/shared/UnholyNova.tsx
delete mode 100644 src/analysis/retail/rogue/shared/shadowlands/conduits/WellPlacedSteel.tsx
delete mode 100644 src/analysis/retail/rogue/shared/talents/Reverberation.tsx
delete mode 100644 src/analysis/retail/shaman/shared/shadowlands/conduits/TumblingWaves.tsx
delete mode 100644 src/analysis/retail/shaman/shared/shadowlands/legendaries/ElementalConduit.tsx
delete mode 100644 src/analysis/retail/shaman/shared/shadowlands/spells/ChainHarvest.ts
delete mode 100644 src/analysis/retail/warlock/shared/images/warlock_soulshard_bw.jpg
delete mode 100644 src/interface/selectors/url/report/getFightName.ts
diff --git a/src/CHANGELOG.tsx b/src/CHANGELOG.tsx
index a943c755c1c..b3a4e4e3fa3 100644
--- a/src/CHANGELOG.tsx
+++ b/src/CHANGELOG.tsx
@@ -35,6 +35,7 @@ import SpellLink from 'interface/SpellLink';
// prettier-ignore
export default [
+ change(date(2024, 5, 3), 'Second pass at cleaning up dead code using knip', Putro),
change(date(2024, 5, 2), 'Fix issue with boss detection', emallson),
change(date(2024, 4, 26), 'Actually fix friendly/enemy determination', emallson),
change(date(2024, 4, 22), 'Improve display of dense performance boxes', emallson),
diff --git a/src/analysis/classic/druid/balance/modules/features/AlwaysBeCasting.tsx b/src/analysis/classic/druid/balance/modules/features/AlwaysBeCasting.tsx
index 38346bc1c59..853d7ebb4f9 100644
--- a/src/analysis/classic/druid/balance/modules/features/AlwaysBeCasting.tsx
+++ b/src/analysis/classic/druid/balance/modules/features/AlwaysBeCasting.tsx
@@ -8,7 +8,7 @@ import Gauge from 'parser/ui/Gauge';
import Statistic from 'parser/ui/Statistic';
import STATISTIC_ORDER from 'parser/ui/STATISTIC_ORDER';
-export const instantCastSpells = [SPELLS.STARFALL, SPELLS.MOONFIRE, SPELLS.INSECT_SWARM];
+const instantCastSpells = [SPELLS.STARFALL, SPELLS.MOONFIRE, SPELLS.INSECT_SWARM];
export const displayInstantCastSpells = () =>
instantCastSpells.map((s, i) => (
diff --git a/src/analysis/classic/druid/restoration/modules/normalizers/CastLinkNormalizer.ts b/src/analysis/classic/druid/restoration/modules/normalizers/CastLinkNormalizer.ts
index 6b1128e4d87..bd41fe6d91f 100644
--- a/src/analysis/classic/druid/restoration/modules/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/classic/druid/restoration/modules/normalizers/CastLinkNormalizer.ts
@@ -8,7 +8,6 @@ import {
GetRelatedEvents,
HasRelatedEvent,
HealEvent,
- RefreshBuffEvent,
RemoveBuffEvent,
ResourceChangeEvent,
} from 'parser/core/Events';
@@ -17,14 +16,14 @@ import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 65;
const TRANQ_CHANNEL_BUFFER_MS = 10_000;
-export const APPLIED_HEAL = 'AppliedHeal';
-export const FROM_HARDCAST = 'FromHardcast';
-export const FROM_EXPIRING_LIFEBLOOM = 'FromExpiringLifebloom';
-export const CAUSED_BLOOM = 'CausedBloom';
-export const CAUSED_TICK = 'CausedTick';
-export const REGEN_FROM_LIFEBLOOM = 'RegenFromLifebloom';
-export const CAUSED_REGEN = 'CausedRegen';
-export const FROM_CLEARCAST = 'FromClearcast';
+const APPLIED_HEAL = 'AppliedHeal';
+const FROM_HARDCAST = 'FromHardcast';
+const FROM_EXPIRING_LIFEBLOOM = 'FromExpiringLifebloom';
+const CAUSED_BLOOM = 'CausedBloom';
+const CAUSED_TICK = 'CausedTick';
+const REGEN_FROM_LIFEBLOOM = 'RegenFromLifebloom';
+const CAUSED_REGEN = 'CausedRegen';
+const FROM_CLEARCAST = 'FromClearcast';
const EVENT_LINKS: EventLink[] = [
{
@@ -149,15 +148,6 @@ export function isFromHardcast(event: AbilityEvent): boolean {
return HasRelatedEvent(event, FROM_HARDCAST);
}
-/** Returns the hardcast event that caused this buff or heal, if there is one */
-export function getHardcast(event: AbilityEvent): CastEvent | undefined {
- return GetRelatedEvents(
- event,
- FROM_HARDCAST,
- (e): e is CastEvent => e.type === EventType.Cast,
- ).pop();
-}
-
/** Returns the buff application and direct heal events caused by the given hardcast */
export function getHeals(event: CastEvent): AnyEvent[] {
return GetRelatedEvents(event, APPLIED_HEAL);
@@ -170,23 +160,6 @@ export function getDirectHeal(event: CastEvent): HealEvent | undefined {
.pop();
}
-/** Returns true iff the given bloom heal can be linked to the refresh or removal of a lifebloom
- * buff - used to differentiate from a Photosynthesis proc */
-export function isFromExpiringLifebloom(event: HealEvent): boolean {
- return HasRelatedEvent(event, FROM_EXPIRING_LIFEBLOOM);
-}
-
-/** Returns true iff the bloom expiration caused a bloom to proc */
-export function causedBloom(event: RemoveBuffEvent | RefreshBuffEvent): boolean {
- return HasRelatedEvent(event, CAUSED_BLOOM);
-}
-
-/** Gets the tranquility "tick cast" events caused by channeling the given Tranquility w/
- * cast ID `TRANQUILITY_CAST`. */
-export function getTranquilityTicks(event: CastEvent): AnyEvent[] {
- return GetRelatedEvents(event, CAUSED_TICK);
-}
-
export function getBloomCausingRegen(event: ResourceChangeEvent): RemoveBuffEvent | undefined {
return GetRelatedEvents(
event,
diff --git a/src/analysis/classic/druid/restoration/modules/normalizers/SwiftmendNormalizer.ts b/src/analysis/classic/druid/restoration/modules/normalizers/SwiftmendNormalizer.ts
index 17dea3ac702..31645e0266d 100644
--- a/src/analysis/classic/druid/restoration/modules/normalizers/SwiftmendNormalizer.ts
+++ b/src/analysis/classic/druid/restoration/modules/normalizers/SwiftmendNormalizer.ts
@@ -11,7 +11,7 @@ import { Options } from 'parser/core/Module';
const REMOVE_BUFFER_MS = 50;
-export const CONSUMED_HOT = 'ConsumedHot';
+const CONSUMED_HOT = 'ConsumedHot';
const EVENT_LINKS: EventLink[] = [
{
diff --git a/src/analysis/classic/shaman/shared/totems/totemConstants.ts b/src/analysis/classic/shaman/shared/totems/totemConstants.ts
index 82b2eacb41f..54358a5900a 100644
--- a/src/analysis/classic/shaman/shared/totems/totemConstants.ts
+++ b/src/analysis/classic/shaman/shared/totems/totemConstants.ts
@@ -45,15 +45,13 @@ export const TOTEMS_BY_ELEMENT = {
],
};
-export const All_TOTEMS = [
+const All_TOTEMS = [
...TOTEMS_BY_ELEMENT[TotemElements.Fire],
...TOTEMS_BY_ELEMENT[TotemElements.Water],
...TOTEMS_BY_ELEMENT[TotemElements.Earth],
...TOTEMS_BY_ELEMENT[TotemElements.Air],
];
-export const TotemFilter = (element: TotemElements) =>
- TOTEMS_BY_ELEMENT[element].map((totemId) => ({ id: totemId }));
export const AllTotemsFilter = () => All_TOTEMS.map((totemId) => ({ id: totemId }));
export const TotemDurations = {
diff --git a/src/analysis/retail/deathknight/blood/modules/spells/BloodShield/normalizer.tsx b/src/analysis/retail/deathknight/blood/modules/spells/BloodShield/normalizer.tsx
index 9fa03b8ac1a..ad3ac16a398 100644
--- a/src/analysis/retail/deathknight/blood/modules/spells/BloodShield/normalizer.tsx
+++ b/src/analysis/retail/deathknight/blood/modules/spells/BloodShield/normalizer.tsx
@@ -3,7 +3,7 @@ import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { AbsorbedEvent, DamageEvent, EventType } from 'parser/core/Events';
-export const BLOOD_SHIELD_ABSORB = 'blood-shield-absorb';
+const BLOOD_SHIELD_ABSORB = 'blood-shield-absorb';
export const BLOOD_SHIELD_ABSORBED_HIT = 'blood-shield-absorbed-hit';
const absorbLink: EventLink = {
diff --git a/src/analysis/retail/demonhunter/havoc/constants.ts b/src/analysis/retail/demonhunter/havoc/constants.ts
index aba37c46094..4e34f4f1fd7 100644
--- a/src/analysis/retail/demonhunter/havoc/constants.ts
+++ b/src/analysis/retail/demonhunter/havoc/constants.ts
@@ -1,25 +1,7 @@
-export const CRITICAL_CHAOS_SCALING = [0, 0.25, 0.5];
-
-export const FELFIRE_HEART_SCALING = [0, 1, 2];
-
export const UNBOUND_CHAOS_SCALING = [0, 2, 4];
-export const BLIND_FURY_FURY_SCALING = [0, 20, 40];
-
-export const BLIND_FURY_DURATION_SCALING = [0, 0.25, 0.5];
-
-export const SERRATED_GLAIVE_SCALING = [0, 0.1, 0.2];
-
-export const RELENTLESS_ONSLAUGHT_SCALING = [0, 0.06, 0.12];
-
-export const KNOW_YOUR_ENEMY_SCALING = [0, 0.5, 1.0];
-
export const CYCLE_OF_HATRED_SCALING = [0, 0.5, 1];
-export const SOULREND_SCALING = [0, 0.6, 1.2];
-
export const GROWING_INFERNO_SCALING = [0, 0.08, 0.15];
-export const BURNING_WOUND_SCALING = [0, 0.4];
-
export const MOMENTUM_SCALING = [0, 0.08];
diff --git a/src/analysis/retail/demonhunter/havoc/modules/spells/ThrowGlaive/AcceleratingBladeExplanation.tsx b/src/analysis/retail/demonhunter/havoc/modules/spells/ThrowGlaive/AcceleratingBladeExplanation.tsx
index 9097eb069da..24eb06a393e 100644
--- a/src/analysis/retail/demonhunter/havoc/modules/spells/ThrowGlaive/AcceleratingBladeExplanation.tsx
+++ b/src/analysis/retail/demonhunter/havoc/modules/spells/ThrowGlaive/AcceleratingBladeExplanation.tsx
@@ -5,8 +5,8 @@ import { formatPercentage } from 'common/format';
import Tooltip from 'interface/Tooltip';
import InformationIcon from 'interface/icons/Information';
-export const SCALING_PER_TARGET_HIT = 0.3;
-export const INITIAL_HIT_SCALING = 0.6;
+const SCALING_PER_TARGET_HIT = 0.3;
+const INITIAL_HIT_SCALING = 0.6;
export const AcceleratingBladeExplanation = () => {
const info = useInfo();
diff --git a/src/analysis/retail/demonhunter/havoc/normalizers/EssenceBreakNormalizer.ts b/src/analysis/retail/demonhunter/havoc/normalizers/EssenceBreakNormalizer.ts
index 6ade0cc7286..ff5623b9c47 100644
--- a/src/analysis/retail/demonhunter/havoc/normalizers/EssenceBreakNormalizer.ts
+++ b/src/analysis/retail/demonhunter/havoc/normalizers/EssenceBreakNormalizer.ts
@@ -71,11 +71,3 @@ export function getPreviousVengefulRetreat(event: CastEvent): CastEvent | undefi
(e): e is CastEvent => e.type === EventType.Cast,
).find(Boolean);
}
-
-export function getPreviousEyeBeam(event: CastEvent): CastEvent | undefined {
- return GetRelatedEvents(
- event,
- ESSENCE_BREAK_AFTER_EYE_BEAM,
- (e): e is CastEvent => e.type === EventType.Cast,
- ).find(Boolean);
-}
diff --git a/src/analysis/retail/demonhunter/havoc/normalizers/UnboundChaosNormalizer.ts b/src/analysis/retail/demonhunter/havoc/normalizers/UnboundChaosNormalizer.ts
index 110321de07d..a80f7923922 100644
--- a/src/analysis/retail/demonhunter/havoc/normalizers/UnboundChaosNormalizer.ts
+++ b/src/analysis/retail/demonhunter/havoc/normalizers/UnboundChaosNormalizer.ts
@@ -1,12 +1,5 @@
import SPELLS from 'common/SPELLS/demonhunter';
-import {
- ApplyBuffEvent,
- CastEvent,
- EventType,
- GetRelatedEvent,
- RefreshBuffEvent,
- RemoveBuffEvent,
-} from 'parser/core/Events';
+import { CastEvent, EventType, GetRelatedEvent, RemoveBuffEvent } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import TALENTS from 'common/TALENTS/demonhunter';
@@ -47,16 +40,6 @@ export default class UnboundChaosNormalizer extends EventLinkNormalizer {
}
}
-export function getUnboundChaosApplication(
- event: ApplyBuffEvent | RefreshBuffEvent,
-): CastEvent | undefined {
- return GetRelatedEvent(
- event,
- UNBOUND_CHAOS_APPLICATION,
- (e): e is CastEvent => e.type === EventType.Cast,
- );
-}
-
export function getUnboundChaosConsumption(event: RemoveBuffEvent): CastEvent | undefined {
return GetRelatedEvent(
event,
diff --git a/src/analysis/retail/demonhunter/shared/index.ts b/src/analysis/retail/demonhunter/shared/index.ts
index 40b998e8c69..c529fe0daa6 100644
--- a/src/analysis/retail/demonhunter/shared/index.ts
+++ b/src/analysis/retail/demonhunter/shared/index.ts
@@ -10,10 +10,7 @@ export { default as SwallowedAnger } from './modules/talents/SwallowedAnger';
export { default as FlamesOfFury } from './modules/talents/FlamesOfFury';
export { default as DisruptingFury } from './modules/talents/DisruptingFury';
export { default as DemonSoulBuff } from './modules/spells/DemonSoulBuff';
-export { default as TheHuntNormalizer, getChargeImpact } from './normalizers/TheHuntNormalizer';
-export {
- default as SigilOfFlameNormalizer,
- getSigilOfFlameDamages,
-} from './normalizers/SigilOfFlameNormalizer';
+export { default as TheHuntNormalizer } from './normalizers/TheHuntNormalizer';
+export { default as SigilOfFlameNormalizer } from './normalizers/SigilOfFlameNormalizer';
export { default as SigilOfFlame } from './modules/spells/SigilOfFlame';
export * from './constants';
diff --git a/src/analysis/retail/demonhunter/vengeance/constants.ts b/src/analysis/retail/demonhunter/vengeance/constants.ts
index 9432a4a7fa4..1f57ea748d8 100644
--- a/src/analysis/retail/demonhunter/vengeance/constants.ts
+++ b/src/analysis/retail/demonhunter/vengeance/constants.ts
@@ -1,27 +1,5 @@
export const EXTENDED_SPIKES_SCALING = [0, 2];
-export const CHAINS_OF_ANGER_SCALING = [0, 2];
-
-export const AGONIZING_FLAMES_SPEED_SCALING = [0, 0.2];
-
-export const AGONIZING_FLAMES_DURATION_SCALING = [0, 0.5];
-
-export const PAINBRINGER_SCALING = [0, 0.01, 0.02];
-
-export const DARKGLARE_BOON_CDR_SCALING = [0, 40];
-
-export const DARKGLARE_BOON_FURY_REFUND_SCALING = [0, 40];
-
-export const CYCLE_OF_BINDING_SCALING = [0, 3];
-
-export const VULNERABILITY_SCALING = [0, 0.02, 0.04];
-
-export const FEED_THE_DEMON_SCALING = [0, 0.25, 0.5];
-
-export const CHARRED_FLESH_SCALING = [0, 0.25, 0.5];
-
-export const FIERY_DEMISE_SCALING = [0, 0.25, 0.5];
-
export const PERFECTLY_BALANCED_GLAIVE_SCALING = [0, 6];
export const METEORIC_STRIKES_SCALING = [0, 10];
diff --git a/src/analysis/retail/demonhunter/vengeance/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx b/src/analysis/retail/demonhunter/vengeance/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
index 18aa131e827..6e3055fd59c 100644
--- a/src/analysis/retail/demonhunter/vengeance/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
+++ b/src/analysis/retail/demonhunter/vengeance/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
@@ -1,6 +1,6 @@
import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import { ApplyBuffEvent, EventType, GetRelatedEvent, RemoveBuffEvent } from 'parser/core/Events';
+import { EventType } from 'parser/core/Events';
import { buffId, MAJOR_DEFENSIVES } from './DefensiveBuffs';
import { isTalent } from 'common/TALENTS/types';
@@ -27,11 +27,3 @@ export default class DefensiveBuffLinkNormalizer extends EventLinkNormalizer {
super(options, links);
}
}
-
-export function defensiveApplication(event: RemoveBuffEvent): ApplyBuffEvent | undefined {
- return GetRelatedEvent(event, reverseRelation);
-}
-
-export function defensiveExpiration(event: ApplyBuffEvent): RemoveBuffEvent | undefined {
- return GetRelatedEvent(event, relation);
-}
diff --git a/src/analysis/retail/demonhunter/vengeance/normalizers/SoulCleaveEventLinkNormalizer.ts b/src/analysis/retail/demonhunter/vengeance/normalizers/SoulCleaveEventLinkNormalizer.ts
index 036d4296b69..2e489662d29 100644
--- a/src/analysis/retail/demonhunter/vengeance/normalizers/SoulCleaveEventLinkNormalizer.ts
+++ b/src/analysis/retail/demonhunter/vengeance/normalizers/SoulCleaveEventLinkNormalizer.ts
@@ -1,11 +1,5 @@
import SPELLS from 'common/SPELLS/demonhunter';
-import {
- CastEvent,
- DamageEvent,
- EventType,
- GetRelatedEvents,
- RemoveBuffStackEvent,
-} from 'parser/core/Events';
+import { CastEvent, DamageEvent, EventType, GetRelatedEvents } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
@@ -47,14 +41,6 @@ export default class SoulCleaveEventLinkNormalizer extends EventLinkNormalizer {
}
}
-export function getSoulCleaveSoulConsumptions(event: CastEvent): RemoveBuffStackEvent[] {
- return GetRelatedEvents(
- event,
- SOUL_CLEAVE_SOUL_CONSUME,
- (e): e is RemoveBuffStackEvent => e.type === EventType.RemoveBuffStack,
- );
-}
-
export function getSoulCleaveDamages(event: CastEvent): DamageEvent[] {
return GetRelatedEvents(
event,
diff --git a/src/analysis/retail/druid/balance/constants.ts b/src/analysis/retail/druid/balance/constants.ts
index f05687100f5..8e2011d3fb5 100644
--- a/src/analysis/retail/druid/balance/constants.ts
+++ b/src/analysis/retail/druid/balance/constants.ts
@@ -32,8 +32,8 @@ export function cdSpell(c: Combatant): Spell {
: SPELLS.CELESTIAL_ALIGNMENT;
}
-export const CA_DURATION = 20_000;
-export const INCARN_DURATION = 30_000;
+const CA_DURATION = 20_000;
+const INCARN_DURATION = 30_000;
/** Returns the duration of Balance Druid's primary cooldown spell, which changes based on talent */
export function cdDuration(c: Combatant): number {
return c.hasTalent(TALENTS_DRUID.INCARNATION_CHOSEN_OF_ELUNE_TALENT)
@@ -57,8 +57,6 @@ export function currentEclipse(c: Combatant): 'none' | 'solar' | 'lunar' | 'both
}
export const GUIDE_CORE_EXPLANATION_PERCENT = 40;
-export const STARSURGE_ELUNES_GUIDANCE_DISCOUNT = 8;
-export const STARFALL_ELUNES_GUIDANCE_DISCOUNT = 10;
export const STARSURGE_BASE_COST = 40;
export const STARFALL_BASE_COST = 50;
export const ASTRAL_POWER_SCALE_FACTOR = 0.1; // in events all values are x10
diff --git a/src/analysis/retail/druid/balance/modules/spells/FriendOfTheFae.tsx b/src/analysis/retail/druid/balance/modules/spells/FriendOfTheFae.tsx
index 8581a4e2ac5..a7a03fd1a90 100644
--- a/src/analysis/retail/druid/balance/modules/spells/FriendOfTheFae.tsx
+++ b/src/analysis/retail/druid/balance/modules/spells/FriendOfTheFae.tsx
@@ -11,7 +11,7 @@ import SPELLS from 'common/SPELLS';
import UptimeIcon from 'interface/icons/Uptime';
import { WHITELIST_ABILITIES } from '../../constants';
-export const FOTF_DAMAGE_INCREASE = 0.1;
+const FOTF_DAMAGE_INCREASE = 0.1;
class FriendOfTheFae extends Analyzer {
totalAddedDamage = 0;
diff --git a/src/analysis/retail/druid/balance/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/druid/balance/normalizers/CastLinkNormalizer.ts
index f868d37f207..cf0dde6e852 100644
--- a/src/analysis/retail/druid/balance/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/druid/balance/normalizers/CastLinkNormalizer.ts
@@ -1,18 +1,12 @@
import SPELLS from 'common/SPELLS';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import {
- CastEvent,
- DamageEvent,
- EventType,
- GetRelatedEvents,
- HasRelatedEvent,
-} from 'parser/core/Events';
+import { CastEvent, EventType, GetRelatedEvents } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 100;
-export const FROM_HARDCAST = 'FromHardcast';
-export const HITS_TARGET = 'HitsTarget';
+const FROM_HARDCAST = 'FromHardcast';
+const HITS_TARGET = 'HitsTarget';
const EVENT_LINKS: EventLink[] = [
{
@@ -39,10 +33,6 @@ class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-export function isFromHardcast(event: DamageEvent): boolean {
- return HasRelatedEvent(event, FROM_HARDCAST);
-}
-
export function hardcastTargetsHit(event: CastEvent): number {
return GetRelatedEvents(event, HITS_TARGET).length;
}
diff --git a/src/analysis/retail/druid/feral/constants.ts b/src/analysis/retail/druid/feral/constants.ts
index cc603c27439..aecaaf4b8b7 100644
--- a/src/analysis/retail/druid/feral/constants.ts
+++ b/src/analysis/retail/druid/feral/constants.ts
@@ -83,7 +83,7 @@ export const FEROCIOUS_BITE_MAX_DRAIN = 25;
// DOT DURATIONS
//
-export const CIRCLE_DOT_DURATION_MULT = 0.8;
+const CIRCLE_DOT_DURATION_MULT = 0.8;
/** Gets the multiplier to apply to a DoT's duration depending on if player is using
* the 'Circle of Life and Death' talent */
function getCircleMult(c: Combatant): number {
@@ -92,30 +92,30 @@ function getCircleMult(c: Combatant): number {
: 1;
}
-export const VEINRIPPER_DURATION_MULT = 1.25;
+const VEINRIPPER_DURATION_MULT = 1.25;
/** Gets the multiplier to apply to Rip / Rake / Thrash's duration depending on if player is using
* the 'Veinripper' talent */
function getVeinripperMult(c: Combatant): number {
return c.hasTalent(TALENTS_DRUID.VEINRIPPER_TALENT) ? VEINRIPPER_DURATION_MULT : 1;
}
-export const RAKE_BASE_DURATION = 15000;
+const RAKE_BASE_DURATION = 15000;
export function getRakeDuration(c: Combatant): number {
return RAKE_BASE_DURATION * getCircleMult(c) * getVeinripperMult(c);
}
-export const MOONFIRE_BASE_DURATION = 16000;
+const MOONFIRE_BASE_DURATION = 16000;
export function getMoonfireDuration(c: Combatant): number {
return MOONFIRE_BASE_DURATION * getCircleMult(c);
}
-export const THRASH_FERAL_BASE_DURATION = 15000;
+const THRASH_FERAL_BASE_DURATION = 15000;
export function getThrashFeralDuration(c: Combatant): number {
return THRASH_FERAL_BASE_DURATION * getCircleMult(c) * getVeinripperMult(c);
}
export const RIP_DURATION_BASE = 4000;
-export const RIP_DURATION_PER_CP = 4000;
+const RIP_DURATION_PER_CP = 4000;
export function getRipDuration(cast: CastEvent, c: Combatant): number {
return (
(RIP_DURATION_BASE +
@@ -125,8 +125,8 @@ export function getRipDuration(cast: CastEvent, c: Combatant): number {
);
}
-export const PRIMAL_WRATH_RIP_DURATION_BASE = 2000;
-export const PRIMAL_WRATH_RIP_DURATION_PER_CP = 2000;
+const PRIMAL_WRATH_RIP_DURATION_BASE = 2000;
+const PRIMAL_WRATH_RIP_DURATION_PER_CP = 2000;
export function getPrimalWrathDuration(cast: CastEvent, c: Combatant): number {
return (
(PRIMAL_WRATH_RIP_DURATION_BASE +
@@ -147,7 +147,7 @@ export function getRipFullDuration(c: Combatant): number {
//
export const BASE_TIGERS_FURY_DAMAGE_BONUS = 0.15;
-export const CARNIVOROUS_INSTINCT_DAMAGE_BONUS = 0.06;
+const CARNIVOROUS_INSTINCT_DAMAGE_BONUS = 0.06;
export function getTigersFuryDamageBonus(c: Combatant): number {
return (
BASE_TIGERS_FURY_DAMAGE_BONUS +
@@ -157,7 +157,6 @@ export function getTigersFuryDamageBonus(c: Combatant): number {
export const BLOODTALONS_DAMAGE_BONUS = 0.25;
export const LIONS_STRENGTH_DAMAGE_BONUS = 0.15;
-export const MOMENT_OF_CLARITY_DAMAGE_BONUS = 0.15;
export const PROWL_RAKE_DAMAGE_BONUS = 0.6;
/** Max time left on a DoT for us to not yell if snapshot is downgraded */
@@ -179,13 +178,6 @@ export function cdSpell(c: Combatant): Spell {
: SPELLS.BERSERK;
}
-/** Returns the Feral Druid's direct damage AoE builder, which changes based on talent */
-export function directAoeBuilder(c: Combatant): Spell {
- return c.hasTalent(TALENTS_DRUID.BRUTAL_SLASH_TALENT)
- ? TALENTS_DRUID.BRUTAL_SLASH_TALENT
- : SPELLS.SWIPE_CAT;
-}
-
///////////////////////////////////////////////////////////////////////////////
// MISC
//
@@ -226,8 +218,8 @@ export function getFerociousBiteMaxDrain(c: Combatant) {
);
}
-export const TIGERS_FURY_BASE_DURATION = 10_000;
-export const PREDATOR_DURATION_BOOST = 5_000;
+const TIGERS_FURY_BASE_DURATION = 10_000;
+const PREDATOR_DURATION_BOOST = 5_000;
export function getTigersFuryDuration(c: Combatant) {
return (
diff --git a/src/analysis/retail/druid/feral/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/druid/feral/normalizers/CastLinkNormalizer.ts
index 808fc0ec056..24933b3d4be 100644
--- a/src/analysis/retail/druid/feral/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/druid/feral/normalizers/CastLinkNormalizer.ts
@@ -19,10 +19,10 @@ import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 200;
const AFTER_CAST_BUFFER_MS = 300; // parries can be delayed even more...
-export const FROM_HARDCAST = 'FromHardcast';
-export const FROM_DOUBLE_CLAWED_RAKE = 'FromDoubleClawedRake';
-export const FROM_PRIMAL_WRATH = 'FromPrimalWrath';
-export const HIT_TARGET = 'HitTarget';
+const FROM_HARDCAST = 'FromHardcast';
+const FROM_DOUBLE_CLAWED_RAKE = 'FromDoubleClawedRake';
+const FROM_PRIMAL_WRATH = 'FromPrimalWrath';
+const HIT_TARGET = 'HitTarget';
const EVENT_LINKS: EventLink[] = [
{
@@ -175,12 +175,6 @@ export function getHardcast(
return GetRelatedEvent(event, FROM_HARDCAST);
}
-// TODO get hardcast energy / cp?
-
-export function isFromPrimalWrath(event: ApplyDebuffEvent | RefreshDebuffEvent): boolean {
- return HasRelatedEvent(event, FROM_PRIMAL_WRATH);
-}
-
export function getPrimalWrath(
event: ApplyDebuffEvent | RefreshDebuffEvent | DamageEvent,
): CastEvent | undefined {
diff --git a/src/analysis/retail/druid/feral/normalizers/FerociousBiteDrainLinkNormalizer.ts b/src/analysis/retail/druid/feral/normalizers/FerociousBiteDrainLinkNormalizer.ts
index 88a291094c9..128ef1dc31a 100644
--- a/src/analysis/retail/druid/feral/normalizers/FerociousBiteDrainLinkNormalizer.ts
+++ b/src/analysis/retail/druid/feral/normalizers/FerociousBiteDrainLinkNormalizer.ts
@@ -3,7 +3,7 @@ import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer'
import { CastEvent, DrainEvent, EventType, GetRelatedEvent } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
-export const ADDITIONAL_ENERGY_USED = 'AdditionalEnergyUsed';
+const ADDITIONAL_ENERGY_USED = 'AdditionalEnergyUsed';
const BUFFER_MS = 50;
diff --git a/src/analysis/retail/druid/feral/normalizers/SuddenAmbushLinkNormalizer.ts b/src/analysis/retail/druid/feral/normalizers/SuddenAmbushLinkNormalizer.ts
index 8c42a37ff67..90378802b7d 100644
--- a/src/analysis/retail/druid/feral/normalizers/SuddenAmbushLinkNormalizer.ts
+++ b/src/analysis/retail/druid/feral/normalizers/SuddenAmbushLinkNormalizer.ts
@@ -3,7 +3,6 @@ import { Options } from 'parser/core/Module';
import SPELLS from 'common/SPELLS';
import {
ApplyDebuffEvent,
- BuffEvent,
DamageEvent,
EventType,
GetRelatedEvents,
@@ -54,15 +53,6 @@ class SuddenAmbushLinkNormalizer extends EventLinkNormalizer {
export default SuddenAmbushLinkNormalizer;
-export function getSuddenAmbushBoostedBleeds(event: RemoveBuffEvent): BuffEvent[] {
- return GetRelatedEvents(
- event,
- BOOSTED_BLEED,
- (e): e is BuffEvent =>
- e.type === EventType.ApplyDebuff || e.type === EventType.RefreshDebuff,
- );
-}
-
export function getSuddenAmbushBoostedDamage(event: RemoveBuffEvent): DamageEvent[] {
return GetRelatedEvents(
event,
diff --git a/src/analysis/retail/druid/guardian/modules/core/rage/RageTracker.tsx b/src/analysis/retail/druid/guardian/modules/core/rage/RageTracker.tsx
index f61ecad5176..df42f6809a4 100644
--- a/src/analysis/retail/druid/guardian/modules/core/rage/RageTracker.tsx
+++ b/src/analysis/retail/druid/guardian/modules/core/rage/RageTracker.tsx
@@ -9,12 +9,12 @@ import { TALENTS_DRUID } from 'common/TALENTS';
/** Internally, all rage values are out of 1000, but player facing they are out of 100 */
export const RAGE_SCALE_FACTOR = 0.1;
-export const BERSERK_UA_COST_MULT = 0.5;
-export const BERSERK_PERSISTENCE_COST_MULT = 0.5;
-export const GORY_FUR_COST_MULT = 0.75;
+const BERSERK_UA_COST_MULT = 0.5;
+const BERSERK_PERSISTENCE_COST_MULT = 0.5;
+const GORY_FUR_COST_MULT = 0.75;
// buffer after expiration to make sure reduction is cost
-export const GORY_FUR_BUFFER = 30;
+const GORY_FUR_BUFFER = 30;
export const PERFECT_RAGE_WASTED = 0.05;
export const GOOD_RAGE_WASTED = 0.1;
diff --git a/src/analysis/retail/druid/guardian/test-fixtures/SimpleFight.jsx b/src/analysis/retail/druid/guardian/test-fixtures/SimpleFight.jsx
index d692df8829b..ce63422ba03 100644
--- a/src/analysis/retail/druid/guardian/test-fixtures/SimpleFight.jsx
+++ b/src/analysis/retail/druid/guardian/test-fixtures/SimpleFight.jsx
@@ -1,8 +1,6 @@
import SPELLS from 'common/SPELLS';
import { EventType } from 'parser/core/Events';
-export const FIGHT_END = 15000;
-
const thisPlayer = 1;
const enemy = 2;
@@ -177,7 +175,7 @@ export const buffsRefreshed = [
},
];
-export const buffsRemoved = [
+const buffsRemoved = [
{
type: EventType.RemoveBuff,
sourceid: thisPlayer,
diff --git a/src/analysis/retail/druid/restoration/modules/core/Mastery.ts b/src/analysis/retail/druid/restoration/modules/core/Mastery.ts
index cbb886d32e8..fa9a1e291e3 100644
--- a/src/analysis/retail/druid/restoration/modules/core/Mastery.ts
+++ b/src/analysis/retail/druid/restoration/modules/core/Mastery.ts
@@ -325,7 +325,7 @@ type MasteryAttributionsBySpell = { [key: number]: MasterySpellAttribution };
/**
* A HoT's mastery attribution.
*/
-export class MasterySpellAttribution {
+class MasterySpellAttribution {
direct: number; // the direct healing from the HoT, should be same as entry in WCL. Includes benefit from own stack of Mastery.
mastery: { [key: number]: number }; // a mapping from spell ID to how much this HoT boosted it via Mastery.
@@ -351,7 +351,7 @@ type MasteryAttributionsByBuff = { [key: number]: MasteryBuffAttribution };
/**
* A Buff's mastery attribution.
*/
-export class MasteryBuffAttribution {
+class MasteryBuffAttribution {
attributable: number; // the amount of healing attributable to the buff
buffAmount: number; // the amount of mastery rating the buff provides
diff --git a/src/analysis/retail/druid/restoration/modules/spells/Innervate.tsx b/src/analysis/retail/druid/restoration/modules/spells/Innervate.tsx
index 8168f12460c..03d94814cb9 100644
--- a/src/analysis/retail/druid/restoration/modules/spells/Innervate.tsx
+++ b/src/analysis/retail/druid/restoration/modules/spells/Innervate.tsx
@@ -19,7 +19,7 @@ import { explanationAndDataSubsection } from 'interface/guide/components/Explana
import { abilityToSpell } from 'common/abilityToSpell';
// TODO double check this is a reasonable number
-export const INNERVATE_MANA_REQUIRED = 7000;
+const INNERVATE_MANA_REQUIRED = 7000;
class Innervate extends Analyzer {
casts = 0;
diff --git a/src/analysis/retail/druid/restoration/modules/spells/Tranquility.tsx b/src/analysis/retail/druid/restoration/modules/spells/Tranquility.tsx
index 81748635e8e..42a4634fec1 100644
--- a/src/analysis/retail/druid/restoration/modules/spells/Tranquility.tsx
+++ b/src/analysis/retail/druid/restoration/modules/spells/Tranquility.tsx
@@ -15,7 +15,7 @@ import HotTrackerRestoDruid from 'analysis/retail/druid/restoration/modules/core
import { explanationAndDataSubsection } from 'interface/guide/components/ExplanationRow';
import { QualitativePerformance } from 'parser/ui/QualitativePerformance';
-export const MAX_TRANQ_TICKS = 5;
+const MAX_TRANQ_TICKS = 5;
/**
* Tracks stats relating to Tranquility
diff --git a/src/analysis/retail/druid/restoration/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/druid/restoration/normalizers/CastLinkNormalizer.ts
index 78c50a9f69f..b6313ebe439 100644
--- a/src/analysis/retail/druid/restoration/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/druid/restoration/normalizers/CastLinkNormalizer.ts
@@ -18,13 +18,13 @@ import { TALENTS_DRUID } from 'common/TALENTS';
const CAST_BUFFER_MS = 65;
const TRANQ_CHANNEL_BUFFER_MS = 10_000;
-export const APPLIED_HEAL = 'AppliedHeal';
-export const FROM_HARDCAST = 'FromHardcast';
-export const FROM_OVERGROWTH = 'FromOvergrowth';
-export const FROM_EXPIRING_LIFEBLOOM = 'FromExpiringLifebloom';
-export const CAUSED_BLOOM = 'CausedBloom';
-export const CAUSED_TICK = 'CausedTick';
-export const CAUSED_SUMMON = 'CausedSummon';
+const APPLIED_HEAL = 'AppliedHeal';
+const FROM_HARDCAST = 'FromHardcast';
+const FROM_OVERGROWTH = 'FromOvergrowth';
+const FROM_EXPIRING_LIFEBLOOM = 'FromExpiringLifebloom';
+const CAUSED_BLOOM = 'CausedBloom';
+const CAUSED_TICK = 'CausedTick';
+const CAUSED_SUMMON = 'CausedSummon';
const EVENT_LINKS: EventLink[] = [
{
diff --git a/src/analysis/retail/druid/restoration/normalizers/ClearcastingNormalizer.ts b/src/analysis/retail/druid/restoration/normalizers/ClearcastingNormalizer.ts
index dc6035ed105..f46f9a07b20 100644
--- a/src/analysis/retail/druid/restoration/normalizers/ClearcastingNormalizer.ts
+++ b/src/analysis/retail/druid/restoration/normalizers/ClearcastingNormalizer.ts
@@ -1,5 +1,5 @@
import SPELLS from 'common/SPELLS';
-import { CastEvent, EventType, HasRelatedEvent, RemoveBuffEvent } from 'parser/core/Events';
+import { CastEvent, EventType, HasRelatedEvent } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
@@ -28,10 +28,6 @@ class ClearcastingNormalizer extends EventLinkNormalizer {
}
}
-export function buffedRegrowth(event: RemoveBuffEvent): boolean {
- return HasRelatedEvent(event, BUFFED_REGROWTH);
-}
-
export function buffedByClearcast(event: CastEvent): boolean {
return HasRelatedEvent(event, BUFFED_BY_CLEARCAST);
}
diff --git a/src/analysis/retail/druid/restoration/normalizers/SoulOfTheForestLinkNormalizer.ts b/src/analysis/retail/druid/restoration/normalizers/SoulOfTheForestLinkNormalizer.ts
index 02364e1fcc8..713d093a1cf 100644
--- a/src/analysis/retail/druid/restoration/normalizers/SoulOfTheForestLinkNormalizer.ts
+++ b/src/analysis/retail/druid/restoration/normalizers/SoulOfTheForestLinkNormalizer.ts
@@ -13,8 +13,8 @@ import {
} from 'parser/core/Events';
import { Options } from 'parser/core/Module';
-export const BUFFED_BY_SOTF = 'BuffedBySotf';
-export const SOTF_BUFFS_HEAL = 'BuffsHeal';
+const BUFFED_BY_SOTF = 'BuffedBySotf';
+const SOTF_BUFFS_HEAL = 'BuffsHeal';
const SOTF_BUFFER_MS = 50;
diff --git a/src/analysis/retail/druid/restoration/normalizers/SwiftmendNormalizer.ts b/src/analysis/retail/druid/restoration/normalizers/SwiftmendNormalizer.ts
index b09b6172c1b..f5202a9e325 100644
--- a/src/analysis/retail/druid/restoration/normalizers/SwiftmendNormalizer.ts
+++ b/src/analysis/retail/druid/restoration/normalizers/SwiftmendNormalizer.ts
@@ -12,7 +12,7 @@ import { TALENTS_DRUID } from 'common/TALENTS';
const REMOVE_BUFFER_MS = 50;
-export const CONSUMED_HOT = 'ConsumedHot';
+const CONSUMED_HOT = 'ConsumedHot';
const EVENT_LINKS: EventLink[] = [
{
diff --git a/src/analysis/retail/druid/shared/spells/ConvokeSpirits.tsx b/src/analysis/retail/druid/shared/spells/ConvokeSpirits.tsx
index 19e1e542d20..0ff6ecdbdac 100644
--- a/src/analysis/retail/druid/shared/spells/ConvokeSpirits.tsx
+++ b/src/analysis/retail/druid/shared/spells/ConvokeSpirits.tsx
@@ -30,7 +30,7 @@ const DEBUG = false;
*/
/** All convokable spells that 'hit' with a buff application */
-export const CONVOKE_BUFF_SPELLS = [
+const CONVOKE_BUFF_SPELLS = [
SPELLS.REJUVENATION,
SPELLS.REJUVENATION_GERMINATION,
SPELLS.REGROWTH,
@@ -42,16 +42,16 @@ export const CONVOKE_BUFF_SPELLS = [
SPELLS.STARFALL_CAST, // apparently this is also the ID for the buff
];
/** All convokable spells that 'hit' with a debuff application */
-export const CONVOKE_DEBUFF_SPELLS = [
+const CONVOKE_DEBUFF_SPELLS = [
SPELLS.MOONFIRE_DEBUFF,
SPELLS.MOONFIRE_FERAL,
SPELLS.RAKE_BLEED,
SPELLS.THRASH_BEAR_DOT,
];
/** All convokable spells that 'hit' with direct healing */
-export const CONVOKE_HEAL_SPELLS = [SPELLS.SWIFTMEND];
+const CONVOKE_HEAL_SPELLS = [SPELLS.SWIFTMEND];
/** All convokable spells that 'hit' with direct damage */
-export const CONVOKE_DAMAGE_SPELLS = [
+const CONVOKE_DAMAGE_SPELLS = [
SPELLS.WRATH,
SPELLS.WRATH_MOONKIN,
SPELLS.STARSURGE_AFFINITY,
@@ -63,7 +63,7 @@ export const CONVOKE_DAMAGE_SPELLS = [
TALENTS.PULVERIZE_TALENT,
];
/** Convokable spells that do direct damage (and possibly also a DoT portion) - for damage tallying */
-export const CONVOKE_DIRECT_DAMAGE_SPELLS = [
+const CONVOKE_DIRECT_DAMAGE_SPELLS = [
...CONVOKE_DAMAGE_SPELLS,
SPELLS.RAKE,
SPELLS.THRASH_BEAR,
@@ -73,16 +73,16 @@ export const CONVOKE_DIRECT_DAMAGE_SPELLS = [
SPELLS.RAMPANT_FEROCITY,
];
/** Convokable spells that have travel time */
-export const SPELLS_WITH_TRAVEL_TIME = [
+const SPELLS_WITH_TRAVEL_TIME = [
SPELLS.STARSURGE_AFFINITY,
SPELLS.STARSURGE_MOONKIN,
SPELLS.FULL_MOON,
SPELLS.WRATH,
SPELLS.WRATH_MOONKIN,
];
-export const SPELL_IDS_WITH_TRAVEL_TIME = SPELLS_WITH_TRAVEL_TIME.map((s) => s.id);
+const SPELL_IDS_WITH_TRAVEL_TIME = SPELLS_WITH_TRAVEL_TIME.map((s) => s.id);
/** Convokable spells that can hit multiple targets */
-export const SPELL_IDS_WITH_AOE = [
+const SPELL_IDS_WITH_AOE = [
SPELLS.MOONFIRE_DEBUFF.id,
SPELLS.MOONFIRE_FERAL.id,
SPELLS.FULL_MOON.id,
diff --git a/src/analysis/retail/evoker/augmentation/modules/breahtofeons/BreathOfEonsRotational.tsx b/src/analysis/retail/evoker/augmentation/modules/breahtofeons/BreathOfEonsRotational.tsx
index ad6f7398114..1973cd3c2de 100644
--- a/src/analysis/retail/evoker/augmentation/modules/breahtofeons/BreathOfEonsRotational.tsx
+++ b/src/analysis/retail/evoker/augmentation/modules/breahtofeons/BreathOfEonsRotational.tsx
@@ -84,7 +84,7 @@ type BreathWindowPerformance = {
*
*/
-export const GRAPH_BUFFER = 3000;
+const GRAPH_BUFFER = 3000;
class BreathOfEonsRotational extends Analyzer {
static dependencies = {
diff --git a/src/analysis/retail/evoker/augmentation/modules/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/evoker/augmentation/modules/normalizers/CastLinkNormalizer.ts
index b2f3fccee92..8a2c4e97ba8 100644
--- a/src/analysis/retail/evoker/augmentation/modules/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/evoker/augmentation/modules/normalizers/CastLinkNormalizer.ts
@@ -26,9 +26,9 @@ import { LEAPING_FLAMES_HITS } from 'analysis/retail/evoker/shared/modules/norma
* See example of this here (upheaval should have extended but didn't):
* https://www.warcraftlogs.com/reports/1JqKrX2vLxb6Zyp9/#fight=8&source=3&pins=2%24Off%24%23244F4B%24expression%24type%20%3D%20%22empowerend%22%20or%20type%3D%22removebuff%22&view=events&start=1402475&end=1408776
*/
-export const FAILED_EXTENSION_LINK = 'failedExtensionLink';
+const FAILED_EXTENSION_LINK = 'failedExtensionLink';
-export const PRESCIENCE_BUFF_CAST_LINK = 'prescienceBuffCastLink';
+const PRESCIENCE_BUFF_CAST_LINK = 'prescienceBuffCastLink';
export const PRESCIENCE_APPLY_REMOVE_LINK = 'prescienceApplyRemoveLink';
export const BREATH_EBON_APPLY_LINK = 'breathEbonApplyLink';
export const EBON_MIGHT_BUFF_LINKS = 'ebonMightBuffLinks';
@@ -38,24 +38,24 @@ export const BREATH_OF_EONS_CAST_DEBUFF_APPLY_LINK = 'breathOfEonsCastDebuffAppl
export const BREATH_OF_EONS_CAST_BUFF_LINK = 'breathOfEonsCastBuffLink';
export const BREATH_OF_EONS_DAMAGE_LINK = 'breathOfEonsDamageLink';
-export const ERUPTION_CAST_DAM_LINK = 'eruptionCastDamLink';
-export const ERUPTION_CHITIN_LINK = 'eruptionChitinLink';
-export const PUPIL_OF_ALEXSTRASZA_LINK = 'pupilOfAlexstraszaLink';
+const ERUPTION_CAST_DAM_LINK = 'eruptionCastDamLink';
+const ERUPTION_CHITIN_LINK = 'eruptionChitinLink';
+const PUPIL_OF_ALEXSTRASZA_LINK = 'pupilOfAlexstraszaLink';
// Tier
export const TREMBLING_EARTH_DAM_LINK = 'tremblingEarthDamLink';
-export const PRESCIENCE_BUFFER = 150;
-export const CAST_BUFFER_MS = 100;
-export const BREATH_EBON_BUFFER = 250;
-export const EBON_MIGHT_BUFFER = 150;
-export const BREATH_OF_EONS_DEBUFF_APPLY_BUFFER = 8000;
-export const BREATH_OF_EONS_BUFF_BUFFER = 8000;
-export const BREATH_OF_EONS_DAMAGE_BUFFER = 100;
-export const PUPIL_OF_ALEXSTRASZA_BUFFER = 1000;
+const PRESCIENCE_BUFFER = 150;
+const CAST_BUFFER_MS = 100;
+const BREATH_EBON_BUFFER = 250;
+const EBON_MIGHT_BUFFER = 150;
+const BREATH_OF_EONS_DEBUFF_APPLY_BUFFER = 8000;
+const BREATH_OF_EONS_BUFF_BUFFER = 8000;
+const BREATH_OF_EONS_DAMAGE_BUFFER = 100;
+const PUPIL_OF_ALEXSTRASZA_BUFFER = 1000;
// Tier
// No clue why but this gets very weirdly staggered/delayed
-export const TREMBLING_EARTH_BUFFER = 500;
+const TREMBLING_EARTH_BUFFER = 500;
const EVENT_LINKS: EventLink[] = [
{
diff --git a/src/analysis/retail/evoker/devastation/modules/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/evoker/devastation/modules/normalizers/CastLinkNormalizer.ts
index 9c3c5d9c65f..1a1b443ad17 100644
--- a/src/analysis/retail/evoker/devastation/modules/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/evoker/devastation/modules/normalizers/CastLinkNormalizer.ts
@@ -5,8 +5,8 @@ import { TALENTS_EVOKER } from 'common/TALENTS';
import { CastEvent, EventType, HasRelatedEvent } from 'parser/core/Events';
export const ESSENCE_BURST_CONSUME = 'EssenceBurstConsumption';
-export const BURNOUT_CONSUME = 'BurnoutConsumption';
-export const SNAPFIRE_CONSUME = 'SnapfireConsumption';
+const BURNOUT_CONSUME = 'BurnoutConsumption';
+const SNAPFIRE_CONSUME = 'SnapfireConsumption';
export const IRIDESCENCE_RED_CONSUME = 'IridescentRedConsumption';
export const IRIDESCENCE_BLUE_CONSUME = 'IridescentBlueConsumption';
export const DISINTEGRATE_REMOVE_APPLY = 'DisintegrateRemoveApply';
diff --git a/src/analysis/retail/evoker/preservation/constants.ts b/src/analysis/retail/evoker/preservation/constants.ts
index 6253c07ac49..e92a582ba82 100644
--- a/src/analysis/retail/evoker/preservation/constants.ts
+++ b/src/analysis/retail/evoker/preservation/constants.ts
@@ -76,7 +76,6 @@ export const STASIS_CAST_IDS = [
];
// hots
-export const ECHO_BASE_DURATION = 15000;
export const DREAM_BREATH_MIN_DURATION = 4000;
export const DREAM_BREATH_MAX_DURATION = 16000;
export const REVERSION_BASE_DURATION = 12000;
diff --git a/src/analysis/retail/evoker/preservation/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/evoker/preservation/normalizers/CastLinkNormalizer.ts
index 5929d01b93b..e4fc33c7c64 100644
--- a/src/analysis/retail/evoker/preservation/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/evoker/preservation/normalizers/CastLinkNormalizer.ts
@@ -29,40 +29,40 @@ import LeapingFlamesNormalizer, {
import { EMPOWERED_CAST } from '../../shared/modules/normalizers/EmpowerNormalizer';
import { EssenceBurstRefreshNormalizer } from '../../shared';
-export const ANCIENT_FLAME = 'AncientFlame'; // links cast to buff apply
-export const ANCIENT_FLAME_CONSUME = 'AncientFlameConnsume'; // links buff remove to buff apply
+const ANCIENT_FLAME = 'AncientFlame'; // links cast to buff apply
+const ANCIENT_FLAME_CONSUME = 'AncientFlameConnsume'; // links buff remove to buff apply
// BEGIN ECHO constants
-export const FROM_HARDCAST = 'FromHardcast'; // for linking a buffapply or heal to its cast
-export const FROM_TEMPORAL_ANOMALY = 'FromTemporalAnomaly'; // for linking TA echo apply to TA shield apply
-export const FROM_TIER = 'FromTier'; // for linking tier echo apply to tier lf damage/heal
-export const ECHO_REMOVAL = 'EchoRemoval'; // for linking echo removal to echo apply
-export const TA_ECHO_REMOVAL = 'TaEchoTemoval'; // for linking TA echo removal to echo apply
-export const TIER_ECHO_REMOVAL = 'TierEchoRemoval'; // for linking tier echo to echo apply
+const FROM_HARDCAST = 'FromHardcast'; // for linking a buffapply or heal to its cast
+const FROM_TEMPORAL_ANOMALY = 'FromTemporalAnomaly'; // for linking TA echo apply to TA shield apply
+const FROM_TIER = 'FromTier'; // for linking tier echo apply to tier lf damage/heal
+const ECHO_REMOVAL = 'EchoRemoval'; // for linking echo removal to echo apply
+const TA_ECHO_REMOVAL = 'TaEchoTemoval'; // for linking TA echo removal to echo apply
+const TIER_ECHO_REMOVAL = 'TierEchoRemoval'; // for linking tier echo to echo apply
export const ECHO_TEMPORAL_ANOMALY = 'TemporalAnomaly'; // for linking BuffApply/Heal to echo removal
export const ECHO = 'Echo'; // for linking BuffApply/Heal to echo removal
-export const ECHO_TIER = 'EchoT31'; // for linking BuffApply/Heal to echo removal
+const ECHO_TIER = 'EchoT31'; // for linking BuffApply/Heal to echo removal
// END ECHO constants
-export const ESSENCE_BURST_LINK = 'EssenceBurstLink'; // link eb removal to apply
-export const ESSENCE_BURST_CONSUME = 'EssenceBurstConsumption'; // link essence cast to removing the essence burst buff
-export const DREAM_BREATH_CALL_OF_YSERA = 'DreamBreathCallOfYsera'; // link DB hit to buff removal
-export const DREAM_BREATH_CALL_OF_YSERA_HOT = 'DreamBreathCallOfYseraHoT'; // link DB hot to buff removal
-export const FIELD_OF_DREAMS_PROC = 'FromFieldOfDreams'; // link EB heal to fluttering heal
-export const GOLDEN_HOUR = 'GoldenHour'; // link GH heal to reversion application
-export const LIFEBIND = 'Lifebind'; // link lifebind buff apply to lifebind heal event
-export const LIFEBIND_APPLY = 'LifebindApply'; // link lifebind apply to verdant embrace
-export const LIFEBIND_HEAL = 'LifebindHeal'; // link lifebind heal to trigger heal event
-export const LIVING_FLAME_CALL_OF_YSERA = 'LivingFlameCallOfYsera'; // link buffed living flame to buff removal
-export const HEAL_GROUPING = 'HealGrouping'; // link EB healevents and TA pulses together to easily fetch groups of heals/absorbs
-export const ECHO_HEAL_GROUPING = 'HealGrouping'; // link EB healevents and TA pulses together to easily fetch groups of heals/absorbs
-export const BUFF_GROUPING = 'BuffGrouping'; // link ApplyBuff events together
-export const SHIELD_FROM_TA_CAST = 'ShieldFromTACast';
-export const SPARK_OF_INSIGHT = 'SparkOfInsight'; // link TC stack removals to Spark
-export const STASIS = 'Stasis';
-export const STASIS_FOR_RAMP = 'ForRamp';
-export const ESSENCE_RUSH = 'EssenceRush';
-export const T31_2PC = 'T31LFProc';
-export const EB_REVERSION = 'EssenceBurstReversion';
-export const TIME_OF_NEED_HEALING = 'TimeOfNeedHealing';
+const ESSENCE_BURST_LINK = 'EssenceBurstLink'; // link eb removal to apply
+const ESSENCE_BURST_CONSUME = 'EssenceBurstConsumption'; // link essence cast to removing the essence burst buff
+const DREAM_BREATH_CALL_OF_YSERA = 'DreamBreathCallOfYsera'; // link DB hit to buff removal
+const DREAM_BREATH_CALL_OF_YSERA_HOT = 'DreamBreathCallOfYseraHoT'; // link DB hot to buff removal
+const FIELD_OF_DREAMS_PROC = 'FromFieldOfDreams'; // link EB heal to fluttering heal
+const GOLDEN_HOUR = 'GoldenHour'; // link GH heal to reversion application
+const LIFEBIND = 'Lifebind'; // link lifebind buff apply to lifebind heal event
+const LIFEBIND_APPLY = 'LifebindApply'; // link lifebind apply to verdant embrace
+const LIFEBIND_HEAL = 'LifebindHeal'; // link lifebind heal to trigger heal event
+const LIVING_FLAME_CALL_OF_YSERA = 'LivingFlameCallOfYsera'; // link buffed living flame to buff removal
+const HEAL_GROUPING = 'HealGrouping'; // link EB healevents and TA pulses together to easily fetch groups of heals/absorbs
+const ECHO_HEAL_GROUPING = 'HealGrouping'; // link EB healevents and TA pulses together to easily fetch groups of heals/absorbs
+const BUFF_GROUPING = 'BuffGrouping'; // link ApplyBuff events together
+const SHIELD_FROM_TA_CAST = 'ShieldFromTACast';
+const SPARK_OF_INSIGHT = 'SparkOfInsight'; // link TC stack removals to Spark
+const STASIS = 'Stasis';
+const STASIS_FOR_RAMP = 'ForRamp';
+const ESSENCE_RUSH = 'EssenceRush';
+const T31_2PC = 'T31LFProc';
+const EB_REVERSION = 'EssenceBurstReversion';
+const TIME_OF_NEED_HEALING = 'TimeOfNeedHealing';
export enum ECHO_TYPE {
NONE,
@@ -874,10 +874,6 @@ export function didEchoExpire(event: RemoveBuffEvent) {
return !HasRelatedEvent(event, ECHO) && !HasRelatedEvent(event, ECHO_TEMPORAL_ANOMALY);
}
-export function isFromHardcast(event: ApplyBuffEvent) {
- return HasRelatedEvent(event, FROM_HARDCAST);
-}
-
export function getEssenceBurstConsumeAbility(
event: RemoveBuffEvent | RemoveBuffStackEvent,
): null | CastEvent {
@@ -923,10 +919,6 @@ export function getHealEvents(event: HealEvent) {
return [event].concat(GetRelatedEvents(event, HEAL_GROUPING));
}
-export function getEchoHealEvents(event: HealEvent) {
- return [event].concat(GetRelatedEvents(event, ECHO_HEAL_GROUPING));
-}
-
export function getBuffEvents(event: ApplyBuffEvent) {
return [event].concat(GetRelatedEvents(event, BUFF_GROUPING));
}
diff --git a/src/analysis/retail/evoker/shared/modules/normalizers/DefensiveCastLinkNormalizer.ts b/src/analysis/retail/evoker/shared/modules/normalizers/DefensiveCastLinkNormalizer.ts
index 871db3d8bea..073d76a6906 100644
--- a/src/analysis/retail/evoker/shared/modules/normalizers/DefensiveCastLinkNormalizer.ts
+++ b/src/analysis/retail/evoker/shared/modules/normalizers/DefensiveCastLinkNormalizer.ts
@@ -8,7 +8,7 @@ export const OBSIDIAN_SCALES = 'obsidianScales'; // links cast to buff apply
export const RENEWING_BLAZE = 'renewingBlaze'; // links cast to buff apply
export const RENEWING_BLAZE_BUFFS = 'renewingBlazeBuffs'; // links acc & heal buffs
export const RENEWING_BLAZE_HEAL = 'renewingBlazeHeal'; // links heal buff and healing
-export const TWIN_GUARDIAN_PARTNER = 'twinGuardianPartner'; // links external and personal buffs
+const TWIN_GUARDIAN_PARTNER = 'twinGuardianPartner'; // links external and personal buffs
const CAST_BUFFER = 25;
/** Heal buff gets applied once you first take damage, so there is a non-zero chance it won't apply
diff --git a/src/analysis/retail/evoker/shared/modules/normalizers/EmpowerNormalizer.ts b/src/analysis/retail/evoker/shared/modules/normalizers/EmpowerNormalizer.ts
index d7ed75c515b..9df53364c0a 100644
--- a/src/analysis/retail/evoker/shared/modules/normalizers/EmpowerNormalizer.ts
+++ b/src/analysis/retail/evoker/shared/modules/normalizers/EmpowerNormalizer.ts
@@ -12,7 +12,7 @@ import { Options } from 'parser/core/Module';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { EMPOWERS } from '../../constants';
-export const TIP_THE_SCALES_CONSUME = 'TipTheScalesConsume';
+const TIP_THE_SCALES_CONSUME = 'TipTheScalesConsume';
export const EMPOWERED_CAST = 'EmpoweredCast';
const EMPOWERED_CAST_BUFFER = 6000;
diff --git a/src/analysis/retail/hunter/survival/constants.ts b/src/analysis/retail/hunter/survival/constants.ts
index ebc357e971d..a195ae54c90 100644
--- a/src/analysis/retail/hunter/survival/constants.ts
+++ b/src/analysis/retail/hunter/survival/constants.ts
@@ -36,13 +36,6 @@ export const BASELINE_AOTE_CD = 90000;
/** Bird of Prey */
//Bird of Prey extends Coordinated Assault by 1.5 seconds per trigger
export const BOP_CA_EXTENSION_PER_CAST = 1500;
-/** Chakrams */
-//Chakrams has a bunch of different spellIDs for damage
-export const SURVIVAL_CHAKRAM_TYPES = [
- SPELLS.CHAKRAMS_TO_MAINTARGET,
- SPELLS.CHAKRAMS_BACK_FROM_MAINTARGET,
- SPELLS.CHAKRAMS_NOT_MAINTARGET,
-];
/** Flanking Strike */
//Flanking Strikes regenerates 30 focus
export const FLANKING_STRIKE_FOCUS_GAIN = 30;
diff --git a/src/analysis/retail/mage/arcane/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/mage/arcane/normalizers/CastLinkNormalizer.ts
index 0acda419bee..275108d0d2c 100644
--- a/src/analysis/retail/mage/arcane/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/mage/arcane/normalizers/CastLinkNormalizer.ts
@@ -1,25 +1,16 @@
import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/mage';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import {
- ApplyDebuffEvent,
- CastEvent,
- DamageEvent,
- EventType,
- GetRelatedEvent,
- GetRelatedEvents,
- HasRelatedEvent,
- RefreshDebuffEvent,
-} from 'parser/core/Events';
+import { CastEvent, EventType, GetRelatedEvents } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 75;
-export const SPELL_CAST = 'SpellCast';
-export const SPELL_DAMAGE = 'SpellDamage';
-export const DEBUFF_APPLY = 'DebuffApply';
-export const DEBUFF_REMOVE = 'DebuffRemove';
-export const SPARK_REMOVED = 'SparkRemoved';
+const SPELL_CAST = 'SpellCast';
+const SPELL_DAMAGE = 'SpellDamage';
+const DEBUFF_APPLY = 'DebuffApply';
+const DEBUFF_REMOVE = 'DebuffRemove';
+const SPARK_REMOVED = 'SparkRemoved';
const EVENT_LINKS: EventLink[] = [
{
@@ -114,18 +105,6 @@ class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-export function isFromHardcast(
- event: ApplyDebuffEvent | RefreshDebuffEvent | DamageEvent,
-): boolean {
- return HasRelatedEvent(event, SPELL_CAST);
-}
-
-export function getHardcast(
- event: ApplyDebuffEvent | RefreshDebuffEvent | DamageEvent,
-): CastEvent | undefined {
- return GetRelatedEvent(event, SPELL_CAST);
-}
-
export function getHitCount(aoeCastEvent: CastEvent): number {
return GetRelatedEvents(aoeCastEvent, SPELL_DAMAGE).length;
}
diff --git a/src/analysis/retail/mage/fire/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/mage/fire/normalizers/CastLinkNormalizer.ts
index 23fbad3bb9e..8ab8cd766fa 100644
--- a/src/analysis/retail/mage/fire/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/mage/fire/normalizers/CastLinkNormalizer.ts
@@ -2,13 +2,10 @@ import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/mage';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import {
- AbilityEvent,
BeginCastEvent,
- RemoveBuffEvent,
CastEvent,
EventType,
GetRelatedEvents,
- HasRelatedEvent,
HasTarget,
} from 'parser/core/Events';
import { Options } from 'parser/core/Module';
@@ -17,14 +14,13 @@ import { encodeTargetString } from 'parser/shared/modules/Enemies';
const CAST_BUFFER_MS = 75;
const EXTENDED_CAST_BUFFER_MS = 150;
-export const BUFF_APPLY = 'BuffApply';
-export const BUFF_REMOVE = 'BuffRemove';
-export const BUFF_REFRESH = 'BuffRefresh';
-export const CAST_BEGIN = 'CastBegin';
-export const SPELL_CAST = 'SpellCast';
-export const PRE_CAST = 'PreCast';
-export const SPELL_DAMAGE = 'SpellDamage';
-export const EXPLODE_DEBUFF = 'ExplosionDebuff';
+const BUFF_APPLY = 'BuffApply';
+const BUFF_REMOVE = 'BuffRemove';
+const CAST_BEGIN = 'CastBegin';
+const SPELL_CAST = 'SpellCast';
+const PRE_CAST = 'PreCast';
+const SPELL_DAMAGE = 'SpellDamage';
+const EXPLODE_DEBUFF = 'ExplosionDebuff';
const EVENT_LINKS: EventLink[] = [
{
@@ -334,32 +330,9 @@ class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-/** Returns true iff the given buff application or heal can be matched back to a hardcast */
-export function isFromHardcast(event: AbilityEvent): boolean {
- return HasRelatedEvent(event, SPELL_CAST);
-}
-
-export function isInstantCast(event: CastEvent): boolean {
+function isInstantCast(event: CastEvent): boolean {
const beginCast = GetRelatedEvents(event, CAST_BEGIN)[0];
return !beginCast || event.timestamp - beginCast.timestamp <= CAST_BUFFER_MS;
}
-export function hasPreCast(event: AbilityEvent): boolean {
- return HasRelatedEvent(event, PRE_CAST);
-}
-
-/** Returns the hardcast event that caused this buff or heal, if there is one */
-export function getHardcast(event: AbilityEvent): CastEvent | undefined {
- return GetRelatedEvents(
- event,
- SPELL_CAST,
- (e): e is CastEvent => e.type === EventType.Cast,
- ).pop();
-}
-
-export function isProcExpired(event: RemoveBuffEvent, spenderId: number): boolean {
- const cast = GetRelatedEvents(event, SPELL_CAST)[0];
- return !cast || cast.ability.guid !== spenderId;
-}
-
export default CastLinkNormalizer;
diff --git a/src/analysis/retail/mage/fire/talents/SearingTouch.tsx b/src/analysis/retail/mage/fire/talents/SearingTouch.tsx
index 11243883f8a..de6e22d64a3 100644
--- a/src/analysis/retail/mage/fire/talents/SearingTouch.tsx
+++ b/src/analysis/retail/mage/fire/talents/SearingTouch.tsx
@@ -12,7 +12,7 @@ import BoringSpellValueText from 'parser/ui/BoringSpellValueText';
import Statistic from 'parser/ui/Statistic';
import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
-export const DAMAGE_MODIFIER = 1.5;
+const DAMAGE_MODIFIER = 1.5;
const debug = false;
diff --git a/src/analysis/retail/mage/frost/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/mage/frost/normalizers/CastLinkNormalizer.ts
index 752e49f3175..8d9ceb668ad 100644
--- a/src/analysis/retail/mage/frost/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/mage/frost/normalizers/CastLinkNormalizer.ts
@@ -1,32 +1,20 @@
import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/mage';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import {
- AbilityEvent,
- BeginCastEvent,
- RemoveBuffEvent,
- CastEvent,
- DamageEvent,
- EventType,
- GetRelatedEvents,
- HasRelatedEvent,
- HasTarget,
-} from 'parser/core/Events';
+import { CastEvent, DamageEvent, EventType, HasRelatedEvent, HasTarget } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
import { encodeTargetString } from 'parser/shared/modules/Enemies';
const CAST_BUFFER_MS = 75;
-export const BUFF_APPLY = 'BuffApply';
-export const BUFF_REMOVE = 'BuffRemove';
-export const BUFF_REFRESH = 'BuffRefresh';
-export const DEBUFF_APPLY = 'DebuffApply';
-export const DEBUFF_REMOVE = 'DebuffRemove';
-export const CAST_BEGIN = 'CastBegin';
-export const SPELL_CAST = 'SpellCast';
-export const PRE_CAST = 'PreCast';
-export const SPELL_DAMAGE = 'SpellDamage';
-export const CLEAVE_DAMAGE = 'CleaveDamage';
+const BUFF_APPLY = 'BuffApply';
+const BUFF_REMOVE = 'BuffRemove';
+const DEBUFF_APPLY = 'DebuffApply';
+const DEBUFF_REMOVE = 'DebuffRemove';
+const SPELL_CAST = 'SpellCast';
+const PRE_CAST = 'PreCast';
+const SPELL_DAMAGE = 'SpellDamage';
+const CLEAVE_DAMAGE = 'CleaveDamage';
const EVENT_LINKS: EventLink[] = [
{
@@ -288,35 +276,7 @@ class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-/** Returns true iff the given buff application or heal can be matched back to a hardcast */
-export function isFromHardcast(event: AbilityEvent): boolean {
- return HasRelatedEvent(event, SPELL_CAST);
-}
-
-export function isInstantCast(event: CastEvent): boolean {
- const beginCast = GetRelatedEvents(event, CAST_BEGIN)[0];
- return !beginCast || event.timestamp - beginCast.timestamp <= CAST_BUFFER_MS;
-}
-
-export function hasPreCast(event: AbilityEvent): boolean {
- return HasRelatedEvent(event, PRE_CAST);
-}
-
-/** Returns the hardcast event that caused this buff or heal, if there is one */
-export function getHardcast(event: AbilityEvent): CastEvent | undefined {
- return GetRelatedEvents(
- event,
- SPELL_CAST,
- (e): e is CastEvent => e.type === EventType.Cast,
- ).pop();
-}
-
-export function isProcExpired(event: RemoveBuffEvent, spenderId: number): boolean {
- const cast = GetRelatedEvents(event, SPELL_CAST)[0];
- return !cast || cast.ability.guid !== spenderId;
-}
-
-export function isCleaveDamage(castEvent: CastEvent, damageEvent: DamageEvent): boolean {
+function isCleaveDamage(castEvent: CastEvent, damageEvent: DamageEvent): boolean {
const castTarget =
HasTarget(castEvent) && encodeTargetString(castEvent.targetID, castEvent.targetInstance);
const damageTarget =
diff --git a/src/analysis/retail/mage/frost/normalizers/CometStormLinkNormalizer.ts b/src/analysis/retail/mage/frost/normalizers/CometStormLinkNormalizer.ts
index 283c23dc0fa..5b59750551a 100644
--- a/src/analysis/retail/mage/frost/normalizers/CometStormLinkNormalizer.ts
+++ b/src/analysis/retail/mage/frost/normalizers/CometStormLinkNormalizer.ts
@@ -1,13 +1,13 @@
import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/mage';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import { AnyEvent, EventType, GetRelatedEvents } from 'parser/core/Events';
+import { EventType } from 'parser/core/Events';
import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 2500;
-export const FROM_HARDCAST = 'FromHardcast';
-export const HITS_TARGET = 'HitsTarget';
+const FROM_HARDCAST = 'FromHardcast';
+const HITS_TARGET = 'HitsTarget';
const EVENT_LINKS: EventLink[] = [
{
@@ -30,8 +30,4 @@ class CometStormLinkNormalizer extends EventLinkNormalizer {
}
}
-export function cometStormHits(event: AnyEvent) {
- return GetRelatedEvents(event, HITS_TARGET);
-}
-
export default CometStormLinkNormalizer;
diff --git a/src/analysis/retail/mage/shared/Abilities.tsx b/src/analysis/retail/mage/shared/Abilities.tsx
index 6ab67a8ce52..899bd9b70ae 100644
--- a/src/analysis/retail/mage/shared/Abilities.tsx
+++ b/src/analysis/retail/mage/shared/Abilities.tsx
@@ -329,4 +329,3 @@ class Abilities extends CoreAbilities {
}
export default Abilities;
-export { Abilities as MAGE_SHARED_ABILITIES };
diff --git a/src/analysis/retail/mage/shared/constants.tsx b/src/analysis/retail/mage/shared/constants.tsx
index 3ba5618e81e..1c5c6cd6af0 100644
--- a/src/analysis/retail/mage/shared/constants.tsx
+++ b/src/analysis/retail/mage/shared/constants.tsx
@@ -30,7 +30,6 @@ export const FIRE_DIRECT_DAMAGE_SPELLS = [
//Arcane
export const ARCANE_CHARGE_MAX_STACKS = 4;
-export const AP_MANA_THRESHOLD_PERCENT = 0.4;
export const ARCANE_BLAST_BASE_MANA_COST = 1375;
export const ARCANE_EXPLOSION_BASE_MANA_COST = 5000;
diff --git a/src/analysis/retail/monk/brewmaster/constants.tsx b/src/analysis/retail/monk/brewmaster/constants.tsx
index 967f2e7546f..d61daa4a523 100644
--- a/src/analysis/retail/monk/brewmaster/constants.tsx
+++ b/src/analysis/retail/monk/brewmaster/constants.tsx
@@ -3,14 +3,6 @@ import talents from 'common/TALENTS/monk';
export const MAGIC_STAGGER_EFFECTIVENESS = 0.45;
-export const BREWS = [
- talents.PURIFYING_BREW_TALENT,
- talents.FORTIFYING_BREW_TALENT,
- talents.BLACK_OX_BREW_TALENT,
- talents.CELESTIAL_BREW_TALENT,
- talents.BONEDUST_BREW_TALENT,
-];
-
// Yes there are 7... The cake is a lie (8 really)
export const GIFT_OF_THE_OX_SPELLS = [
SPELLS.GIFT_OF_THE_OX_1,
diff --git a/src/analysis/retail/monk/brewmaster/modules/charts.ts b/src/analysis/retail/monk/brewmaster/modules/charts.ts
index 929d35fb316..eb4031dd3e7 100644
--- a/src/analysis/retail/monk/brewmaster/modules/charts.ts
+++ b/src/analysis/retail/monk/brewmaster/modules/charts.ts
@@ -5,7 +5,7 @@ import { NonNormalizedSpec } from 'vega-lite/build/src/spec';
import { UnitSpec } from 'vega-lite/build/src/spec/unit';
import { Transform } from 'vega-lite/build/src/transform';
-export const POINT_SIZE = 75;
+const POINT_SIZE = 75;
export const normalizeTimestampTransform = (info: Info, key: string = 'timestamp'): Transform => ({
calculate: `datum.${key} - ${info.fightStart}`,
diff --git a/src/analysis/retail/monk/brewmaster/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx b/src/analysis/retail/monk/brewmaster/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
index 811c63a176e..d0965766b48 100644
--- a/src/analysis/retail/monk/brewmaster/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/core/MajorDefensives/DefensiveBuffLinkNormalizer.tsx
@@ -1,6 +1,6 @@
import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import { ApplyBuffEvent, EventType, GetRelatedEvent, RemoveBuffEvent } from 'parser/core/Events';
+import { EventType } from 'parser/core/Events';
import { buffId, MAJOR_DEFENSIVES } from './DefensiveBuffs';
const relation = 'defensive-buff-remove';
@@ -26,11 +26,3 @@ export default class DefensiveBuffLinkNormalizer extends EventLinkNormalizer {
super(options, links);
}
}
-
-export function defensiveApplication(event: RemoveBuffEvent): ApplyBuffEvent | undefined {
- return GetRelatedEvent(event, reverseRelation);
-}
-
-export function defensiveExpiration(event: ApplyBuffEvent): RemoveBuffEvent | undefined {
- return GetRelatedEvent(event, relation);
-}
diff --git a/src/analysis/retail/monk/brewmaster/modules/core/StaggerLinkNormalizer.tsx b/src/analysis/retail/monk/brewmaster/modules/core/StaggerLinkNormalizer.tsx
index 0e50f0a1c31..7710c6817ee 100644
--- a/src/analysis/retail/monk/brewmaster/modules/core/StaggerLinkNormalizer.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/core/StaggerLinkNormalizer.tsx
@@ -3,8 +3,8 @@ import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { AbsorbedEvent, DamageEvent, EventType } from 'parser/core/Events';
-export const StaggerDamageSource = 'StaggerDamageSource';
-export const StaggerAbsorb = 'StaggerAbsorb';
+const StaggerDamageSource = 'StaggerDamageSource';
+const StaggerAbsorb = 'StaggerAbsorb';
const staggerLinks: EventLink[] = [
{
linkRelation: StaggerDamageSource,
diff --git a/src/analysis/retail/monk/brewmaster/modules/problems/PurifyingBrew/index.tsx b/src/analysis/retail/monk/brewmaster/modules/problems/PurifyingBrew/index.tsx
index a0c684d8580..b913e77d3c4 100644
--- a/src/analysis/retail/monk/brewmaster/modules/problems/PurifyingBrew/index.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/problems/PurifyingBrew/index.tsx
@@ -87,11 +87,7 @@ const PurifyProblemDescription = ({ data }: { data: ProblemData }) =>
);
-export function PurifyProblem({
- problem,
- events,
- info,
-}: ProblemRendererProps): JSX.Element {
+function PurifyProblem({ problem, events, info }: ProblemRendererProps): JSX.Element {
const stagger: Array = events.filter(
({ type }) => type === EventType.AddStagger || type === EventType.RemoveStagger,
) as Array;
diff --git a/src/analysis/retail/monk/brewmaster/modules/spells/BreathOfFire/normalizer.ts b/src/analysis/retail/monk/brewmaster/modules/spells/BreathOfFire/normalizer.ts
index 54042d5e786..21412592d4c 100644
--- a/src/analysis/retail/monk/brewmaster/modules/spells/BreathOfFire/normalizer.ts
+++ b/src/analysis/retail/monk/brewmaster/modules/spells/BreathOfFire/normalizer.ts
@@ -3,7 +3,7 @@ import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { EventType } from 'parser/core/Events';
-export const targetRelation = 'bof-target';
+const targetRelation = 'bof-target';
const links: EventLink[] = [
{
linkRelation: targetRelation,
diff --git a/src/analysis/retail/monk/brewmaster/modules/spells/CelestialBrew/normalizer.ts b/src/analysis/retail/monk/brewmaster/modules/spells/CelestialBrew/normalizer.ts
index 0474d3875f7..aa59e2b835c 100644
--- a/src/analysis/retail/monk/brewmaster/modules/spells/CelestialBrew/normalizer.ts
+++ b/src/analysis/retail/monk/brewmaster/modules/spells/CelestialBrew/normalizer.ts
@@ -32,8 +32,3 @@ export default class CelestialBrewNormalizer extends EventLinkNormalizer {
export function damageEvent(event: AbsorbedEvent): DamageEvent | undefined {
return event._linkedEvents?.find((rel) => rel.relation === relation)?.event as DamageEvent;
}
-
-export function cbAbsorb(event: DamageEvent): AbsorbedEvent | undefined {
- return event._linkedEvents?.find((rel) => rel.relation === reverseRelation)
- ?.event as AbsorbedEvent;
-}
diff --git a/src/analysis/retail/monk/brewmaster/modules/spells/HighTolerance.tsx b/src/analysis/retail/monk/brewmaster/modules/spells/HighTolerance.tsx
index 272f34f1be5..d842f1bd1a6 100644
--- a/src/analysis/retail/monk/brewmaster/modules/spells/HighTolerance.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/spells/HighTolerance.tsx
@@ -4,7 +4,6 @@ import talents from 'common/TALENTS/monk';
import { SpellIcon } from 'interface';
import HasteIcon from 'interface/icons/Haste';
import Analyzer, { Options, SELECTED_PLAYER } from 'parser/core/Analyzer';
-import Combatant from 'parser/core/Combatant';
import Events, { ApplyDebuffEvent, RemoveDebuffEvent } from 'parser/core/Events';
import BoringValue from 'parser/ui/BoringValueText';
import Statistic from 'parser/ui/Statistic';
@@ -16,21 +15,6 @@ export const HIGH_TOLERANCE_HASTE = {
[SPELLS.HEAVY_STAGGER_DEBUFF.id]: 0.1,
};
-function hasteFnGenerator(value: number) {
- return {
- haste: (combatant: Combatant) =>
- (combatant.getTalentRank(talents.HIGH_TOLERANCE_TALENT) /
- talents.HIGH_TOLERANCE_TALENT.maxRanks) *
- value,
- };
-}
-
-export const HIGH_TOLERANCE_HASTE_FNS = {
- [SPELLS.LIGHT_STAGGER_DEBUFF.id]: hasteFnGenerator(0.05),
- [SPELLS.MODERATE_STAGGER_DEBUFF.id]: hasteFnGenerator(0.07),
- [SPELLS.HEAVY_STAGGER_DEBUFF.id]: hasteFnGenerator(0.1),
-};
-
class HighTolerance extends Analyzer {
protected ranks = 0;
get meanHaste() {
diff --git a/src/analysis/retail/monk/brewmaster/modules/spells/RushingJadeWind.tsx b/src/analysis/retail/monk/brewmaster/modules/spells/RushingJadeWind.tsx
index 0d19ca3f252..5356803d2be 100644
--- a/src/analysis/retail/monk/brewmaster/modules/spells/RushingJadeWind.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/spells/RushingJadeWind.tsx
@@ -6,7 +6,7 @@ import Analyzer, { Options } from 'parser/core/Analyzer';
import { ThresholdStyle, When } from 'parser/core/ParseResults';
// the buff events all use this spell
-export const RUSHING_JADE_WIND_BUFF = talents.RUSHING_JADE_WIND_TALENT;
+const RUSHING_JADE_WIND_BUFF = talents.RUSHING_JADE_WIND_TALENT;
class RushingJadeWind extends Analyzer {
get uptimeThreshold() {
diff --git a/src/analysis/retail/monk/brewmaster/modules/talents/BonedustBrew/normalizer.tsx b/src/analysis/retail/monk/brewmaster/modules/talents/BonedustBrew/normalizer.tsx
index 72df1931cbe..df1a61c2a09 100644
--- a/src/analysis/retail/monk/brewmaster/modules/talents/BonedustBrew/normalizer.tsx
+++ b/src/analysis/retail/monk/brewmaster/modules/talents/BonedustBrew/normalizer.tsx
@@ -3,7 +3,7 @@ import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { EventType } from 'parser/core/Events';
-export const debuffApplicationRelation = 'bdb-applyrefreshdebuff';
+const debuffApplicationRelation = 'bdb-applyrefreshdebuff';
const links: EventLink[] = [
{
linkRelation: debuffApplicationRelation,
diff --git a/src/analysis/retail/monk/brewmaster/modules/talents/PressTheAdvantage/normalizer.ts b/src/analysis/retail/monk/brewmaster/modules/talents/PressTheAdvantage/normalizer.ts
index fb9973b7916..2541cd25e05 100644
--- a/src/analysis/retail/monk/brewmaster/modules/talents/PressTheAdvantage/normalizer.ts
+++ b/src/analysis/retail/monk/brewmaster/modules/talents/PressTheAdvantage/normalizer.ts
@@ -13,13 +13,13 @@ import {
} from 'parser/core/Events';
export const PTA_TRIGGER_BUFF = 'pta-trigger-buff';
-export const PTA_TRIGGER_CAST = 'pta-trigger-cast';
-export const PTA_BONUS_CAST = 'pta-bonus-cast';
-export const PTA_BUFF = 'pta-buff';
+const PTA_TRIGGER_CAST = 'pta-trigger-cast';
+const PTA_BONUS_CAST = 'pta-bonus-cast';
+const PTA_BUFF = 'pta-buff';
export const KS_DAMAGE = 'ks-damage';
-export const KS_CAST = 'ks-cast';
-export const RSK_CAST = 'rsk-cast';
-export const RSK_DAMAGE = 'rsk-damage';
+const KS_CAST = 'ks-cast';
+const RSK_CAST = 'rsk-cast';
+const RSK_DAMAGE = 'rsk-damage';
const LINKS: EventLink[] = [
{
@@ -72,7 +72,7 @@ const LINKS: EventLink[] = [
},
];
-export function isPtaBonusCast(event: CastEvent): boolean {
+function isPtaBonusCast(event: CastEvent): boolean {
return GetRelatedEvents(event, PTA_BUFF).length > 0;
}
diff --git a/src/analysis/retail/monk/brewmaster/normalizers/GiftOfTheOx.jsx b/src/analysis/retail/monk/brewmaster/normalizers/GiftOfTheOx.jsx
index 178b687ef89..0fe7254f0c3 100644
--- a/src/analysis/retail/monk/brewmaster/normalizers/GiftOfTheOx.jsx
+++ b/src/analysis/retail/monk/brewmaster/normalizers/GiftOfTheOx.jsx
@@ -3,7 +3,7 @@ import EventsNormalizer from 'parser/core/EventsNormalizer';
import { GIFT_OF_THE_OX_SPELL_IDS } from '../constants';
-export const GOTOX_GENERATED_EVENT = 'orb-generated';
+const GOTOX_GENERATED_EVENT = 'orb-generated';
/**
* Gift of the Ox orbs show up as 'casts' which messes with other things
diff --git a/src/analysis/retail/monk/brewmaster/normalizers/SpinningCraneKick.ts b/src/analysis/retail/monk/brewmaster/normalizers/SpinningCraneKick.ts
index d551b178833..bf6084a3d3e 100644
--- a/src/analysis/retail/monk/brewmaster/normalizers/SpinningCraneKick.ts
+++ b/src/analysis/retail/monk/brewmaster/normalizers/SpinningCraneKick.ts
@@ -4,7 +4,7 @@ import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer'
import { EventType } from 'parser/core/Events';
export const SCK_DAMAGE_LINK = 'sck-damage';
-export const SCK_CAST_LINK = 'sck-cast';
+const SCK_CAST_LINK = 'sck-cast';
// the damage link is the reverse of the cast link.
//
diff --git a/src/analysis/retail/monk/brewmaster/test-fixtures/SimpleFight.jsx b/src/analysis/retail/monk/brewmaster/test-fixtures/SimpleFight.jsx
index 15a67491e17..741e918f31a 100644
--- a/src/analysis/retail/monk/brewmaster/test-fixtures/SimpleFight.jsx
+++ b/src/analysis/retail/monk/brewmaster/test-fixtures/SimpleFight.jsx
@@ -203,7 +203,7 @@ export const incomingDamage = [
];
// Damage taken: amount: 0, absorbed: 0, overkill: 0
-export const casts = [
+const casts = [
{
type: EventType.Cast,
sourceID: thisPlayer,
@@ -234,7 +234,7 @@ export const casts = [
},
];
-export const dpsCasts = [
+const dpsCasts = [
{
type: EventType.Cast,
sourceID: thisPlayer,
@@ -287,10 +287,10 @@ export const dpsCasts = [
];
// Damage taken: amount: 0, absorbed: 0, overkill: 0
-export const isbCasts = [];
+const isbCasts = [];
// Damage taken: amount: 0, absorbed: 0, overkill: 0
-export const applybuff = [
+const applybuff = [
{
type: EventType.ApplyBuff,
sourceID: thisPlayer,
@@ -314,7 +314,7 @@ export const applybuff = [
},
];
-export const refreshBuff = [
+const refreshBuff = [
{
type: EventType.RefreshBuff,
sourceID: thisPlayer,
@@ -324,7 +324,7 @@ export const refreshBuff = [
},
];
-export const removebuff = [
+const removebuff = [
{
type: EventType.RemoveBuff,
sourceID: thisPlayer,
diff --git a/src/analysis/retail/monk/mistweaver/constants.ts b/src/analysis/retail/monk/mistweaver/constants.ts
index 6d9a3d03d3e..b917b75be40 100644
--- a/src/analysis/retail/monk/mistweaver/constants.ts
+++ b/src/analysis/retail/monk/mistweaver/constants.ts
@@ -29,7 +29,6 @@ export const ABILITIES_AFFECTED_BY_HEALING_INCREASES = [
// Core Constants
export const LIFE_COCOON_HEALING_BOOST = 0.5;
-export const TEACHINGS_OF_THE_MONASTERY_DURATION = 20000;
// Talent Constants
export const LEGACY_OF_WISDOM_TARGETS = 2;
diff --git a/src/analysis/retail/monk/mistweaver/modules/dragonflight/T31HealingBreakdown.tsx b/src/analysis/retail/monk/mistweaver/modules/dragonflight/T31HealingBreakdown.tsx
index 6fca19793ce..eceddc5cb0f 100644
--- a/src/analysis/retail/monk/mistweaver/modules/dragonflight/T31HealingBreakdown.tsx
+++ b/src/analysis/retail/monk/mistweaver/modules/dragonflight/T31HealingBreakdown.tsx
@@ -15,7 +15,7 @@ interface Props {
owner: CombatLogParser;
}
-export const ChiHarmonyHealingBreakdown = ({
+const ChiHarmonyHealingBreakdown = ({
analyzer: { fourPieceSourceMap, fourPieceHealing },
owner: { fightDuration },
}: Props) => {
diff --git a/src/analysis/retail/monk/mistweaver/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/monk/mistweaver/normalizers/CastLinkNormalizer.ts
index 1d4acebae6f..53553624215 100644
--- a/src/analysis/retail/monk/mistweaver/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/monk/mistweaver/normalizers/CastLinkNormalizer.ts
@@ -18,38 +18,38 @@ import {
} from 'parser/core/Events';
import ITEMS from 'common/ITEMS';
-export const APPLIED_HEAL = 'AppliedHeal';
-export const FORCE_BOUNCE = 'ForceBounce';
-export const OVERHEAL_BOUNCE = 'OverhealBounce';
-export const BOUNCED = 'Bounced';
-export const ESSENCE_FONT = 'EssenceFont';
-export const FROM_DANCING_MISTS = 'FromDM';
-export const SOURCE_APPLY = 'SourceApply';
-export const FROM_HARDCAST = 'FromHardcast';
-export const FROM_MISTY_PEAKS = 'FromMistyPeaks';
-export const FROM_MISTS_OF_LIFE = 'FromMOL';
-export const FROM_RAPID_DIFFUSION = 'FromRD'; // can be linked to env mist or rsk cast
-export const ENVELOPING_MIST_GOM = 'EnvGOM';
-export const RENEWING_MIST_GOM = 'ReMGOM';
-export const VIVIFY_GOM = 'ViVGOM';
-export const REVIVAL_GOM = 'RevivalGOM';
-export const ZEN_PULSE_GOM = 'ZPGOM';
-export const SHEILUNS_GIFT_GOM = 'SGGOM';
-export const SHEILUNS_GIFT = 'SheilunsGift';
-export const EXPEL_HARM_GOM = 'EHGOM';
-export const SOOM_GOM = 'SoomGOM';
-export const VIVIFY = 'Vivify';
-export const CALMING_COALESCENCE = 'Calming Coalescence';
-export const MANA_TEA_CHANNEL = 'MTChannel';
-export const MANA_TEA_CAST_LINK = 'MTLink';
-export const MT_BUFF_REMOVAL = 'MTStack';
-export const LIFECYCLES = 'Lifecycles';
-export const MT_STACK_CHANGE = 'MTStackChange';
-export const ANCIENT_TEACHINGS_FLS = 'ATFaelineStomp';
-export const ANCIENT_TEACHINGS_EF = 'ATEssenceFont';
+const APPLIED_HEAL = 'AppliedHeal';
+const FORCE_BOUNCE = 'ForceBounce';
+const OVERHEAL_BOUNCE = 'OverhealBounce';
+const BOUNCED = 'Bounced';
+const ESSENCE_FONT = 'EssenceFont';
+const FROM_DANCING_MISTS = 'FromDM';
+const SOURCE_APPLY = 'SourceApply';
+const FROM_HARDCAST = 'FromHardcast';
+const FROM_MISTY_PEAKS = 'FromMistyPeaks';
+const FROM_MISTS_OF_LIFE = 'FromMOL';
+const FROM_RAPID_DIFFUSION = 'FromRD'; // can be linked to env mist or rsk cast
+const ENVELOPING_MIST_GOM = 'EnvGOM';
+const RENEWING_MIST_GOM = 'ReMGOM';
+const VIVIFY_GOM = 'ViVGOM';
+const REVIVAL_GOM = 'RevivalGOM';
+const ZEN_PULSE_GOM = 'ZPGOM';
+const SHEILUNS_GIFT_GOM = 'SGGOM';
+const SHEILUNS_GIFT = 'SheilunsGift';
+const EXPEL_HARM_GOM = 'EHGOM';
+const SOOM_GOM = 'SoomGOM';
+const VIVIFY = 'Vivify';
+const CALMING_COALESCENCE = 'Calming Coalescence';
+const MANA_TEA_CHANNEL = 'MTChannel';
+const MANA_TEA_CAST_LINK = 'MTLink';
+const MT_BUFF_REMOVAL = 'MTStack';
+const LIFECYCLES = 'Lifecycles';
+const MT_STACK_CHANGE = 'MTStackChange';
+const ANCIENT_TEACHINGS_FLS = 'ATFaelineStomp';
+const ANCIENT_TEACHINGS_EF = 'ATEssenceFont';
//
-export const FRAGILE_ECHO_SOURCE = 'FragileEchoSource';
+const FRAGILE_ECHO_SOURCE = 'FragileEchoSource';
const RAPID_DIFFUSION_BUFFER_MS = 300;
const DANCING_MIST_BUFFER_MS = 250;
@@ -541,10 +541,6 @@ export function isFromHardcast(event: AbilityEvent): boolean {
return false;
}
-export function isForceBounce(event: ApplyBuffEvent | RefreshBuffEvent) {
- return HasRelatedEvent(event, FORCE_BOUNCE);
-}
-
export function isBounceTick(event: HealEvent) {
return HasRelatedEvent(event, OVERHEAL_BOUNCE);
}
@@ -622,10 +618,6 @@ export function isFromRevival(event: HealEvent) {
return HasRelatedEvent(event, REVIVAL_GOM) && !isFromEssenceFont(event);
}
-export function isFromZenPulse(event: HealEvent) {
- return HasRelatedEvent(event, ZEN_PULSE_GOM) && !isFromEssenceFont(event);
-}
-
export function isFromExpelHarm(event: HealEvent) {
return HasRelatedEvent(event, EXPEL_HARM_GOM) && !isFromEssenceFont(event);
}
diff --git a/src/analysis/retail/monk/windwalker/castDamage.ts b/src/analysis/retail/monk/windwalker/castDamage.ts
index 0f25a3b001a..94ed756f78a 100644
--- a/src/analysis/retail/monk/windwalker/castDamage.ts
+++ b/src/analysis/retail/monk/windwalker/castDamage.ts
@@ -19,14 +19,3 @@ export const castDamageMap: ReadonlyMap = new Map([
[TALENTS_MONK.RISING_SUN_KICK_TALENT, [SPELLS.RISING_SUN_KICK_DAMAGE]],
[TALENTS_MONK.JADEFIRE_STOMP_TALENT, [SPELLS.FAELINE_STOMP_PULSE_DAMAGE]],
]);
-
-const entries = Array.from(castDamageMap);
-
-/** Provide id of cast ability and get damage spell(s) back */
-export const castToDamage = Object.fromEntries(
- entries.map(([cast, damage]) => [cast.id, damage] as const),
-);
-/** Provide id of damage ability and get cast ability back */
-export const damageToCast = Object.fromEntries(
- entries.map(([cast, dSpells]) => dSpells.map((d) => [d.id, cast] as const)).flat(),
-);
diff --git a/src/analysis/retail/monk/windwalker/constants.ts b/src/analysis/retail/monk/windwalker/constants.ts
index 8db73d721a4..202c398f5e3 100644
--- a/src/analysis/retail/monk/windwalker/constants.ts
+++ b/src/analysis/retail/monk/windwalker/constants.ts
@@ -1,9 +1,6 @@
import SPELLS from 'common/SPELLS';
-import Spell from 'common/SPELLS/Spell';
import { TALENTS_MONK } from 'common/TALENTS';
-import { castDamageMap } from './castDamage';
-
// Based on SpellData for Hit Combo and Serenity
export const ABILITIES_AFFECTED_BY_DAMAGE_INCREASES = [
SPELLS.MELEE,
@@ -50,26 +47,6 @@ export const ABILITIES_AFFECTED_BY_MASTERY = [
TALENTS_MONK.STRIKE_OF_THE_WINDLORD_TALENT,
];
-export const DAMAGE_AFFECTED_BY_MASTERY = [
- SPELLS.TIGER_PALM,
- SPELLS.BLACKOUT_KICK,
- SPELLS.FISTS_OF_FURY_DAMAGE,
- TALENTS_MONK.RISING_SUN_KICK_TALENT,
- SPELLS.SPINNING_CRANE_KICK_DAMAGE,
- SPELLS.FLYING_SERPENT_KICK_DAMAGE,
- SPELLS.CRACKLING_JADE_LIGHTNING,
- SPELLS.WHIRLING_DRAGON_PUNCH_TALENT,
- TALENTS_MONK.CHI_WAVE_TALENT,
- SPELLS.CHI_WAVE_TALENT_DAMAGE,
- TALENTS_MONK.CHI_BURST_TALENT,
- SPELLS.CHI_BURST_TALENT_DAMAGE,
- TALENTS_MONK.RUSHING_JADE_WIND_TALENT,
- SPELLS.EXPEL_HARM_DAMAGE,
- TALENTS_MONK.JADEFIRE_STOMP_TALENT,
- SPELLS.FAELINE_STOMP_PULSE_DAMAGE,
- TALENTS_MONK.STRIKE_OF_THE_WINDLORD_TALENT,
-];
-
export const CHI_SPENDERS = [
SPELLS.BLACKOUT_KICK,
TALENTS_MONK.RISING_SUN_KICK_TALENT,
@@ -79,70 +56,4 @@ export const CHI_SPENDERS = [
TALENTS_MONK.STRIKE_OF_THE_WINDLORD_TALENT,
];
-export const ABILITIES_CLONED_BY_SEF = [
- SPELLS.TIGER_PALM,
- SPELLS.BLACKOUT_KICK,
- SPELLS.FISTS_OF_FURY_CAST,
- SPELLS.FISTS_OF_FURY_DAMAGE,
- TALENTS_MONK.RISING_SUN_KICK_TALENT,
- SPELLS.RISING_SUN_KICK_DAMAGE,
- TALENTS_MONK.CHI_WAVE_TALENT,
- SPELLS.SPINNING_CRANE_KICK,
- SPELLS.SPINNING_CRANE_KICK_DAMAGE,
- SPELLS.CRACKLING_JADE_LIGHTNING,
- SPELLS.WHIRLING_DRAGON_PUNCH_TALENT,
- TALENTS_MONK.STRIKE_OF_THE_WINDLORD_TALENT,
-];
-
-/**
- * Abilities that are affected by the T28 4-set bonus
- * "Primordial Power"
- * https://www.wowhead.com/spell=363924/primordial-power
- *
- * https://docs.google.com/spreadsheets/d/1QvAtBtaFKaAuhy9iGiMmEzCd--kuwL3oWIDwny6GEoQ/edit
- */
-export const ABILITIES_THAT_CONSUME_PRIMORDIAL_POWER: Spell[] = [
- SPELLS.BLACKOUT_KICK,
- TALENTS_MONK.CHI_BURST_TALENT,
- TALENTS_MONK.CHI_WAVE_TALENT,
- SPELLS.CRACKLING_JADE_LIGHTNING,
- TALENTS_MONK.JADEFIRE_STOMP_TALENT,
- SPELLS.FISTS_OF_FURY_CAST,
- SPELLS.FLYING_SERPENT_KICK,
- TALENTS_MONK.RISING_SUN_KICK_TALENT,
- TALENTS_MONK.RUSHING_JADE_WIND_TALENT,
- SPELLS.SPINNING_CRANE_KICK,
- SPELLS.TIGER_PALM,
- SPELLS.WHIRLING_DRAGON_PUNCH_TALENT,
-];
-
-/**
- * Damage that is affected by the T28 4-set bonus
- * "Primordial Power"
- * https://www.wowhead.com/spell=363924/primordial-power
- *
- * https://docs.google.com/spreadsheets/d/1QvAtBtaFKaAuhy9iGiMmEzCd--kuwL3oWIDwny6GEoQ/edit
- */
-export const DAMAGE_AFFECTED_BY_PRIMORDIAL_POWER: Spell[] = [
- // Include both all original cast events
- ...ABILITIES_THAT_CONSUME_PRIMORDIAL_POWER,
- // And all known damage spells
- ...ABILITIES_THAT_CONSUME_PRIMORDIAL_POWER.map((a) => castDamageMap.get(a) || []).flat(),
- SPELLS.EYE_OF_THE_TIGER_HEAL,
- SPELLS.JADE_IGNITION_DAMAGE,
-];
-
-/**
- * These spells are special cases that benefit from the 4p bonus while the
- * buff is up, regardless if the cast was powered or not
- *
- * https://docs.google.com/spreadsheets/d/1QvAtBtaFKaAuhy9iGiMmEzCd--kuwL3oWIDwny6GEoQ/edit
- */
-export const DAMAGE_AFFECTED_BY_PRIMORDIAL_POWER_NAIVELY: Spell[] = [
- ...(castDamageMap.get(TALENTS_MONK.CHI_BURST_TALENT) || []),
- ...(castDamageMap.get(TALENTS_MONK.CHI_WAVE_TALENT) || []),
- SPELLS.EYE_OF_THE_TIGER_HEAL,
- SPELLS.JADE_IGNITION_DAMAGE,
-];
-
export const BLACKOUT_KICK_COOLDOWN_REDUCTION_MS = 1000;
diff --git a/src/analysis/retail/paladin/holy/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/paladin/holy/normalizers/CastLinkNormalizer.ts
index 96378c77602..e33ce39d9e3 100644
--- a/src/analysis/retail/paladin/holy/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/paladin/holy/normalizers/CastLinkNormalizer.ts
@@ -11,12 +11,12 @@ import {
} from 'parser/core/Events';
import { Options } from 'parser/core/Module';
-export const LIGHTS_HAMMER_HEAL = 'LightsHammerHeal';
-export const FROM_DAYBREAK = 'FromDaybreak';
+const LIGHTS_HAMMER_HEAL = 'LightsHammerHeal';
+const FROM_DAYBREAK = 'FromDaybreak';
export const DAYBREAK_MANA = 'DaybreakMana';
export const GLIMMER_PROC = 'GlimmerProc';
export const HOLY_SHOCK_SOURCE = 'HolyShockSource';
-export const RISING_SUNLIGHT = 'RisingSunlight';
+const RISING_SUNLIGHT = 'RisingSunlight';
const SHORT_BUFFER_MS = 100;
const MED_BUFFER_MS = 350;
diff --git a/src/analysis/retail/paladin/protection/modules/CastLinkNormalizer.ts b/src/analysis/retail/paladin/protection/modules/CastLinkNormalizer.ts
index 570017c7fe0..52d4259248e 100644
--- a/src/analysis/retail/paladin/protection/modules/CastLinkNormalizer.ts
+++ b/src/analysis/retail/paladin/protection/modules/CastLinkNormalizer.ts
@@ -2,11 +2,9 @@ import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/paladin';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import {
- CastEvent,
EventType,
DamageEvent,
GetRelatedEvents,
- HasRelatedEvent,
ApplyBuffEvent,
RefreshBuffEvent,
} from 'parser/core/Events';
@@ -20,8 +18,6 @@ const GRAND_CRUSADER_HAMMER_OF_THE_RIGHTEOUS_CAST = 'FromHardcast';
const GRAND_CRUSADER_BLESSED_HAMMER_CAST = 'FromHardCast';
const GRAND_CRUSADER_JUDGMENT_CRIT = 'FromHardCast';
const GRAND_CRUSADER_PARRY = 'FromHardCast';
-const FROM_HARDCAST = 'FromHardcast';
-const CONSUMED_PROC = 'ConsumedProc';
const EVENT_LINKS: EventLink[] = [
// Crusader Strike Cast
@@ -167,16 +163,4 @@ export function gcJudgmentCrit(event: ApplyBuffEvent | RefreshBuffEvent): Damage
).at(-1);
}
-export function getHardcast(event: DamageEvent): CastEvent | undefined {
- return GetRelatedEvents(
- event,
- FROM_HARDCAST,
- (e): e is CastEvent => e.type === EventType.Cast,
- ).at(-1);
-}
-
-export function consumedProc(event: DamageEvent): boolean {
- return HasRelatedEvent(event, CONSUMED_PROC);
-}
-
export default CastLinkNormalizer;
diff --git a/src/analysis/retail/paladin/protection/modules/core/Defensives/DefensiveBuffLinkNormalizer.tsx b/src/analysis/retail/paladin/protection/modules/core/Defensives/DefensiveBuffLinkNormalizer.tsx
index c1fe167e04f..1cbf65e0f97 100644
--- a/src/analysis/retail/paladin/protection/modules/core/Defensives/DefensiveBuffLinkNormalizer.tsx
+++ b/src/analysis/retail/paladin/protection/modules/core/Defensives/DefensiveBuffLinkNormalizer.tsx
@@ -1,6 +1,6 @@
import { Options } from 'parser/core/Analyzer';
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import { ApplyBuffEvent, EventType, GetRelatedEvents, RemoveBuffEvent } from 'parser/core/Events';
+import { EventType } from 'parser/core/Events';
import { buffId, MAJOR_DEFENSIVES } from './Defensivebuffs';
import { isTalent } from 'common/TALENTS/types';
@@ -27,11 +27,3 @@ export default class DefensiveBuffLinkNormalizer extends EventLinkNormalizer {
super(options, links);
}
}
-
-export function defensiveApplication(event: RemoveBuffEvent): ApplyBuffEvent | undefined {
- return GetRelatedEvents(event, reverseRelation)[0] as ApplyBuffEvent | undefined;
-}
-
-export function defensiveExpiration(event: ApplyBuffEvent): RemoveBuffEvent | undefined {
- return GetRelatedEvents(event, relation)[0] as RemoveBuffEvent | undefined;
-}
diff --git a/src/analysis/retail/paladin/protection/modules/talents/GiftOfTheGoldenValkyr.tsx b/src/analysis/retail/paladin/protection/modules/talents/GiftOfTheGoldenValkyr.tsx
index 5b3638cec61..dbd9ab5585f 100644
--- a/src/analysis/retail/paladin/protection/modules/talents/GiftOfTheGoldenValkyr.tsx
+++ b/src/analysis/retail/paladin/protection/modules/talents/GiftOfTheGoldenValkyr.tsx
@@ -12,7 +12,7 @@ import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
import STATISTIC_ORDER from 'parser/ui/STATISTIC_ORDER';
import * as React from 'react';
-export const BASE_REDUCTION_TIME = 1000; // ms, per talent point, per target hit
+const BASE_REDUCTION_TIME = 1000; // ms, per talent point, per target hit
const SECOND = 1000;
/**
* Avenger's Shield reduces the cooldown of Guardian of Ancient Kings for 0.5seconds per target hit per talent point.
diff --git a/src/analysis/retail/paladin/protection/modules/talents/ResoluteDefender.tsx b/src/analysis/retail/paladin/protection/modules/talents/ResoluteDefender.tsx
index bdd8f3dd457..2f961702291 100644
--- a/src/analysis/retail/paladin/protection/modules/talents/ResoluteDefender.tsx
+++ b/src/analysis/retail/paladin/protection/modules/talents/ResoluteDefender.tsx
@@ -12,7 +12,7 @@ import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
import STATISTIC_ORDER from 'parser/ui/STATISTIC_ORDER';
import * as React from 'react';
-export const BASE_REDUCTION_TIME = 1000; // ms, per talent point
+const BASE_REDUCTION_TIME = 1000; // ms, per talent point
const SECOND = 1000;
/**
* Shield of the Righteous reduces the remaining cooldown on Divine Shield and Ardent Defender by 1 seconds.
diff --git a/src/analysis/retail/paladin/retribution/constants.tsx b/src/analysis/retail/paladin/retribution/constants.tsx
index 3abf57c0f35..80f9ad34912 100644
--- a/src/analysis/retail/paladin/retribution/constants.tsx
+++ b/src/analysis/retail/paladin/retribution/constants.tsx
@@ -2,36 +2,6 @@ import SPELLS from 'common/SPELLS/paladin';
import TALENTS from 'common/TALENTS/paladin';
import Spell from 'common/SPELLS/Spell';
-// Based on spelldata for Avenging Wrath
-// Avenging Wrath also increases melee damage by 20% - this is added in their modules.
-export const ABILITIES_AFFECTED_BY_DAMAGE_INCREASES = [
- SPELLS.CRUSADER_STRIKE,
- SPELLS.JUDGMENT_CAST,
- SPELLS.TEMPLARS_VERDICT_DAMAGE,
- SPELLS.DIVINE_STORM_DAMAGE,
- SPELLS.CONSECRATION_CAST,
- SPELLS.ZEAL_DAMAGE,
- SPELLS.SANCTIFIED_WRATH_DAMAGE,
- TALENTS.BLADE_OF_JUSTICE_TALENT,
- TALENTS.HAMMER_OF_WRATH_TALENT,
- TALENTS.WAKE_OF_ASHES_TALENT,
- TALENTS.EXECUTION_SENTENCE_TALENT,
- TALENTS.JUSTICARS_VENGEANCE_TALENT,
-];
-
-// Stuff like Retribution mastery and Execution sentence increases damage done by these sources of holy damage
-export const ABILITIES_AFFECTED_BY_HOLY_DAMAGE_INCREASES = [
- SPELLS.JUDGMENT_CAST,
- SPELLS.TEMPLARS_VERDICT_DAMAGE,
- SPELLS.DIVINE_STORM_DAMAGE,
- SPELLS.CONSECRATION_CAST,
- SPELLS.ZEAL_DAMAGE,
- SPELLS.SANCTIFIED_WRATH_DAMAGE,
- TALENTS.HAMMER_OF_WRATH_TALENT,
- TALENTS.WAKE_OF_ASHES_TALENT,
- TALENTS.JUSTICARS_VENGEANCE_TALENT,
-];
-
export const HOLY_POWER_FINISHERS: Spell[] = [
SPELLS.TEMPLARS_VERDICT_DAMAGE,
SPELLS.FINAL_VERDICT_FINISHER,
@@ -40,7 +10,6 @@ export const HOLY_POWER_FINISHERS: Spell[] = [
TALENTS.JUSTICARS_VENGEANCE_TALENT,
];
-export const CRUSADER_STRIKE_EMPYREAN_POWER_CHANCE = 0.15;
export const CRUSADING_STRIKE_EMPYREAN_POWER_CHANCE = 0.05;
export const HOLY_POWER_BUILDERS: Spell[] = [
diff --git a/src/analysis/retail/paladin/shared/constants.ts b/src/analysis/retail/paladin/shared/constants.ts
index edf68b7b6ca..14670b00823 100644
--- a/src/analysis/retail/paladin/shared/constants.ts
+++ b/src/analysis/retail/paladin/shared/constants.ts
@@ -22,7 +22,7 @@ export const DAMAGE_HOLY_POWER_SPENDERS: readonly Spell[] = [
TALENTS.EXECUTION_SENTENCE_TALENT,
] as const;
-export const BUFF_HOLY_POWER_SPENDERS: readonly Spell[] = [] as const;
+const BUFF_HOLY_POWER_SPENDERS: readonly Spell[] = [] as const;
export const ALL_HOLY_POWER_SPENDERS: readonly Spell[] = [
...HEALING_HOLY_POWER_SPENDERS,
@@ -30,7 +30,7 @@ export const ALL_HOLY_POWER_SPENDERS: readonly Spell[] = [
...BUFF_HOLY_POWER_SPENDERS,
] as const;
-export const SHARED_HOLY_POWER_GENERATORS = [
+const SHARED_HOLY_POWER_GENERATORS = [
SPELLS.CRUSADER_STRIKE,
TALENTS.HAMMER_OF_WRATH_TALENT,
TALENTS.DIVINE_TOLL_TALENT,
diff --git a/src/analysis/retail/priest/discipline/SpellCalculations.ts b/src/analysis/retail/priest/discipline/SpellCalculations.ts
index fdf21261028..dff9d9a9253 100644
--- a/src/analysis/retail/priest/discipline/SpellCalculations.ts
+++ b/src/analysis/retail/priest/discipline/SpellCalculations.ts
@@ -1,16 +1,11 @@
-import SinsOfTheMany from 'analysis/retail/priest/discipline/modules/spells/SinsOfTheMany';
import StatTracker from 'parser/shared/modules/StatTracker';
import {
ATONEMENT_COEFFICIENT,
PENANCE_COEFFICIENCT,
- SMITE_COEFFICIENT,
DISCIPLINE_DAMAGE_AURA_VALUE,
} from './constants';
-// 50% dmg increase passive
-const SMITE_DAMAGE_BUFF = 0.5;
-
/*
* Wraps a spell calculation to accept the stats module
* Essentially lets you compose modules with spell estimations
@@ -50,24 +45,3 @@ export const OffensivePenanceBoltEstimation = statWrapper((stats: StatTracker) =
boltHealing: penanceBoltHealing,
};
});
-
-// Estimation of how much output a Smite will do
-export const SmiteEstimation = (stats: StatTracker, sins: SinsOfTheMany) => () => {
- const currentIntellect = stats.currentIntellectRating;
- const currentVers = 1 + stats.currentVersatilityPercentage;
- const currentMastery = 1 + stats.currentMasteryPercentage;
- const smiteCoefficient = SMITE_COEFFICIENT;
-
- let smiteDamage = currentIntellect * smiteCoefficient;
-
- smiteDamage = Math.round(
- smiteDamage * currentVers * (1 + sins.currentBonus) * (1 + SMITE_DAMAGE_BUFF),
- );
-
- const smiteHealing = Math.round(smiteDamage * ATONEMENT_COEFFICIENT * currentMastery);
-
- return {
- smiteDamage,
- smiteHealing,
- };
-};
diff --git a/src/analysis/retail/priest/discipline/constants.ts b/src/analysis/retail/priest/discipline/constants.ts
index 017b7c4455b..648605cac0e 100644
--- a/src/analysis/retail/priest/discipline/constants.ts
+++ b/src/analysis/retail/priest/discipline/constants.ts
@@ -1,6 +1,5 @@
import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/priest';
-import { SpellFilter } from 'parser/core/EventFilter';
import { TALENTS_PRIEST } from 'common/TALENTS';
export const DISCIPLINE_ABILITIES_AFFECTED_BY_HEALING_INCREASES = [
SPELLS.ATONEMENT_HEAL_NON_CRIT.id,
@@ -69,53 +68,6 @@ export const ATONEMENT_DAMAGE_IDS = [
SPELLS.ULTIMATE_PENITENCE_DAMAGE.id,
];
-export const ATONEMENT_SOURCE_FILTER: SpellFilter = [
- SPELLS.MAGIC_MELEE,
- SPELLS.LIGHTSPAWN_MELEE,
- SPELLS.SMITE,
- SPELLS.PENANCE,
- SPELLS.HALO_DAMAGE,
- SPELLS.SHADOW_WORD_PAIN,
- SPELLS.PURGE_THE_WICKED_TALENT,
- SPELLS.PURGE_THE_WICKED_BUFF,
- TALENTS_PRIEST.SCHISM_TALENT,
- SPELLS.DIVINE_STAR_DAMAGE,
- TALENTS.HOLY_NOVA_TALENT,
- SPELLS.MIND_SEAR,
- SPELLS.MIND_BLAST,
- TALENTS_PRIEST.MINDGAMES_TALENT,
- SPELLS.MINDGAMES_HEAL_REVERSAL,
- SPELLS.SHADOW_HALO_DAMAGE,
- SPELLS.SHADOW_DIVINE_STAR_DAMAGE,
-];
-
-// Spells which are consumed by the holy buff of Twilight Equilibrium
-export const HOLY_DAMAGE_SPELLS = [
- SPELLS.SMITE.id,
- SPELLS.PENANCE.id,
- SPELLS.HALO_DAMAGE.id,
- TALENTS_PRIEST.PURGE_THE_WICKED_TALENT.id,
- SPELLS.DIVINE_STAR_DAMAGE.id,
- TALENTS_PRIEST.HOLY_NOVA_TALENT.id,
-];
-// Spells which are consumed by the shadow buff of Twilight Equilibrium
-export const SHADOW_DAMAGE_SPELLS = [
- SPELLS.SHADOW_WORD_PAIN.id,
- SPELLS.MIND_BLAST.id,
- TALENTS_PRIEST.MINDGAMES_TALENT.id,
- TALENTS_PRIEST.SHADOW_WORD_DEATH_TALENT.id,
- TALENTS_PRIEST.SCHISM_TALENT.id,
- SPELLS.SHADOW_HALO_DAMAGE.id,
- SPELLS.SHADOW_DIVINE_STAR_DAMAGE.id,
-];
-
-export const ATONEMENT_APPLICATORS = [
- TALENTS_PRIEST.RENEW_TALENT.id,
- SPELLS.FLASH_HEAL.id,
- TALENTS_PRIEST.POWER_WORD_RADIANCE_TALENT.id,
- SPELLS.POWER_WORD_SHIELD.id,
-];
-
export const EFFECTS_INCREASED_BY_BENEVOLENCE_DISCIPLINE = [
SPELLS.ATONEMENT_HEAL_NON_CRIT.id,
SPELLS.ATONEMENT_HEAL_CRIT.id,
@@ -139,12 +91,10 @@ export const EFFECTS_INCREASED_BY_BENEVOLENCE_DISCIPLINE = [
TALENTS_PRIEST.DIVINE_AEGIS_TALENT.id,
];
-export const SPIRIT_SHELL_COEFFICIENT = 0.8;
export const ATONEMENT_COEFFICIENT = 0.5;
export const DISCIPLINE_DAMAGE_AURA_VALUE = 0.94;
export const PENANCE_COEFFICIENCT = 0.4;
-export const SMITE_COEFFICIENT = 0.47;
export const POWER_WORD_SHIELD_ATONEMENT_DUR = 15000;
export const POWER_WORD_RADIANCE_ATONEMENT_DUR = 9000;
diff --git a/src/analysis/retail/priest/discipline/normalizers/AtonementTracker.ts b/src/analysis/retail/priest/discipline/normalizers/AtonementTracker.ts
index ed65365d629..e99b04a5d98 100644
--- a/src/analysis/retail/priest/discipline/normalizers/AtonementTracker.ts
+++ b/src/analysis/retail/priest/discipline/normalizers/AtonementTracker.ts
@@ -40,7 +40,7 @@ const EVENT_LINKS: EventLink[] = [
},
];
-export function checkAtonementTargetsHealed(damageEvent: DamageEvent): number[] {
+function checkAtonementTargetsHealed(damageEvent: DamageEvent): number[] {
return getHealEvents(damageEvent).map((healEvent) => healEvent.targetID);
}
@@ -58,11 +58,8 @@ export function getDamageEvent(event: HealEvent) {
return GetRelatedEvents(event, ATONEMENT_DAMAGE_EVENT).at(-1);
}
-export function getHealEvents(event: DamageEvent) {
+function getHealEvents(event: DamageEvent) {
return GetRelatedEvents(event, ATONEMENT_HEAL_EVENT);
}
-export function getAtonementHealEvents(event: DamageEvent) {
- return GetRelatedEvents(event, ATONEMENT_HEAL_EVENT);
-}
export default AtonementNormalizer;
diff --git a/src/analysis/retail/priest/discipline/normalizers/DamageCastLink.ts b/src/analysis/retail/priest/discipline/normalizers/DamageCastLink.ts
index 69b7b12d535..ad03aa25f4f 100644
--- a/src/analysis/retail/priest/discipline/normalizers/DamageCastLink.ts
+++ b/src/analysis/retail/priest/discipline/normalizers/DamageCastLink.ts
@@ -103,10 +103,6 @@ class DamageCastLink extends EventLinkNormalizer {
}
}
-export function getDamageAbility(event: CastEvent) {
- return GetRelatedEvent(event, DAMAGE);
-}
-
export function getCastAbility(event: DamageEvent) {
return GetRelatedEvent(event, CAST);
}
diff --git a/src/analysis/retail/priest/holy/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/priest/holy/normalizers/CastLinkNormalizer.ts
index 5934a0e0df1..8bb7d22971b 100644
--- a/src/analysis/retail/priest/holy/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/priest/holy/normalizers/CastLinkNormalizer.ts
@@ -14,15 +14,14 @@ import SPELLS from 'common/SPELLS/priest';
const CAST_BUFFER_MS = 200;
-export const FROM_HARDCAST = 'FromHardcast'; // for linking a heal to its cast
-export const LIGHTWEAVER_APPLY = 'LightweaverApplication'; // link flash heal cast to applying the lightweaver buff
-export const LIGHTWEAVER_CONSUME = 'LightweaverConsumption'; // link heal cast to removing the lightweaver buff
-export const POH_CAST = 'PrayerOfHealingCast';
-export const COH_CAST = 'CircleOfHealingCast';
-export const SERENITY_CAST = 'HolyWordSerenityCast';
-export const SANCTIFY_CAST = 'HolyWordSanctifyCast';
-export const SALVATION_CAST = 'HolyWordSalvationCast';
-export const CHASTISE_CAST = 'HolyWordChastiseCast';
+const FROM_HARDCAST = 'FromHardcast'; // for linking a heal to its cast
+const LIGHTWEAVER_CONSUME = 'LightweaverConsumption'; // link heal cast to removing the lightweaver buff
+const POH_CAST = 'PrayerOfHealingCast';
+const COH_CAST = 'CircleOfHealingCast';
+const SERENITY_CAST = 'HolyWordSerenityCast';
+const SANCTIFY_CAST = 'HolyWordSanctifyCast';
+const SALVATION_CAST = 'HolyWordSalvationCast';
+const CHASTISE_CAST = 'HolyWordChastiseCast';
export const LIGHTWELL_RENEW_HEALS = 'LightwellRenewHeal';
export const SALVATION_RENEW_HEALS = 'SalvationRenewHeal';
export const LIGHTWELL_RENEW = 'LightwellRenew';
diff --git a/src/analysis/retail/priest/shadow/constants.ts b/src/analysis/retail/priest/shadow/constants.ts
index 98b7a45a1c5..2c7a3a346aa 100644
--- a/src/analysis/retail/priest/shadow/constants.ts
+++ b/src/analysis/retail/priest/shadow/constants.ts
@@ -1,25 +1,18 @@
-import TALENTS from 'common/TALENTS/priest';
-
export const DISPERSION_BASE_CD = 120;
export const DISPERSION_UPTIME_MS = 6000;
export const SHADOW_WORD_DEATH_EXECUTE_RANGE = 0.2;
-export const MINDBENDER_UPTIME_MS = 15000;
-
export const MS_BUFFER = 100;
export const AUSPICIOUS_SPIRITS_DAMAGE_MULTIPLIER = 1.15;
-export const TWIST_OF_FATE_INCREASE = 1.1;
-
export const VOID_TORRENT_MAX_TIME = 3000;
export const VOID_TORRENT_MAX_INSANITY = 24;
export const VOID_TORRENT_INSANITY_PER_TICK = 6;
export const INESCAPABLE_TORMENT_EXTENSION = 0.7;
-export const VOID_FORM_ACTIVATORS = [TALENTS.VOID_ERUPTION_TALENT.id];
export const VOID_FORM_DURATION = 20;
export const INSIDIOUS_IRE_DAMAGE_PER_RANK = 0.2;
diff --git a/src/analysis/retail/priest/shadow/modules/guide/ExtraComponents.tsx b/src/analysis/retail/priest/shadow/modules/guide/ExtraComponents.tsx
index e78d711e74b..119318f38b5 100644
--- a/src/analysis/retail/priest/shadow/modules/guide/ExtraComponents.tsx
+++ b/src/analysis/retail/priest/shadow/modules/guide/ExtraComponents.tsx
@@ -3,7 +3,7 @@ import { QualitativePerformance } from 'parser/ui/QualitativePerformance';
import { ComponentProps, ReactNode } from 'react';
import { PerformanceMark, qualitativePerformanceToColor } from 'interface/guide';
-export const ColoredStrong = styled.strong`
+const ColoredStrong = styled.strong`
color: ${(props) => props.color};
`;
diff --git a/src/analysis/retail/priest/shared/BoonOfTheAscended.tsx b/src/analysis/retail/priest/shared/BoonOfTheAscended.tsx
deleted file mode 100644
index cb43946f8dc..00000000000
--- a/src/analysis/retail/priest/shared/BoonOfTheAscended.tsx
+++ /dev/null
@@ -1,352 +0,0 @@
-import AtonementDamageSource from 'analysis/retail/priest/discipline/modules/features/AtonementDamageSource';
-import { formatNumber, formatPercentage } from 'common/format';
-import SPECS from 'game/SPECS';
-import { SpellIcon, TooltipElement } from 'interface';
-import Analyzer from 'parser/core/Analyzer';
-import { DamageEvent } from 'parser/core/Events';
-import { Options } from 'parser/core/Module';
-import Abilities from 'parser/core/modules/Abilities';
-
-// const DAMAGING_SPELL_IDS = [
-// SPELLS.ASCENDED_BLAST.id,
-// SPELLS.ASCENDED_NOVA.id,
-// SPELLS.ASCENDED_ERUPTION.id,
-// ];
-
-// const HEALING_SPELL_ID_MAP = {
-// [SPELLS.ASCENDED_BLAST_HEAL.id]: SPELLS.ASCENDED_BLAST.id,
-// [SPELLS.ASCENDED_NOVA_HEAL.id]: SPELLS.ASCENDED_NOVA.id,
-// [SPELLS.ASCENDED_ERUPTION_HEAL.id]: SPELLS.ASCENDED_ERUPTION.id,
-// };
-
-interface AscendedSpellTracker {
- casts: number;
- friendlyHits: number;
- enemyHits: number;
- healingDone: number;
- overHealingDone: number;
- atonmentHealingDone: number;
- atonementOverHealingDone: number;
- damageDone: number;
-}
-
-// Shadow: https://www.warcraftlogs.com/reports/CdrMAqzkLaKZTVn4#fight=1&type=damage-done&graphperf=1&source=19
-// Holy: https://www.warcraftlogs.com/reports/xf7zjvNghdXVRrFT#fight=7&type=healing&graphperf=1&source=18
-// Disc: https://www.warcraftlogs.com/reports/FwfkDG87xzV9CWra#fight=17&type=healing&source=14
-class BoonOfTheAscended extends Analyzer {
- static dependencies = {
- abilities: Abilities,
- };
- protected abilities!: Abilities;
-
- castCount = 0;
- stackTracker: number[] = [];
-
- // Disc Specific
- atonementDamageSource: AtonementDamageSource | null = null;
-
- ascendedSpellTracker: { [spellId: number]: AscendedSpellTracker } = {
- // [SPELLS.ASCENDED_BLAST.id]: {
- // casts: 0,
- // friendlyHits: 0,
- // enemyHits: 0,
- // healingDone: 0,
- // overHealingDone: 0,
- // atonmentHealingDone: 0,
- // atonementOverHealingDone: 0,
- // damageDone: 0,
- // },
- // [SPELLS.ASCENDED_NOVA.id]: {
- // casts: 0,
- // friendlyHits: 0,
- // enemyHits: 0,
- // healingDone: 0,
- // overHealingDone: 0,
- // atonmentHealingDone: 0,
- // atonementOverHealingDone: 0,
- // damageDone: 0,
- // },
- // [SPELLS.ASCENDED_ERUPTION.id]: {
- // casts: 0,
- // friendlyHits: 0,
- // enemyHits: 0,
- // healingDone: 0,
- // overHealingDone: 0,
- // atonmentHealingDone: 0,
- // atonementOverHealingDone: 0,
- // damageDone: 0,
- // },
- };
-
- get totalDamage() {
- return Object.values(this.ascendedSpellTracker).reduce((a, b) => a + b.damageDone, 0);
- }
-
- get totalDirectHealing() {
- return Object.values(this.ascendedSpellTracker).reduce((a, b) => a + b.healingDone, 0);
- }
-
- get totalDirectOverHealing() {
- return Object.values(this.ascendedSpellTracker).reduce((a, b) => a + b.overHealingDone, 0);
- }
-
- get totalAtonementHealing() {
- return Object.values(this.ascendedSpellTracker).reduce((a, b) => a + b.atonmentHealingDone, 0);
- }
-
- get totalAtonementOverHealing() {
- return Object.values(this.ascendedSpellTracker).reduce(
- (a, b) => a + b.atonementOverHealingDone,
- 0,
- );
- }
-
- get averageStacks() {
- if (this.stackTracker.length === 0) {
- return 0;
- }
-
- return this.stackTracker.reduce((a, b) => a + b, 0) / this.stackTracker.length;
- }
-
- get isDisc() {
- return this.selectedCombatant.spec === SPECS.DISCIPLINE_PRIEST;
- }
-
- constructor(options: Options) {
- super(options);
-
- this.active = false;
- if (!this.active) {
- return;
- }
-
- // const castEfficiency =
- // this.selectedCombatant.spec === SPECS.SHADOW_PRIEST
- // ? {
- // suggestion: true,
- // recommendedEfficiency: 0.9,
- // averageIssueEfficiency: 0.8,
- // majorIssueEfficiency: 0.7,
- // }
- // : {
- // suggestion: true,
- // recommendedEfficiency: 0.8,
- // averageIssueEfficiency: 0.6,
- // majorIssueEfficiency: 0.4,
- // };
- // (options.abilities as Abilities).add({
- // spell: SPELLS.BOON_OF_THE_ASCENDED.id,
- // category: SPELL_CATEGORY.ROTATIONAL,
- // cooldown: 180,
- // enabled: true,
- // gcd: {
- // base: 1500,
- // },
- // castEfficiency: castEfficiency,
- // });
- // (options.abilities as Abilities).add({
- // spell: SPELLS.ASCENDED_BLAST.id,
- // category: SPELL_CATEGORY.ROTATIONAL,
- // enabled: true,
- // gcd: {
- // base: 1000,
- // },
- // });
- // (options.abilities as Abilities).add({
- // spell: SPELLS.ASCENDED_NOVA.id,
- // category: SPELL_CATEGORY.ROTATIONAL,
- // enabled: true,
- // gcd: {
- // base: 1000,
- // },
- // });
- // (options.abilities as Abilities).add({
- // spell: SPELLS.ASCENDED_ERUPTION.id,
- // category: SPELL_CATEGORY.ROTATIONAL,
- // enabled: true,
- // gcd: {
- // base: 0,
- // },
- // });
-
- // if (this.isDisc) {
- // this.atonementDamageSource = this.owner.getModule(AtonementDamageSource);
- // this.addEventListener(
- // Events.heal
- // .by(SELECTED_PLAYER)
- // .spell([SPELLS.ATONEMENT_HEAL_NON_CRIT, SPELLS.ATONEMENT_HEAL_CRIT]),
- // this.onAtonmentHeal,
- // );
- // }
-
- // this.addEventListener(
- // Events.cast.by(SELECTED_PLAYER).spell(SPELLS.BOON_OF_THE_ASCENDED),
- // this.onCast,
- // );
- // this.addEventListener(
- // Events.removebuff.by(SELECTED_PLAYER).spell(SPELLS.BOON_OF_THE_ASCENDED),
- // this.onBuffRemove,
- // );
- // this.addEventListener(
- // Events.damage
- // .by(SELECTED_PLAYER)
- // .spell([SPELLS.ASCENDED_BLAST, SPELLS.ASCENDED_NOVA, SPELLS.ASCENDED_ERUPTION]),
- // this.onDamage,
- // );
- // this.addEventListener(
- // Events.heal
- // .by(SELECTED_PLAYER)
- // .spell([
- // SPELLS.ASCENDED_BLAST_HEAL,
- // SPELLS.ASCENDED_NOVA_HEAL,
- // SPELLS.ASCENDED_ERUPTION_HEAL,
- // ]),
- // this.onNormalHeal,
- // );
- }
-
- onCast() {
- this.castCount += 1;
- }
-
- onDamage(event: DamageEvent) {
- this.ascendedSpellTracker[event.ability.guid].damageDone +=
- event.amount + (event.absorbed || 0);
- this.ascendedSpellTracker[event.ability.guid].enemyHits += 1;
- }
-
- // onAtonmentHeal(event: HealEvent) {
- // if (!this.atonementDamageSource) {
- // return;
- // }
- // const atonenementDamageEvent = this.atonementDamageSource.event;
- // if (
- // !atonenementDamageEvent ||
- // !DAMAGING_SPELL_IDS.includes(atonenementDamageEvent.ability.guid)
- // ) {
- // return;
- // }
- //
- // this.ascendedSpellTracker[atonenementDamageEvent.ability.guid].atonmentHealingDone +=
- // event.amount;
- // // TODO: Fix Spirit Shell
- // if (!this.selectedCombatant.hasBuff(SPELLS.SPIRIT_SHELL_TALENT_BUFF.id)) {
- // this.ascendedSpellTracker[atonenementDamageEvent.ability.guid].atonmentHealingDone +=
- // event.absorb || 0;
- // }
- //
- // this.ascendedSpellTracker[atonenementDamageEvent.ability.guid].atonementOverHealingDone +=
- // event.overheal || 0;
- // }
-
- // onNormalHeal(event: HealEvent) {
- // this.ascendedSpellTracker[HEALING_SPELL_ID_MAP[event.ability.guid]].healingDone += event.amount;
- // // TODO: Fix Spirit Shell
- // if (!this.selectedCombatant.hasBuff(SPELLS.SPIRIT_SHELL_TALENT_BUFF.id)) {
- // this.ascendedSpellTracker[HEALING_SPELL_ID_MAP[event.ability.guid]].healingDone +=
- // event.absorb || 0;
- // }
- //
- // this.ascendedSpellTracker[HEALING_SPELL_ID_MAP[event.ability.guid]].overHealingDone +=
- // event.overheal || 0;
- // this.ascendedSpellTracker[HEALING_SPELL_ID_MAP[event.ability.guid]].friendlyHits += 1;
- // }
-
- onBuffRemove() {
- // This has an accurate buff count until after this event resolves.
- // this.stackTracker.push(this.selectedCombatant.getBuffStacks(SPELLS.BOON_OF_THE_ASCENDED.id));
- }
-
- getOverhealingPercent(totalHealing: number, totalOverHealing: number) {
- return formatPercentage(totalOverHealing / (totalHealing + totalOverHealing));
- }
-
- spellTable() {
- return Object.entries(this.ascendedSpellTracker).map(([spellId, data]) => (
-
-
-
- |
-
-
- {formatNumber(data.healingDone)}
-
- |
- {this.isDisc && (
-
-
- {formatNumber(data.atonmentHealingDone)}
-
- |
- )}
- {formatNumber(data.damageDone)} |
-
- {data.friendlyHits} |
- {data.enemyHits}
- |
-
- ));
- }
-
- // statistic() {
- // return (
- //
- // Total Casts: {this.castCount}
- //
- // Average Boon Stacks: {this.averageStacks}
- // >
- // }
- // dropdown={
- //
- //
- //
- // Spell |
- // Healing |
- // {this.isDisc && Atonement Healing | }
- // Damage |
- //
- //
- //
- // Friendly |{' '}
- // Enemy
- // >
- // }
- // >
- // Targets Hit
- //
- // |
- //
- //
- // {this.spellTable()}
- //
- // }
- // category={STATISTIC_CATEGORY.COVENANTS}
- // >
- //
- //
- //
- //
- //
- //
- // );
- // }
-}
-
-export default BoonOfTheAscended;
diff --git a/src/analysis/retail/priest/shared/FaeGuardians.tsx b/src/analysis/retail/priest/shared/FaeGuardians.tsx
deleted file mode 100644
index 4bc80352cb8..00000000000
--- a/src/analysis/retail/priest/shared/FaeGuardians.tsx
+++ /dev/null
@@ -1,160 +0,0 @@
-import RESOURCE_TYPES from 'game/RESOURCE_TYPES';
-import Analyzer, { Options } from 'parser/core/Analyzer';
-import { calculateEffectiveDamageReduction } from 'parser/core/EventCalculateLib';
-import {
- ApplyBuffEvent,
- DamageEvent,
- RemoveBuffEvent,
- ResourceChangeEvent,
-} from 'parser/core/Events';
-import Abilities from 'parser/core/modules/Abilities';
-import Combatants from 'parser/shared/modules/Combatants';
-
-const GUARDIAN_DAMAGE_REDUCTION = 0.2;
-
-// Holy: https://www.warcraftlogs.com/reports/2frFV7hnRg4ZxXcA#fight=5
-// Shadow: https://www.warcraftlogs.com/reports/WqcaKR9nNkChXyfm#fight=5
-// Disc: https://www.warcraftlogs.com/reports/6bRMLg9fr4wThkdP#fight=37
-class FaeGuardians extends Analyzer {
- static dependencies = {
- combatants: Combatants,
- abilities: Abilities,
- };
- protected combatants!: Combatants;
- protected abilities!: Abilities;
-
- totalCasts = 0;
-
- // Wrathful Faerie
- manaGenerated = 0;
- insanityGenerated = 0;
-
- // Guardian Faerie
- currentShieldedTargetId = -1;
- damageReduced = 0;
-
- // Benevolent Faerie
- benevolentApplicationTime = 0;
- benevolentBuffUptime = 0;
-
- constructor(options: Options) {
- super(options);
-
- this.active = false;
- if (!this.active) {
- return;
- }
-
- // const castEfficiency =
- // this.selectedCombatant.spec === SPECS.SHADOW_PRIEST
- // ? {
- // suggestion: true,
- // recommendedEfficiency: 0.9,
- // averageIssueEfficiency: 0.8,
- // majorIssueEfficiency: 0.7,
- // }
- // : {
- // suggestion: true,
- // recommendedEfficiency: 0.8,
- // averageIssueEfficiency: 0.6,
- // majorIssueEfficiency: 0.4,
- // };
- // (options.abilities as Abilities).add({
- // spell: SPELLS.FAE_GUARDIANS.id,
- // category: SPELL_CATEGORY.COOLDOWNS,
- // cooldown: 90,
- // enabled: true,
- // gcd: {
- // base: 1500,
- // },
- // castEfficiency: castEfficiency,
- // });
- //
- // this.addEventListener(Events.cast.by(SELECTED_PLAYER).spell(SPELLS.FAE_GUARDIANS), this.onCast);
- // this.addEventListener(
- // Events.resourcechange.by(SELECTED_PLAYER).spell(SPELLS.WRATHFUL_FAERIE_ENERGIZE),
- // this.onEnergize,
- // );
- // this.addEventListener(
- // Events.applybuff.by(SELECTED_PLAYER).spell(SPELLS.GUARDIAN_FAERIE),
- // this.onGuardianApply,
- // );
- // this.addEventListener(
- // Events.removebuff.by(SELECTED_PLAYER).spell(SPELLS.GUARDIAN_FAERIE),
- // this.onGuardianRemove,
- // );
- // this.addEventListener(
- // Events.applybuff.by(SELECTED_PLAYER).spell(SPELLS.BENEVOLENT_FAERIE),
- // this.onBenevolentApply,
- // );
- // this.addEventListener(
- // Events.removebuff.by(SELECTED_PLAYER).spell(SPELLS.BENEVOLENT_FAERIE),
- // this.onBenevolentRemove,
- // );
- // this.addEventListener(Events.damage, this.onDamage);
- }
-
- onDamage(event: DamageEvent) {
- if (event.targetID !== this.currentShieldedTargetId) {
- return;
- }
- this.damageReduced += calculateEffectiveDamageReduction(event, GUARDIAN_DAMAGE_REDUCTION);
- }
-
- onEnergize(event: ResourceChangeEvent) {
- if (event.resourceChangeType === RESOURCE_TYPES.MANA.id) {
- this.manaGenerated += event.resourceChange || 0;
- }
- if (event.resourceChangeType === RESOURCE_TYPES.INSANITY.id) {
- this.insanityGenerated += event.resourceChange || 0;
- }
- }
-
- onGuardianApply(event: ApplyBuffEvent) {
- this.currentShieldedTargetId = event.targetID;
- }
-
- onGuardianRemove() {
- this.currentShieldedTargetId = -1;
- }
-
- onBenevolentApply(event: ApplyBuffEvent) {
- this.benevolentApplicationTime = event.timestamp;
- }
-
- onBenevolentRemove(event: RemoveBuffEvent) {
- this.benevolentBuffUptime += event.timestamp - this.benevolentApplicationTime;
- }
-
- onCast() {
- this.totalCasts += 1;
- }
-
- // statistic() {
- // return (
- //
- //
- // <>
- // {this.manaGenerated > 0 && (
- // <>
- //
- //
- // >
- // )}
- // {this.insanityGenerated > 0 && (
- // <>
- //
- //
- // >
- // )}
- // {formatNumber(this.damageReduced)} Dmg Reduced
- //
- // {formatNumber(this.benevolentBuffUptime / 1000)} Seconds CDR
- // >
- //
- //
- // );
- // }
-}
-
-export default FaeGuardians;
diff --git a/src/analysis/retail/priest/shared/UnholyNova.tsx b/src/analysis/retail/priest/shared/UnholyNova.tsx
deleted file mode 100644
index cf6104e0f34..00000000000
--- a/src/analysis/retail/priest/shared/UnholyNova.tsx
+++ /dev/null
@@ -1,185 +0,0 @@
-import Analyzer, { Options } from 'parser/core/Analyzer';
-import { ApplyDebuffEvent, CastEvent, DamageEvent, HealEvent } from 'parser/core/Events';
-import Abilities from 'parser/core/modules/Abilities';
-import { ThresholdStyle } from 'parser/core/ParseResults';
-
-const APPLICATION_THRESHOLD = 5000;
-
-// Holy: https://www.warcraftlogs.com/reports/MtraPqxwdB4hRG7j#fight=2
-// Shadow: https://www.warcraftlogs.com/reports/KVDfG2wnb8pABJhj#fight=45
-// Disc: https://www.warcraftlogs.com/reports/GWPC9kQ41yg6z8Xx#fight=47
-class UnholyNova extends Analyzer {
- static dependencies = {
- abilities: Abilities,
- };
- protected abilities!: Abilities;
-
- totalDamage = 0;
- totalHealing = 0;
- totalOverHealing = 0;
-
- castEvents: CastEvent[] = [];
- applicationEvents: ApplyDebuffEvent[] = [];
-
- get totalCasts(): number {
- return this.castEvents.length;
- }
-
- get totalApplications(): number {
- return this.applicationEvents.length;
- }
-
- get totalMisses(): number {
- let totalMisses = 0;
- for (const castEvent of this.castEvents) {
- let didHit = false;
- for (const applicationEvent of this.applicationEvents) {
- if (Math.abs(applicationEvent.timestamp - castEvent.timestamp) < APPLICATION_THRESHOLD) {
- didHit = true;
- break;
- }
- }
- if (!didHit) {
- totalMisses += 1;
- }
- }
- return totalMisses;
- }
-
- constructor(options: Options) {
- super(options);
-
- this.active = false;
- if (!this.active) {
- return;
- }
-
- // const castEfficiency =
- // this.selectedCombatant.spec === SPECS.SHADOW_PRIEST
- // ? {
- // suggestion: true,
- // recommendedEfficiency: 0.9,
- // averageIssueEfficiency: 0.8,
- // majorIssueEfficiency: 0.7,
- // }
- // : {
- // suggestion: true,
- // recommendedEfficiency: 0.8,
- // averageIssueEfficiency: 0.6,
- // majorIssueEfficiency: 0.4,
- // };
- // (options.abilities as Abilities).add({
- // spell: SPELLS.UNHOLY_NOVA.id,
- // category: SPELL_CATEGORY.COOLDOWNS,
- // cooldown: 60,
- // enabled: true,
- // gcd: {
- // base: 1500,
- // },
- // castEfficiency: castEfficiency,
- // });
- //
- // this.addEventListener(Events.cast.by(SELECTED_PLAYER).spell(SPELLS.UNHOLY_NOVA), this.onCast);
- // this.addEventListener(
- // Events.damage.by(SELECTED_PLAYER).spell(SPELLS.UNHOLY_TRANSFUSION_DAMAGE),
- // this.onDamage,
- // );
- // this.addEventListener(
- // Events.heal.by(SELECTED_PLAYER).spell(SPELLS.UNHOLY_NOVA_BUFF),
- // this.onHeal,
- // );
- // this.addEventListener(
- // Events.heal.by(SELECTED_PLAYER).spell(SPELLS.UNHOLY_TRANSFUSION),
- // this.onHeal,
- // );
- // this.addEventListener(
- // Events.applydebuff.by(SELECTED_PLAYER).spell(SPELLS.UNHOLY_TRANSFUSION_DAMAGE),
- // this.onApplyDebuff,
- // );
- }
-
- onCast(event: CastEvent) {
- this.castEvents.push(event);
- }
-
- onApplyDebuff(event: ApplyDebuffEvent) {
- this.applicationEvents.push(event);
- }
-
- onDamage(event: DamageEvent) {
- this.totalDamage += event.amount + (event.absorb || 0);
- }
-
- onHeal(event: HealEvent) {
- this.totalHealing += event.amount;
- this.totalOverHealing += event.overheal || 0;
- }
-
- get efficiencySuggestionThresholds() {
- return {
- actual: this.totalMisses,
- isGreaterThan: {
- minor: 0,
- average: 0,
- major: 0,
- },
- style: ThresholdStyle.NUMBER,
- };
- }
-
- // suggestions(when: When) {
- // when(this.efficiencySuggestionThresholds).addSuggestion((suggest, actual, recommended) =>
- // suggest(
- // <>
- //
- // Try not to miss with .
- //
- //
- //
- // is a projectile that targets the ground where
- // your target is currently standing. If your target moves or becomes untargetable, Unholy
- // Nova can completely miss. Try and avoid casting Unholy Nova when the target is about to
- // move.
- //
- // >,
- // )
- // .icon(SPELLS.UNHOLY_NOVA.icon)
- // .actual(`${this.totalMisses} misses out of ${this.totalCasts} total casts.`)
- // .recommended(`0 misses is recommended`),
- // );
- // }
-
- // statistic() {
- // return (
- //
- // <>Enemies hit per cast: {(this.totalApplications / this.totalCasts).toFixed(2)}>
- //
- // <>Complete misses: {this.totalMisses}>
- //
- // <>
- // Total Healing: {formatNumber(this.totalHealing)} (
- // {formatPercentage(
- // this.totalOverHealing / (this.totalHealing + this.totalOverHealing),
- // )}
- // % OH)
- // >
- // >
- // }
- // >
- //
- // <>
- //
- //
- //
- // >
- //
- //
- // );
- // }
-}
-
-export default UnholyNova;
diff --git a/src/analysis/retail/priest/shared/index.ts b/src/analysis/retail/priest/shared/index.ts
index 5c3bffa48a2..97db064a3cc 100644
--- a/src/analysis/retail/priest/shared/index.ts
+++ b/src/analysis/retail/priest/shared/index.ts
@@ -1,9 +1,6 @@
-export { default as BoonOfTheAscended } from './BoonOfTheAscended';
export { default as DesperatePrayer } from './DesperatePrayer';
-export { default as FaeGuardians } from './FaeGuardians';
export { default as Mindgames } from './Mindgames';
export { default as ShadowfiendNormalizer } from './ShadowfiendNormalizer';
export { default as TwinsOfTheSunPriestess } from './TwinsOfTheSunPriestess';
-export { default as UnholyNova } from './UnholyNova';
export { default as TranslucentImage } from './TranslucentImage';
export { default as TwistOfFate } from './TwistOfFate';
diff --git a/src/analysis/retail/rogue/assassination/constants.tsx b/src/analysis/retail/rogue/assassination/constants.tsx
index fca3811f2b4..7be4111c5dc 100644
--- a/src/analysis/retail/rogue/assassination/constants.tsx
+++ b/src/analysis/retail/rogue/assassination/constants.tsx
@@ -9,47 +9,12 @@ import { ChecklistUsageInfo } from 'parser/core/SpellUsage/core';
import { QualitativePerformance } from 'parser/ui/QualitativePerformance';
import Fight from 'parser/core/Fight';
-// from https://www.wowhead.com/spell=137037/assassination-rogue
-export const ABILITIES_AFFECTED_BY_DAMAGE_INCREASES = [
- SPELLS.MELEE,
- // SPELLS.BLINDSIDE_TALENT,
- // SPELLS.CRIMSON_TEMPEST_TALENT,
- SPELLS.ENVENOM,
- SPELLS.FAN_OF_KNIVES,
- SPELLS.GARROTE,
- SPELLS.MUTILATE,
- SPELLS.MUTILATE_MAINHAND,
- SPELLS.MUTILATE_OFFHAND,
- SPELLS.POISON_BOMB,
- SPELLS.POISONED_KNIFE,
- SPELLS.RUPTURE,
- // SPELLS.INTERNAL_BLEEDING_TALENT,
- SPELLS.DEADLY_POISON_DOT,
- SPELLS.DEADLY_POISON_PROC,
- SPELLS.WOUND_POISON,
-];
-
-// from https://www.wowhead.com/spell=196864/master-poisoner
-export const ABILITIES_AFFECTED_BY_POISON_DAMAGE_INCREASES = [
- SPELLS.DEADLY_POISON_DOT,
- SPELLS.DEADLY_POISON_PROC,
- SPELLS.WOUND_POISON,
-];
-
-export const NIGHTSTALKER_BLACKLIST = [
- SPELLS.MELEE,
- SPELLS.RUPTURE,
- SPELLS.GARROTE,
- // SPELLS.CRIMSON_TEMPEST_TALENT,
- SPELLS.DEADLY_POISON_DOT,
-];
-
export const GARROTE_BASE_DURATION = 18000;
export const getGarroteDuration = (): number => GARROTE_BASE_DURATION;
-export const animachargedFinisherComboPoints = 7;
+const animachargedFinisherComboPoints = 7;
-export const getMaxComboPoints = (c: Combatant) => {
+const getMaxComboPoints = (c: Combatant) => {
return 5 + c.getTalentRank(TALENTS.DEEPER_STRATAGEM_TALENT);
};
@@ -58,7 +23,7 @@ export const getTargetComboPoints = (c: Combatant) => {
};
export const RUPTURE_BASE_DURATION = 4000;
-export const RUPTURE_DURATION_PR_CP_SPENT = 4000;
+const RUPTURE_DURATION_PR_CP_SPENT = 4000;
export const getRuptureDuration = (c: Combatant, cast: CastEvent): number => {
if (isAnimachargedFinisherCast(c, cast)) {
return getRuptureFullDuration(c);
@@ -77,7 +42,7 @@ export const getRuptureFullDuration = (c: Combatant) => {
};
export const CRIMSON_TEMPEST_BASE_DURATION = 2000;
-export const CRIMSON_TEMPEST_DURATION_PR_CP_SPENT = 2000;
+const CRIMSON_TEMPEST_DURATION_PR_CP_SPENT = 2000;
export const getCrimsonTempestDuration = (cast: CastEvent): number =>
CRIMSON_TEMPEST_BASE_DURATION +
CRIMSON_TEMPEST_DURATION_PR_CP_SPENT * getResourceSpent(cast, RESOURCE_TYPES.COMBO_POINTS);
@@ -155,8 +120,8 @@ export const isAnimachargedFinisherCast = (c: Combatant, event: CastEvent): bool
return false;
};
-export const AnimachargedFinisherSummary = () => Consumed Animacharged CP
;
-export const AnimachargedFinisherDetails = () => You consumed an Animacharged CP.
;
+const AnimachargedFinisherSummary = () => Consumed Animacharged CP
;
+const AnimachargedFinisherDetails = () => You consumed an Animacharged CP.
;
export const animachargedCheckedUsageInfo = (
c: Combatant,
@@ -177,7 +142,5 @@ export const animachargedCheckedUsageInfo = (
];
};
-export const pandemicMaxDuration = (duration: number) => duration * 1.3;
-
export const isInOpener = (event: AnyEvent, fight: Fight) =>
event.timestamp - fight.start_time <= OPENER_MAX_DURATION_MS;
diff --git a/src/analysis/retail/rogue/assassination/guide/ExperimentalKingsbaneContext.tsx b/src/analysis/retail/rogue/assassination/guide/ExperimentalKingsbaneContext.tsx
index 9fcf599a372..b884e79b2cd 100644
--- a/src/analysis/retail/rogue/assassination/guide/ExperimentalKingsbaneContext.tsx
+++ b/src/analysis/retail/rogue/assassination/guide/ExperimentalKingsbaneContext.tsx
@@ -13,7 +13,7 @@ const ExperimentalKingsbaneCtx = createContext({
},
});
-export const useExperimentalKingsbane = () => useContext(ExperimentalKingsbaneCtx);
+const useExperimentalKingsbane = () => useContext(ExperimentalKingsbaneCtx);
export const ExperimentalKingsbaneToggle = () => {
const { isExplanationEnabled, setExplanationEnabled } = useExperimentalKingsbane();
diff --git a/src/analysis/retail/rogue/assassination/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/rogue/assassination/normalizers/CastLinkNormalizer.ts
index 01db965ca09..ff76980edb8 100644
--- a/src/analysis/retail/rogue/assassination/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/rogue/assassination/normalizers/CastLinkNormalizer.ts
@@ -1,16 +1,12 @@
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { Options } from 'parser/core/Module';
import {
- AbilityEvent,
- AnyEvent,
ApplyDebuffEvent,
CastEvent,
DamageEvent,
EventType,
GetRelatedEvent,
GetRelatedEvents,
- HasAbility,
- HasRelatedEvent,
RefreshDebuffEvent,
} from 'parser/core/Events';
import SPELLS from 'common/SPELLS/rogue';
@@ -19,7 +15,7 @@ import TALENTS from 'common/TALENTS/rogue';
export const CAST_BUFFER_MS = 200;
export const FROM_HARDCAST = 'FromHardcast';
-export const HIT_TARGET = 'HitTarget';
+const HIT_TARGET = 'HitTarget';
const EVENT_LINKS: EventLink[] = [
{
@@ -91,10 +87,6 @@ export default class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-export function isFromHardcast(event: AnyEvent): boolean {
- return HasRelatedEvent(event, FROM_HARDCAST);
-}
-
export function getHardcast(
event: ApplyDebuffEvent | RefreshDebuffEvent | DamageEvent,
): CastEvent | undefined {
@@ -104,7 +96,3 @@ export function getHardcast(
export function getHitCount(aoeCastEvent: CastEvent): number {
return GetRelatedEvents(aoeCastEvent, HIT_TARGET).length;
}
-
-export function getHits(castEvent: CastEvent): AbilityEvent[] {
- return GetRelatedEvents(castEvent, HIT_TARGET, HasAbility);
-}
diff --git a/src/analysis/retail/rogue/assassination/normalizers/KingsbaneLinkNormalizer.ts b/src/analysis/retail/rogue/assassination/normalizers/KingsbaneLinkNormalizer.ts
index 9d8f39dd50b..e06333a83e5 100644
--- a/src/analysis/retail/rogue/assassination/normalizers/KingsbaneLinkNormalizer.ts
+++ b/src/analysis/retail/rogue/assassination/normalizers/KingsbaneLinkNormalizer.ts
@@ -1,13 +1,7 @@
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { Options } from 'parser/core/Module';
import TALENTS from 'common/TALENTS/rogue';
-import {
- ApplyDebuffEvent,
- CastEvent,
- EventType,
- GetRelatedEvents,
- RemoveDebuffEvent,
-} from 'parser/core/Events';
+import { CastEvent, EventType, GetRelatedEvents } from 'parser/core/Events';
import SPELLS from 'common/SPELLS/rogue';
export const SHIV_KINGSBANE_BUFFER_MS = 2000;
@@ -113,18 +107,3 @@ export const getMatchingDeathmarkOrKingsbaneCast = (event: CastEvent) =>
GetRelatedEvents(event, DEATHMARK_KINGSBANE_CAST)
.filter((e): e is CastEvent => e.type === EventType.Cast)
.at(0);
-
-export const getMatchingDeathmarkOrKingsbaneApplyDebuff = (event: ApplyDebuffEvent) =>
- GetRelatedEvents(event, DEATHMARK_KINGSBANE_APPLY)
- .filter((e): e is ApplyDebuffEvent => e.type === EventType.ApplyDebuff)
- .at(0);
-
-export const getMatchingDeathmarkOrKingsbaneRemoveDebuff = (event: ApplyDebuffEvent) =>
- GetRelatedEvents(event, DEATHMARK_KINGSBANE_REMOVE)
- .filter((e): e is RemoveDebuffEvent => e.type === EventType.RemoveDebuff)
- .at(0);
-
-export const getMatchingShadowDanceOrKingsbaneCast = (event: CastEvent) =>
- GetRelatedEvents(event, SHADOW_DANCE_DANCE_KINGSBANE_CAST)
- .filter((e): e is CastEvent => e.type === EventType.Cast)
- .at(0);
diff --git a/src/analysis/retail/rogue/outlaw/modules/core/RestlessBlades.ts b/src/analysis/retail/rogue/outlaw/modules/core/RestlessBlades.ts
index 5a04a85130e..45c129c008d 100644
--- a/src/analysis/retail/rogue/outlaw/modules/core/RestlessBlades.ts
+++ b/src/analysis/retail/rogue/outlaw/modules/core/RestlessBlades.ts
@@ -24,8 +24,8 @@ const AFFECTED_ABILITIES: number[] = [
SPELLS.BLADE_FLURRY.id,
];
-export const RESTLESS_BLADES_BASE_CDR = 1000;
-export const TRUE_BEARING_CDR = 500;
+const RESTLESS_BLADES_BASE_CDR = 1000;
+const TRUE_BEARING_CDR = 500;
class RestlessBlades extends Analyzer {
static dependencies = {
diff --git a/src/analysis/retail/rogue/outlaw/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/rogue/outlaw/normalizers/CastLinkNormalizer.ts
index e15df87847d..57f4ca3a817 100644
--- a/src/analysis/retail/rogue/outlaw/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/rogue/outlaw/normalizers/CastLinkNormalizer.ts
@@ -1,24 +1,19 @@
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
import { Options } from 'parser/core/Module';
import {
- AbilityEvent,
- AnyEvent,
ApplyDebuffEvent,
CastEvent,
DamageEvent,
EventType,
GetRelatedEvent,
- GetRelatedEvents,
- HasAbility,
- HasRelatedEvent,
RefreshDebuffEvent,
} from 'parser/core/Events';
import SPELLS from 'common/SPELLS/rogue';
const CAST_BUFFER_MS = 400;
-export const FROM_HARDCAST = 'FromHardcast';
-export const HIT_TARGET = 'HitTarget';
+const FROM_HARDCAST = 'FromHardcast';
+const HIT_TARGET = 'HitTarget';
const EVENT_LINKS: EventLink[] = [
{
@@ -58,20 +53,8 @@ export default class CastLinkNormalizer extends EventLinkNormalizer {
}
}
-export function isFromHardcast(event: AnyEvent): boolean {
- return HasRelatedEvent(event, FROM_HARDCAST);
-}
-
export function getHardcast(
event: ApplyDebuffEvent | RefreshDebuffEvent | DamageEvent,
): CastEvent | undefined {
return GetRelatedEvent(event, FROM_HARDCAST);
}
-
-export function getHitCount(aoeCastEvent: CastEvent): number {
- return GetRelatedEvents(aoeCastEvent, HIT_TARGET).length;
-}
-
-export function getHits(castEvent: CastEvent): AbilityEvent[] {
- return GetRelatedEvents(castEvent, HIT_TARGET, HasAbility);
-}
diff --git a/src/analysis/retail/rogue/shared/index.ts b/src/analysis/retail/rogue/shared/index.ts
index c3761efa398..4832ae1b663 100644
--- a/src/analysis/retail/rogue/shared/index.ts
+++ b/src/analysis/retail/rogue/shared/index.ts
@@ -12,11 +12,9 @@ export { default as SpellEnergyCost } from './SpellEnergyCost';
export { default as StealthDamageTracker } from './StealthDamageTracker';
export * from './constants';
export { default as DeeperDaggers } from './DeeperDaggers';
-export { default as WellPlacedSteel } from './shadowlands/conduits/WellPlacedSteel';
export { default as EchoingReprimand } from './talents/EchoingReprimand';
export { default as SerratedBoneSpike } from './talents/SerratedBoneSpike';
export { default as Sepsis } from './talents/Sepsis';
export { default as StealthAbilityFollowingSepsis } from './StealthAbilityFollowingSepsis';
-export { default as Reverberation } from './talents/Reverberation';
export { default as Flagellation } from './talents/Flagellation';
export { default as ThistleTeaCastLinkNormalizer } from './talents/ThistleTeaCastLinkNormalizer';
diff --git a/src/analysis/retail/rogue/shared/shadowlands/conduits/WellPlacedSteel.tsx b/src/analysis/retail/rogue/shared/shadowlands/conduits/WellPlacedSteel.tsx
deleted file mode 100644
index b8ad3f8669c..00000000000
--- a/src/analysis/retail/rogue/shared/shadowlands/conduits/WellPlacedSteel.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import SPELLS from 'common/SPELLS';
-import TALENTS from 'common/TALENTS/rogue';
-import Analyzer, { Options, SELECTED_PLAYER } from 'parser/core/Analyzer';
-import { calculateEffectiveDamage } from 'parser/core/EventCalculateLib';
-import Events, { DamageEvent } from 'parser/core/Events';
-import Enemies from 'parser/shared/modules/Enemies';
-import ItemDamageDone from 'parser/ui/ItemDamageDone';
-import Statistic from 'parser/ui/Statistic';
-import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
-import BoringSpellValueText from 'parser/ui/BoringSpellValueText';
-
-const DAMAGE_BONUS = [
- 0, 0.1, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25,
-];
-
-class WellPlacedSteel extends Analyzer {
- static dependencies = {
- enemies: Enemies,
- };
- protected enemies!: Enemies;
-
- conduitRank = 0;
- bonusDamage = 0;
-
- constructor(options: Options) {
- super(options);
- this.active = false;
- this.conduitRank = 0;
-
- this.addEventListener(
- Events.damage
- .by(SELECTED_PLAYER)
- .spell([
- SPELLS.DEADLY_POISON,
- SPELLS.DEADLY_POISON_PROC,
- SPELLS.DEADLY_POISON_DOT,
- SPELLS.ENVENOM,
- ]),
- this.onDamage,
- );
- this.addEventListener(Events.damage.by(SELECTED_PLAYER).spell(SPELLS.ENVENOM), this.onDamage);
- }
-
- onDamage(event: DamageEvent) {
- const enemy = this.enemies.getEntity(event);
- if (enemy && enemy.hasBuff(SPELLS.SHIV_DEBUFF.id, event.timestamp)) {
- this.bonusDamage += calculateEffectiveDamage(event, DAMAGE_BONUS[this.conduitRank]);
- }
- }
-
- statistic() {
- return (
-
-
-
-
-
- );
- }
-}
-
-export default WellPlacedSteel;
diff --git a/src/analysis/retail/rogue/shared/talents/Reverberation.tsx b/src/analysis/retail/rogue/shared/talents/Reverberation.tsx
deleted file mode 100644
index d3a0a7a1579..00000000000
--- a/src/analysis/retail/rogue/shared/talents/Reverberation.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import TALENTS from 'common/TALENTS/rogue';
-import Analyzer, { Options, SELECTED_PLAYER } from 'parser/core/Analyzer';
-import { calculateEffectiveDamage } from 'parser/core/EventCalculateLib';
-import Events, { DamageEvent } from 'parser/core/Events';
-import ItemDamageDone from 'parser/ui/ItemDamageDone';
-import Statistic from 'parser/ui/Statistic';
-import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
-import TalentSpellText from 'parser/ui/TalentSpellText';
-
-const DAMAGE_BONUS = 0.75;
-
-class Reverberation extends Analyzer {
- conduitRank = 0;
- bonusDamage = 0;
-
- constructor(options: Options) {
- super(options);
- this.active = this.selectedCombatant.hasTalent(TALENTS.REVERBERATION_TALENT);
- this.conduitRank = 0;
- this.addEventListener(
- Events.damage.by(SELECTED_PLAYER).spell(TALENTS.ECHOING_REPRIMAND_TALENT),
- this.onDamage,
- );
- }
-
- onDamage(event: DamageEvent) {
- this.bonusDamage += calculateEffectiveDamage(event, DAMAGE_BONUS);
- }
-
- statistic() {
- return (
-
-
-
-
-
- );
- }
-}
-
-export default Reverberation;
diff --git a/src/analysis/retail/rogue/shared/talents/ThistleTeaCastLinkNormalizer.tsx b/src/analysis/retail/rogue/shared/talents/ThistleTeaCastLinkNormalizer.tsx
index fc7f73e4b00..3eb9f3fca72 100644
--- a/src/analysis/retail/rogue/shared/talents/ThistleTeaCastLinkNormalizer.tsx
+++ b/src/analysis/retail/rogue/shared/talents/ThistleTeaCastLinkNormalizer.tsx
@@ -1,19 +1,12 @@
import EventLinkNormalizer, { EventLink } from 'parser/core/EventLinkNormalizer';
-import {
- AnyEvent,
- CastEvent,
- EventType,
- GetRelatedEvent,
- HasRelatedEvent,
- ResourceChangeEvent,
-} from 'parser/core/Events';
+import { CastEvent, EventType, GetRelatedEvent, ResourceChangeEvent } from 'parser/core/Events';
import TALENTS from 'common/TALENTS/rogue';
import { Options } from 'parser/core/Module';
const CAST_BUFFER_MS = 50;
-export const FROM_HARDCAST = 'FromHardcast';
-export const RESOURCE_CHANGE = 'ResourceChange';
+const FROM_HARDCAST = 'FromHardcast';
+const RESOURCE_CHANGE = 'ResourceChange';
const EVENT_LINKS: EventLink[] = [
{
@@ -35,14 +28,6 @@ export default class ThistleTeaCastLinkNormalizer extends EventLinkNormalizer {
}
}
-export function isFromHardcast(event: AnyEvent): boolean {
- return HasRelatedEvent(event, FROM_HARDCAST);
-}
-
-export function getHardcast(event: ResourceChangeEvent): CastEvent | undefined {
- return GetRelatedEvent(event, FROM_HARDCAST);
-}
-
export function getResourceChange(event: CastEvent): ResourceChangeEvent | undefined {
return GetRelatedEvent(
event,
diff --git a/src/analysis/retail/shaman/elemental/constants.tsx b/src/analysis/retail/shaman/elemental/constants.tsx
index 5364a7f6d32..5bb1fd24f47 100644
--- a/src/analysis/retail/shaman/elemental/constants.tsx
+++ b/src/analysis/retail/shaman/elemental/constants.tsx
@@ -1,14 +1,3 @@
-import SPELLS from 'common/SPELLS';
-import { SpellInfo } from 'parser/core/EventFilter';
-
-export const ELEMENTAL_BLAST_BUFFS: SpellInfo[] = [
- SPELLS.ELEMENTAL_BLAST_CRIT,
- SPELLS.ELEMENTAL_BLAST_MASTERY,
- SPELLS.ELEMENTAL_BLAST_HASTE,
-];
-
-export const CRIT_MULTIPLIER = 2.5;
-
/**
* Grace-period for checking if a buff is applied to the player. Buffs that are
* removed on-cast (SK, MotE, SoP) may get removed before the actual spell cast
diff --git a/src/analysis/retail/shaman/enhancement/constants.tsx b/src/analysis/retail/shaman/enhancement/constants.tsx
index a2c14a01510..8272c5b9eb2 100644
--- a/src/analysis/retail/shaman/enhancement/constants.tsx
+++ b/src/analysis/retail/shaman/enhancement/constants.tsx
@@ -13,10 +13,6 @@ export const STORMSTRIKE_DAMAGE_SPELLS = [
export const MOLTEN_ASSAULT_SCALING = [0, 3, 6];
-export const ESSENTIAL_EXTRACTION_EFFECT_BY_RANK = [
- 0, -25, -26, -27, -28, -29, -30, -31, -33, -34, -35, -36, -37, -38, -39, -40,
-];
-
export const MERGE_SPELLS = [
{
SpellIds: [SPELLS.MELEE.id, SPELLS.WINDLASH.id, SPELLS.WINDLASH_OFFHAND.id],
diff --git a/src/analysis/retail/shaman/restoration/constants.ts b/src/analysis/retail/shaman/restoration/constants.ts
index 2844678ae78..79cc1c413f5 100644
--- a/src/analysis/retail/shaman/restoration/constants.ts
+++ b/src/analysis/retail/shaman/restoration/constants.ts
@@ -3,7 +3,6 @@ import TALENTS from 'common/TALENTS/shaman';
//event link attribution strings
export const HARDCAST = 'Hardcast';
-export const RIPTIDE_HIT = 'RiptideHit';
export const RIPTIDE_PWAVE = 'PrimordialWave';
export const PWAVE_REMOVAL = 'PrimordialWaveRemoved';
export const HEALING_WAVE_PWAVE = 'HealingWavePrimordialWave';
@@ -55,10 +54,7 @@ export const RESTORATION_COLORS = {
// Spell Coefficients
export const CHAIN_HEAL_COEFFICIENT = 2.31;
-export const HEALING_WAVE_COEFFICIENT = 3.498;
-export const HEALING_SURGE_COEFFICIENT = 3.1372;
export const HIGH_TIDE_COEFFICIENT = 2.541;
-export const HEALING_WAVE_CAST_TIME = 2.5;
// Your normal healing toolkit, default spells and talents
// TODO: Check all these lists again, maybe restructure to remove repeats
@@ -112,19 +108,6 @@ export const ABILITIES_AFFECTED_BY_MASTERY = [
SPELLS.LEECH,
];
-export const ABILITIES_FEEDING_INTO_CBT = [...SHAMAN_BASE_ABILITIES];
-
-export const ABILITIES_NOT_FEEDING_INTO_ASCENDANCE = [
- SPELLS.HEALING_TIDE_TOTEM_HEAL,
- SPELLS.HEALING_STREAM_TOTEM_HEAL,
- SPELLS.SPIRIT_LINK_TOTEM_REDISTRIBUTE,
- SPELLS.LEECH,
- SPELLS.ASCENDANCE_HEAL,
- SPELLS.CLOUDBURST_TOTEM_HEAL,
- SPELLS.ASCENDANCE_INITIAL_HEAL,
- SPELLS.ANCESTRAL_GUIDANCE_HEAL,
-];
-
export const FLASH_FLOOD_CAST_SPEED_MODIFIER = 0.1; // per rank
export const HEALING_RAIN_DURATION = 10000;
diff --git a/src/analysis/retail/shaman/restoration/normalizers/CastLinkNormalizer.ts b/src/analysis/retail/shaman/restoration/normalizers/CastLinkNormalizer.ts
index 36bda2225ad..48e991baaa9 100644
--- a/src/analysis/retail/shaman/restoration/normalizers/CastLinkNormalizer.ts
+++ b/src/analysis/retail/shaman/restoration/normalizers/CastLinkNormalizer.ts
@@ -4,14 +4,11 @@ import {
ApplyBuffEvent,
CastEvent,
EventType,
- GetRelatedEvent,
GetRelatedEvents,
- HasAbility,
HasRelatedEvent,
HealEvent,
RefreshBuffEvent,
RemoveBuffEvent,
- RemoveBuffStackEvent,
} from 'parser/core/Events';
import { Options } from 'parser/core/Module';
import talents from 'common/TALENTS/shaman';
@@ -312,18 +309,6 @@ export function isFromPrimalTideCore(event: ApplyBuffEvent | HealEvent): boolean
return !HasRelatedEvent(event, HARDCAST) && !HasRelatedEvent(event, RIPTIDE_PWAVE);
}
-//this should only be used for initial hit events if passing in a heal event, not ticks
-export function getRiptideCastEvent(
- event: ApplyBuffEvent | RefreshBuffEvent | HealEvent,
-): CastEvent | null {
- if (isFromHardcast(event)) {
- return GetRelatedEvent(event, HARDCAST) ?? null;
- } else if (isRiptideFromPrimordialWave(event)) {
- return GetRelatedEvent(event, RIPTIDE_PWAVE) ?? null;
- }
- return null;
-}
-
export function getHealingRainEvents(event: CastEvent) {
return GetRelatedEvents(event, HEALING_RAIN);
}
@@ -344,23 +329,12 @@ export function wasRiptideConsumed(event: CastEvent | RemoveBuffEvent): boolean
return HasRelatedEvent(event, FLOW_OF_THE_TIDES);
}
-export function getConsumedRiptide(event: CastEvent): AbilityEvent | undefined {
- return GetRelatedEvent>(event, FLOW_OF_THE_TIDES, HasAbility);
-}
-
export function getChainHeals(event: CastEvent): HealEvent[] {
return GetRelatedEvents(event, CHAIN_HEAL) as HealEvent[];
}
-export function getChainHealGrouping(event: HealEvent) {
- return [event].concat(GetRelatedEvents(event, CHAIN_HEAL_GROUPING));
-}
-
export function isBuffedByHighTide(event: CastEvent) {
return HasRelatedEvent(event, HIGH_TIDE);
}
-export function wasHighTideConsumed(event: RemoveBuffEvent | RemoveBuffStackEvent): boolean {
- return HasRelatedEvent(event, HIGH_TIDE);
-}
export default CastLinkNormalizer;
diff --git a/src/analysis/retail/shaman/shared/constants.ts b/src/analysis/retail/shaman/shared/constants.ts
index 5dc5eb81a99..732929bb7cd 100644
--- a/src/analysis/retail/shaman/shared/constants.ts
+++ b/src/analysis/retail/shaman/shared/constants.ts
@@ -1,7 +1,5 @@
import SPELLS from 'common/SPELLS';
-// TODO: Re-enable when working on resto-shaman for dragonflight
-export const HEALING_ABILITIES_AMPED_BY_EARTH_SHIELD = [];
// export const HEALING_ABILITIES_AMPED_BY_EARTH_SHIELD = [...ABILITIES_AFFECTED_BY_HEALING_INCREASES];
export const ELEMENTAL_BLAST_BUFFS = [
diff --git a/src/analysis/retail/shaman/shared/index.ts b/src/analysis/retail/shaman/shared/index.ts
index 7cf59e70d45..579cd9638f1 100644
--- a/src/analysis/retail/shaman/shared/index.ts
+++ b/src/analysis/retail/shaman/shared/index.ts
@@ -6,6 +6,3 @@ export { default as EarthShield } from './talents/EarthShield';
export * from './talents/EarthShield';
export { default as SpiritWolf } from './talents/SpiritWolf';
export { default as StaticCharge } from './talents/StaticCharge';
-export { default as TumblingWaves } from './shadowlands/conduits/TumblingWaves';
-export { default as ElementalConduit } from './shadowlands/legendaries/ElementalConduit';
-export { default as ChainHarvest } from './shadowlands/spells/ChainHarvest';
diff --git a/src/analysis/retail/shaman/shared/shadowlands/conduits/TumblingWaves.tsx b/src/analysis/retail/shaman/shared/shadowlands/conduits/TumblingWaves.tsx
deleted file mode 100644
index 99aceac461a..00000000000
--- a/src/analysis/retail/shaman/shared/shadowlands/conduits/TumblingWaves.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import TALENTS from 'common/TALENTS/shaman';
-import Analyzer, { Options } from 'parser/core/Analyzer';
-import SpellUsable from 'parser/shared/modules/SpellUsable';
-
-class TumblingWaves extends Analyzer {
- static dependencies = {
- spellUsable: SpellUsable,
- };
-
- protected spellUsable!: SpellUsable;
-
- constructor(options: Options) {
- super(options);
-
- this.active = false;
-
- // this.addEventListener(
- // Events.applybuff.by(SELECTED_PLAYER).spell(SPELLS.TUMBLING_WAVES_BUFF),
- // this.onApplyBuff,
- // );
- }
-
- onApplyBuff() {
- if (this.spellUsable.isOnCooldown(TALENTS.PRIMORDIAL_WAVE_RESTORATION_TALENT.id)) {
- this.spellUsable.endCooldown(TALENTS.PRIMORDIAL_WAVE_RESTORATION_TALENT.id);
- }
- }
-}
-
-export default TumblingWaves;
diff --git a/src/analysis/retail/shaman/shared/shadowlands/legendaries/ElementalConduit.tsx b/src/analysis/retail/shaman/shared/shadowlands/legendaries/ElementalConduit.tsx
deleted file mode 100644
index 08b84cd54dc..00000000000
--- a/src/analysis/retail/shaman/shared/shadowlands/legendaries/ElementalConduit.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import SPELLS from 'common/SPELLS';
-import HIT_TYPES from 'game/HIT_TYPES';
-import Analyzer, { Options, SELECTED_PLAYER } from 'parser/core/Analyzer';
-import Events, { DamageEvent } from 'parser/core/Events';
-import SpellUsable from 'parser/shared/modules/SpellUsable';
-
-// const cooldownDecrease = 1000;
-
-class ElementalConduit extends Analyzer {
- static dependencies = {
- spellUsable: SpellUsable,
- };
-
- protected spellUsable!: SpellUsable;
- protected totalCdrGained = 0;
- protected totalCdrWasted = 0;
-
- constructor(options: Options) {
- super(options);
- this.active = false;
-
- this.addEventListener(
- Events.damage.by(SELECTED_PLAYER).spell(SPELLS.FLAME_SHOCK),
- this.reduceChanShockCooldown,
- );
- }
-
- reduceChanShockCooldown(event: DamageEvent) {
- if (event.hitType !== HIT_TYPES.CRIT) {
- return;
- }
-
- // if (this.spellUsable.isOnCooldown(SPELLS.CHAIN_HARVEST.id)) {
- // this.spellUsable.reduceCooldown(SPELLS.CHAIN_HARVEST.id, cooldownDecrease, event.timestamp);
- // this.totalCdrGained += cooldownDecrease;
- // } else {
- // this.totalCdrWasted += cooldownDecrease;
- // }
- }
-
- // statistic() {
- // return (
- //
- //
- // {formatDuration(this.totalCdrGained)}s{' '}
- // of Chain Harvest CDR
- //
- // {formatDuration(this.totalCdrWasted)}s{' '}
- // of Chain Harvest CDR wasted
- //
- //
- // );
- // }
-}
-
-export default ElementalConduit;
diff --git a/src/analysis/retail/shaman/shared/shadowlands/spells/ChainHarvest.ts b/src/analysis/retail/shaman/shared/shadowlands/spells/ChainHarvest.ts
deleted file mode 100644
index 32992b6374c..00000000000
--- a/src/analysis/retail/shaman/shared/shadowlands/spells/ChainHarvest.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import HIT_TYPES from 'game/HIT_TYPES';
-import Analyzer, { Options } from 'parser/core/Analyzer';
-import { DamageEvent, HealEvent } from 'parser/core/Events';
-import SpellUsable from 'parser/shared/modules/SpellUsable';
-
-// const cooldownDecrease = 5000;
-
-/**
- * CD is reduced by crits
- */
-
-class ChainHarvest extends Analyzer {
- static dependencies = {
- spellUsable: SpellUsable,
- };
-
- protected spellUsable!: SpellUsable;
-
- constructor(options: Options) {
- super(options);
- this.active = false;
-
- // this.addEventListener(
- // Events.heal.by(SELECTED_PLAYER).spell(SPELLS.CHAIN_HARVEST_HEAL),
- // this.reduceCooldownOnCriticalHit,
- // );
- //
- // this.addEventListener(
- // Events.damage.by(SELECTED_PLAYER).spell(SPELLS.CHAIN_HARVEST_DAMAGE),
- // this.reduceCooldownOnCriticalHit,
- // );
- }
-
- reduceCooldownOnCriticalHit(event: HealEvent | DamageEvent) {
- if (event.hitType !== HIT_TYPES.CRIT) {
- return;
- }
-
- // if (this.spellUsable.isOnCooldown(SPELLS.CHAIN_HARVEST.id)) {
- // this.spellUsable.reduceCooldown(SPELLS.CHAIN_HARVEST.id, cooldownDecrease);
- // }
- }
-}
-
-export default ChainHarvest;
diff --git a/src/analysis/retail/shaman/shared/talents/ElementalOrbit.tsx b/src/analysis/retail/shaman/shared/talents/ElementalOrbit.tsx
index 4790895eb37..1c26b84170f 100644
--- a/src/analysis/retail/shaman/shared/talents/ElementalOrbit.tsx
+++ b/src/analysis/retail/shaman/shared/talents/ElementalOrbit.tsx
@@ -9,7 +9,7 @@ import Combatants from 'parser/shared/modules/Combatants';
import STATISTIC_CATEGORY from 'parser/ui/STATISTIC_CATEGORY';
import StatisticListBoxItem from 'parser/ui/StatisticListBoxItem';
-export const EARTHSHIELD_HEALING_INCREASE = 0.2;
+const EARTHSHIELD_HEALING_INCREASE = 0.2;
class ElementalOrbit extends Analyzer {
static dependencies = {
diff --git a/src/analysis/retail/shaman/shared/talents/SurgingShields.tsx b/src/analysis/retail/shaman/shared/talents/SurgingShields.tsx
index 1e90a892d7a..05bb201bc70 100644
--- a/src/analysis/retail/shaman/shared/talents/SurgingShields.tsx
+++ b/src/analysis/retail/shaman/shared/talents/SurgingShields.tsx
@@ -6,7 +6,7 @@ import { calculateEffectiveDamage, calculateEffectiveHealing } from 'parser/core
import Events, { DamageEvent, HealEvent, ResourceChangeEvent } from 'parser/core/Events';
import Combatants from 'parser/shared/modules/Combatants';
-export const EARTHSHIELD_HEALING_BONUS_PER_POINT = 0.125;
+const EARTHSHIELD_HEALING_BONUS_PER_POINT = 0.125;
const WATERSHIELD_MANA_INCREASE_PER_POINT = 0.25;
const LIGHTNINGSHIELD_DMG_INCREASE_PER_POINT = 0.5;
diff --git a/src/analysis/retail/warlock/demonology/modules/pets/CONSTANTS.ts b/src/analysis/retail/warlock/demonology/modules/pets/CONSTANTS.ts
index f262194c49e..de170e4572b 100644
--- a/src/analysis/retail/warlock/demonology/modules/pets/CONSTANTS.ts
+++ b/src/analysis/retail/warlock/demonology/modules/pets/CONSTANTS.ts
@@ -2,7 +2,7 @@ import SPELLS from 'common/SPELLS';
import TALENTS from 'common/TALENTS/warlock';
// ability guids from 'summon' events - sometimes different from 'cast' ids
-export const PERMANENT_PET_SUMMON_ABILITY_IDS = [
+const PERMANENT_PET_SUMMON_ABILITY_IDS = [
SPELLS.SUMMON_IMP.id,
SPELLS.SUMMON_VOIDWALKER.id,
SPELLS.SUMMON_FELHUNTER.id,
@@ -17,7 +17,7 @@ export const PERMANENT_PET_SUMMON_ABILITY_IDS = [
SPELLS.WRATHGUARD_PERMANENT_SUMMON.id,
];
-export const TEMPORARY_PET_SUMMON_ABILITY_IDS = [
+const TEMPORARY_PET_SUMMON_ABILITY_IDS = [
SPELLS.WILD_IMP_HOG_SUMMON.id,
SPELLS.DREADSTALKER_SUMMON_1.id,
SPELLS.DREADSTALKER_SUMMON_2.id,
diff --git a/src/analysis/retail/warlock/shared/images/warlock_soulshard_bw.jpg b/src/analysis/retail/warlock/shared/images/warlock_soulshard_bw.jpg
deleted file mode 100644
index e50f12afd21b0c6d195c9c64dc1f20b4296e6d0c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2093
zcmb7EX;@R&7QHvg4Iu=%fdrv|7!y$jDU%G!(8v%HMGf*na0I1@f&wZ-sR{(7fI$d@
ztpaL*D2NP+Whh#KAgEv}K|sI(s0jrtm9Zd*^ul}k-q#;}-&^PWIp5jm?0wccYcKXJ
z4gfIAjp+t}APBf416X_xI0I-DYH1?CAQQqt5C#L`m6WhJ0-iun!KLfC0=@Jl)oWVfK5Tr~}RZ%7V-&m9YL>yoX*rGuqfFgou
zBDi=T&;bB6QY#wx3<#@)!+vPnXA{)WXqfPe-86pV%e0F1WJtn~We=17iJ
zFn~hvUj?8sCPi}9BpVK?0fbOp(=^}GC|2?P{_RCHY=zs~Tc8WSh~)^sSrOyF
z&HW_{mHl*x~Ydlh0ypofu*^vTMNl+J=S?<{Jmc9SU+^M-Iy=*4(_^AWbn_-YpP
zJpSf}2i?_~-LB8_^ukPfN^PaFomt?flGl0_9s7#-d0rPlwkVMu$T~v_8JQbN+@Dw0
zd@>1I*RGo65M8~)*27r$ybgD4gQ-%UR0Tg5FO;{%arTB*r#d+FD9MiK0Ey
zBW&p`8$5W3E0+A5JggH+V>>}?_n7m>!~XW+n$|mU*NHn;qdqi#$C^n$A77i@mi@6)
zmaSOJ_ejmsJN}*a(0c2Yp*kgXRZ{}3u88uO!^LMZ$zO%+39__##%eZR@4E&_A#p~0
z4g6|$W$suy%=&3xEWzusr99j4r>b*lfg)n03T3==!H{yXAt5JV@a5iOoXwfGx+Kze
zvCD%~36Y+z-&*w)2c(%&Fa8MKKoQd>V*n#Ro@QE*PSXkT_h*S`%~
z7{O#pA3fdsH6JUZPZx_!9?mAE2Tr8v&z1Va!@fbk`S){9b6$BVR*%0eX?;g1vC!9-
zzxUoHeK)wpRl+-KvvcyJSM2NY=uS(iV>djLNhwUP+SGhLU7H)&=UkPtC$~#DZ`^;v
zRI|U=z=<_{C@k$PL7e{nhJ?q=E-?Ua8$F{&+nYp%S0JB)1|$C-jfVc?O~keobNaH@
z0?`=UDEs6NC(75A-s}h;ixep
z{t-5DsIs+#?WX$IhME$>(%l7-ZADl6y=aXGJ<&wQeMRBOR<*5T_yrBG-jAhx
zlLxzRTss;jzm_pc4CGvH_kHSljiZt3nz2xZlOBy^)ak8N4J(LgW~|mZA1v3M`rW7L
zN-bXV;4jVn{Lq-~7IVcul=w?|qfO$BgB>(x*@z$4uAVvXYHu2>$IiM
zc7!f$kUW3s&CijAri(8arl3yw34}kS1(VEH|FMo@k?&z>>G@>*`@Z#grub+^9k+a=
zC+?Cbb9ni=;O8a7!~e_h%K?b^OS&U{5&UHM
z&*F<@d_m*j_-FCqiF{Env*6uBVawyEm5T4@1GdTT7@2RZA8KHqZLO~UnLYKS;v##U
zkFj5=T&{CtVyqxsrPQJzG`&SlZZ@eu&?v;m*Izg{ozNoLS6xfDj=b|)o9~Hv%-SlP
zo8ig2HZuhMxZ+FY9*vqQU#asF1vG|1Ob7SWJlgCC!H
z&=ZGk7(~}?y92bt#|E5#eNR|dS&F}&v*%c9tuZtgX*F!i>%gA!c%Ptq;V;cIc1B8o!Y?_TmK>nSzQEvwot5B*xMpGO
z=I!~|0W(U)8TPQl#Ms@teb!XJ=z&FGTV|Mq9Xz>d+^XqS!!U~eGGP%gACa*uDq0ut
zql*1?%HdJ9Z4(d83i!Q~xhHLGYa(Z9nF=`Otbt2}-|yYV0+kxGeV4Otyl7Tco|&7|
zo=)cGfkyd1o(<*2l2d~S<$|ofhv1{#3+65ZbjOw7>f^Qy@(YXU`MHy-vKEt_MWL-W
m5t@E++@?nBhj$KC@kPRu^+b9S*@?EMQJ_&z)U
diff --git a/src/analysis/retail/warlock/shared/index.ts b/src/analysis/retail/warlock/shared/index.ts
index e982f2d6285..6e0d459ae63 100644
--- a/src/analysis/retail/warlock/shared/index.ts
+++ b/src/analysis/retail/warlock/shared/index.ts
@@ -1,7 +1,3 @@
-import SoulShardIcon from './images/warlock_soulshard_bw.jpg';
-
-export { SoulShardIcon };
-
export { default as GrimoireOfSacrifice } from './GrimoireOfSacrifice';
export { default as GrimoireOfSacrificeNormalizer } from './GrimoireOfSacrificeNormalizer';
export { default as WarlockMissingDotApplyDebuffPrePull } from './WarlockMissingDotApplyDebuffPrePull';
diff --git a/src/common/SPELLS/classic/index.ts b/src/common/SPELLS/classic/index.ts
index 3d434b11686..ae822b63166 100644
--- a/src/common/SPELLS/classic/index.ts
+++ b/src/common/SPELLS/classic/index.ts
@@ -64,15 +64,3 @@ export default CLASSIC_SPELLS;
export const maybeGetSpell = (key: string | number | undefined): Spell | undefined =>
key ? InternalSpellTable[key as any] : undefined;
-
-export const registerSpell = (id: number, name: string, icon: string) => {
- if (InternalSpellTable[id]) {
- return;
- }
-
- InternalSpellTable[id] = {
- id,
- name,
- icon,
- };
-};
diff --git a/src/common/indexById.ts b/src/common/indexById.ts
index 58b4a52ff6d..42f1bae633f 100644
--- a/src/common/indexById.ts
+++ b/src/common/indexById.ts
@@ -1,4 +1,3 @@
-import { shallowEqual } from 'react-redux';
import typedKeys from 'common/typedKeys';
interface BaseIndexableObj {
@@ -36,42 +35,6 @@ const indexById = ` where `T` is fixed and `E` is inferred.
- */
-export const asRestrictedTable =
- () =>
- (value: RestrictedTable): RestrictedTable =>
- value;
-
-export const indexOnlyById = <
- ValueT extends BaseIndexableObj,
- Map extends RestrictedTable,
->(
- arg: Map,
-): Record => {
- const indexedByNameAndId: Record = {};
- typedKeys(arg).forEach((key) => {
- const value = arg[key];
-
- if (import.meta.env.DEV) {
- // check if there's already an existing value by the same ID
- // and throw an error if it's not exactly equal
- // the shallow equality check is added to support cases like Warrior's Sudden Death talent
- if (
- indexedByNameAndId[value.id] &&
- !indexedByNameAndId[value.id].__ignoreDuplication &&
- !value.__ignoreDuplication &&
- !shallowEqual(indexedByNameAndId[value.id], value)
- ) {
- throw new Error(`A spell with this ID already exists: ${value.id}, ${String(key)}`);
- }
- }
- indexedByNameAndId[value.id] = value;
- });
- return indexedByNameAndId;
-};
-
export const proxyRestrictedTable = <
ValueT extends BaseIndexableObj,
Map extends RestrictedTable,
diff --git a/src/common/makeApiUrl.ts b/src/common/makeApiUrl.ts
index 15fe85e181e..1de72cdce07 100644
--- a/src/common/makeApiUrl.ts
+++ b/src/common/makeApiUrl.ts
@@ -52,13 +52,3 @@ export function makeGuildApiUrl(region?: string, realm?: string, name?: string,
return makeApiUrl(parts.map((part) => encodeURIComponent(part)).join('/'));
}
-
-export function makeItemApiUrl(itemId: string) {
- const parts = ['item', itemId];
- return makeApiUrl(parts.map((part) => encodeURIComponent(part)).join('/'));
-}
-
-export function makeSpellApiUrl(spellId: number) {
- const parts = ['spell', spellId];
- return makeApiUrl(parts.map((part) => encodeURIComponent(part)).join('/'));
-}
diff --git a/src/common/regions.ts b/src/common/regions.ts
index 2bd894510f1..f019df6dfc7 100644
--- a/src/common/regions.ts
+++ b/src/common/regions.ts
@@ -1,19 +1,14 @@
// All regions for WoW
-export const ALL_REGIONS = ['EU', 'US', 'TW', 'KR', 'CN'] as const;
+const ALL_REGIONS = ['EU', 'US', 'TW', 'KR', 'CN'] as const;
export type Region = (typeof ALL_REGIONS)[number];
-export const CLASSIC_REGIONS = ['EU', 'US', 'TW', 'KR'] as const;
+const CLASSIC_REGIONS = ['EU', 'US', 'TW', 'KR'] as const;
export type ClassicRegion = (typeof CLASSIC_REGIONS)[number];
// WoWAnalyzer/Blizzard API supported regions
-export const SUPPORTED_REGIONS = ['EU', 'US', 'TW', 'KR'] as const;
+const SUPPORTED_REGIONS = ['EU', 'US', 'TW', 'KR'] as const;
type SupportedRegion = (typeof SUPPORTED_REGIONS)[number];
-export function isRegion(region: string | undefined): region is Region {
- // the 'as' below is just to allow the use of .includes
- return ALL_REGIONS.includes(region as Region);
-}
-
/**
* Not every region is supported by the Blizzard API (and, by extension, the bits of the
* WoWA API that use the Blizzard API). This is used to check that a region is supported before
diff --git a/src/game/ROLES.ts b/src/game/ROLES.ts
index 5a64ad9d824..8be51bf1158 100644
--- a/src/game/ROLES.ts
+++ b/src/game/ROLES.ts
@@ -1,5 +1,3 @@
-import { defineMessage, plural } from '@lingui/macro';
-
const ROLES = {
TANK: 0,
HEALER: 1,
@@ -10,45 +8,6 @@ const ROLES = {
};
export default ROLES;
-const naming = {
- [ROLES.TANK]: (num: number) =>
- defineMessage({
- id: 'common.roles.tank',
- message: plural(num, {
- one: 'Tank',
- other: 'Tanks',
- }),
- }),
- [ROLES.HEALER]: (num: number) =>
- defineMessage({
- id: 'common.roles.healer',
- message: plural(num, {
- one: 'Healer',
- other: 'Healers',
- }),
- }),
- [ROLES.DPS.MELEE]: (num: number) =>
- defineMessage({
- id: 'common.roles.dps.melee',
- message: plural(num, {
- one: 'Melee DPS',
- other: 'Melee DPS',
- }),
- }),
- [ROLES.DPS.RANGED]: (num: number) =>
- defineMessage({
- id: 'common.roles.dps.ranged',
- message: plural(num, {
- one: 'Ranged DPS',
- other: 'Ranged DPS',
- }),
- }),
-};
-
-export function getName(role: number) {
- return naming[role];
-}
-
export function getClassName(role: number) {
switch (Number(role)) {
case ROLES.TANK:
diff --git a/src/game/VERSIONS.ts b/src/game/VERSIONS.ts
index dccf64cd5a2..a98e4f91f3d 100644
--- a/src/game/VERSIONS.ts
+++ b/src/game/VERSIONS.ts
@@ -8,13 +8,6 @@ const VERSIONS: Partial<{ [expansion in Expansion]: string }> = {
export default VERSIONS;
-export const WCL_GAME_VERSIONS: Partial<{ [expansion in Expansion]: number }> = {
- [Expansion.Dragonflight]: 1,
- [Expansion.Vanilla]: 2,
- [Expansion.TheBurningCrusade]: 3,
- [Expansion.WrathOfTheLichKing]: 4,
-};
-
export const wclGameVersionToExpansion = (gameVersion: number): Expansion => {
switch (gameVersion) {
case 2:
diff --git a/src/game/classColor.ts b/src/game/classColor.ts
index 0ff3fdbf509..b2ce7985707 100644
--- a/src/game/classColor.ts
+++ b/src/game/classColor.ts
@@ -26,15 +26,3 @@ export default function classColor(input: string | Combatant | Spec): string {
return classColor(base);
}
}
-
-/**
- * Takes name of a player class, {@link Spec}, or {@link Combatant} and
- * returns a `className` that can be used to color the background in the
- * appropiate class color.
- *
- * > The css classes themselves are defined in
- * > [src\interface\Game.scss](../interface/Game.scss#L41-L79)
- */
-export function classBgColor(input: string | Combatant | Spec): string {
- return `${classColor(input)}-bg`;
-}
diff --git a/src/game/raids/index.ts b/src/game/raids/index.ts
index baeeadc6305..1c28a0357d0 100644
--- a/src/game/raids/index.ts
+++ b/src/game/raids/index.ts
@@ -50,7 +50,7 @@ export interface Phase extends PhaseConfig {
end: number[];
}
-export const dungeons = {
+const dungeons = {
// Dragonflight
MythicPlusSeasonOne,
MythicPlusSeasonTwo,
@@ -68,15 +68,14 @@ const raids = {
IcecrownCitadel, // tier 10
RubySanctum, // tier 11
};
-export default raids;
-export function findByDungeonBossId(id: number) {
+function findByDungeonBossId(id: number) {
return Object.values(dungeons)
.flatMap((dungeon) => Object.values(dungeon.bosses))
.find((boss) => boss.id === id);
}
-export function findByRaidBossId(id: number) {
+function findByRaidBossId(id: number) {
return Object.values(raids)
.flatMap((raid) => Object.values(raid.bosses))
.find((boss) => boss.id === id);
diff --git a/src/game/shadowlands/COVENANTS.ts b/src/game/shadowlands/COVENANTS.ts
index 8276ae1b200..3639b0b4781 100644
--- a/src/game/shadowlands/COVENANTS.ts
+++ b/src/game/shadowlands/COVENANTS.ts
@@ -37,19 +37,3 @@ const COVENANTS = {
} satisfies Record;
export default indexById(COVENANTS);
-
-export function getCovenantById(id: number): Covenant | undefined {
- switch (id) {
- case 1:
- return COVENANTS.KYRIAN;
- case 2:
- return COVENANTS.VENTHYR;
- case 3:
- return COVENANTS.NIGHT_FAE;
- case 4:
- return COVENANTS.NECROLORD;
- default:
- console.error('Invalid convenant selection: ', id);
- return undefined;
- }
-}
diff --git a/src/interface/Ad.tsx b/src/interface/Ad.tsx
index 99f7fca3d29..e999c99ce3a 100644
--- a/src/interface/Ad.tsx
+++ b/src/interface/Ad.tsx
@@ -85,7 +85,7 @@ declare global {
}
}
-export function refreshAds() {
+function refreshAds() {
const tyche = window.tyche;
try {
if (tyche && tyche.destroyUnits) {
@@ -108,7 +108,7 @@ export function refreshAds() {
window.refreshAds = refreshAds;
-export function destroyAds() {
+function destroyAds() {
console.log('destroying ads');
const destroy = window.tyche?.destroyUnits;
diff --git a/src/interface/PerformanceStrong.tsx b/src/interface/PerformanceStrong.tsx
index 705cc4596f3..da29957b826 100644
--- a/src/interface/PerformanceStrong.tsx
+++ b/src/interface/PerformanceStrong.tsx
@@ -3,7 +3,7 @@ import { QualitativePerformance } from 'parser/ui/QualitativePerformance';
import { ComponentProps, ReactNode } from 'react';
import { PerformanceMark, qualitativePerformanceToColor } from 'interface/guide';
-export const ColoredStrong = styled.strong`
+const ColoredStrong = styled.strong`
color: ${(props) => props.color};
`;
diff --git a/src/interface/PremiumPage.jsx b/src/interface/PremiumPage.jsx
index bf1a88f9b81..8e79b52dac1 100644
--- a/src/interface/PremiumPage.jsx
+++ b/src/interface/PremiumPage.jsx
@@ -18,7 +18,7 @@ import './PremiumPage.scss';
import LoginPanel from './PremiumLoginPanel';
// eslint-disable-next-line react/prefer-stateless-function -- This should be rewritten in TypeScript.
-export class PremiumPage extends PureComponent {
+class PremiumPage extends PureComponent {
static propTypes = {
user: PropTypes.oneOfType([
PropTypes.shape({
diff --git a/src/interface/ReportSelecter.tsx b/src/interface/ReportSelecter.tsx
index 4b78da783ba..f92aafe0320 100644
--- a/src/interface/ReportSelecter.tsx
+++ b/src/interface/ReportSelecter.tsx
@@ -13,17 +13,17 @@ export function getReportCode(input: string) {
return match && match[2];
}
-export function getFight(input: string) {
+function getFight(input: string) {
const match = input.trim().match(/fight=([^&]*)/);
return match && match[1];
}
-export function getPlayer(input: string) {
+function getPlayer(input: string) {
const match = input.trim().match(/source=([^&]*)/);
return match && match[1];
}
-export function getCharacterFromWCLUrl(input: string) {
+function getCharacterFromWCLUrl(input: string) {
const match = input.trim().match(/^(.*character\/)(\S*)\/(\S*)\/(\S*)/);
return (
match && {
@@ -34,7 +34,7 @@ export function getCharacterFromWCLUrl(input: string) {
);
}
-export function getCharacterFromBattleNetUrl(input: string) {
+function getCharacterFromBattleNetUrl(input: string) {
const match = input.trim().match(/^(.*)\/([A-Za-z]{2}-[A-Za-z]{2})\/(character)\/(\S*)\/(\S*)/);
return (
match &&
diff --git a/src/interface/guide/components/Explanation.tsx b/src/interface/guide/components/Explanation.tsx
index 75a955eb65f..56be6178ee5 100644
--- a/src/interface/guide/components/Explanation.tsx
+++ b/src/interface/guide/components/Explanation.tsx
@@ -6,7 +6,7 @@ interface ExplanationContextValue {
hideExplanations: boolean;
setHideExplanations: (p: boolean) => void;
}
-export const ExplanationContext = createContext({
+const ExplanationContext = createContext({
hideExplanations: false,
setHideExplanations: () => {
// no-op
@@ -29,7 +29,7 @@ export const useExplanationContext = () => useContext(ExplanationContext);
/** A container for explanatory text.
* For now this is just a div, a future update will allow a toggle to hide all Explanations. */
-export const StyledExplanation = styled.div`
+const StyledExplanation = styled.div`
.text-muted,
small {
color: rgba(202, 200, 196, 0.77);
diff --git a/src/interface/guide/components/ExplanationRow.tsx b/src/interface/guide/components/ExplanationRow.tsx
index 269ca8e131d..f8f8e7bd35d 100644
--- a/src/interface/guide/components/ExplanationRow.tsx
+++ b/src/interface/guide/components/ExplanationRow.tsx
@@ -3,7 +3,7 @@ import styled from '@emotion/styled';
import { SubSection } from 'interface/guide/index';
import Explanation, { useExplanationContext } from 'interface/guide/components/Explanation';
-export const leftPercentDefault = 30;
+const leftPercentDefault = 30;
/**
* A container for holding two side-by-side panels, an explanation and data. By default, the left
diff --git a/src/interface/guide/components/GuideDivs.tsx b/src/interface/guide/components/GuideDivs.tsx
index ed193f4287d..b7411962f14 100644
--- a/src/interface/guide/components/GuideDivs.tsx
+++ b/src/interface/guide/components/GuideDivs.tsx
@@ -30,7 +30,7 @@ export const SideBySidePanels = styled.div`
* Version of {@link RoundedPanel} that aligns content to the start of the
* box instead of the center.
*/
-export const StartAlignedRoundedPanel = styled(RoundedPanel)`
+const StartAlignedRoundedPanel = styled(RoundedPanel)`
align-content: start;
`;
@@ -38,7 +38,7 @@ export const StartAlignedRoundedPanel = styled(RoundedPanel)`
* Version of {@link StartAlignedRoundedPanel} that has an inset box shadow to show
* color on the left side of the panel.
*/
-export const RoundedPanelWithColorBoxShadow = styled(StartAlignedRoundedPanel)`
+const RoundedPanelWithColorBoxShadow = styled(StartAlignedRoundedPanel)`
box-shadow: inset 0.5em 0 0 ${(props) => props.color};
`;
diff --git a/src/interface/guide/components/MajorDefensives/AllCooldownUsagesList.tsx b/src/interface/guide/components/MajorDefensives/AllCooldownUsagesList.tsx
index 83866634417..811547e3bdf 100644
--- a/src/interface/guide/components/MajorDefensives/AllCooldownUsagesList.tsx
+++ b/src/interface/guide/components/MajorDefensives/AllCooldownUsagesList.tsx
@@ -109,7 +109,7 @@ export type CooldownDetailsProps = {
mit?: Mitigation;
};
-export const CooldownDetails = ({ analyzer, mit }: CooldownDetailsProps) => {
+const CooldownDetails = ({ analyzer, mit }: CooldownDetailsProps) => {
if (!mit) {
return (
@@ -126,7 +126,7 @@ export const CooldownDetails = ({ analyzer, mit }: CooldownDetailsProps) => {
);
};
-export const BreakdownByTalent = ({ analyzer, mit }: Required) => {
+const BreakdownByTalent = ({ analyzer, mit }: Required) => {
const segments = analyzer.mitigationSegments(mit);
const maxValue = Math.max(analyzer.firstSeenMaxHp, mit.amount, mit.maxAmount ?? 0);
diff --git a/src/interface/guide/components/MajorDefensives/Timeline.tsx b/src/interface/guide/components/MajorDefensives/Timeline.tsx
index 550b36d074f..0a38503225a 100644
--- a/src/interface/guide/components/MajorDefensives/Timeline.tsx
+++ b/src/interface/guide/components/MajorDefensives/Timeline.tsx
@@ -60,13 +60,7 @@ const MitigationDataRow = styled.div`
margin-top: 0.4em;
`;
-export const MitigationLabel = ({
- mitigation,
- long,
-}: {
- mitigation: Mitigation;
- long?: boolean;
-}) => {
+const MitigationLabel = ({ mitigation, long }: { mitigation: Mitigation; long?: boolean }) => {
const fightStart = useInfo()?.fightStart ?? 0;
return (
<>
diff --git a/src/interface/guide/components/PerformanceBoxRow/index.tsx b/src/interface/guide/components/PerformanceBoxRow/index.tsx
index 7c79b1dc4b6..fb2283346e0 100644
--- a/src/interface/guide/components/PerformanceBoxRow/index.tsx
+++ b/src/interface/guide/components/PerformanceBoxRow/index.tsx
@@ -33,7 +33,7 @@ export type BoxRowEntry = {
className?: string;
};
-export function getBlockClassName(value: BoxRowEntry) {
+function getBlockClassName(value: BoxRowEntry) {
switch (value.value) {
case QualitativePerformance.Perfect:
return 'perfect-block';
diff --git a/src/interface/guide/index.tsx b/src/interface/guide/index.tsx
index b196aaf6a98..0793b218bd5 100644
--- a/src/interface/guide/index.tsx
+++ b/src/interface/guide/index.tsx
@@ -315,10 +315,10 @@ export const SubSection = ({
* Common styling colors and marks
*/
-export const PerfectMark = () => ;
-export const GoodMark = () => ;
-export const OkMark = () => ;
-export const BadMark = () => ;
+const PerfectMark = () => ;
+const GoodMark = () => ;
+const OkMark = () => ;
+const BadMark = () => ;
export const PerfectColor = getComputedStyle(document.documentElement).getPropertyValue(
'--guide-perfect-color',
diff --git a/src/interface/reducers/combatants.ts b/src/interface/reducers/combatants.ts
index 70b41ec91c2..a3cc0d9f261 100644
--- a/src/interface/reducers/combatants.ts
+++ b/src/interface/reducers/combatants.ts
@@ -16,5 +16,5 @@ const combatantsSlice = createSlice({
},
});
-export const { resetSlice, setCombatants } = combatantsSlice.actions;
+export const { setCombatants } = combatantsSlice.actions;
export default combatantsSlice.reducer;
diff --git a/src/interface/reducers/internetExplorer.ts b/src/interface/reducers/internetExplorer.ts
index e6316b11c49..9bf3bb1055d 100644
--- a/src/interface/reducers/internetExplorer.ts
+++ b/src/interface/reducers/internetExplorer.ts
@@ -15,5 +15,5 @@ const internetExplorerSlice = createSlice({
},
});
-export const { resetSlice, setInternetExplorer } = internetExplorerSlice.actions;
+export const { setInternetExplorer } = internetExplorerSlice.actions;
export default internetExplorerSlice.reducer;
diff --git a/src/interface/reducers/language.ts b/src/interface/reducers/language.ts
index 038e0b24368..968c2ee569c 100644
--- a/src/interface/reducers/language.ts
+++ b/src/interface/reducers/language.ts
@@ -23,5 +23,5 @@ const languageSlice = createSlice({
},
});
-export const { resetSlice, setLanguage } = languageSlice.actions;
+export const { setLanguage } = languageSlice.actions;
export default languageSlice.reducer;
diff --git a/src/interface/reducers/openModals.ts b/src/interface/reducers/openModals.ts
index 86eece77727..f602e725d85 100644
--- a/src/interface/reducers/openModals.ts
+++ b/src/interface/reducers/openModals.ts
@@ -17,5 +17,5 @@ const openModalsSlice = createSlice({
},
});
-export const { resetSlice, openModal, closeModal } = openModalsSlice.actions;
+export const { openModal, closeModal } = openModalsSlice.actions;
export default openModalsSlice.reducer;
diff --git a/src/interface/reducers/report.ts b/src/interface/reducers/report.ts
index 16f1b3f0b01..4eb2b866863 100644
--- a/src/interface/reducers/report.ts
+++ b/src/interface/reducers/report.ts
@@ -15,5 +15,5 @@ const reportSlice = createSlice({
},
});
-export const { resetSlice, setReport } = reportSlice.actions;
+export const { setReport } = reportSlice.actions;
export default reportSlice.reducer;
diff --git a/src/interface/reducers/reportCodesIgnoredPreviousPatchWarning.ts b/src/interface/reducers/reportCodesIgnoredPreviousPatchWarning.ts
index 90a71b4d341..c5c8cd1ad16 100644
--- a/src/interface/reducers/reportCodesIgnoredPreviousPatchWarning.ts
+++ b/src/interface/reducers/reportCodesIgnoredPreviousPatchWarning.ts
@@ -18,6 +18,5 @@ const reportCodesIgnoredPreviousPatchWarningSlice = createSlice({
},
});
-export const { resetSlice, ignorePreviousPatchWarning } =
- reportCodesIgnoredPreviousPatchWarningSlice.actions;
+export const { ignorePreviousPatchWarning } = reportCodesIgnoredPreviousPatchWarningSlice.actions;
export default reportCodesIgnoredPreviousPatchWarningSlice.reducer;
diff --git a/src/interface/reducers/reportHistory.ts b/src/interface/reducers/reportHistory.ts
index 1d80a3c99ee..44895b5d597 100644
--- a/src/interface/reducers/reportHistory.ts
+++ b/src/interface/reducers/reportHistory.ts
@@ -48,5 +48,5 @@ const reportHistorySlice = createSlice({
},
});
-export const { resetSlice, appendReportHistory } = reportHistorySlice.actions;
+export const { appendReportHistory } = reportHistorySlice.actions;
export default reportHistorySlice.reducer;
diff --git a/src/interface/reducers/specsIgnoredNotSupportedWarning.ts b/src/interface/reducers/specsIgnoredNotSupportedWarning.ts
index a664ab3a4c8..9ff6eabb9e2 100644
--- a/src/interface/reducers/specsIgnoredNotSupportedWarning.ts
+++ b/src/interface/reducers/specsIgnoredNotSupportedWarning.ts
@@ -15,6 +15,5 @@ const specsIgnoredNotSupportedWarningSlice = createSlice({
},
});
-export const { resetSlice, ignoreSpecNotSupportedWarning } =
- specsIgnoredNotSupportedWarningSlice.actions;
+export const { ignoreSpecNotSupportedWarning } = specsIgnoredNotSupportedWarningSlice.actions;
export default specsIgnoredNotSupportedWarningSlice.reducer;
diff --git a/src/interface/reducers/user.ts b/src/interface/reducers/user.ts
index 3ee788d1c0a..c35bf385320 100644
--- a/src/interface/reducers/user.ts
+++ b/src/interface/reducers/user.ts
@@ -75,5 +75,4 @@ const userSlice = createSlice({
},
});
-export const { reset } = userSlice.actions;
export default userSlice.reducer;
diff --git a/src/interface/report/CombatLogParserContext.tsx b/src/interface/report/CombatLogParserContext.tsx
index d37da4de44f..aa0d1f5bf7d 100644
--- a/src/interface/report/CombatLogParserContext.tsx
+++ b/src/interface/report/CombatLogParserContext.tsx
@@ -7,7 +7,7 @@ interface CombatLogParserContext {
// This starts off undefined as we don't have an instance of CombatLogParser to work with
// until it gets provided by the Provider.
-export const CombatLogParserCtx = createContext(undefined);
+const CombatLogParserCtx = createContext(undefined);
interface Props {
children: ReactNode;
diff --git a/src/interface/report/ExpansionContext.tsx b/src/interface/report/ExpansionContext.tsx
index f1f5b23139f..000a985c407 100644
--- a/src/interface/report/ExpansionContext.tsx
+++ b/src/interface/report/ExpansionContext.tsx
@@ -8,12 +8,12 @@ interface ExpansionContext {
gameVersion: number;
}
-export const ExpansionCtx = createContext({
+const ExpansionCtx = createContext({
expansion: Expansion.Dragonflight,
gameVersion: 0,
});
-export const ExpansionContextProvider = ({
+const ExpansionContextProvider = ({
children,
gameVersion,
}: {
diff --git a/src/interface/report/context/PatchContext.tsx b/src/interface/report/context/PatchContext.tsx
index a15c2c273d5..3a8516b3640 100644
--- a/src/interface/report/context/PatchContext.tsx
+++ b/src/interface/report/context/PatchContext.tsx
@@ -1,21 +1,11 @@
import { Patch } from 'interface/report/PATCHES';
-import { createContext, ReactNode, useContext } from 'react';
+import { createContext, ReactNode } from 'react';
interface PatchContext {
patch: Patch | undefined;
}
const PatchCtx = createContext(undefined);
-export default PatchCtx;
-
-export const usePatch = () => {
- const ctx = useContext(PatchCtx);
- if (ctx === undefined) {
- throw new Error('Unable to get patch');
- }
- return ctx;
-};
-
interface Props {
children: ReactNode;
patch: Patch | undefined;
diff --git a/src/interface/report/context/PlayerContext.tsx b/src/interface/report/context/PlayerContext.tsx
index d76b69fa3b1..dbf9a540c07 100644
--- a/src/interface/report/context/PlayerContext.tsx
+++ b/src/interface/report/context/PlayerContext.tsx
@@ -10,8 +10,6 @@ interface PlayerContext {
const PlayerCtx = createContext(undefined);
-export default PlayerCtx;
-
export const usePlayer = () => {
const ctx = useContext(PlayerCtx);
if (ctx === undefined) {
diff --git a/src/interface/report/context/ReportContext.tsx b/src/interface/report/context/ReportContext.tsx
index 619067868f1..663794ecf49 100644
--- a/src/interface/report/context/ReportContext.tsx
+++ b/src/interface/report/context/ReportContext.tsx
@@ -7,8 +7,6 @@ interface ReportContext {
}
const ReportCtx = createContext(undefined);
-export default ReportCtx;
-
export const useReport = () => {
const ctx = useContext(ReportCtx);
if (ctx === undefined) {
diff --git a/src/interface/report/hooks/useTimeEventFilter.ts b/src/interface/report/hooks/useTimeEventFilter.ts
index 72b2364492a..afc5a9a4ed3 100644
--- a/src/interface/report/hooks/useTimeEventFilter.ts
+++ b/src/interface/report/hooks/useTimeEventFilter.ts
@@ -157,7 +157,7 @@ function findRelevantPreFilterEvents(events: AnyEvent[]) {
* @return {Array}
* List of filtered events
*/
-export function filterEvents(events: AnyEvent[], start: number, end: number) {
+function filterEvents(events: AnyEvent[], start: number, end: number) {
function createFilterBuffInfoEvent(e: BuffEvent | StackEvent): FilterBuffInfoEvent {
return {
...e,
diff --git a/src/interface/selectors/url/report/getFightName.ts b/src/interface/selectors/url/report/getFightName.ts
deleted file mode 100644
index ef0d421cbd2..00000000000
--- a/src/interface/selectors/url/report/getFightName.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import getFightParts from './getFightParts';
-
-export default (pathname: string) => {
- const parts = getFightParts(pathname);
- if (parts) {
- const fightName = parts[1];
- if (fightName) {
- return fightName;
- }
- }
- return null;
-};
diff --git a/src/interface/selectors/url/report/getPlayerId.ts b/src/interface/selectors/url/report/getPlayerId.ts
index 58ff456e69a..c4a1fe0e060 100644
--- a/src/interface/selectors/url/report/getPlayerId.ts
+++ b/src/interface/selectors/url/report/getPlayerId.ts
@@ -1,5 +1,3 @@
-import { getMatchWithPlayer } from './getMatch';
-
export const getPlayerIdFromParam = (param: string | null | undefined) => {
if (param) {
const playerId = Number(param.split('-')[0]);
@@ -9,8 +7,3 @@ export const getPlayerIdFromParam = (param: string | null | undefined) => {
}
return null;
};
-
-export default (pathname: string) => {
- const match = getMatchWithPlayer(pathname);
- return getPlayerIdFromParam(match?.params?.player);
-};
diff --git a/src/interface/selectors/url/report/index.ts b/src/interface/selectors/url/report/index.ts
index 59058337a06..d98227285cb 100644
--- a/src/interface/selectors/url/report/index.ts
+++ b/src/interface/selectors/url/report/index.ts
@@ -1,7 +1,5 @@
export { default as getReportCode } from './getReportCode';
export { default as getFightId } from './getFightId';
-export { default as getFightName } from './getFightName';
export { default as getPlayerName } from './getPlayerName';
-export { default as getPlayerId } from './getPlayerId';
export { default as getResultTab } from './getResultTab';
export { default as getBuild } from './getBuild';
diff --git a/src/interface/useTooltip.tsx b/src/interface/useTooltip.tsx
index 27871c1d7cd..f68996b0b84 100644
--- a/src/interface/useTooltip.tsx
+++ b/src/interface/useTooltip.tsx
@@ -1,7 +1,7 @@
import { useWaSelector } from 'interface/utils/useWaSelector';
import RESOURCE_TYPES from 'game/RESOURCE_TYPES';
-export const itemRelative = (id: number, details: any): string => {
+const itemRelative = (id: number, details: any): string => {
const base = `item=${id}`;
if (!details) {
return base;
@@ -23,19 +23,19 @@ export const itemRelative = (id: number, details: any): string => {
}
};
-export const itemSetRelative = (id: number): string => {
+const itemSetRelative = (id: number): string => {
return `item-set=${id}`;
};
-export const npcRelative = (id: number): string => {
+const npcRelative = (id: number): string => {
return `npc=${id}`;
};
-export const resourceRelative = (id: number): string => {
+const resourceRelative = (id: number): string => {
return RESOURCE_TYPES[id].url;
};
-export const spellRelative = (id: number, details: any): string => {
+const spellRelative = (id: number, details: any): string => {
const base = `spell=${id}`;
if (!details) {
return base;
diff --git a/src/parser/classic/modules/items/CombatPotionChecker.tsx b/src/parser/classic/modules/items/CombatPotionChecker.tsx
index 368ad759a23..27d682f2147 100644
--- a/src/parser/classic/modules/items/CombatPotionChecker.tsx
+++ b/src/parser/classic/modules/items/CombatPotionChecker.tsx
@@ -1,7 +1,7 @@
import Potion from 'parser/retail/modules/items/Potion';
import SPELLS from 'common/SPELLS/classic/potions';
-export const COMBAT_POTIONS: number[] = [
+const COMBAT_POTIONS: number[] = [
SPELLS.CRAZY_ALCHEMISTS_POTION.id,
SPELLS.INDESTRUCTIBLE_POTION.id,
SPELLS.MIGHTY_ARCANE_PROTECTION_POTION.id,
diff --git a/src/parser/core/DotSnapshots.ts b/src/parser/core/DotSnapshots.ts
index 5e844f776b0..31839b67d63 100644
--- a/src/parser/core/DotSnapshots.ts
+++ b/src/parser/core/DotSnapshots.ts
@@ -18,11 +18,7 @@ import Combatant from 'parser/core/Combatant';
export const BUFF_DROP_BUFFER = 200;
/** Default fraction of DoT duration carried over to new applications */
-export const DEFAULT_PANDEMIC_FRACTION = 0.3;
-
-export function hasSpec(snapshots: SnapshotSpec[], sss: StaticSnapshotSpec) {
- return snapshots.find((ss) => ss.name === sss.name) !== undefined;
-}
+const DEFAULT_PANDEMIC_FRACTION = 0.3;
/**
* Many DoT spells 'snapshot' certain buffs on cast, benefitting from them over the DoT's
diff --git a/src/parser/core/EventCalculateLib.tsx b/src/parser/core/EventCalculateLib.tsx
index 2cd2dbfade4..e88504a6bd5 100644
--- a/src/parser/core/EventCalculateLib.tsx
+++ b/src/parser/core/EventCalculateLib.tsx
@@ -95,39 +95,6 @@ export function calculateOverhealing(
return overhealing;
}
-/**
- * Calculates the effective healing attributable to the *last stack* of a stacking percent healing buff.
- * See `calculateEffectiveHealing` first for more info on the calculation and how overheal is handled.
- *
- * This can be useful for calculating the marginal benefit of 'one more point' in something.
- * For example, consider an effect that grants +10% healing per point, and the player has 4 points.
- * We can't consider the boost from the 4th point to be another +10% because it stacks additively with the previous +30%,
- * so for a 1400 heal the calculation would be 1300 from base heal + 30%, 100 attributable from extra +10%.
- * If we had considered the +10% in a vacuum the calculation would have been 1400 - (1400 / 1.1) = 127.
- *
- * @param event a healing event (or heal-like event) that was boosted by an effect
- * @param relativeHealIncreasePerStack the boost's added multiplier per stack (for +10% pass 0.10)
- * @param stacks the number of stacks active, *including the marginal stack we're calculating for*
- * (so in the above example we'd pass 4)
- * @return the amount of healing attributable on the given heal from the last stack of the given boost
- */
-export function calculateEffectiveHealingStacked(
- event: LightWeightHealingEvent,
- relativeHealIncreasePerStack: number,
- stacks: number,
-): number {
- const amount = event.amount;
- const absorbed = event.absorbed || 0;
- const overheal = event.overheal || 0;
- const raw = amount + absorbed + overheal;
- const relativeHealingIncreaseFactor = 1 + relativeHealIncreasePerStack * stacks;
- const totalHealingIncrease = raw - raw / relativeHealingIncreaseFactor;
- const oneStackHealingIncrease = totalHealingIncrease / stacks;
- const effectiveHealing = oneStackHealingIncrease - overheal;
-
- return Math.max(0, effectiveHealing);
-}
-
/**
* Gets raw max casts of a spell over a period of time.
* @param cooldown the cooldown time of the spell, in seconds
@@ -138,34 +105,6 @@ export function calculateMaxCasts(cooldown: number, duration: number, charges =
return duration / 1000 / cooldown + charges - 1;
}
-/**
- * Calculates the effective damage attributable to the *last stack* of a stacking percent damage buff.
- *
- * This can be useful for calculating the marginal benefit of 'one more point' in something.
- * For example, consider an effect that grants +10% damage per point, and the player has 4 points.
- * We can't consider the boost from the 4th point to be another +10% because it stacks additively with the previous +30%,
- * so for a 1400 damage the calculation would be 1300 from base damage + 30%, 100 attributable from extra +10%.
- * If we had considered the +10% in a vacuum the calculation would have been 1400 - (1400 / 1.1) = 127.
- *
- * @param event a damage event that was boosted by an effect
- * @param increase the boost's added multiplier per stack (for +10% pass 0.10)
- * @param stacks the number of stacks active, *including the marginal stack we're calculating for*
- * (so in the above example we'd pass 4)
- * @return the amount of damage attributable on the given damage event from the last stack of the given boost
- */
-export function calculateEffectiveDamageStacked(
- event: DamageEvent,
- increase: number,
- stacks: number,
-): number {
- const raw = (event.amount || 0) + (event.absorbed || 0);
- const relativeDamageIncreaseFactor = 1 + increase * stacks;
- const totalIncrease = raw - raw / relativeDamageIncreaseFactor;
- const oneStackIncrease = totalIncrease / stacks;
-
- return Math.max(0, oneStackIncrease);
-}
-
export function calculateEffectiveDamageReduction(event: DamageEvent, reduction: number) {
const raw = (event.amount || 0) + (event.absorbed || 0);
return (raw / (1 - reduction)) * reduction;
diff --git a/src/parser/core/ParseResults.tsx b/src/parser/core/ParseResults.tsx
index 93baedd7e6b..66ba80f68e1 100644
--- a/src/parser/core/ParseResults.tsx
+++ b/src/parser/core/ParseResults.tsx
@@ -56,7 +56,7 @@ abstract class SuggestionAssertion {
}
}
-export class NumberSuggestionAssertion extends SuggestionAssertion {
+class NumberSuggestionAssertion extends SuggestionAssertion {
_threshold?: number | ThresholdRange;
_mode?: AssertionMode | null;
@@ -171,7 +171,7 @@ export class NumberSuggestionAssertion extends SuggestionAssertion {
}
}
-export class BoolSuggestionAssertion extends SuggestionAssertion {
+class BoolSuggestionAssertion extends SuggestionAssertion {
_compareTo?: boolean;
constructor(options: boolean | BoolThreshold, addIssue: (issue: Issue) => void) {
diff --git a/src/parser/core/SpellUsage/core.tsx b/src/parser/core/SpellUsage/core.tsx
index a08c376a490..eef3c53f4d2 100644
--- a/src/parser/core/SpellUsage/core.tsx
+++ b/src/parser/core/SpellUsage/core.tsx
@@ -106,7 +106,7 @@ interface SpellUsageContextValue {
setHideGoodCasts: (p: boolean) => void;
}
-export const SpellUsageContext = createContext({
+const SpellUsageContext = createContext({
hideGoodCasts: false,
setHideGoodCasts: () => {
// no-op
diff --git a/src/parser/core/tests/constants.ts b/src/parser/core/tests/constants.ts
index 22939d46bb7..0699423aac8 100644
--- a/src/parser/core/tests/constants.ts
+++ b/src/parser/core/tests/constants.ts
@@ -7,7 +7,7 @@ import type { PlayerInfo } from 'parser/core/Player';
import type Fight from 'parser/core/Fight';
import type CharacterProfile from 'parser/core/CharacterProfile';
-export const TEST_SPEC: Spec = {
+const TEST_SPEC: Spec = {
className: {
id: '',
},
diff --git a/src/parser/retail/armorMitigation.ts b/src/parser/retail/armorMitigation.ts
index fa561cc8cd8..e62cc89bd7d 100644
--- a/src/parser/retail/armorMitigation.ts
+++ b/src/parser/retail/armorMitigation.ts
@@ -2,7 +2,7 @@ import { WCLFight } from 'parser/core/Fight';
import DIFFICULTIES from 'game/DIFFICULTIES';
import { DamageEvent } from 'parser/core/Events';
-export const maximumArmorMitigation = 0.85;
+const maximumArmorMitigation = 0.85;
enum ArmorCoefficientKey {
BASE = 'base',
@@ -14,7 +14,7 @@ enum ArmorCoefficientKey {
}
// These were pulled from Peak of Serenity theorycrafting channel and need to be updated every tier.
-export const armorCoefficients = {
+const armorCoefficients = {
[ArmorCoefficientKey.BASE]: 11766.0,
[ArmorCoefficientKey.MYTHIC_PLUS]: 18672.64,
[ArmorCoefficientKey.RAID_LFR]: 19155.05,
@@ -26,7 +26,7 @@ export const armorCoefficients = {
/**
* Gets the {@link ArmorCoefficientKey} for a given fight.
*/
-export const getArmorCoefficientKey = (fight: WCLFight) => {
+const getArmorCoefficientKey = (fight: WCLFight) => {
switch (fight.difficulty) {
case DIFFICULTIES.LFR_RAID:
return ArmorCoefficientKey.RAID_LFR;
@@ -46,8 +46,7 @@ export const getArmorCoefficientKey = (fight: WCLFight) => {
/**
* Gets the armor coefficient for a given fight.
*/
-export const getArmorCoefficient = (fight: WCLFight) =>
- armorCoefficients[getArmorCoefficientKey(fight)];
+const getArmorCoefficient = (fight: WCLFight) => armorCoefficients[getArmorCoefficientKey(fight)];
const clamp = (actual: number, min: number, max: number) => Math.min(max, Math.max(min, actual));
@@ -66,7 +65,7 @@ interface ArmorMitigationResult {
/**
* Gets armor mitigation values for a given amount of armor, fight, and unmitigated amount of damage.
*/
-export const getArmorMitigation = ({
+const getArmorMitigation = ({
armor,
fight,
unmitigatedAmount = 0,
diff --git a/src/parser/shared/metrics/apl/ChecklistRule.tsx b/src/parser/shared/metrics/apl/ChecklistRule.tsx
index deb2b54b1d2..2df65f934ee 100644
--- a/src/parser/shared/metrics/apl/ChecklistRule.tsx
+++ b/src/parser/shared/metrics/apl/ChecklistRule.tsx
@@ -139,7 +139,7 @@ function CooldownList({ castEfficiency, cooldowns }: Pick
{spells(rule).map((spell, index) => (
diff --git a/src/parser/shared/metrics/apl/annotate.tsx b/src/parser/shared/metrics/apl/annotate.tsx
index dd01c257c88..c66fbd87841 100644
--- a/src/parser/shared/metrics/apl/annotate.tsx
+++ b/src/parser/shared/metrics/apl/annotate.tsx
@@ -32,7 +32,7 @@ export function ConditionDescription({
);
}
-export function InefficientCastAnnotation({ violation }: { violation: Violation }) {
+function InefficientCastAnnotation({ violation }: { violation: Violation }) {
return (
<>
{violation.expectedCast.map((spell, index) => (
diff --git a/src/parser/shared/metrics/apl/conditions/test-tools.ts b/src/parser/shared/metrics/apl/conditions/test-tools.ts
index a29f3a6636b..d9f00ca0aa7 100644
--- a/src/parser/shared/metrics/apl/conditions/test-tools.ts
+++ b/src/parser/shared/metrics/apl/conditions/test-tools.ts
@@ -19,7 +19,7 @@ export const dummyCast: Spell = {
icon: 'cast',
};
-export const playerInfo: PlayerInfo = {
+const playerInfo: PlayerInfo = {
playerId: 1,
combatant: {} as unknown as Combatant,
defaultRange: AbilityRange.Melee,
diff --git a/src/parser/shared/metrics/apl/index.ts b/src/parser/shared/metrics/apl/index.ts
index 14a88993407..a31e4db6159 100644
--- a/src/parser/shared/metrics/apl/index.ts
+++ b/src/parser/shared/metrics/apl/index.ts
@@ -367,7 +367,7 @@ type ApplicableRule = {
/**
* Find the first applicable rule. See also: `ruleApplies`
**/
-export function applicableRule(
+function applicableRule(
apl: Apl,
abilities: Set,
result: CheckState,
@@ -401,7 +401,7 @@ function updateAbilities(state: AbilityState, event: AnyEvent): AbilityState {
* Whether the APL applies to the given event. APL condition state is updated
* on every event, this only determines if the rule checking needs to apply.
*/
-export function aplProcessesEvent(
+function aplProcessesEvent(
event: AnyEvent,
result: CheckState,
applicableSpells: Set,
@@ -438,7 +438,7 @@ export function aplProcessesEvent(
);
}
-export function knownSpells(
+function knownSpells(
apl: Apl,
info: PlayerInfo,
): { abilities: Set; applicableSpells: Set } {
@@ -454,7 +454,7 @@ export function knownSpells(
return { abilities, applicableSpells };
}
-export function updateCheckState(result: CheckState, apl: Apl, event: AnyEvent): CheckState {
+function updateCheckState(result: CheckState, apl: Apl, event: AnyEvent): CheckState {
if (event.type === EventType.Cast) {
result.mostRecentCast = event;
}
diff --git a/src/parser/shared/metrics/buffApplications.ts b/src/parser/shared/metrics/buffApplications.ts
index 396eb7f69f6..a2b2c92f6c8 100644
--- a/src/parser/shared/metrics/buffApplications.ts
+++ b/src/parser/shared/metrics/buffApplications.ts
@@ -10,7 +10,7 @@ import metric from 'parser/core/metric';
* order, until it finds one where predicate returns true. If such an element is found,
* findLast immediately returns that element. Otherwise, findLast returns undefined.
*/
-export function findLast(
+function findLast(
array: T[],
predicate: (value: T, index: number, obj: T[]) => boolean,
): T | undefined {
diff --git a/src/parser/shared/metrics/resourceGained.ts b/src/parser/shared/metrics/resourceGained.ts
index 09a8104f00e..ba680f01d34 100644
--- a/src/parser/shared/metrics/resourceGained.ts
+++ b/src/parser/shared/metrics/resourceGained.ts
@@ -27,18 +27,6 @@ const resourceGained = (events: AnyEvent[]) =>
export default metric(resourceGained);
-export const sumResourceGained = (
- resourcesGained: ResourcesGained,
- resourceId: number,
- playerId: number,
-) =>
- Object.values(resourcesGained[playerId]?.[resourceId]).reduce((sum, item) => sum + item, 0) || 0;
-export const sumResourceGainedByPlayerBySpell = (
- resourcesGained: ResourcesGained,
- resourceId: number,
- playerId: number,
- spellId: number,
-) => resourcesGained[playerId]?.[resourceId]?.[spellId] || 0;
export const sumResourceGainedByPlayerPerSpell = (
resourcesGained: ResourcesGained,
resourceId: number,
diff --git a/src/parser/shared/metrics/resourceWasted.ts b/src/parser/shared/metrics/resourceWasted.ts
index 86de7d912bf..0dd3bdff21a 100644
--- a/src/parser/shared/metrics/resourceWasted.ts
+++ b/src/parser/shared/metrics/resourceWasted.ts
@@ -26,23 +26,6 @@ const resourceWasted = (events: AnyEvent[]) =>
export default metric(resourceWasted);
-export const sumResourceWasted = (
- resourcesWasted: ResourcesWasted,
- resourceId: number,
- playerId: number,
-) =>
- Object.values(resourcesWasted[playerId]?.[resourceId]).reduce((sum, item) => sum + item, 0) || 0;
-export const sumResourceWastedByPlayerBySpell = (
- resourcesWasted: ResourcesWasted,
- resourceId: number,
- playerId: number,
- spellId: number,
-) => resourcesWasted[playerId]?.[resourceId]?.[spellId] || 0;
-export const sumResourceWastedByPlayerPerSpell = (
- resourcesWasted: ResourcesWasted,
- resourceId: number,
- playerId: number,
-) => resourcesWasted[playerId]?.[resourceId];
export const sumResourceWastedBySpell = (
resourcesWasted: ResourcesWasted,
resourceId: number,
diff --git a/src/parser/shared/modules/Enemies.ts b/src/parser/shared/modules/Enemies.ts
index 4a2f5ea5136..389eda4eab3 100644
--- a/src/parser/shared/modules/Enemies.ts
+++ b/src/parser/shared/modules/Enemies.ts
@@ -44,11 +44,6 @@ export function encodeTargetString(id: number, instance = 0) {
return `${id}.${instance}`;
}
-export function decodeTargetString(string: string) {
- const [id, instance = 0] = string.split('.');
- return { id, instance };
-}
-
class Enemies extends Entities {
enemies: { [enemyId: string]: Enemy } = {};
/**
diff --git a/src/parser/shared/modules/Entities.ts b/src/parser/shared/modules/Entities.ts
index 8a55fe071c2..2c0327fbab9 100644
--- a/src/parser/shared/modules/Entities.ts
+++ b/src/parser/shared/modules/Entities.ts
@@ -29,7 +29,7 @@ export function encodeFriendlyEventTargetString(event: AnyEvent) {
return encodeTargetString(event.targetID, event.targetInstance, event.timestamp);
}
-export function encodeTargetString(id: number, instance = 0, time: number) {
+function encodeTargetString(id: number, instance = 0, time: number) {
return `${id}.${instance}.${time}`;
}
diff --git a/src/parser/shared/modules/SpellUsable.ts b/src/parser/shared/modules/SpellUsable.ts
index 431110c3d03..b06d3425739 100644
--- a/src/parser/shared/modules/SpellUsable.ts
+++ b/src/parser/shared/modules/SpellUsable.ts
@@ -20,7 +20,7 @@ import { maybeGetTalentOrSpell } from 'common/maybeGetTalentOrSpell';
const DEBUG = false;
/** Margin in milliseconds beyond which we log errors if numbers don't line up */
-export const COOLDOWN_LAG_MARGIN = 150;
+const COOLDOWN_LAG_MARGIN = 150;
function spellName(spellId: number) {
return maybeGetTalentOrSpell(spellId)?.name ?? '???';
diff --git a/src/parser/shared/modules/StatTracker.ts b/src/parser/shared/modules/StatTracker.ts
index 8cfbe93382f..196c9925763 100644
--- a/src/parser/shared/modules/StatTracker.ts
+++ b/src/parser/shared/modules/StatTracker.ts
@@ -28,7 +28,7 @@ import { calculateSecondaryStatDefault } from 'parser/core/stats';
* Generates a {@link StatBuff} that defines a buff that gives the
* appropiate `PRIMARY_STAT` for the current spec.
*/
-export function primaryStat(value: number): StatBuff {
+function primaryStat(value: number): StatBuff {
return {
[PRIMARY_STAT.STRENGTH]: (selectedCombatant) =>
selectedCombatant.primaryStat === PRIMARY_STAT.STRENGTH ? value : 0,
diff --git a/src/parser/shared/modules/features/STAT.tsx b/src/parser/shared/modules/features/STAT.tsx
index 243b7773283..7e5995f6c4a 100644
--- a/src/parser/shared/modules/features/STAT.tsx
+++ b/src/parser/shared/modules/features/STAT.tsx
@@ -176,10 +176,6 @@ export function getClassNameColor(stat: STAT) {
}
}
-export function getClassNameBackgroundColor(stat: STAT) {
- return `${getClassNameColor(stat)}-bg`;
-}
-
export function getIcon(stat: STAT): (props: any) => JSX.Element {
switch (stat) {
case STAT.HEALTH:
diff --git a/src/parser/shared/modules/helpers/Probability.tsx b/src/parser/shared/modules/helpers/Probability.tsx
index 827396706cc..65e5d7aadbb 100644
--- a/src/parser/shared/modules/helpers/Probability.tsx
+++ b/src/parser/shared/modules/helpers/Probability.tsx
@@ -100,7 +100,7 @@ function resetProbabilityArray(
return procProbabilities;
}
-export function setMinMaxProbabilities(
+function setMinMaxProbabilities(
actualProcs: number,
procAttempts: number,
procChance: number | number[],
@@ -155,7 +155,7 @@ function Ekj(k: number, j: number, p: number[], lookup: any[][]): number {
* @param n {Number} Number of total tries
* @param p {[Number]} Probability vector
*/
-export function poissonBinomialPMF(k: number, n: number, p: any[]) {
+function poissonBinomialPMF(k: number, n: number, p: any[]) {
// denoted in the paper as ξk, I'll call it Ek for simplicity
// using the recursive formula in chapter 2.5
if (p.length !== n) {
@@ -170,30 +170,6 @@ export function poissonBinomialPMF(k: number, n: number, p: any[]) {
return Ekj(k, n, p, lookup);
}
-/**
- * Calculates the probability that out of n tries with p probabilities, we get less than or equal k positive outcomes
- * @param k {Number} Number of desired positive outcomes
- * @param n {Number} Number of total tries
- * @param p {[Number]} Probability vector
- */
-export function poissonBinomialCDF(k: number, n: number, p: number[]) {
- // While technically equal to summing Ei from i = 0 to k, since we use recursion, a better solution is a lookup table
- if (p.length !== n) {
- throw new Error(
- 'You must supply a probability vector with the same length as the number of total tries into Poisson Binomial CDF',
- );
- }
- // see comments in poissonBinomialPMF
- const lookup = [...Array(n + 1)].map((_) => Array(n + 1).fill(null));
- let probability = 0;
- // since Ekj uses the values from "previous row" (Ekj(k - 1, j - 1, ...)), it's better to iterate from 0
- // this way, it produces the least necessary amount of calculations with the lookup table (only the Ekj(k, j - 1) parts)
- for (let i = 0; i <= k; i += 1) {
- probability += Ekj(i, n, p, lookup);
- }
- return probability;
-}
-
export function plotOneVariableBinomChart(
actualProcs: number,
procAttempts: number,
diff --git a/src/parser/shared/modules/hit-tracking/utilities.ts b/src/parser/shared/modules/hit-tracking/utilities.ts
index 572fe71fe26..02af78c23c6 100644
--- a/src/parser/shared/modules/hit-tracking/utilities.ts
+++ b/src/parser/shared/modules/hit-tracking/utilities.ts
@@ -4,7 +4,7 @@ import Enemies, { encodeEventSourceString } from 'parser/shared/modules/Enemies'
import IgnoredAbilities from './IgnoredAbilities';
-export function notableEnemy(enemies: Enemies, event: DamageEvent): boolean {
+function notableEnemy(enemies: Enemies, event: DamageEvent): boolean {
const enemyId = encodeEventSourceString(event);
if (!enemyId) {
return false;
diff --git a/src/parser/shared/normalizers/Channeling.ts b/src/parser/shared/normalizers/Channeling.ts
index 0d026b068bd..6e321845576 100644
--- a/src/parser/shared/normalizers/Channeling.ts
+++ b/src/parser/shared/normalizers/Channeling.ts
@@ -207,7 +207,7 @@ export function isRealCast(event: CastEvent): boolean {
}
/** Updates the ChannelState with a BeginChannelEvent */
-export function beginCurrentChannel(event: BeginCastEvent | CastEvent, channelState: ChannelState) {
+function beginCurrentChannel(event: BeginCastEvent | CastEvent, channelState: ChannelState) {
const beginChannel: BeginChannelEvent = {
type: EventType.BeginChannel,
ability: event.ability,
@@ -232,7 +232,7 @@ function copyTargetData(target: ChannelState['unresolvedChannel'], source: AnyEv
}
/** Updates the ChannelState with a EndChannelEvent tied to the current channel */
-export function endCurrentChannel(event: AnyEvent, channelState: ChannelState) {
+function endCurrentChannel(event: AnyEvent, channelState: ChannelState) {
if (!channelState.unresolvedChannel) {
// TODO log error?
return;
@@ -295,7 +295,7 @@ function attachChannelToCast(endChannelEvent: EndChannelEvent): void {
* @param channelState the current channel state
* @param currentEvent the current event being handled
*/
-export function cancelCurrentChannel(currentEvent: AnyEvent, channelState: ChannelState) {
+function cancelCurrentChannel(currentEvent: AnyEvent, channelState: ChannelState) {
if (channelState.unresolvedChannel !== null) {
channelState.unresolvedChannel.isCancelled = true;
channelState.unresolvedChannel = null;
@@ -317,7 +317,7 @@ export function cancelCurrentChannel(currentEvent: AnyEvent, channelState: Chann
*
* @param spellId the guid for the tracked Cast and RemoveBuff/RemoveDebuff events.
*/
-export function buffChannelSpec(spellId: number): ChannelSpec {
+function buffChannelSpec(spellId: number): ChannelSpec {
const guids = [spellId];
const handler: ChannelHandler = (
event: AnyEvent,
@@ -355,7 +355,7 @@ export function buffChannelSpec(spellId: number): ChannelSpec {
*
* @param spellId the guid for the tracked Empower Cast event.
*/
-export function empowerChannelSpec(spellId: number): ChannelSpec {
+function empowerChannelSpec(spellId: number): ChannelSpec {
const guids = [spellId];
const handler: ChannelHandler = (
event: AnyEvent,
@@ -400,7 +400,7 @@ export function empowerChannelSpec(spellId: number): ChannelSpec {
*
* @param spellId the guid for the tracked Cast events
*/
-export function nextCastChannelSpec(spellId: number): ChannelSpec {
+function nextCastChannelSpec(spellId: number): ChannelSpec {
const guids = [spellId];
const handler: ChannelHandler = (
event: AnyEvent,
diff --git a/src/parser/ui/PerformanceLabel.tsx b/src/parser/ui/PerformanceLabel.tsx
index 3d6ea231ec1..e1e7311a8bd 100644
--- a/src/parser/ui/PerformanceLabel.tsx
+++ b/src/parser/ui/PerformanceLabel.tsx
@@ -3,7 +3,7 @@ import { QualitativePerformance } from 'parser/ui/QualitativePerformance';
import { ComponentProps, ReactNode } from 'react';
import { PerformanceMark, qualitativePerformanceToColor } from 'interface/guide';
-export const ColoredText = styled.span`
+const ColoredText = styled.span`
color: ${(props) => props.color};
`;