From 1c70b16aec91e87bdde8b6f916b9357e31f32856 Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 14 May 2021 22:57:11 +1000 Subject: [PATCH 1/9] Update TS --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 76975d0a9d..bc85fb70ba 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "raw-loader": "^4.0.2", "style-loader": "^2.0.0", "ts-toolbelt": "^8.0.7", - "typescript": "~4.1", + "typescript": "~4.3.1-rc", "url-loader": "^4.1.1", "webpack": "^5.11.1", "webpack-cli": "^4.3.1", diff --git a/yarn.lock b/yarn.lock index ab5e622964..cb9279d83a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9948,10 +9948,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@~4.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +typescript@~4.3.1-rc: + version "4.3.1-rc" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.1-rc.tgz#925149c8d8514e20a6bd8d4bd7f42adac67ab59c" + integrity sha512-L3uJ0gcntaRaKni9aV2amYB+pCDVodKe/B5+IREyvtKGsDOF7cYjchHb/B894skqkgD52ykRuWatIZMqEsHIqA== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" From ee1e6a5a0821c8386556d298ab378a3df02b7dd2 Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 14 May 2021 22:58:12 +1000 Subject: [PATCH 2/9] Fix breaking changes --- src/components/BranchBanner.tsx | 2 +- src/parser/core/filter.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/BranchBanner.tsx b/src/components/BranchBanner.tsx index b6c5dcf8de..4964ffc206 100644 --- a/src/components/BranchBanner.tsx +++ b/src/components/BranchBanner.tsx @@ -12,7 +12,7 @@ import styles from './BranchBanner.module.css' @observer class BranchBannerComponent extends React.Component { static contextType = StoreContext - context!: React.ContextType + declare context: React.ContextType render() { const {reportStore} = this.context diff --git a/src/parser/core/filter.ts b/src/parser/core/filter.ts index b2476fafd4..5f797c349b 100644 --- a/src/parser/core/filter.ts +++ b/src/parser/core/filter.ts @@ -117,7 +117,6 @@ export type Filter = {}> = DistributedKeyof, Current>>, keyof Current >]: - // @ts-expect-error TS is failing to infer that Select is creating a subset FilterFunction } // Call signature for the filter From 9bda2449ed2bc5c1ce0d56feb837d65078c70a7b Mon Sep 17 00:00:00 2001 From: ackwell Date: Sat, 15 May 2021 00:07:16 +1000 Subject: [PATCH 3/9] Enable noImplicitOverrides --- tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/tsconfig.json b/tsconfig.json index dc118f81b3..2fffebf05d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "noEmit": true, "strict": true, + "noImplicitOverride": true, "target": "ESNext", "module": "ESNext", From 4342bc92fce29813a2ac6004deff01c4592eb97b Mon Sep 17 00:00:00 2001 From: ackwell Date: Sat, 15 May 2021 00:07:22 +1000 Subject: [PATCH 4/9] Add override syntax --- src/akkd/Container/Container.tsx | 2 +- src/akkd/List/List.tsx | 4 +- src/akkd/Message/Message.tsx | 2 +- src/akkd/Message/MessageHeader.tsx | 2 +- src/akkd/Segment/ExpandableSegment.tsx | 6 +- src/akkd/Segment/Segment.tsx | 2 +- src/components/BranchBanner.tsx | 4 +- src/components/Home/Home.tsx | 6 +- src/components/Home/ReportSearch.tsx | 2 +- .../LegacyAnalyse/ResultSegment.tsx | 8 +- .../LegacyAnalyse/SegmentPositionContext.tsx | 6 +- src/components/ui/ContributorLabel.tsx | 2 +- src/components/ui/JobIcon/JobIcon.tsx | 2 +- src/components/ui/PieChartWithLegend.tsx | 2 +- src/components/ui/Rotation.tsx | 2 +- src/components/ui/RotationTable.tsx | 2 +- src/components/ui/TimeLineChart.tsx | 2 +- .../bosses/e12_1/modules/Invulnerability.ts | 2 +- .../bosses/e12_2/modules/Invulnerability.ts | 2 +- .../bosses/e6/modules/Invulnerability.ts | 2 +- .../bosses/exVaris/modules/Invulnerability.ts | 2 +- .../bosses/nier11/modules/Invulnerability.ts | 2 +- .../bosses/nier4/modules/Invulnerability.ts | 2 +- .../bosses/tea/modules/Invulnerability.ts | 2 +- .../urLeviathan/modules/Invulnerability.ts | 2 +- .../bosses/urShiva/modules/Invulnerability.ts | 2 +- .../bosses/urTitan/modules/Invulnerability.ts | 2 +- src/parser/core/__tests__/Analyser.ts | 14 +-- src/parser/core/modules/Actors/Actors.tsx | 6 +- src/parser/core/modules/AdditionalEvents.ts | 8 +- src/parser/core/modules/AlwaysBeCasting.tsx | 4 +- src/parser/core/modules/AoEUsages.tsx | 8 +- src/parser/core/modules/BrokenLog.tsx | 12 +- src/parser/core/modules/BuffWindow.tsx | 8 +- .../core/modules/ChangeLog/ChangeLog.tsx | 10 +- .../core/modules/ChangeLog/Component.tsx | 4 +- src/parser/core/modules/Combos.tsx | 14 +-- src/parser/core/modules/CooldownDowntime.tsx | 10 +- src/parser/core/modules/Cooldowns.ts | 4 +- src/parser/core/modules/Data.ts | 2 +- src/parser/core/modules/Death.tsx | 6 +- src/parser/core/modules/Downtime.tsx | 4 +- src/parser/core/modules/EntityStatuses.ts | 4 +- .../core/modules/EventsView/EventsView.tsx | 12 +- src/parser/core/modules/Gauge/CounterGauge.ts | 2 +- src/parser/core/modules/Gauge/Gauge.tsx | 8 +- src/parser/core/modules/Gauge/TimerGauge.ts | 2 +- src/parser/core/modules/Interrupts.tsx | 8 +- src/parser/core/modules/Invulnerability.tsx | 6 +- src/parser/core/modules/NormalisedEvents.ts | 30 ++--- src/parser/core/modules/Overheal.tsx | 6 +- src/parser/core/modules/PetTimeline.tsx | 4 +- src/parser/core/modules/PrecastAction.ts | 6 +- .../modules/ResourceGraphs/ResourceGraphs.tsx | 2 +- .../modules/Statistics/StatisticComponent.tsx | 2 +- .../core/modules/Statistics/Statistics.tsx | 11 +- src/parser/core/modules/Swiftcast.tsx | 14 +-- src/parser/core/modules/Timeline/Timeline.tsx | 10 +- .../core/modules/Timeline/config/Row.tsx | 4 +- src/parser/core/modules/Tincture.ts | 4 +- .../core/modules/UnableToAct/UnableToAct.tsx | 6 +- .../ArcanaTracking/ArcanaSuggestions.tsx | 14 +-- .../modules/ArcanaTracking/ArcanaTracking.tsx | 10 +- .../ast/modules/CelestialIntersection.tsx | 4 +- .../jobs/ast/modules/CelestialOpposition.tsx | 4 +- src/parser/jobs/ast/modules/Combust.tsx | 8 +- src/parser/jobs/ast/modules/Cooldowns.tsx | 2 +- .../jobs/ast/modules/DivinationDowntime.tsx | 8 +- src/parser/jobs/ast/modules/Draw.tsx | 6 +- src/parser/jobs/ast/modules/EarthlyStar.tsx | 6 +- src/parser/jobs/ast/modules/Horoscope.tsx | 6 +- src/parser/jobs/ast/modules/Overheal.tsx | 6 +- src/parser/jobs/ast/modules/Sect/Sect.tsx | 6 +- src/parser/jobs/ast/modules/Synastry.tsx | 4 +- src/parser/jobs/blm/modules/OGCDDowntime.tsx | 8 +- .../jobs/blm/modules/RotationWatchdog.tsx | 10 +- src/parser/jobs/blu/modules/Weaving.ts | 2 +- .../jobs/brd/modules/AlwaysBeCasting.ts | 4 +- src/parser/jobs/brd/modules/ApexArrow.tsx | 8 +- src/parser/jobs/brd/modules/Barrage.tsx | 12 +- src/parser/jobs/brd/modules/OGCDDowntime.ts | 4 +- src/parser/jobs/brd/modules/RagingStrikes.tsx | 22 ++-- src/parser/jobs/brd/modules/Snapshots.tsx | 10 +- src/parser/jobs/dnc/modules/Combos.ts | 4 +- src/parser/jobs/dnc/modules/DirtyDancing.tsx | 10 +- src/parser/jobs/dnc/modules/Esprit.tsx | 10 +- src/parser/jobs/dnc/modules/FeatherGauge.tsx | 10 +- .../jobs/dnc/modules/Technicalities.tsx | 10 +- src/parser/jobs/dnc/modules/Weaving.ts | 6 +- src/parser/jobs/drg/modules/BattleLitany.tsx | 10 +- src/parser/jobs/drg/modules/Buffs.tsx | 6 +- src/parser/jobs/drg/modules/DragonSight.tsx | 22 ++-- src/parser/jobs/drg/modules/Drift.tsx | 12 +- src/parser/jobs/drg/modules/LanceCharge.tsx | 12 +- src/parser/jobs/drg/modules/OGCDDowntime.ts | 4 +- src/parser/jobs/drk/modules/BloodWeapon.tsx | 8 +- src/parser/jobs/drk/modules/Cooldowns.ts | 2 +- src/parser/jobs/drk/modules/Darkside.tsx | 8 +- src/parser/jobs/drk/modules/Delirium.tsx | 10 +- src/parser/jobs/drk/modules/EsteemTimeline.ts | 4 +- src/parser/jobs/drk/modules/OGCDDowntime.ts | 4 +- src/parser/jobs/drk/modules/Statuses.ts | 2 +- src/parser/jobs/gnb/modules/Ammo.tsx | 10 +- src/parser/jobs/gnb/modules/AmmoCombo.tsx | 8 +- src/parser/jobs/gnb/modules/Combos.tsx | 2 +- src/parser/jobs/gnb/modules/Cooldowns.tsx | 2 +- src/parser/jobs/gnb/modules/NoMercy.tsx | 8 +- src/parser/jobs/gnb/modules/Tincture.tsx | 4 +- src/parser/jobs/mch/modules/Drift.tsx | 8 +- src/parser/jobs/mch/modules/QueenTimeline.ts | 4 +- src/parser/jobs/mch/modules/Reassemble.tsx | 4 +- src/parser/jobs/mch/modules/Tincture.tsx | 8 +- src/parser/jobs/mch/modules/Weaving.ts | 4 +- src/parser/jobs/mnk/modules/Cooldowns.ts | 2 +- src/parser/jobs/mnk/modules/Demolish.tsx | 10 +- src/parser/jobs/mnk/modules/Fists.tsx | 8 +- src/parser/jobs/mnk/modules/Forms.tsx | 4 +- .../jobs/mnk/modules/MultiHitSkills.tsx | 4 +- src/parser/jobs/mnk/modules/OGCDDowntime.ts | 4 +- .../jobs/mnk/modules/PerfectBalance.tsx | 10 +- src/parser/jobs/mnk/modules/RiddleOfFire.tsx | 10 +- src/parser/jobs/mnk/modules/Speedmod.ts | 2 +- src/parser/jobs/mnk/modules/Steppies.tsx | 4 +- src/parser/jobs/mnk/modules/TwinSnakes.tsx | 4 +- src/parser/jobs/mnk/modules/Weaving.ts | 2 +- src/parser/jobs/pld/modules/Combos.tsx | 2 +- src/parser/jobs/pld/modules/Cooldowns.tsx | 2 +- src/parser/jobs/pld/modules/FightOrFlight.tsx | 8 +- src/parser/jobs/pld/modules/Goring.tsx | 8 +- src/parser/jobs/pld/modules/OGCDDowntime.tsx | 2 +- src/parser/jobs/pld/modules/Requiescat.tsx | 8 +- src/parser/jobs/pld/modules/Statuses.ts | 2 +- src/parser/jobs/pld/modules/Tincture.tsx | 6 +- src/parser/jobs/pld/modules/Weaving.tsx | 2 +- .../jobs/rdm/modules/GeneralCDDowntime.ts | 4 +- src/parser/jobs/rdm/modules/Interrupts.tsx | 2 +- src/parser/jobs/sam/modules/Combos.ts | 4 +- src/parser/jobs/sam/modules/Meikyo.tsx | 106 +++++++++--------- src/parser/jobs/sam/modules/OGCDDowntime.ts | 4 +- src/parser/jobs/sam/modules/Sen.tsx | 10 +- src/parser/jobs/sam/modules/Shoha.tsx | 12 +- src/parser/jobs/sch/modules/ChainStrat.tsx | 4 +- src/parser/jobs/smn/modules/EgiCommands.tsx | 8 +- .../jobs/smn/modules/GeneralCDDowntime.tsx | 2 +- src/parser/jobs/smn/modules/PetTimeline.ts | 4 +- src/parser/jobs/smn/modules/Physick.tsx | 6 +- src/parser/jobs/smn/modules/TriDisaster.tsx | 8 +- src/parser/jobs/smn/modules/Weaving.ts | 2 +- src/parser/jobs/war/modules/Combos.ts | 2 +- src/parser/jobs/war/modules/Cooldowns.ts | 2 +- src/parser/jobs/war/modules/Gauge.tsx | 4 +- src/parser/jobs/war/modules/InnerRelease.tsx | 12 +- src/parser/jobs/war/modules/StormsEye.tsx | 4 +- src/parser/jobs/whm/modules/oGCDs.tsx | 6 +- .../eventAdapter/deduplicateActorUpdates.ts | 2 +- .../eventAdapter/deduplicateStatus.ts | 2 +- .../eventAdapter/prepullAction.ts | 2 +- .../eventAdapter/prepullStatus.ts | 2 +- .../eventAdapter/reassignUnknownActor.ts | 2 +- .../legacyFflogs/eventAdapter/translate.ts | 2 +- src/reportSources/legacyFflogs/store.ts | 8 +- 161 files changed, 517 insertions(+), 524 deletions(-) diff --git a/src/akkd/Container/Container.tsx b/src/akkd/Container/Container.tsx index b361fe96ab..026b08da3f 100644 --- a/src/akkd/Container/Container.tsx +++ b/src/akkd/Container/Container.tsx @@ -7,7 +7,7 @@ interface Props { } export class Container extends React.PureComponent { - render() { + override render() { const {className, children} = this.props return (
{ - render() { + override render() { const { as: Component = 'div', children, @@ -40,7 +40,7 @@ interface ListProps { export class List extends React.PureComponent { static Item = ListItem - render() { + override render() { const {color, children} = this.props return ( diff --git a/src/akkd/Message/Message.tsx b/src/akkd/Message/Message.tsx index 6b5102f9bd..c6bc103016 100644 --- a/src/akkd/Message/Message.tsx +++ b/src/akkd/Message/Message.tsx @@ -26,7 +26,7 @@ interface Props extends MessageTypes { export class Message extends React.PureComponent { static Header = MessageHeader - render() { + override render() { const {icon, children} = this.props // Find the first message type that's truthy diff --git a/src/akkd/Message/MessageHeader.tsx b/src/akkd/Message/MessageHeader.tsx index 3c987e2df5..f209668c57 100644 --- a/src/akkd/Message/MessageHeader.tsx +++ b/src/akkd/Message/MessageHeader.tsx @@ -6,7 +6,7 @@ interface MessageHeaderProps { } export class MessageHeader extends React.PureComponent { - render() { + override render() { return (
{this.props.children} diff --git a/src/akkd/Segment/ExpandableSegment.tsx b/src/akkd/Segment/ExpandableSegment.tsx index 47c9ac1adc..68fe39119e 100644 --- a/src/akkd/Segment/ExpandableSegment.tsx +++ b/src/akkd/Segment/ExpandableSegment.tsx @@ -29,7 +29,7 @@ export class ExpandableSegment extends React.PureComponent { } } - componentDidMount() { + override componentDidMount() { const {current} = this.ref const { maxHeight, @@ -44,7 +44,7 @@ export class ExpandableSegment extends React.PureComponent { } } - componentDidUpdate(prevProps: Props) { + override componentDidUpdate(prevProps: Props) { // Animate the expand the first time it's requested if ( prevProps.collapsed !== false && @@ -78,7 +78,7 @@ export class ExpandableSegment extends React.PureComponent { }) } - render() { + override render() { const { seeMore, maxHeight: propHeight, diff --git a/src/akkd/Segment/Segment.tsx b/src/akkd/Segment/Segment.tsx index c54712d6aa..65702acf1d 100644 --- a/src/akkd/Segment/Segment.tsx +++ b/src/akkd/Segment/Segment.tsx @@ -9,7 +9,7 @@ interface SegmentProps { export class Segment extends React.PureComponent { static Expandable = ExpandableSegment - render() { + override render() { const {children} = this.props return
{children}
} diff --git a/src/components/BranchBanner.tsx b/src/components/BranchBanner.tsx index 4964ffc206..257732a9d4 100644 --- a/src/components/BranchBanner.tsx +++ b/src/components/BranchBanner.tsx @@ -11,10 +11,10 @@ import styles from './BranchBanner.module.css' @observer class BranchBannerComponent extends React.Component { - static contextType = StoreContext + static override contextType = StoreContext declare context: React.ContextType - render() { + override render() { const {reportStore} = this.context const {location} = this.props const {report} = reportStore diff --git a/src/components/Home/Home.tsx b/src/components/Home/Home.tsx index 7b1002bf9a..1b414eab17 100644 --- a/src/components/Home/Home.tsx +++ b/src/components/Home/Home.tsx @@ -23,14 +23,14 @@ If you have any questions, suggestions, or would just like to have a chat - drop @observer class Home extends Component { - static contextType = StoreContext + static override contextType = StoreContext - componentDidMount() { + override componentDidMount() { // Clean out the report state when the user returns to the home page this.context.reportStore.clearReport() } - render() { + override render() { return <>
diff --git a/src/components/Home/ReportSearch.tsx b/src/components/Home/ReportSearch.tsx index 101c8d653f..bf43a5511a 100644 --- a/src/components/Home/ReportSearch.tsx +++ b/src/components/Home/ReportSearch.tsx @@ -30,7 +30,7 @@ class ReportSearch extends React.Component { this.result = parseInput(this.value) } - render() { + override render() { if (this.result.valid) { return } diff --git a/src/components/LegacyAnalyse/ResultSegment.tsx b/src/components/LegacyAnalyse/ResultSegment.tsx index 4333f2c775..73ffd3cabd 100644 --- a/src/components/LegacyAnalyse/ResultSegment.tsx +++ b/src/components/LegacyAnalyse/ResultSegment.tsx @@ -50,7 +50,7 @@ export default class ResultSegment extends React.PureComponent imp this.state = state } - componentDidMount() { + override componentDidMount() { // semantic-ui-react doesn't support refs at all, so we'd either need a wrapping div that's there // just to be ref'd, or we need the ReactDOM hacks. We _need_ the element to have a size so we can't // just jam it in as a 0-size child that wouldn't cause any trouble. @@ -63,7 +63,7 @@ export default class ResultSegment extends React.PureComponent imp } } - componentDidUpdate(prevProps: Readonly) { + override componentDidUpdate(prevProps: Readonly) { if (this.props.index !== prevProps.index) { this.positionContext.unregister(prevProps.index) } @@ -78,7 +78,7 @@ export default class ResultSegment extends React.PureComponent imp } } - componentWillUnmount() { + override componentWillUnmount() { if (ResultSegment.instances.get(this.props.result.handle) === this) { ResultSegment.instances.delete(this.props.result.handle) } @@ -87,7 +87,7 @@ export default class ResultSegment extends React.PureComponent imp this.positionContext.unregister(this.props.index) } - render() { + override render() { return {value => { this.positionContext = value return this.renderContent() diff --git a/src/components/LegacyAnalyse/SegmentPositionContext.tsx b/src/components/LegacyAnalyse/SegmentPositionContext.tsx index 2431570c41..ebe53ec354 100644 --- a/src/components/LegacyAnalyse/SegmentPositionContext.tsx +++ b/src/components/LegacyAnalyse/SegmentPositionContext.tsx @@ -19,7 +19,7 @@ interface ProviderState extends Context { } export class SegmentPositionProvider extends React.PureComponent, ProviderState> { - readonly state: Readonly = { + override readonly state: Readonly = { active: null, register: this.register.bind(this), unregister: this.unregister.bind(this), @@ -28,7 +28,7 @@ export class SegmentPositionProvider extends React.PureComponent() - componentDidUpdate(_prevProps: Readonly>, prevState: Readonly) { + override componentDidUpdate(_prevProps: Readonly>, prevState: Readonly) { const {registry} = this.state if (registry !== prevState.registry) { const toCheck = Array.from(registry.keys()).sort((a, b) => a - b) @@ -43,7 +43,7 @@ export class SegmentPositionProvider extends React.PureComponent{this.props.children} } diff --git a/src/components/ui/ContributorLabel.tsx b/src/components/ui/ContributorLabel.tsx index 6f8cecac26..4db8da0f1a 100644 --- a/src/components/ui/ContributorLabel.tsx +++ b/src/components/ui/ContributorLabel.tsx @@ -9,7 +9,7 @@ interface ContributorLabelProps { } export default class ContributorLabel extends PureComponent { - render() { + override render() { const {contributor, detail} = this.props const {avatar, name, jobs} = contributor diff --git a/src/components/ui/JobIcon/JobIcon.tsx b/src/components/ui/JobIcon/JobIcon.tsx index 7c628116d2..1ac433606c 100644 --- a/src/components/ui/JobIcon/JobIcon.tsx +++ b/src/components/ui/JobIcon/JobIcon.tsx @@ -8,7 +8,7 @@ interface Props { } export default class JobIcon extends React.PureComponent { - render() { + override render() { const { job: {icon}, scale = 2, diff --git a/src/components/ui/PieChartWithLegend.tsx b/src/components/ui/PieChartWithLegend.tsx index cb7a99c468..8994dbce05 100644 --- a/src/components/ui/PieChartWithLegend.tsx +++ b/src/components/ui/PieChartWithLegend.tsx @@ -21,7 +21,7 @@ type Props = ChartComponentProps & { const MISSING_COLOUR_FALLBACK = '#888' export default class PieChartWithLegend extends React.Component { - render() { + override render() { const { data: propData, headers, diff --git a/src/components/ui/Rotation.tsx b/src/components/ui/Rotation.tsx index 47c2a81bfb..6c3e9c5667 100644 --- a/src/components/ui/Rotation.tsx +++ b/src/components/ui/Rotation.tsx @@ -11,7 +11,7 @@ interface RotationProps { } export default class Rotation extends Component { - render() { + override render() { const {events} = this.props return
diff --git a/src/components/ui/RotationTable.tsx b/src/components/ui/RotationTable.tsx index d82d7aff18..dd132cca08 100644 --- a/src/components/ui/RotationTable.tsx +++ b/src/components/ui/RotationTable.tsx @@ -222,7 +222,7 @@ export class RotationTable extends React.Component { } - render(): React.ReactNode { + override render(): React.ReactNode { const { targets, notes, diff --git a/src/components/ui/TimeLineChart.tsx b/src/components/ui/TimeLineChart.tsx index 4ee85a7dc9..e3a7e4f872 100644 --- a/src/components/ui/TimeLineChart.tsx +++ b/src/components/ui/TimeLineChart.tsx @@ -34,7 +34,7 @@ export default class TimeLineChart extends PureComponent { options: PropTypes.object, } - render() { + override render() { const options = _.merge({}, DEFAULT_OPTIONS, this.props.options || {}) return { it('cannot depend on legacy modules', () => { class ThrowingAnalyser extends Analyser { - static handle = 'throwing' - static dependencies = ['analyser', 'module'] + static override handle = 'throwing' + static override dependencies = ['analyser', 'module'] } expect(() => new ThrowingAnalyser(parser)) @@ -44,7 +44,7 @@ describe('Analyser', () => { const callback = () => { /* noop */ } class TestAnalyser extends Analyser { - static handle = 'test' + static override handle = 'test' test() { this.addEventHook(predicate, callback) } } @@ -64,7 +64,7 @@ describe('Analyser', () => { let hook: EventHook class TestAnalyser extends Analyser { - static handle = 'test' + static override handle = 'test' add() { hook = this.addEventHook(predicate, callback) } remove() { this.removeEventHook(hook) } } @@ -84,7 +84,7 @@ describe('Analyser', () => { const callback = () => { /* noop */ } class TestAnalyser extends Analyser { - static handle = 'test' + static override handle = 'test' stringType() { this.addEventHook('action', callback) } partialEvent() { this.addEventHook({type: 'action'}, callback) } } @@ -112,7 +112,7 @@ describe('Analyser', () => { const callback = () => { /* noop */ } class TestAnalyser extends Analyser { - static handle = 'test' + static override handle = 'test' test() { this.addTimestampHook(timestamp, callback) } } @@ -132,7 +132,7 @@ describe('Analyser', () => { let hook: TimestampHook class TestAnalyser extends Analyser { - static handle = 'test' + static override handle = 'test' add() { hook = this.addTimestampHook(timestamp, callback) } remove() { this.removeTimestampHook(hook) } } diff --git a/src/parser/core/modules/Actors/Actors.tsx b/src/parser/core/modules/Actors/Actors.tsx index f666c887fa..1abefde8ab 100644 --- a/src/parser/core/modules/Actors/Actors.tsx +++ b/src/parser/core/modules/Actors/Actors.tsx @@ -8,14 +8,14 @@ import {ResourceDatum, ResourceGraphs} from '../ResourceGraphs' import {Actor} from './Actor' export class Actors extends Analyser { - static handle = 'actors' - static displayOrder = -Infinity + static override handle = 'actors' + static override displayOrder = -Infinity @dependency private resourceGraphs!: ResourceGraphs private actors = new Map() - initialise() { + override initialise() { this.addEventHook('actorUpdate', this.onUpdate) this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/core/modules/AdditionalEvents.ts b/src/parser/core/modules/AdditionalEvents.ts index cdf8f542f0..64ee49f667 100644 --- a/src/parser/core/modules/AdditionalEvents.ts +++ b/src/parser/core/modules/AdditionalEvents.ts @@ -8,7 +8,7 @@ const queries = Symbol('queries') const hasExecuted = Symbol('hasExecuted') export class AdditionalEventQueries extends Module { - static handle = 'additionalEventQueries' + static override handle = 'additionalEventQueries' private [queries]: string[] = [] private [hasExecuted] = false @@ -23,12 +23,12 @@ export class AdditionalEventQueries extends Module { } export class AdditionalEvents extends Module { - static handle = 'additionalEvents' - static debug = true + static override handle = 'additionalEvents' + static override debug = true @dependency private queryModule!: AdditionalEventQueries - async normalise(events: Event[]): Promise { + override async normalise(events: Event[]): Promise { this.queryModule[hasExecuted] = true const registeredQueries = this.queryModule[queries] diff --git a/src/parser/core/modules/AlwaysBeCasting.tsx b/src/parser/core/modules/AlwaysBeCasting.tsx index 33933294d4..a0422e590d 100644 --- a/src/parser/core/modules/AlwaysBeCasting.tsx +++ b/src/parser/core/modules/AlwaysBeCasting.tsx @@ -6,13 +6,13 @@ import GlobalCooldown from 'parser/core/modules/GlobalCooldown' import React from 'react' export default class AlwaysBeCasting extends Module { - static handle = 'abc' + static override handle = 'abc' @dependency private checklist!: Checklist @dependency protected downtime!: Downtime @dependency protected gcd!: GlobalCooldown - protected init() { + protected override init() { this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/core/modules/AoEUsages.tsx b/src/parser/core/modules/AoEUsages.tsx index 7b86d46627..2a3de8cca7 100644 --- a/src/parser/core/modules/AoEUsages.tsx +++ b/src/parser/core/modules/AoEUsages.tsx @@ -42,8 +42,8 @@ interface SeverityTiers { * AoE combos when the number of targets may drop below the minimum during the combo. */ export abstract class AoEUsages extends Module { - static handle = 'aoeusages' - static title = t('core.aoeusages.title')`Incorrect AoE Action Usage` + static override handle = 'aoeusages' + static override title = t('core.aoeusages.title')`Incorrect AoE Action Usage` @dependency private suggestions!: Suggestions @@ -72,7 +72,7 @@ export abstract class AoEUsages extends Module { private badUsages = new Map() - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player', abilityId: this.trackedActions.map(a => a.aoeAction.id)}, this.onAbility) this.addEventHook('complete', this.onComplete) } @@ -112,7 +112,7 @@ export abstract class AoEUsages extends Module { })) } - output() { + override output() { // if no bad usages were found, do not output anything if (this.badUsages.size === 0) { return } diff --git a/src/parser/core/modules/BrokenLog.tsx b/src/parser/core/modules/BrokenLog.tsx index ba92dd4cea..41b156e2a9 100644 --- a/src/parser/core/modules/BrokenLog.tsx +++ b/src/parser/core/modules/BrokenLog.tsx @@ -20,10 +20,10 @@ interface Trigger { } export default class BrokenLog extends Analyser { - static handle = 'brokenLog' - static title = t('core.broken-log.title')`Broken Log` - static displayOrder = DISPLAY_ORDER.BROKEN_LOG - static displayMode = DisplayMode.RAW + static override handle = 'brokenLog' + static override title = t('core.broken-log.title')`Broken Log` + static override displayOrder = DISPLAY_ORDER.BROKEN_LOG + static override displayMode = DisplayMode.RAW @dependency private data!: Data @@ -67,7 +67,7 @@ export default class BrokenLog extends Analyser { }) } - initialise() { + override initialise() { const unknownAction = this.data.actions.UNKNOWN.id this.addEventHook({cause: {type: 'action', action: unknownAction}}, this.triggerUnknownCause) this.addEventHook({action: unknownAction}, this.triggerUnknownCause) @@ -85,7 +85,7 @@ export default class BrokenLog extends Analyser { )) } - output() { + override output() { if (this.triggers.size === 0) { return false } diff --git a/src/parser/core/modules/BuffWindow.tsx b/src/parser/core/modules/BuffWindow.tsx index 5aa6ad0df3..7526145d40 100644 --- a/src/parser/core/modules/BuffWindow.tsx +++ b/src/parser/core/modules/BuffWindow.tsx @@ -96,8 +96,8 @@ export interface BuffWindowTrackedAction { } export abstract class BuffWindowModule extends Module { - static handle: string = 'buffwindow' - static title: MessageDescriptor = t('core.buffwindow.title')`Buff Window` + static override handle: string = 'buffwindow' + static override title: MessageDescriptor = t('core.buffwindow.title')`Buff Window` /** * Implementing modules MUST define the ACTION object for the action that initiates the buff window @@ -168,7 +168,7 @@ export abstract class BuffWindowModule extends Module { return undefined } - protected init() { + protected override init() { // ensure array this.buffStatusArray = ensureArray(this.buffStatus) @@ -441,7 +441,7 @@ export abstract class BuffWindowModule extends Module { } } - output() { + override output() { if (this.buffWindows.length === 0) { return this.generateBuffNotUsedOutput() } diff --git a/src/parser/core/modules/ChangeLog/ChangeLog.tsx b/src/parser/core/modules/ChangeLog/ChangeLog.tsx index 724f45a4df..44adaf9602 100644 --- a/src/parser/core/modules/ChangeLog/ChangeLog.tsx +++ b/src/parser/core/modules/ChangeLog/ChangeLog.tsx @@ -5,13 +5,13 @@ import DISPLAY_ORDER from '../DISPLAY_ORDER' import {default as ChangelogComponent} from './Component' export default class ChangeLog extends Analyser { - static handle = 'changelog' - static displayOrder = DISPLAY_ORDER.CHANGELOG - static displayMode = DisplayMode.FULL + static override handle = 'changelog' + static override displayOrder = DISPLAY_ORDER.CHANGELOG + static override displayMode = DisplayMode.FULL - static title = t('core.changelog.title')`Changelog` + static override title = t('core.changelog.title')`Changelog` - output() { + override output() { const {changelog} = this.parser.meta if (changelog.length === 0) { diff --git a/src/parser/core/modules/ChangeLog/Component.tsx b/src/parser/core/modules/ChangeLog/Component.tsx index 72b93b5fd9..2c7c779fe1 100644 --- a/src/parser/core/modules/ChangeLog/Component.tsx +++ b/src/parser/core/modules/ChangeLog/Component.tsx @@ -18,7 +18,7 @@ export default class ChangeLog extends React.PureComponent { })), } - state = { + override state = { activeIndexes: new Set(), } @@ -36,7 +36,7 @@ export default class ChangeLog extends React.PureComponent { this.setState({activeIndexes: newIndexes}) } - render() { + override render() { const {activeIndexes} = this.state return diff --git a/src/parser/core/modules/Combos.tsx b/src/parser/core/modules/Combos.tsx index 9ba40323c5..5ed55bfb2b 100644 --- a/src/parser/core/modules/Combos.tsx +++ b/src/parser/core/modules/Combos.tsx @@ -23,8 +23,8 @@ const ISSUE_TYPENAMES = { export class ComboEvent extends NormalisedEventFields { type = 'combo' as const - calculatedEvents: DamageEvent[] = [] - confirmedEvents: DamageEvent[] = [] + override calculatedEvents: DamageEvent[] = [] + override confirmedEvents: DamageEvent[] = [] constructor(event: NormalisedDamageEvent) { super() @@ -47,9 +47,9 @@ export interface ComboIssue { } export default class Combos extends Module { - static handle = 'combos' - static title = t('core.combos.title')`Combo Issues` - static displayOrder = DISPLAY_ORDER.COMBOS + static override handle = 'combos' + static override title = t('core.combos.title')`Combo Issues` + static override displayOrder = DISPLAY_ORDER.COMBOS // This should be redefined by subclassing modules; the default is the basic 'Attack' icon static suggestionIcon = 'https://xivapi.com/i/000000/000405.png' @@ -62,7 +62,7 @@ export default class Combos extends Module { private currentComboChain: NormalisedDamageEvent[] = [] private issues: ComboIssue[] = [] - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player'}, this.onCast) this.addEventHook('complete', this.onComplete) } @@ -255,7 +255,7 @@ export default class Combos extends Module { return false } - output(): React.ReactNode { + override output(): React.ReactNode { if (this.issues.length <= 0) { return false } diff --git a/src/parser/core/modules/CooldownDowntime.tsx b/src/parser/core/modules/CooldownDowntime.tsx index 072e46bd6c..68559feaff 100644 --- a/src/parser/core/modules/CooldownDowntime.tsx +++ b/src/parser/core/modules/CooldownDowntime.tsx @@ -66,9 +66,9 @@ const DEFAULT_CHECKLIST_TARGET = 95 const DEFAULT_ALLOWED_AVERAGE_DOWNTIME = 1250 export abstract class CooldownDowntime extends Module { - static handle = 'cooldownDowntime' - static title = t('core.cooldownDowntime.title')`Cooldown Downtime` - static debug = false + static override handle = 'cooldownDowntime' + static override title = t('core.cooldownDowntime.title')`Cooldown Downtime` + static override debug = false @dependency private data!: Data @dependency private downtime!: Downtime @@ -107,7 +107,7 @@ export abstract class CooldownDowntime extends Module { return true } - protected init() { + protected override init() { const trackedIds = this.trackedCds.map(group => group.cooldowns) .reduce((acc, cur) => acc.concat(cur)) .map(action => action.id) @@ -319,7 +319,7 @@ class WeightedRule extends Rule { this.requirements.map(req => req.weight = req.weight / totalWeight) } - public get percent(): number { + public override get percent(): number { return this.requirements.reduce((acc, req) => acc + (req.percent * req.weight), 0) } } diff --git a/src/parser/core/modules/Cooldowns.ts b/src/parser/core/modules/Cooldowns.ts index c4cb683725..73c3171696 100644 --- a/src/parser/core/modules/Cooldowns.ts +++ b/src/parser/core/modules/Cooldowns.ts @@ -31,7 +31,7 @@ interface CooldownHistory { // Track the cooldowns on actions and shit export default class Cooldowns extends Module { - static handle = 'cooldowns' + static override handle = 'cooldowns' @dependency private data!: Data @dependency private downtime!: Downtime @@ -47,7 +47,7 @@ export default class Cooldowns extends Module { private _cooldowns = new Map() private _rows = new Map() - protected init() { + protected override init() { const constructor = this.constructor as typeof Cooldowns // Pre-build rows for actions explicitly set by subclasses if (constructor.cooldownOrder) { diff --git a/src/parser/core/modules/Data.ts b/src/parser/core/modules/Data.ts index 97d6deddde..a83cc7181a 100644 --- a/src/parser/core/modules/Data.ts +++ b/src/parser/core/modules/Data.ts @@ -16,7 +16,7 @@ import {Analyser} from 'parser/core/Analyser' import {oneOf} from 'parser/core/filter' export class Data extends Analyser { - static handle = 'data' + static override handle = 'data' get actions() { return this.getAppliedData(actionRoot, actionLayers) diff --git a/src/parser/core/modules/Death.tsx b/src/parser/core/modules/Death.tsx index 24d08643be..f13a292d14 100644 --- a/src/parser/core/modules/Death.tsx +++ b/src/parser/core/modules/Death.tsx @@ -44,8 +44,8 @@ declare module 'legacyEvent' { } export class Death extends Analyser { - static handle = 'death' - static debug = true + static override handle = 'death' + static override debug = true @dependency private data!: Data @dependency private suggestions!: Suggestions @@ -63,7 +63,7 @@ export class Death extends Analyser { private count = 0 private _deadTime = 0 - initialise() { + override initialise() { // TODO: Look into generalising this to handle actors other than the parsed PC? // An actor hitting 0 HP is a sign of a death. diff --git a/src/parser/core/modules/Downtime.tsx b/src/parser/core/modules/Downtime.tsx index 13107268d2..f9165ff09e 100644 --- a/src/parser/core/modules/Downtime.tsx +++ b/src/parser/core/modules/Downtime.tsx @@ -10,13 +10,13 @@ interface DowntimeWindow { } export default class Downtime extends Module { - static handle = 'downtime' + static override handle = 'downtime' @dependency private readonly unableToAct!: UnableToAct @dependency private readonly invulnerability!: Invulnerability @dependency private readonly timeline!: Timeline - protected init() { + protected override init() { this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/core/modules/EntityStatuses.ts b/src/parser/core/modules/EntityStatuses.ts index e0d20b5562..07803977b4 100644 --- a/src/parser/core/modules/EntityStatuses.ts +++ b/src/parser/core/modules/EntityStatuses.ts @@ -35,8 +35,8 @@ interface StatusInfoTracking { } export class EntityStatuses extends Module { - static handle = 'entityStatuses' - static debug = false + static override handle = 'entityStatuses' + static override debug = false @dependency private invulnerability!: Invulnerability @dependency private data!: Data diff --git a/src/parser/core/modules/EventsView/EventsView.tsx b/src/parser/core/modules/EventsView/EventsView.tsx index 8321507cc8..3d359a06eb 100644 --- a/src/parser/core/modules/EventsView/EventsView.tsx +++ b/src/parser/core/modules/EventsView/EventsView.tsx @@ -14,14 +14,14 @@ import styles from './EventsView.module.css' const rowHeight = parseInt(styles.rowHeight, 10) export class EventsView extends Analyser { - static title = 'Events View' - static handle = 'eventsView' - static displayOrder = DISPLAY_ORDER.EVENTS_VIEW - static debug = true + static override title = 'Events View' + static override handle = 'eventsView' + static override displayOrder = DISPLAY_ORDER.EVENTS_VIEW + static override debug = true private events: Event[] = [] - initialise() { + override initialise() { this.debug(() => { // Catch every event. Note: if you're reading this - don't use the predicate for logic unless you know exactly what you're doing. // It's a massive anti-pattern, and I'm only doing it here as a microoptimisation for a single use case. If you're not sure, ask. @@ -32,7 +32,7 @@ export class EventsView extends Analyser { }) } - output() { + override output() { if (this.events.length === 0) { return null } diff --git a/src/parser/core/modules/Gauge/CounterGauge.ts b/src/parser/core/modules/Gauge/CounterGauge.ts index aa3145bff4..25afd78048 100644 --- a/src/parser/core/modules/Gauge/CounterGauge.ts +++ b/src/parser/core/modules/Gauge/CounterGauge.ts @@ -121,7 +121,7 @@ export class CounterGauge extends AbstractGauge { } /** @inheritdoc */ - generateDataset() { + override generateDataset() { // If there's no chart options, provide nothing if (!this.chartOptions) { return diff --git a/src/parser/core/modules/Gauge/Gauge.tsx b/src/parser/core/modules/Gauge/Gauge.tsx index 2266009209..3d5beed01b 100644 --- a/src/parser/core/modules/Gauge/Gauge.tsx +++ b/src/parser/core/modules/Gauge/Gauge.tsx @@ -7,12 +7,12 @@ import {AbstractGauge} from './AbstractGauge' import {TimerGauge} from './TimerGauge' export class Gauge extends Module { - static handle = 'gauge' - static title = t('core.gauge.title')`Gauge` + static override handle = 'gauge' + static override title = t('core.gauge.title')`Gauge` private gauges: AbstractGauge[] = [] - protected init() { + protected override init() { this.addEventHook('death', {to: 'player'}, this.onDeath) } @@ -34,7 +34,7 @@ export class Gauge extends Module { this.gauges.forEach(gauge => gauge.reset()) } - output() { + override output() { // Generate a dataset from each registered gauge const datasets = this.gauges .map(gauge => gauge.generateDataset()) diff --git a/src/parser/core/modules/Gauge/TimerGauge.ts b/src/parser/core/modules/Gauge/TimerGauge.ts index 68cb68bc69..6cf2f93abd 100644 --- a/src/parser/core/modules/Gauge/TimerGauge.ts +++ b/src/parser/core/modules/Gauge/TimerGauge.ts @@ -176,7 +176,7 @@ export class TimerGauge extends AbstractGauge { } /** @inheritdoc */ - generateDataset() { + override generateDataset() { // Skip charting if they've not enabled it if (!this.chartOptions) { return diff --git a/src/parser/core/modules/Interrupts.tsx b/src/parser/core/modules/Interrupts.tsx index 4f0e1f975a..fcfdf40466 100644 --- a/src/parser/core/modules/Interrupts.tsx +++ b/src/parser/core/modules/Interrupts.tsx @@ -20,8 +20,8 @@ interface SeverityTiers { const TIMELINE_UPPER_MOD: number = 30000 export class Interrupts extends Module { - static handle: string = 'interrupts' - static title: MessageDescriptor = t('core.interrupts.title')`Interrupted Casts` + static override handle: string = 'interrupts' + static override title: MessageDescriptor = t('core.interrupts.title')`Interrupted Casts` @dependency protected data!: Data @dependency private globalCooldown!: GlobalCooldown @@ -72,7 +72,7 @@ export class Interrupts extends Module { return undefined } - protected init() { + protected override init() { this.addEventHook('begincast', {by: 'player'}, this.onBeginCast) this.addEventHook('cast', {by: 'player'}, this.onCast) @@ -117,7 +117,7 @@ export class Interrupts extends Module { })) } - output() { + override output() { if (this.droppedCasts.length === 0) { return this.noInterruptsOutput() } diff --git a/src/parser/core/modules/Invulnerability.tsx b/src/parser/core/modules/Invulnerability.tsx index 97d0875416..c377fd6602 100644 --- a/src/parser/core/modules/Invulnerability.tsx +++ b/src/parser/core/modules/Invulnerability.tsx @@ -109,8 +109,8 @@ export interface WindowFilter { const DEFAULT_ACTOR_FILTER = filter().team(Team.FOE) export class Invulnerability extends Analyser { - static handle = 'invulnerability' - static debug = false + static override handle = 'invulnerability' + static override debug = false @dependency private timeline!: Timeline @@ -278,7 +278,7 @@ export class Invulnerability extends Analyser { // #region Tracking // ===== - initialise() { + override initialise() { const reportSource = this.parser.newReport.meta.source // Flatten any subclass actor config to a map by the current report sources' diff --git a/src/parser/core/modules/NormalisedEvents.ts b/src/parser/core/modules/NormalisedEvents.ts index a9051f252f..252da76aeb 100644 --- a/src/parser/core/modules/NormalisedEvents.ts +++ b/src/parser/core/modules/NormalisedEvents.ts @@ -151,8 +151,8 @@ export class NormalisedEventFields { export interface NormalisedDamageEvent extends Omit, NormalisedEventFields {} export class NormalisedDamageEvent extends NormalisedEventFields { type = 'normaliseddamage' as const - calculatedEvents: DamageEvent[] = [] - confirmedEvents: DamageEvent[] = [] + override calculatedEvents: DamageEvent[] = [] + override confirmedEvents: DamageEvent[] = [] constructor(event: DamageEvent) { super() @@ -163,8 +163,8 @@ export class NormalisedDamageEvent extends NormalisedEventFields { export interface NormalisedHealEvent extends Omit, NormalisedEventFields {} export class NormalisedHealEvent extends NormalisedEventFields { type = 'normalisedheal' as const - calculatedEvents: HealEvent[] = [] - confirmedEvents: HealEvent[] = [] + override calculatedEvents: HealEvent[] = [] + override confirmedEvents: HealEvent[] = [] constructor(event: HealEvent) { super() @@ -175,8 +175,8 @@ export class NormalisedHealEvent extends NormalisedEventFields { export interface NormalisedApplyBuffEvent extends Omit, NormalisedEventFields {} export class NormalisedApplyBuffEvent extends NormalisedEventFields { type = 'normalisedapplybuff' as const - calculatedEvents: BuffEvent[] = [] - confirmedEvents: BuffEvent[] = [] + override calculatedEvents: BuffEvent[] = [] + override confirmedEvents: BuffEvent[] = [] constructor(event: BuffEvent) { super() @@ -187,8 +187,8 @@ export class NormalisedApplyBuffEvent extends NormalisedEventFields { export interface NormalisedApplyDebuffEvent extends Omit, NormalisedEventFields {} export class NormalisedApplyDebuffEvent extends NormalisedEventFields { type = 'normalisedapplydebuff' as const - calculatedEvents: BuffEvent[] = [] - confirmedEvents: BuffEvent[] = [] + override calculatedEvents: BuffEvent[] = [] + override confirmedEvents: BuffEvent[] = [] constructor(event: BuffEvent) { super() @@ -199,8 +199,8 @@ export class NormalisedApplyDebuffEvent extends NormalisedEventFields { export interface NormalisedRemoveBuffEvent extends Omit, NormalisedEventFields {} export class NormalisedRemoveBuffEvent extends NormalisedEventFields { type = 'normalisedremovebuff' as const - calculatedEvents: BuffEvent[] = [] - confirmedEvents: BuffEvent[] = [] + override calculatedEvents: BuffEvent[] = [] + override confirmedEvents: BuffEvent[] = [] constructor(event: BuffEvent) { super() @@ -211,8 +211,8 @@ export class NormalisedRemoveBuffEvent extends NormalisedEventFields { export interface NormalisedRemoveDebuffEvent extends Omit, NormalisedEventFields {} export class NormalisedRemoveDebuffEvent extends NormalisedEventFields { type = 'normalisedremovedebuff' as const - calculatedEvents: BuffEvent[] = [] - confirmedEvents: BuffEvent[] = [] + override calculatedEvents: BuffEvent[] = [] + override confirmedEvents: BuffEvent[] = [] constructor(event: BuffEvent) { super() @@ -235,15 +235,15 @@ declare module 'legacyEvent' { } export class NormalisedEvents extends Module { - static handle = 'normalisedEvents' - static debug = false + static override handle = 'normalisedEvents' + static override debug = false @dependency private hitType!: HitType // Dependency to ensure HitType properties are available for determining hit success @dependency private precastStatus!: PrecastStatus // Dependency to ensure events synthed by precast status are normalised private _normalisedEvents = new Map() - normalise(events: Event[]): Event[] { + override normalise(events: Event[]): Event[] { events.forEach(this.normaliseEvent) return sortEvents(events.concat(Array.from(this._normalisedEvents.values()))) diff --git a/src/parser/core/modules/Overheal.tsx b/src/parser/core/modules/Overheal.tsx index 971b7e58c4..06ba8d9679 100644 --- a/src/parser/core/modules/Overheal.tsx +++ b/src/parser/core/modules/Overheal.tsx @@ -100,7 +100,7 @@ export class TrackedOverheal { } export class CoreOverheal extends Module { - static handle: string = 'overheal' + static override handle: string = 'overheal' @dependency private checklist!: Checklist @dependency private suggestions!: Suggestions @@ -185,7 +185,7 @@ export class CoreOverheal extends Module { return You had an overheal of { overhealPercent.toFixed(2) }% } - protected init() { + protected override init() { this.direct = new TrackedOverheal({ name: this.overhealName, color: this.overhealColor, @@ -343,7 +343,7 @@ class InvertedRequirement extends Requirement { return 100 - this.percent } - get content() { + override get content() { if (this._percent !== null || this.value === null) { return `${this.percentInverted.toFixed(2)}%` } return `${this.value.toFixed(0)}/${this.target.toFixed(0)}` // avoid weird floating point shit } diff --git a/src/parser/core/modules/PetTimeline.tsx b/src/parser/core/modules/PetTimeline.tsx index ef96444733..5b70ac2750 100644 --- a/src/parser/core/modules/PetTimeline.tsx +++ b/src/parser/core/modules/PetTimeline.tsx @@ -6,7 +6,7 @@ import Cooldowns from './Cooldowns' // This module puts pet skills on the timeline beneath the GCD spells export default class PetTimeline extends Module { - static handle = 'pettimeline' + static override handle = 'pettimeline' @dependency private data!: Data @dependency private timeline!: Timeline @@ -52,7 +52,7 @@ export default class PetTimeline extends Module { return false } - protected init() { + protected override init() { this.addEventHook('cast', {by: 'pet'}, this.onCast) this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/core/modules/PrecastAction.ts b/src/parser/core/modules/PrecastAction.ts index 51fef583f0..2c58adbbe9 100644 --- a/src/parser/core/modules/PrecastAction.ts +++ b/src/parser/core/modules/PrecastAction.ts @@ -6,12 +6,12 @@ import {Data} from 'parser/core/modules/Data' // Actions that initiate a pull are only a damage event - no cast // Fabricate fake cast events to clean up the mess export default class PrecastAction extends Module { - static handle = 'precastAction' - static debug = false + static override handle = 'precastAction' + static override debug = false @dependency private data!: Data - normalise(events: Event[]): Event[] { + override normalise(events: Event[]): Event[] { const startTime = this.parser.eventTimeOffset for (const event of events) { diff --git a/src/parser/core/modules/ResourceGraphs/ResourceGraphs.tsx b/src/parser/core/modules/ResourceGraphs/ResourceGraphs.tsx index bbd3a51b87..d1de875148 100644 --- a/src/parser/core/modules/ResourceGraphs/ResourceGraphs.tsx +++ b/src/parser/core/modules/ResourceGraphs/ResourceGraphs.tsx @@ -24,7 +24,7 @@ export interface ResourceData extends ResourceMeta { } export class ResourceGraphs extends Analyser { - static handle = 'resourceGraphs' + static override handle = 'resourceGraphs' @dependency private timeline!: Timeline diff --git a/src/parser/core/modules/Statistics/StatisticComponent.tsx b/src/parser/core/modules/Statistics/StatisticComponent.tsx index 857db91c53..3f291d58aa 100644 --- a/src/parser/core/modules/Statistics/StatisticComponent.tsx +++ b/src/parser/core/modules/Statistics/StatisticComponent.tsx @@ -16,7 +16,7 @@ interface Props { } export class StatisticComponent extends React.PureComponent { - render() { + override render() { const {statistic} = this.props const colSpanClass = spanClassMap[statistic.width || 1] diff --git a/src/parser/core/modules/Statistics/Statistics.tsx b/src/parser/core/modules/Statistics/Statistics.tsx index e71d5ef752..ec6c6706b5 100644 --- a/src/parser/core/modules/Statistics/Statistics.tsx +++ b/src/parser/core/modules/Statistics/Statistics.tsx @@ -16,11 +16,10 @@ export interface Statistic { } export class Statistics extends Analyser { - static handle = 'statistics' - // tslint:disable-next-line:variable-name - static title = t('core.statistics.title')`Statistics` - static displayOrder = DISPLAY_ORDER.STATISTICS - static displayMode = DisplayMode.RAW + static override handle = 'statistics' + static override title = t('core.statistics.title')`Statistics` + static override displayOrder = DISPLAY_ORDER.STATISTICS + static override displayMode = DisplayMode.RAW private statistics: Statistic[] = [] @@ -28,7 +27,7 @@ export class Statistics extends Analyser { this.statistics.push(statistic) } - output() { + override output() { if (!this.statistics.length) { return false } diff --git a/src/parser/core/modules/Swiftcast.tsx b/src/parser/core/modules/Swiftcast.tsx index 72e99f0a48..3c760108d8 100644 --- a/src/parser/core/modules/Swiftcast.tsx +++ b/src/parser/core/modules/Swiftcast.tsx @@ -17,8 +17,8 @@ const MISSED_SWIFTCAST_SEVERITIES: SeverityTiers = { } export abstract class SwiftcastModule extends BuffWindowModule { - static handle: string = 'swiftcast' - static title: MessageDescriptor = t('core.swiftcast.title')`Swiftcast Actions` + static override handle: string = 'swiftcast' + static override title: MessageDescriptor = t('core.swiftcast.title')`Swiftcast Actions` // Don't change these – it's critical for the swiftcast module buffAction: Action = ACTIONS.SWIFTCAST @@ -28,7 +28,7 @@ export abstract class SwiftcastModule extends BuffWindowModule { * Implementing modules MAY want to override this to change the column header, but at this point * it's probably universal to call it a 'Spell' */ - protected rotationTableHeader: JSX.Element = Spell + protected override rotationTableHeader: JSX.Element = Spell /** * Implementing modules MAY want to override the suggestionContent to provide job-specific guidance. */ @@ -40,7 +40,7 @@ export abstract class SwiftcastModule extends BuffWindowModule { protected severityTiers: SeverityTiers = MISSED_SWIFTCAST_SEVERITIES // There be dragons here; I wouldn't change these because who knows what might break - protected expectedGCDs: BuffWindowExpectedGCDs = { + protected override expectedGCDs: BuffWindowExpectedGCDs = { expectedPerWindow: 1, suggestionContent: this.suggestionContent, severityTiers: this.severityTiers, @@ -57,7 +57,7 @@ export abstract class SwiftcastModule extends BuffWindowModule { return true } - protected init() { + protected override init() { super.init() // Inheriting the class doesn't update expectedGCDs's parameters when they // override, so let's (re)define it here... feels mega jank tho @@ -72,7 +72,7 @@ export abstract class SwiftcastModule extends BuffWindowModule { // ~4 GCDs 'wide', we can only use one action with it anyway; this change should // ding them only if they had enough time during the window to use a spell with // swiftcast - protected reduceExpectedGCDsEndOfFight(buffWindow: BuffWindowState): number { + protected override reduceExpectedGCDsEndOfFight(buffWindow: BuffWindowState): number { if (this.buffStatus.duration) { // Check to see if this window is rushing due to end of fight - reduce expected GCDs accordingly const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) @@ -82,7 +82,7 @@ export abstract class SwiftcastModule extends BuffWindowModule { return 0 } - protected considerAction(action: Action) { + protected override considerAction(action: Action) { this.debug('Evaluating action during window:', action) // ignore actions that don't have a castTime if (!action.castTime) { diff --git a/src/parser/core/modules/Timeline/Timeline.tsx b/src/parser/core/modules/Timeline/Timeline.tsx index 4880631f47..2ecf097bcb 100644 --- a/src/parser/core/modules/Timeline/Timeline.tsx +++ b/src/parser/core/modules/Timeline/Timeline.tsx @@ -20,10 +20,10 @@ const INITIAL_END = 60000 // One minute const MINIMUM_ZOOM = 10000 // 10 seconds (~4 gcds) export class Timeline extends Analyser { - static handle = 'timeline' - static displayOrder = DISPLAY_ORDER.TIMELINE - static displayMode = DisplayMode.FULL - static title = t('core.timeline.title')`Timeline` + static override handle = 'timeline' + static override displayOrder = DISPLAY_ORDER.TIMELINE + static override displayMode = DisplayMode.FULL + static override title = t('core.timeline.title')`Timeline` private setView?: SetViewFn @@ -69,7 +69,7 @@ export class Timeline extends Analyser { this.setView = handler } - output() { + override output() { return <> Scroll or click+drag to pan, ctrl+scroll or pinch to zoom. diff --git a/src/parser/core/modules/Timeline/config/Row.tsx b/src/parser/core/modules/Timeline/config/Row.tsx index 9577c18dd3..642b95f1ea 100644 --- a/src/parser/core/modules/Timeline/config/Row.tsx +++ b/src/parser/core/modules/Timeline/config/Row.tsx @@ -63,7 +63,7 @@ export class SimpleRow implements Row { export class ContainerRow extends SimpleRow { private containerRow?: SimpleRow - addRow(row: T): T { + override addRow(row: T): T { // If there's items on the main row, we need to move them onto the container now there's a subrow if (this.items.length > 0) { this.buildContainer() @@ -72,7 +72,7 @@ export class ContainerRow extends SimpleRow { return super.addRow(row) } - addItem(item: T): T { + override addItem(item: T): T { // If we don't have a container, but there's already subrows, we need to build one if (this.containerRow == null && this.rows.length > 0) { this.buildContainer() diff --git a/src/parser/core/modules/Tincture.ts b/src/parser/core/modules/Tincture.ts index 66460c446f..2ce39895ab 100644 --- a/src/parser/core/modules/Tincture.ts +++ b/src/parser/core/modules/Tincture.ts @@ -4,8 +4,8 @@ import STATUSES from 'data/STATUSES' import {BuffWindowModule} from 'parser/core/modules/BuffWindow' export class Tincture extends BuffWindowModule { - static handle = 'tincture' - static title = t('core.tincture.title')`Tinctures` + static override handle = 'tincture' + static override title = t('core.tincture.title')`Tinctures` buffAction = ACTIONS.INFUSION_STR buffStatus = STATUSES.MEDICATED diff --git a/src/parser/core/modules/UnableToAct/UnableToAct.tsx b/src/parser/core/modules/UnableToAct/UnableToAct.tsx index 079aa585da..14d1b0e5dd 100644 --- a/src/parser/core/modules/UnableToAct/UnableToAct.tsx +++ b/src/parser/core/modules/UnableToAct/UnableToAct.tsx @@ -32,8 +32,8 @@ export interface WindowFilter { } export class UnableToAct extends Analyser { - static handle = 'unableToAct' - static debug = false + static override handle = 'unableToAct' + static override debug = false @dependency private brokenLog!: BrokenLog @dependency private timeline!: Timeline @@ -84,7 +84,7 @@ export class UnableToAct extends Analyser { }).length > 0 } - initialise() { + override initialise() { const statusFilter = filter().status(oneOf(STATUS_IDS)) this.addEventHook(statusFilter.type('statusApply'), this.onApply) this.addEventHook(statusFilter.type('statusRemove'), this.onRemove) diff --git a/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaSuggestions.tsx b/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaSuggestions.tsx index ad3e919250..9c5c91a0e1 100644 --- a/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaSuggestions.tsx +++ b/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaSuggestions.tsx @@ -38,10 +38,10 @@ interface CardLog extends CardState { } export default class ArcanaSuggestions extends Module { - static handle = 'arcanaSuggestions' + static override handle = 'arcanaSuggestions' - static title = t('ast.arcana-suggestions.title')`Arcana Logs` - static displayOrder = DISPLAY_ORDER.ARCANA_TRACKING + static override title = t('ast.arcana-suggestions.title')`Arcana Logs` + static override displayOrder = DISPLAY_ORDER.ARCANA_TRACKING @dependency private data!: Data @dependency private combatants!: Combatants @@ -55,7 +55,7 @@ export default class ArcanaSuggestions extends Module { private SLEEVE_ICON: SleeveIcon = {} - protected init() { + protected override init() { PLAY.forEach(actionKey => { this.PLAY.push(this.data.actions[actionKey].id) }) @@ -95,7 +95,7 @@ export default class ArcanaSuggestions extends Module { }) } - output() { + override output() { return <>

@@ -176,7 +176,7 @@ export default class ArcanaSuggestions extends Module { } - // Helper for output() + // Helper for override output() RenderAction(artifact: CardLog) { if (artifact.lastEvent.type === 'cast' && this.PLAY.includes(artifact.lastEvent.ability.guid)) { const targetJob = getDataBy(JOBS, 'logType', artifact.targetJob as ActorType) @@ -219,7 +219,7 @@ export default class ArcanaSuggestions extends Module { } - // Helper for output() + // Helper for override output() RenderSpreadState(artifact: CardLog) { const drawnArcana = artifact.drawState ? this.data.getStatus(artifact.drawState) : undefined diff --git a/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaTracking.tsx b/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaTracking.tsx index d7fb62d948..1fa062675b 100644 --- a/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaTracking.tsx +++ b/src/parser/jobs/ast/modules/ArcanaTracking/ArcanaTracking.tsx @@ -53,9 +53,9 @@ export interface CardState { // TODO: Try to track for when a seal was not given on pull due to latency? export default class ArcanaTracking extends Module { - static handle = 'arcanaTracking' - static title = t('ast.arcana-tracking.title')`Arcana Tracking` - static displayOrder = DISPLAY_ORDER.ARCANA_TRACKING + static override handle = 'arcanaTracking' + static override title = t('ast.arcana-tracking.title')`Arcana Tracking` + static override displayOrder = DISPLAY_ORDER.ARCANA_TRACKING @dependency private data!: Data @dependency private precastStatus!: PrecastStatus @@ -91,7 +91,7 @@ export default class ArcanaTracking extends Module { private prepullArcanas: BuffEvent[] = [] - protected init() { + protected override init() { // Initialize grouped reference to actions/statuses data PLAY.forEach(key => { this.PLAY.push(this.data.actions[key].id) }) ARCANA_STATUSES.forEach(key => { this.ARCANA_STATUSES.push(this.data.statuses[key].id) }) @@ -118,7 +118,7 @@ export default class ArcanaTracking extends Module { this.addEventHook('death', {to: 'player'}, this.onDeath) } - normalise(events: Event[]) { + override normalise(events: Event[]) { // The whole point of this module was to support "pre-5.3" Three-card Sleeve Draw if (!this.parser.patch.before('5.3')) { return events diff --git a/src/parser/jobs/ast/modules/CelestialIntersection.tsx b/src/parser/jobs/ast/modules/CelestialIntersection.tsx index bcef56ca24..74c7e601d9 100644 --- a/src/parser/jobs/ast/modules/CelestialIntersection.tsx +++ b/src/parser/jobs/ast/modules/CelestialIntersection.tsx @@ -14,7 +14,7 @@ const SEVERITY_MOD = { // Lifted from WHM benison and adapted to AST and TSX export default class CelestialIntersection extends Module { - static handle = 'celestialintersection' + static override handle = 'celestialintersection' @dependency private data!: Data @dependency private suggestions!: Suggestions @@ -23,7 +23,7 @@ export default class CelestialIntersection extends Module { private uses = 0 private totalHeld = 0 - protected init() { + protected override init() { this.addEventHook('cast', {abilityId: this.data.actions.CELESTIAL_INTERSECTION.id, by: 'player'}, this.onCast) this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/jobs/ast/modules/CelestialOpposition.tsx b/src/parser/jobs/ast/modules/CelestialOpposition.tsx index a14b0bc9bf..020d00863c 100644 --- a/src/parser/jobs/ast/modules/CelestialOpposition.tsx +++ b/src/parser/jobs/ast/modules/CelestialOpposition.tsx @@ -17,7 +17,7 @@ const SEVERITY_MOD = { // Lifted from WHM benison and adapted to AST and TSX export default class CelestialOpposition extends Module { - static handle = 'celestialopposition' + static override handle = 'celestialopposition' @dependency private data!: Data @dependency private suggestions!: Suggestions @@ -29,7 +29,7 @@ export default class CelestialOpposition extends Module { private activeSect: Status | undefined - protected init() { + protected override init() { this.addEventHook('cast', {abilityId: this.data.actions.CELESTIAL_OPPOSITION.id, by: 'player'}, this.onCast) this.addEventHook('applybuff', {abilityId: [this.data.statuses.DIURNAL_SECT.id, this.data.statuses.NOCTURNAL_SECT.id], by: 'player'}, this.onSect) this.addEventHook('complete', this.onComplete) diff --git a/src/parser/jobs/ast/modules/Combust.tsx b/src/parser/jobs/ast/modules/Combust.tsx index 64aaf54bd8..b4f20d517d 100644 --- a/src/parser/jobs/ast/modules/Combust.tsx +++ b/src/parser/jobs/ast/modules/Combust.tsx @@ -21,16 +21,16 @@ const SEVERITIES = { } export default class Combust extends DoTs { - static handle = 'combust' + static override handle = 'combust' - static statusesToTrack = [ + static override statusesToTrack = [ STATUSES.COMBUST_III.id, ] @dependency private checklist!: Checklist @dependency private suggestions!: Suggestions - addChecklistRules() { + override addChecklistRules() { this.checklist.add(new TieredRule({ name: Keep your DoT up, description: @@ -46,7 +46,7 @@ export default class Combust extends DoTs { })) } - addClippingSuggestions(clip: TODO) { + override addClippingSuggestions(clip: TODO) { // Suggestion for DoT clipping this.suggestions.add(new TieredSuggestion({ icon: ACTIONS.COMBUST_III.icon, diff --git a/src/parser/jobs/ast/modules/Cooldowns.tsx b/src/parser/jobs/ast/modules/Cooldowns.tsx index 50f5d2bf6d..6ae7016df7 100644 --- a/src/parser/jobs/ast/modules/Cooldowns.tsx +++ b/src/parser/jobs/ast/modules/Cooldowns.tsx @@ -1,7 +1,7 @@ import CoreCooldowns, {CooldownOrderItem} from 'parser/core/modules/Cooldowns' export default class Cooldowns extends CoreCooldowns { - static cooldownOrder: CooldownOrderItem[] = [ + static override cooldownOrder: CooldownOrderItem[] = [ // Arcanum { name: 'Draw/Undraw', diff --git a/src/parser/jobs/ast/modules/DivinationDowntime.tsx b/src/parser/jobs/ast/modules/DivinationDowntime.tsx index 0b629e78c7..2a1261279a 100644 --- a/src/parser/jobs/ast/modules/DivinationDowntime.tsx +++ b/src/parser/jobs/ast/modules/DivinationDowntime.tsx @@ -5,16 +5,16 @@ import {CooldownDowntime} from 'parser/core/modules/CooldownDowntime' import React from 'react' export default class OGCDDowntime extends CooldownDowntime { - trackedCds = [ + override trackedCds = [ { cooldowns: [ACTIONS.DIVINATION], allowedAverageDowntime: 2500, firstUseOffset: 12500, }, ] - target = 100 - checklistName = Use Divination - checklistDescription = provides Astrologian with a strong amount of raid DPS when stacked together with arcanum. + override checklistTarget = 100 + override checklistName = Use Divination + override checklistDescription = provides Astrologian with a strong amount of raid DPS when stacked together with arcanum. Damage percentage bonuses stack multiplicatively, so it's most optimal to stack it with cards from . Try to time the usage to match raid buffs and high output phases of other party members - it's more important to use it on time rather than hold it in an attempt to have 3 different seals. diff --git a/src/parser/jobs/ast/modules/Draw.tsx b/src/parser/jobs/ast/modules/Draw.tsx index 14ae757127..82fd54da98 100644 --- a/src/parser/jobs/ast/modules/Draw.tsx +++ b/src/parser/jobs/ast/modules/Draw.tsx @@ -34,8 +34,8 @@ const SEVERITIES = { } export default class Draw extends Module { - static handle = 'draw' - static title = t('ast.draw.title')`Draw` + static override handle = 'draw' + static override title = t('ast.draw.title')`Draw` @dependency private data!: Data @dependency private checklist!: Checklist @@ -60,7 +60,7 @@ export default class Draw extends Module { private PLAY: number[] = [] private ARCANA_STATUSES: number[] = [] - protected init() { + protected override init() { PLAY.forEach(actionKey => { this.PLAY.push(this.data.actions[actionKey].id) diff --git a/src/parser/jobs/ast/modules/EarthlyStar.tsx b/src/parser/jobs/ast/modules/EarthlyStar.tsx index 95731c0d35..000a68e9db 100644 --- a/src/parser/jobs/ast/modules/EarthlyStar.tsx +++ b/src/parser/jobs/ast/modules/EarthlyStar.tsx @@ -26,8 +26,8 @@ const SEVERETIES = { // const PLAYER_STATUSES = [STATUSES.EARTHLY_DOMINANCE.id, STATUSES.GIANT_DOMINANCE.id] export default class EarthlyStar extends Module { - static handle = 'earthlystar' - static title = t('ast.earthly-star.title')`Earthly Star` + static override handle = 'earthlystar' + static override title = t('ast.earthly-star.title')`Earthly Star` @dependency private data!: Data @dependency private suggestions!: Suggestions @@ -41,7 +41,7 @@ export default class EarthlyStar extends Module { private PET_CASTS: number[] = [this.data.actions.STELLAR_BURST.id, this.data.actions.STELLAR_EXPLOSION.id] - protected init() { + protected override init() { this.addEventHook('cast', {abilityId: this.data.actions.EARTHLY_STAR.id, by: 'player'}, this.onPlace) this.addEventHook('cast', {abilityId: this.PET_CASTS, by: 'pet'}, this.onPetCast) // this.addHook('applybuff', {abilityId: PLAYER_STATUSES, by: 'player'}, this._onDominance) diff --git a/src/parser/jobs/ast/modules/Horoscope.tsx b/src/parser/jobs/ast/modules/Horoscope.tsx index c4c513a3bf..fd80d3948f 100644 --- a/src/parser/jobs/ast/modules/Horoscope.tsx +++ b/src/parser/jobs/ast/modules/Horoscope.tsx @@ -23,8 +23,8 @@ const SEVERITIES = { } export default class Horoscope extends Module { - static handle = 'horoscope' - static title = t('ast.horoscope.title')`Horoscope` + static override handle = 'horoscope' + static override title = t('ast.horoscope.title')`Horoscope` @dependency private data!: Data @dependency private cooldowns!: Cooldowns @@ -34,7 +34,7 @@ export default class Horoscope extends Module { private activations = 0 private nonHoroscopeHeals = 0 - protected init() { + protected override init() { const HELIOS_CASTS = [ this.data.actions.HELIOS.id, diff --git a/src/parser/jobs/ast/modules/Overheal.tsx b/src/parser/jobs/ast/modules/Overheal.tsx index fff4b46c13..25a9cc3bcc 100644 --- a/src/parser/jobs/ast/modules/Overheal.tsx +++ b/src/parser/jobs/ast/modules/Overheal.tsx @@ -26,7 +26,7 @@ const SEVERITY_TIERS = { // Adapted from whm Overheal export default class Overheal extends Module { - static handle = 'overheal' + static override handle = 'overheal' @dependency private data!: Data @dependency private checklist!: Checklist @@ -40,7 +40,7 @@ export default class Overheal extends Module { private HOT_STATUSES: number[] = [] - protected init() { + protected override init() { HOT_STATUSES.forEach(actionKey => { this.HOT_STATUSES.push(this.data.statuses[actionKey].id) }) @@ -104,7 +104,7 @@ export class InvertedRequirement extends Requirement { return 100 - this.percent } - get content() { + override get content() { if (this._percent !== null || this.value === null) { return `${this.percentInverted.toFixed(2)}%` } return `${this.value.toFixed(0)}/${this.target.toFixed(0)}` // avoid weird floating point shit } diff --git a/src/parser/jobs/ast/modules/Sect/Sect.tsx b/src/parser/jobs/ast/modules/Sect/Sect.tsx index a69aa05896..3980727394 100644 --- a/src/parser/jobs/ast/modules/Sect/Sect.tsx +++ b/src/parser/jobs/ast/modules/Sect/Sect.tsx @@ -82,7 +82,7 @@ const NOCTURNAL_SECT_BUFF_ABILITY = { // Determine sect by checking the result of an aspected spell/ability export default class Sect extends Module { - static handle = 'sect' + static override handle = 'sect' @dependency private statistics!: Statistics @dependency private precastAction!: PrecastAction @@ -92,13 +92,13 @@ export default class Sect extends Module { private activeSectId: string | number | undefined = undefined private gaveup = false - protected init() { + protected override init() { this.addEventHook('cast', {abilityId: [...SECT_ACTIONS], by: 'player'}, this.onCast) this.addEventHook('applybuff', {abilityId: [...SECT_STATUSES], by: 'player'}, this.onApplySect) this.addEventHook('complete', this.onComplete) } - normalise(events: Event[]) { + override normalise(events: Event[]) { const startTime = this.parser.fight.start_time let aspectedCast: CastEvent | null = null diff --git a/src/parser/jobs/ast/modules/Synastry.tsx b/src/parser/jobs/ast/modules/Synastry.tsx index 61c6a93b42..059923beaa 100644 --- a/src/parser/jobs/ast/modules/Synastry.tsx +++ b/src/parser/jobs/ast/modules/Synastry.tsx @@ -22,7 +22,7 @@ const GCD_ST_HEAL: Array = [ // Ripped off from WHM and converted to TSX export default class Synastry extends Module { - static handle = 'synastry' + static override handle = 'synastry' @dependency private data!: Data @dependency private combatants!: Combatants @@ -33,7 +33,7 @@ export default class Synastry extends Module { private GCD_ST_HEAL: number[] = [] - protected init() { + protected override init() { GCD_ST_HEAL.forEach(actionKey => { this.GCD_ST_HEAL.push(this.data.actions[actionKey].id) }) diff --git a/src/parser/jobs/blm/modules/OGCDDowntime.tsx b/src/parser/jobs/blm/modules/OGCDDowntime.tsx index 2cd7bd04d7..55dac83d6f 100644 --- a/src/parser/jobs/blm/modules/OGCDDowntime.tsx +++ b/src/parser/jobs/blm/modules/OGCDDowntime.tsx @@ -10,8 +10,8 @@ const TARGETPERCENT = 95 export default class OGCDDowntime extends CooldownDowntime { // Time in ms that Laqi deems ok for a OGCD to be down : ^) - defaultAllowedAverageDowntimeDowntime = ALLOWEDDOWNTIMEALL - defaultFirstUseOffset = FIRSTUSEOFFSETALL + override defaultAllowedAverageDowntime = ALLOWEDDOWNTIMEALL + override defaultFirstUseOffset = FIRSTUSEOFFSETALL trackedCds = [ {cooldowns: [ACTIONS.LEY_LINES]}, { @@ -21,6 +21,6 @@ export default class OGCDDowntime extends CooldownDowntime { {cooldowns: [ACTIONS.TRIPLECAST]}, ] - checklistTarget = TARGETPERCENT - checklistDescription = Always make sure to use your OGCDs when they are up but don't clip them. Utilize your procs or fast Blizzard IIIs or Fire IIIs to weave them. To account for random factors you are given a buffer of {ALLOWEDDOWNTIMEALL/1000} seconds per instance to hold your cooldowns. + override checklistTarget = TARGETPERCENT + override checklistDescription = Always make sure to use your OGCDs when they are up but don't clip them. Utilize your procs or fast Blizzard IIIs or Fire IIIs to weave them. To account for random factors you are given a buffer of {ALLOWEDDOWNTIMEALL/1000} seconds per instance to hold your cooldowns. } diff --git a/src/parser/jobs/blm/modules/RotationWatchdog.tsx b/src/parser/jobs/blm/modules/RotationWatchdog.tsx index 5899848655..a347038989 100644 --- a/src/parser/jobs/blm/modules/RotationWatchdog.tsx +++ b/src/parser/jobs/blm/modules/RotationWatchdog.tsx @@ -157,9 +157,9 @@ class GaugeState { } export default class RotationWatchdog extends Module { - static handle = 'RotationWatchdog' - static title = t('blm.rotation-watchdog.title')`Rotation Outliers` - static displayOrder = DISPLAY_ORDER.ROTATION + static override handle = 'RotationWatchdog' + static override title = t('blm.rotation-watchdog.title')`Rotation Outliers` + static override displayOrder = DISPLAY_ORDER.ROTATION @dependency private checklist!: Checklist @dependency private suggestions!: Suggestions @@ -184,7 +184,7 @@ export default class RotationWatchdog extends Module { private astralFiresMissingDespairs = 0 private primaryTargetId?: number - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('complete', this.onComplete) this.addEventHook(BLM_GAUGE_EVENT, this.onGaugeEvent) @@ -478,7 +478,7 @@ export default class RotationWatchdog extends Module { // TODO: Check for hardcast T3s, if this cycle ends in downtime, that cast time should've been a fire spell } - output() { + override output() { const outliers: Cycle[] = this.history.filter(cycle => cycle.errorCode.priority > CYCLE_ERRORS.SHORT.priority || DEBUG_SHOW_ALL_CYCLES) if (outliers.length > 0) { diff --git a/src/parser/jobs/blu/modules/Weaving.ts b/src/parser/jobs/blu/modules/Weaving.ts index 683ffa50ff..f8c8e157db 100644 --- a/src/parser/jobs/blu/modules/Weaving.ts +++ b/src/parser/jobs/blu/modules/Weaving.ts @@ -4,7 +4,7 @@ import CoreWeaving, {WeaveInfo} from 'parser/core/modules/Weaving' const TO_MILLISECONDS = 1000 export default class Weaving extends CoreWeaving { - isBadWeave(weave: WeaveInfo) { + override isBadWeave(weave: WeaveInfo) { let surpanakhas = 0 weave.weaves.forEach((value) => { if (value.ability.guid === ACTIONS.SURPANAKHA.id) { diff --git a/src/parser/jobs/brd/modules/AlwaysBeCasting.ts b/src/parser/jobs/brd/modules/AlwaysBeCasting.ts index d7bf9650e4..b386eb6c29 100644 --- a/src/parser/jobs/brd/modules/AlwaysBeCasting.ts +++ b/src/parser/jobs/brd/modules/AlwaysBeCasting.ts @@ -16,7 +16,7 @@ export default class AlwaysBeCasting extends CoreAlwaysBeCasting { currentMuse: ArmyWindow | undefined currentPaeon: ArmyWindow | undefined - protected init() { + protected override init() { super.init() this.addEventHook('applybuff', {by: 'player', abilityId: [STATUSES.ARMYS_MUSE.id]}, this.onMuse) this.addEventHook('removebuff', {by: 'player', abilityId: [STATUSES.ARMYS_MUSE.id]}, this.onRemoveMuse) @@ -67,7 +67,7 @@ export default class AlwaysBeCasting extends CoreAlwaysBeCasting { return this.armyHistory.some(army => timestamp > army.start && timestamp < army.end) } - protected getUptimePercent(): number { + protected override getUptimePercent(): number { const fightDuration = this.parser.currentDuration - this.downtime.getDowntime() const armyDuration = this.armyHistory.reduce((acc, army) => { const downtime = this.downtime.getDowntime(army.start, army.end) diff --git a/src/parser/jobs/brd/modules/ApexArrow.tsx b/src/parser/jobs/brd/modules/ApexArrow.tsx index 491cce7a06..7729d5d3cb 100644 --- a/src/parser/jobs/brd/modules/ApexArrow.tsx +++ b/src/parser/jobs/brd/modules/ApexArrow.tsx @@ -16,9 +16,9 @@ const APEX_POTENCY_THRESHOLDS = { } export default class ApexArrow extends Module { - static handle = 'Apex' - static title = t('brd.apex.title')`Apex Arrow` - static debug = false + static override handle = 'Apex' + static override title = t('brd.apex.title')`Apex Arrow` + static override debug = false @dependency private stats!: AdditionalStats @dependency private data!: Data @@ -27,7 +27,7 @@ export default class ApexArrow extends Module { private ghostedApexCasts: number = 0 private badApexCasts: number = 0 - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player', abilityId: this.data.actions.APEX_ARROW.id}, this.onApex) this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/jobs/brd/modules/Barrage.tsx b/src/parser/jobs/brd/modules/Barrage.tsx index 817f2b29a8..b763bd9f2c 100644 --- a/src/parser/jobs/brd/modules/Barrage.tsx +++ b/src/parser/jobs/brd/modules/Barrage.tsx @@ -64,9 +64,9 @@ interface BarrageWindow { } export default class Barrage extends Module { - static handle = 'barrage' - static title = t('brd.barrage.title')`Barrage` - static displayOrder = DISPLAY_ORDER.BARRAGE + static override handle = 'barrage' + static override title = t('brd.barrage.title')`Barrage` + static override displayOrder = DISPLAY_ORDER.BARRAGE @dependency private checklist!: Checklist @dependency private combatants!: Combatants @@ -77,7 +77,7 @@ export default class Barrage extends Module { private BARRAGE_GCDS: number[] = [] - protected init() { + protected override init() { this.BARRAGE_GCDS = BARRAGE_GCDS.map(key => this.data.actions[key].id) this.addEventHook('cast', {by: 'player', abilityId: this.data.actions.BARRAGE.id}, this.onBarrageCast) @@ -208,7 +208,7 @@ export default class Barrage extends Module { return } - output() { + override output() { if (this.barrageHistory.length === 0) { return null } @@ -256,7 +256,7 @@ class WeightedTieredRule extends TieredRule { this.requirements.map(req => req.weight = req.weight / totalWeight) } - public get percent(): number { + public override get percent(): number { return this.requirements.reduce((acc, req) => acc + (req.percent * req.weight), 0) } } diff --git a/src/parser/jobs/brd/modules/OGCDDowntime.ts b/src/parser/jobs/brd/modules/OGCDDowntime.ts index 7ee205e56b..7f268f270d 100644 --- a/src/parser/jobs/brd/modules/OGCDDowntime.ts +++ b/src/parser/jobs/brd/modules/OGCDDowntime.ts @@ -5,7 +5,7 @@ import ACTIONS from 'data/ACTIONS' import {CooldownDowntime} from 'parser/core/modules/CooldownDowntime' export default class OGCDDowntime extends CooldownDowntime { - trackedCds = [ + override trackedCds = [ { cooldowns: [ACTIONS.BATTLE_VOICE], firstUseOffset: 4500, @@ -27,5 +27,5 @@ export default class OGCDDowntime extends CooldownDowntime { }, ] - checklistTarget = 100 + override checklistTarget = 100 } diff --git a/src/parser/jobs/brd/modules/RagingStrikes.tsx b/src/parser/jobs/brd/modules/RagingStrikes.tsx index 45d7d92665..a79e0c22d6 100644 --- a/src/parser/jobs/brd/modules/RagingStrikes.tsx +++ b/src/parser/jobs/brd/modules/RagingStrikes.tsx @@ -35,9 +35,9 @@ interface MuseWindow { } export default class RagingStrikes extends BuffWindowModule { - static handle = 'rs' - static title = t('brd.rs.title')`Raging Strikes` - static displayOrder = DISPLAY_ORDER.RAGING_STRIKES + static override handle = 'rs' + static override title = t('brd.rs.title')`Raging Strikes` + static override displayOrder = DISPLAY_ORDER.RAGING_STRIKES buffAction = this.data.actions.RAGING_STRIKES buffStatus = this.data.statuses.RAGING_STRIKES @@ -45,7 +45,7 @@ export default class RagingStrikes extends BuffWindowModule { private museHistory: MuseWindow[] = [] private SUPPORT_ACTIONS: number[] = [] - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 8, suggestionContent: Try to land 8 GCDs (9 GCDs with ) during every window. @@ -57,7 +57,7 @@ export default class RagingStrikes extends BuffWindowModule { }, } - trackedActions = { + override trackedActions = { icon: this.data.actions.BARRAGE.icon, actions: [ { @@ -80,7 +80,7 @@ export default class RagingStrikes extends BuffWindowModule { }, } - protected init() { + protected override init() { super.init() this.SUPPORT_ACTIONS = SUPPORT_ACTIONS.map(actionKey => this.data.actions[actionKey].id) @@ -106,9 +106,9 @@ export default class RagingStrikes extends BuffWindowModule { } } - protected considerAction = (action: Action) => !this.SUPPORT_ACTIONS.includes(action.id) + protected override considerAction = (action: Action) => !this.SUPPORT_ACTIONS.includes(action.id) - protected changeExpectedGCDsClassLogic(buffWindow: BuffWindowState): number { + protected override changeExpectedGCDsClassLogic(buffWindow: BuffWindowState): number { // Check if muse was up for at least 3 GCDs in this buffWindow const museOverlap = this.museHistory.some(muse => ( buffWindow.rotation.filter(event => this.data.getAction(event.ability.guid)?.onGcd && @@ -121,7 +121,7 @@ export default class RagingStrikes extends BuffWindowModule { private getEventTargetKey = (event: CastEvent): string => `${event.targetID}-${event.targetInstance}` - protected getBaselineExpectedTrackedAction(buffWindow: BuffWindowState, action: BuffWindowTrackedAction): number { + protected override getBaselineExpectedTrackedAction(buffWindow: BuffWindowState, action: BuffWindowTrackedAction): number { if (action.action !== this.data.actions.IRON_JAWS) { return action.expectedPerWindow || 0 } @@ -137,7 +137,7 @@ export default class RagingStrikes extends BuffWindowModule { return enemyIDs.size } - protected reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { + protected override reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { const windowDurationMillis = this.buffStatus.duration * 1000 const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) @@ -152,7 +152,7 @@ export default class RagingStrikes extends BuffWindowModule { return 0 } - protected changeComparisonClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction) { + protected override changeComparisonClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction) { /** * Positive only if we had exactly one Iron Jaws in this RS * If expected > 1, we're in AoE and there is no clear rotation target, so don't highlight this cell diff --git a/src/parser/jobs/brd/modules/Snapshots.tsx b/src/parser/jobs/brd/modules/Snapshots.tsx index 02e652f61b..5392b430ee 100644 --- a/src/parser/jobs/brd/modules/Snapshots.tsx +++ b/src/parser/jobs/brd/modules/Snapshots.tsx @@ -90,9 +90,9 @@ class Target { } export default class Snapshots extends Module { - static handle = 'snapshots' - static title = t('brd.snapshots.title')`Snapshots` - static displayOrder = DISPLAY_ORDER.SNAPSHOTS + static override handle = 'snapshots' + static override title = t('brd.snapshots.title')`Snapshots` + static override displayOrder = DISPLAY_ORDER.SNAPSHOTS @dependency private combatants!: Combatants @dependency private data!: Data @@ -101,7 +101,7 @@ export default class Snapshots extends Module { private targets: Map = new Map() - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player', abilityId: SNAPSHOTTERS}, this.onSnapshot) this.addEventHook(['applydebuff', 'refreshdebuff'], this.onApply) this.addEventHook('removedebuff', this.onRemove) @@ -237,7 +237,7 @@ export default class Snapshots extends Module { } - output() { + override output() { if (this.targets.size === 0) { return null } diff --git a/src/parser/jobs/dnc/modules/Combos.ts b/src/parser/jobs/dnc/modules/Combos.ts index d1b725a54f..e94899b9c4 100644 --- a/src/parser/jobs/dnc/modules/Combos.ts +++ b/src/parser/jobs/dnc/modules/Combos.ts @@ -10,14 +10,14 @@ const GCD_TIMEOUT_MILLIS = 15000 export default class Combos extends CoreCombos { // Override statics - static suggestionIcon = ACTIONS.CASCADE.icon + static override suggestionIcon = ACTIONS.CASCADE.icon @dependency private dancing!: DirtyDancing @dependency private combatants!: Combatants // Override check for allowable breaks. If two dances were started during the initial context's GCD timeout window, // (ie, both Standard and Technical were danced), then we'll allow it - isAllowableComboBreak(event: NormalisedDamageEvent, context: NormalisedDamageEvent[]): boolean { + override isAllowableComboBreak(event: NormalisedDamageEvent, context: NormalisedDamageEvent[]): boolean { // Shouldn't ever be the case, but protect against weird shit if (context.length !== 1) { return false diff --git a/src/parser/jobs/dnc/modules/DirtyDancing.tsx b/src/parser/jobs/dnc/modules/DirtyDancing.tsx index 3249e25d17..77a7b58fa7 100644 --- a/src/parser/jobs/dnc/modules/DirtyDancing.tsx +++ b/src/parser/jobs/dnc/modules/DirtyDancing.tsx @@ -103,9 +103,9 @@ class Dance { } export default class DirtyDancing extends Module { - static handle = 'dirtydancing' - static title = t('dnc.dirty-dancing.title')`Dance Issues` - static displayOrder = DISPLAY_ORDER.DIRTY_DANCING + static override handle = 'dirtydancing' + static override title = t('dnc.dirty-dancing.title')`Dance Issues` + static override displayOrder = DISPLAY_ORDER.DIRTY_DANCING @dependency private checklist!: CheckList @dependency private suggestions!: Suggestions @@ -129,7 +129,7 @@ export default class DirtyDancing extends Module { [ACTIONS.TECHNICAL_STEP.id]: 0, } - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player', abilityId: STEPS}, this.beginDance) this.addEventHook('cast', {by: 'player'}, this.continueDance) this.addEventHook('cast', {by: 'player', abilityId: FINISHES}, this.finishDance) @@ -351,7 +351,7 @@ export default class DirtyDancing extends Module { } } - output() { + override output() { if (this.danceHistory.some(dance => dance.error)) { return diff --git a/src/parser/jobs/dnc/modules/Esprit.tsx b/src/parser/jobs/dnc/modules/Esprit.tsx index 471b21949b..7f8effc259 100644 --- a/src/parser/jobs/dnc/modules/Esprit.tsx +++ b/src/parser/jobs/dnc/modules/Esprit.tsx @@ -51,9 +51,9 @@ const MAX_ESPRIT = 100 const SABER_DANCE_COST = 50 export default class EspritGauge extends Module { - static handle = 'espritgauge' - static title = t('dnc.esprit-gauge.title')`Esprit Gauge` - static displayOrder = DISPLAY_ORDER.ESPRIT + static override handle = 'espritgauge' + static override title = t('dnc.esprit-gauge.title')`Esprit Gauge` + static override displayOrder = DISPLAY_ORDER.ESPRIT @dependency private combatants!: Combatants @dependency private suggestions!: Suggestions @@ -65,7 +65,7 @@ export default class EspritGauge extends Module { private currentEsprit = 0 private improvisationStart = 0 - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player'}, this.onDamage) this.addEventHook('cast', {by: 'player', abilityId: ACTIONS.SABER_DANCE.id}, this.onConsumeEsprit) this.addEventHook('applybuff', {by: 'player', abilityId: STATUSES.IMPROVISATION.id}, this.startImprov) @@ -154,7 +154,7 @@ export default class EspritGauge extends Module { })) } - output() { + override output() { const dncColor = Color(JOBS.DANCER.colour) /* eslint-disable @typescript-eslint/no-magic-numbers */ diff --git a/src/parser/jobs/dnc/modules/FeatherGauge.tsx b/src/parser/jobs/dnc/modules/FeatherGauge.tsx index 6dde1f8094..02d3566782 100644 --- a/src/parser/jobs/dnc/modules/FeatherGauge.tsx +++ b/src/parser/jobs/dnc/modules/FeatherGauge.tsx @@ -30,9 +30,9 @@ const FEATHER_GENERATION_CHANCE = .5 const MAX_FEATHERS = 4 export default class FeatherGauge extends Module { - static handle = 'feathergauge' - static title = t('dnc.feather-gauge.title')`Feather Gauge` - static displayOrder = DISPLAY_ORDER.FEATHERS + static override handle = 'feathergauge' + static override title = t('dnc.feather-gauge.title')`Feather Gauge` + static override displayOrder = DISPLAY_ORDER.FEATHERS @dependency private suggestions!: Suggestions @@ -42,7 +42,7 @@ export default class FeatherGauge extends Module { private currentFeathers = 0 private featherOvercap = 0 - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player', abilityId: FEATHER_GENERATORS}, this.onCastGenerator) this.addEventHook('cast', {by: 'player', abilityId: FEATHER_CONSUMERS}, this.onConsumeFeather) this.addEventHook('death', {to: 'player'}, this.onDeath) @@ -124,7 +124,7 @@ export default class FeatherGauge extends Module { })) } - output() { + override output() { const dncColor = Color(JOBS.DANCER.colour) /* eslint-disable @typescript-eslint/no-magic-numbers */ diff --git a/src/parser/jobs/dnc/modules/Technicalities.tsx b/src/parser/jobs/dnc/modules/Technicalities.tsx index 96bb8461f1..c16bbaa6af 100644 --- a/src/parser/jobs/dnc/modules/Technicalities.tsx +++ b/src/parser/jobs/dnc/modules/Technicalities.tsx @@ -57,9 +57,9 @@ class TechnicalWindow { } export default class Technicalities extends Module { - static handle = 'technicalities' - static title = t('dnc.technicalities.title')`Technical Windows` - static displayOrder = DISPLAY_ORDER.TECHNICALITIES + static override handle = 'technicalities' + static override title = t('dnc.technicalities.title')`Technical Windows` + static override displayOrder = DISPLAY_ORDER.TECHNICALITIES @dependency private combatants!: Combatants @dependency private suggestions!: Suggestions @@ -70,7 +70,7 @@ export default class Technicalities extends Module { private badDevilments: number = 0 private lastDevilmentTimestamp: number = -1 - protected init() { + protected override init() { this.addEventHook('normalisedapplybuff', {to: 'player', abilityId: STATUSES.TECHNICAL_FINISH.id}, this.tryOpenWindow) this.addEventHook('normalisedapplybuff', {by: 'player', abilityId: STATUSES.TECHNICAL_FINISH.id}, this.countTechBuffs) this.addEventHook('removebuff', {to: 'player', abilityId: WINDOW_STATUSES}, this.tryCloseWindow) @@ -263,7 +263,7 @@ export default class Technicalities extends Module { })) } - output() { + override output() { const otherDancers = this.history.filter(window => window.containsOtherDNC).length > 0 return {otherDancers && ( diff --git a/src/parser/jobs/dnc/modules/Weaving.ts b/src/parser/jobs/dnc/modules/Weaving.ts index 42f26256a2..93495ebf89 100644 --- a/src/parser/jobs/dnc/modules/Weaving.ts +++ b/src/parser/jobs/dnc/modules/Weaving.ts @@ -13,15 +13,15 @@ const FINISH_IDS: Array = [ ] export default class Weaving extends CoreWeaving { - static displayOrder = DISPLAY_ORDER.WEAVING + static override displayOrder = DISPLAY_ORDER.WEAVING private FINISH_IDS: number[] = [] - protected init() { + protected override init() { super.init() this.FINISH_IDS = FINISH_IDS.map(actionKey => this.data.actions[actionKey].id) } - isBadWeave(weave: WeaveInfo) { + override isBadWeave(weave: WeaveInfo) { const leadingGcd = weave.leadingGcdEvent as CastEvent if (leadingGcd && leadingGcd.ability && this.FINISH_IDS.includes(leadingGcd.ability.guid)) { diff --git a/src/parser/jobs/drg/modules/BattleLitany.tsx b/src/parser/jobs/drg/modules/BattleLitany.tsx index d03b325c9d..d5297e0113 100644 --- a/src/parser/jobs/drg/modules/BattleLitany.tsx +++ b/src/parser/jobs/drg/modules/BattleLitany.tsx @@ -46,9 +46,9 @@ class BLWindow { // DRG litanies will be marked. // Used DNC technical step as basis for this module. export default class BattleLitany extends Module { - static handle = 'battlelitany' - static title = t('drg.battlelitany.title')`Battle Litany` - static displayOrder = DISPLAY_ORDER.BATTLE_LITANY + static override handle = 'battlelitany' + static override title = t('drg.battlelitany.title')`Battle Litany` + static override displayOrder = DISPLAY_ORDER.BATTLE_LITANY @dependency private timeline!: Timeline @dependency private data!: Data @@ -56,7 +56,7 @@ export default class BattleLitany extends Module { private history: BLWindow[] = [] private lastLitFalloffTime: number = 0 - protected init() { + protected override init() { this.addEventHook('normalisedapplybuff', {to: 'player', abilityId: STATUSES.BATTLE_LITANY.id}, this.tryOpenWindow) this.addEventHook('normalisedapplybuff', {by: 'player', abilityId: STATUSES.BATTLE_LITANY.id}, this.countLitBuffs) this.addEventHook('removebuff', {to: 'player', abilityId: WINDOW_STATUSES}, this.tryCloseWindow) @@ -176,7 +176,7 @@ export default class BattleLitany extends Module { // just output, no suggestions for now. // open to maybe putting a suggestion not to clip into other DRG windows? hitting everyone with litany? - output() { + override output() { const tableData = this.history.map(window => { const end = window.end != null ? window.end - this.parser.fight.start_time : diff --git a/src/parser/jobs/drg/modules/Buffs.tsx b/src/parser/jobs/drg/modules/Buffs.tsx index 2bf6708751..f957b33a3b 100644 --- a/src/parser/jobs/drg/modules/Buffs.tsx +++ b/src/parser/jobs/drg/modules/Buffs.tsx @@ -51,8 +51,8 @@ const OTHER_ACTION_COLOR: string = '#660000' const MIN_COT_HITS: number = 3 export default class Buffs extends Module { - static handle = 'buffs' - static title = t('drg.buffs.title')`Buffs` + static override handle = 'buffs' + static override title = t('drg.buffs.title')`Buffs` private badLifeSurges: number = 0 private fifthGcd: boolean = false @@ -67,7 +67,7 @@ export default class Buffs extends Module { @dependency private data!: Data @dependency private statistics!: Statistics - init() { + override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('complete', this.onComplete) this.addEventHook('applybuff', {by: 'player', abilityId: STATUSES.RIGHT_EYE_SOLO.id}, () => this.soloDragonSight = true) diff --git a/src/parser/jobs/drg/modules/DragonSight.tsx b/src/parser/jobs/drg/modules/DragonSight.tsx index d70a351c10..1bfd53f885 100644 --- a/src/parser/jobs/drg/modules/DragonSight.tsx +++ b/src/parser/jobs/drg/modules/DragonSight.tsx @@ -22,9 +22,9 @@ const SHORT_WINDOW_FAULT = { } export default class DragonSight extends BuffWindowModule { - static handle = 'dragonsight' - static title = t('drg.dragonsight.title')`Dragon Sight` - static displayOrder = DISPLAY_ORDER.DRAGON_SIGHT + static override handle = 'dragonsight' + static override title = t('drg.dragonsight.title')`Dragon Sight` + static override displayOrder = DISPLAY_ORDER.DRAGON_SIGHT buffAction = ACTIONS.DRAGON_SIGHT buffStatus = STATUSES.RIGHT_EYE @@ -32,7 +32,7 @@ export default class DragonSight extends BuffWindowModule { deathTimes: number[] = [] - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 8, suggestionContent: Try to land at least 8 GCDs during every window. @@ -44,7 +44,7 @@ export default class DragonSight extends BuffWindowModule { }, } - trackedActions = { + override trackedActions = { icon: ACTIONS.DRAGON_SIGHT.icon, actions: [ { @@ -74,7 +74,7 @@ export default class DragonSight extends BuffWindowModule { }, } - protected init() { + protected override init() { super.init() this.addEventHook('death', {to: 'player'}, this.onDeath) @@ -84,7 +84,7 @@ export default class DragonSight extends BuffWindowModule { this.deathTimes.push(event.timestamp) } - protected reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { + protected override reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { const windowDurationMillis = this.buffStatus.duration * 1000 const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) @@ -97,7 +97,7 @@ export default class DragonSight extends BuffWindowModule { } // ok so we don't want to penalize people for when their buff ends early because their partner died - protected getBaselineExpectedGCDs(buffWindow: BuffWindowState): number { + protected override getBaselineExpectedGCDs(buffWindow: BuffWindowState): number { if (this.buffTargetDied(buffWindow) === SHORT_WINDOW_FAULT.PARTNER) { // you get what you get and that's ok in this case return buffWindow.gcds @@ -113,7 +113,7 @@ export default class DragonSight extends BuffWindowModule { } // adjust expected tracked gcds for partner dying - protected changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState): number { + protected override changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState): number { if (this.buffTargetDied(buffWindow) === SHORT_WINDOW_FAULT.PARTNER) { return -1 } @@ -123,7 +123,7 @@ export default class DragonSight extends BuffWindowModule { // adjust highlighting for partner dying // if partner dies, we reduce expected to 0 but still highlight a 0 in the table - protected changeComparisonClassLogic(buffWindow: BuffWindowState) { + protected override changeComparisonClassLogic(buffWindow: BuffWindowState) { if (this.buffTargetDied(buffWindow) === SHORT_WINDOW_FAULT.PARTNER) { return (actual: number, expected?: number) => { if (!isDefined(expected) || actual <= expected) { @@ -135,7 +135,7 @@ export default class DragonSight extends BuffWindowModule { } // check for a truncated window if not rushing, which would indicate that the tether partner (or the DRG) died - protected getBuffWindowNotes(buffWindow: BuffWindowState): JSX.Element | undefined { + protected override getBuffWindowNotes(buffWindow: BuffWindowState): JSX.Element | undefined { const fault = this.buffTargetDied(buffWindow) if (fault === SHORT_WINDOW_FAULT.PARTNER) { return Partner Died diff --git a/src/parser/jobs/drg/modules/Drift.tsx b/src/parser/jobs/drg/modules/Drift.tsx index 25d449d8a9..f3c44cda6e 100644 --- a/src/parser/jobs/drg/modules/Drift.tsx +++ b/src/parser/jobs/drg/modules/Drift.tsx @@ -38,10 +38,10 @@ class DriftWindow { } export default class Drift extends Module { - static debug = false - static handle = 'drift' - static title = t('drg.drift.title')`Ability Drift` - static displayOrder = DISPLAY_ORDER.DRIFT + static override debug = false + static override handle = 'drift' + static override title = t('drg.drift.title')`Ability Drift` + static override displayOrder = DISPLAY_ORDER.DRIFT @dependency private downtime!: Downtime @dependency private timeline!: Timeline @@ -53,7 +53,7 @@ export default class Drift extends Module { [ACTIONS.GEIRSKOGUL.id]: new DriftWindow(ACTIONS.GEIRSKOGUL.id, this.parser.fight.start_time), } - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player', abilityId: DRIFT_ABILITIES}, this.onDriftableCast) } @@ -128,7 +128,7 @@ export default class Drift extends Module { } - output() { + override output() { // Nothing to show if (!this.driftedWindows.length) { return } diff --git a/src/parser/jobs/drg/modules/LanceCharge.tsx b/src/parser/jobs/drg/modules/LanceCharge.tsx index a0038ac376..90ef27ec4e 100644 --- a/src/parser/jobs/drg/modules/LanceCharge.tsx +++ b/src/parser/jobs/drg/modules/LanceCharge.tsx @@ -9,14 +9,14 @@ import React from 'react' import DISPLAY_ORDER from './DISPLAY_ORDER' export default class LanceCharge extends BuffWindowModule { - static handle: string = 'lancecharge' - static title = t('drg.lancecharge.title')`Lance Charge` - static displayOrder = DISPLAY_ORDER.LANCE_CHARGE + static override handle: string = 'lancecharge' + static override title = t('drg.lancecharge.title')`Lance Charge` + static override displayOrder = DISPLAY_ORDER.LANCE_CHARGE buffAction = ACTIONS.LANCE_CHARGE buffStatus = STATUSES.LANCE_CHARGE - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 8, suggestionContent: Try to land at least 8 GCDs during every window. @@ -28,7 +28,7 @@ export default class LanceCharge extends BuffWindowModule { }, } - trackedActions = { + override trackedActions = { icon: ACTIONS.LANCE_CHARGE.icon, actions: [ { @@ -58,7 +58,7 @@ export default class LanceCharge extends BuffWindowModule { }, } - protected reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { + protected override reduceTrackedActionsEndOfFight(buffWindow: BuffWindowState): number { const windowDurationMillis = this.buffStatus.duration * 1000 const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) diff --git a/src/parser/jobs/drg/modules/OGCDDowntime.ts b/src/parser/jobs/drg/modules/OGCDDowntime.ts index 57ebc38061..1ab3f51d65 100644 --- a/src/parser/jobs/drg/modules/OGCDDowntime.ts +++ b/src/parser/jobs/drg/modules/OGCDDowntime.ts @@ -14,8 +14,8 @@ const JUMP_FIRST_USE_OFFSET = 24500 const LIFE_SURGE_FIRST_USE_OFFSET = 22000 export default class OGCDDowntime extends CooldownDowntime { - defaultFirstUseOffset = BUFF_FIRST_USE_OFFSET - trackedCds = [ + override defaultFirstUseOffset = BUFF_FIRST_USE_OFFSET + override trackedCds = [ { cooldowns: [ACTIONS.HIGH_JUMP], firstUseOffset: JUMP_FIRST_USE_OFFSET, diff --git a/src/parser/jobs/drk/modules/BloodWeapon.tsx b/src/parser/jobs/drk/modules/BloodWeapon.tsx index 1da9123696..3ea5e5d736 100644 --- a/src/parser/jobs/drk/modules/BloodWeapon.tsx +++ b/src/parser/jobs/drk/modules/BloodWeapon.tsx @@ -9,14 +9,14 @@ import React from 'react' import {DISPLAY_ORDER} from './DISPLAY_ORDER' export class BloodWeapon extends BuffWindowModule { - static handle = 'bloodweapon' - static title = t('drk.bloodweapon.title')`Blood Weapon Usage` - static displayOrder = DISPLAY_ORDER.BLOOD_WEAPON + static override handle = 'bloodweapon' + static override title = t('drk.bloodweapon.title')`Blood Weapon Usage` + static override displayOrder = DISPLAY_ORDER.BLOOD_WEAPON buffAction = ACTIONS.BLOOD_WEAPON buffStatus = STATUSES.BLOOD_WEAPON - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 5, suggestionContent: Try to land 5 GCDs during every window. If you cannot do this with full uptime and no clipping, consider adjusting your gearset for more Skill Speed. diff --git a/src/parser/jobs/drk/modules/Cooldowns.ts b/src/parser/jobs/drk/modules/Cooldowns.ts index 56a8e404d8..2fb2a50f60 100644 --- a/src/parser/jobs/drk/modules/Cooldowns.ts +++ b/src/parser/jobs/drk/modules/Cooldowns.ts @@ -1,7 +1,7 @@ import CoreCooldowns, {CooldownOrderItem} from 'parser/core/modules/Cooldowns' export class Cooldowns extends CoreCooldowns { - static cooldownOrder: CooldownOrderItem[] = [ + static override cooldownOrder: CooldownOrderItem[] = [ // Buffs 'BLOOD_WEAPON', 'DELIRIUM', diff --git a/src/parser/jobs/drk/modules/Darkside.tsx b/src/parser/jobs/drk/modules/Darkside.tsx index d84a3295e7..0c8dfb2746 100644 --- a/src/parser/jobs/drk/modules/Darkside.tsx +++ b/src/parser/jobs/drk/modules/Darkside.tsx @@ -25,9 +25,9 @@ interface DarksideDrop { } export class Darkside extends Module { - static handle = 'Darkside' + static override handle = 'Darkside' - static title = t('drk.darkside.title')`Darkside` + static override title = t('drk.darkside.title')`Darkside` @dependency private checklist!: Checklist @dependency private death!: Death @@ -36,7 +36,7 @@ export class Darkside extends Module { private lastEventTime: number | null = null private darksideDrops: DarksideDrop[] = [] - protected init() { + protected override init() { this.addEventHook('normaliseddamage', {by: 'player', abilityId: Object.keys(DARKSIDE_EXTENSION).map(Number)}, this.updateDarkside) this.addEventHook('death', {to: 'player'}, this.onDeath) this.addEventHook('raise', {to: 'player'}, this.onRaise) @@ -100,7 +100,7 @@ export class Darkside extends Module { })) } - output() { + override output() { if (this.darksideDrops.length > 0) { return ( diff --git a/src/parser/jobs/drk/modules/Delirium.tsx b/src/parser/jobs/drk/modules/Delirium.tsx index 0c0de603b3..1d110a93d7 100644 --- a/src/parser/jobs/drk/modules/Delirium.tsx +++ b/src/parser/jobs/drk/modules/Delirium.tsx @@ -9,14 +9,14 @@ import React from 'react' import {DISPLAY_ORDER} from './DISPLAY_ORDER' export class Delirium extends BuffWindowModule { - static handle = 'delirium' - static title = t('drk.delirium.title')`Delirium Usage` - static displayOrder = DISPLAY_ORDER.DELIRIUM + static override handle = 'delirium' + static override title = t('drk.delirium.title')`Delirium Usage` + static override displayOrder = DISPLAY_ORDER.DELIRIUM buffAction = ACTIONS.DELIRIUM buffStatus = STATUSES.DELIRIUM - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 5, suggestionContent: Try to land 5 GCDs during every window. If you cannot do this with full uptime and no clipping, consider adjusting your gearset for more Skill Speed. @@ -26,7 +26,7 @@ export class Delirium extends BuffWindowModule { 3: SEVERITY.MAJOR, }, } - requiredGCDs = { + override requiredGCDs = { icon: ACTIONS.BLOODSPILLER.icon, actions: [ ACTIONS.BLOODSPILLER, diff --git a/src/parser/jobs/drk/modules/EsteemTimeline.ts b/src/parser/jobs/drk/modules/EsteemTimeline.ts index 52b3f002a2..9828787adf 100644 --- a/src/parser/jobs/drk/modules/EsteemTimeline.ts +++ b/src/parser/jobs/drk/modules/EsteemTimeline.ts @@ -2,6 +2,6 @@ import ACTIONS from 'data/ACTIONS' import CorePetTimeline from 'parser/core/modules/PetTimeline' export class EsteemTimeline extends CorePetTimeline { - protected timelineGroupName = 'Esteem' - protected timelineSummonAction = ACTIONS.LIVING_SHADOW.id + protected override timelineGroupName = 'Esteem' + protected override timelineSummonAction = ACTIONS.LIVING_SHADOW.id } diff --git a/src/parser/jobs/drk/modules/OGCDDowntime.ts b/src/parser/jobs/drk/modules/OGCDDowntime.ts index cf207822fb..9549a4f88c 100644 --- a/src/parser/jobs/drk/modules/OGCDDowntime.ts +++ b/src/parser/jobs/drk/modules/OGCDDowntime.ts @@ -4,8 +4,8 @@ import {CooldownDowntime} from 'parser/core/modules/CooldownDowntime' const DEFAULT_FIRST_USE_OFFSET = 17500 export class OGCDDowntime extends CooldownDowntime { - defaultFirstUseOffset = DEFAULT_FIRST_USE_OFFSET - trackedCds = [ + override defaultFirstUseOffset = DEFAULT_FIRST_USE_OFFSET + override trackedCds = [ { cooldowns: [ACTIONS.BLOOD_WEAPON], firstUseOffset: 2500, diff --git a/src/parser/jobs/drk/modules/Statuses.ts b/src/parser/jobs/drk/modules/Statuses.ts index 2c9227af78..e036838162 100644 --- a/src/parser/jobs/drk/modules/Statuses.ts +++ b/src/parser/jobs/drk/modules/Statuses.ts @@ -2,7 +2,7 @@ import STATUSES from 'data/STATUSES' import CoreStatuses from 'parser/core/modules/Statuses' export class Statuses extends CoreStatuses { - static statusesStackMapping = { + static override statusesStackMapping = { [STATUSES.WALKING_DEAD.id]: STATUSES.LIVING_DEAD.id, } } diff --git a/src/parser/jobs/gnb/modules/Ammo.tsx b/src/parser/jobs/gnb/modules/Ammo.tsx index 560f76a119..63c8a39892 100644 --- a/src/parser/jobs/gnb/modules/Ammo.tsx +++ b/src/parser/jobs/gnb/modules/Ammo.tsx @@ -84,9 +84,9 @@ class OvercapState { } export default class Ammo extends Module { - static handle = 'ammo' - static title = t('gnb.ammo.title')`Cartridge Timeline` - static displayMode = DISPLAY_MODE.FULL + static override handle = 'ammo' + static override title = t('gnb.ammo.title')`Cartridge Timeline` + static override displayMode = DISPLAY_MODE.FULL private ammo = 0 private currentAbility = '' @@ -107,7 +107,7 @@ export default class Ammo extends Module { @dependency private checklist!: Checklist @dependency private suggestions!: Suggestions - protected init() { + protected override init() { this.addEventHook('init', this.pushToHistory) this.addEventHook( 'cast', @@ -304,7 +304,7 @@ export default class Ammo extends Module { } - output() { + override output() { const cartridgeWastePanels = [] cartridgeWastePanels.push({ key: 'key-wastebysource', diff --git a/src/parser/jobs/gnb/modules/AmmoCombo.tsx b/src/parser/jobs/gnb/modules/AmmoCombo.tsx index 64536c726d..7e2d9521a3 100644 --- a/src/parser/jobs/gnb/modules/AmmoCombo.tsx +++ b/src/parser/jobs/gnb/modules/AmmoCombo.tsx @@ -59,8 +59,8 @@ class GnashingComboState { } export default class AmmoCombo extends Module { - static handle = 'Gnashing Fang Combo issues' - static debug = false + static override handle = 'Gnashing Fang Combo issues' + static override debug = false @dependency private checklist!: Checklist @dependency private timeline!: Timeline @@ -75,7 +75,7 @@ export default class AmmoCombo extends Module { return _.last(this.gnashingComboWindows) } - protected init() { + protected override init() { this.addEventHook('cast', { by: 'player', @@ -186,7 +186,7 @@ export default class AmmoCombo extends Module { })) } - output() { + override output() { if (this.errors !== 0) { diff --git a/src/parser/jobs/gnb/modules/Combos.tsx b/src/parser/jobs/gnb/modules/Combos.tsx index f6a638968c..bb9507c2b8 100644 --- a/src/parser/jobs/gnb/modules/Combos.tsx +++ b/src/parser/jobs/gnb/modules/Combos.tsx @@ -3,5 +3,5 @@ import CoreCombos from 'parser/core/modules/Combos' export default class Combos extends CoreCombos { // Overrides - static suggestionIcon = ACTIONS.BRUTAL_SHELL.icon + static override suggestionIcon = ACTIONS.BRUTAL_SHELL.icon } diff --git a/src/parser/jobs/gnb/modules/Cooldowns.tsx b/src/parser/jobs/gnb/modules/Cooldowns.tsx index 3c37ab06a7..5b19880eaf 100644 --- a/src/parser/jobs/gnb/modules/Cooldowns.tsx +++ b/src/parser/jobs/gnb/modules/Cooldowns.tsx @@ -1,7 +1,7 @@ import CoreCooldowns, {CooldownOrderItem} from 'parser/core/modules/Cooldowns' export default class Cooldowns extends CoreCooldowns { - static cooldownOrder: CooldownOrderItem[] = [ + static override cooldownOrder: CooldownOrderItem[] = [ // Stance 'ROYAL_GUARD', diff --git a/src/parser/jobs/gnb/modules/NoMercy.tsx b/src/parser/jobs/gnb/modules/NoMercy.tsx index 9a1c89fe7b..f65aca2fd2 100644 --- a/src/parser/jobs/gnb/modules/NoMercy.tsx +++ b/src/parser/jobs/gnb/modules/NoMercy.tsx @@ -60,8 +60,8 @@ class NoMercyState { } export default class NoMercy extends Module { - static handle = 'nomercy' - static title = t('gnb.nomercy.title')`No Mercy Windows` + static override handle = 'nomercy' + static override title = t('gnb.nomercy.title')`No Mercy Windows` @dependency private suggestions!: Suggestions @dependency private timeline!: Timeline @@ -72,7 +72,7 @@ export default class NoMercy extends Module { return _.last(this.noMercyWindows) } - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook( 'removebuff', @@ -193,7 +193,7 @@ export default class NoMercy extends Module { })) } - output() { + override output() { return = [ ] export default class Reassemble extends Module { - static handle = 'reassemble' + static override handle = 'reassemble' @dependency private combatants!: Combatants @dependency private data!: Data @@ -39,7 +39,7 @@ export default class Reassemble extends Module { private REASSEMBLE_GCDS: number[] = [] private OTHER_GCDS: number[] = [] - protected init() { + protected override init() { this.REASSEMBLE_GCDS = REASSEMBLE_GCDS.map(key => this.data.actions[key].id) this.OTHER_GCDS = OTHER_GCDS.map(key => this.data.actions[key].id) diff --git a/src/parser/jobs/mch/modules/Tincture.tsx b/src/parser/jobs/mch/modules/Tincture.tsx index 1486b4ed07..d1fc7e8eb4 100644 --- a/src/parser/jobs/mch/modules/Tincture.tsx +++ b/src/parser/jobs/mch/modules/Tincture.tsx @@ -12,11 +12,11 @@ const TINCTURE_BUFFER = 2500 export default class Tincture extends CoreTincture { @dependency private downtime!: Downtime - buffAction = this.data.actions.INFUSION_DEX + override buffAction = this.data.actions.INFUSION_DEX - petActions = [this.data.actions.PILE_BUNKER] + override petActions = [this.data.actions.PILE_BUNKER] - trackedActions = { + override trackedActions = { icon: this.data.actions.INFUSION_DEX.icon, actions: [ { @@ -47,7 +47,7 @@ export default class Tincture extends CoreTincture { }, } - changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction): number { + override changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction): number { const bufferedWindowStart = buffWindow.start - TINCTURE_BUFFER if (action.action === this.data.actions.PILE_BUNKER) { diff --git a/src/parser/jobs/mch/modules/Weaving.ts b/src/parser/jobs/mch/modules/Weaving.ts index 35f45a1163..7ebe4c4907 100644 --- a/src/parser/jobs/mch/modules/Weaving.ts +++ b/src/parser/jobs/mch/modules/Weaving.ts @@ -10,12 +10,12 @@ const HYPERCHARGE_ACTION_IDS: Array = [ export default class Weaving extends CoreWeaving { private HYPERCHARGE_ACTION_IDS: number[] = [] - protected init() { + protected override init() { super.init() this.HYPERCHARGE_ACTION_IDS = HYPERCHARGE_ACTION_IDS.map(actionKey => this.data.actions[actionKey].id) } - isBadWeave(weave: WeaveInfo) { + override isBadWeave(weave: WeaveInfo) { const leadingGcd = weave.leadingGcdEvent as CastEvent if (leadingGcd && leadingGcd.ability && this.HYPERCHARGE_ACTION_IDS.includes(leadingGcd.ability.guid)) { diff --git a/src/parser/jobs/mnk/modules/Cooldowns.ts b/src/parser/jobs/mnk/modules/Cooldowns.ts index 4ecc025529..7871ce1b8e 100644 --- a/src/parser/jobs/mnk/modules/Cooldowns.ts +++ b/src/parser/jobs/mnk/modules/Cooldowns.ts @@ -1,7 +1,7 @@ import CoreCooldowns, {CooldownOrderItem} from 'parser/core/modules/Cooldowns' export default class Cooldowns extends CoreCooldowns { - static cooldownOrder: CooldownOrderItem[] = [ + static override cooldownOrder: CooldownOrderItem[] = [ { name: 'Chakras', actions: [ diff --git a/src/parser/jobs/mnk/modules/Demolish.tsx b/src/parser/jobs/mnk/modules/Demolish.tsx index 743084c00d..c59366ddea 100644 --- a/src/parser/jobs/mnk/modules/Demolish.tsx +++ b/src/parser/jobs/mnk/modules/Demolish.tsx @@ -18,9 +18,9 @@ const SEVERITIES = { } export default class Demolish extends DoTs { - static handle = 'demolish' + static override handle = 'demolish' - static statusesToTrack = [ + static override statusesToTrack = [ STATUSES.DEMOLISH.id, ] @@ -28,7 +28,7 @@ export default class Demolish extends DoTs { @dependency private data!: Data @dependency private suggestions!: Suggestions - addChecklistRules() { + override addChecklistRules() { this.checklist.add(new Rule({ name: Keep Demolish up, description: @@ -37,7 +37,7 @@ export default class Demolish extends DoTs { displayOrder: DISPLAY_ORDER.DEMOLISH, requirements: [ new Requirement({ - name: uptime, + name: uptime, percent: () => this.getUptimePercent(this.data.statuses.DEMOLISH.id), }), ], @@ -47,7 +47,7 @@ export default class Demolish extends DoTs { })) } - addClippingSuggestions(clip: TODO) { + override addClippingSuggestions(clip: TODO) { this.suggestions.add(new TieredSuggestion({ icon: this.data.actions.DEMOLISH.icon, content: diff --git a/src/parser/jobs/mnk/modules/Fists.tsx b/src/parser/jobs/mnk/modules/Fists.tsx index 5e589a0f26..875f670ef0 100644 --- a/src/parser/jobs/mnk/modules/Fists.tsx +++ b/src/parser/jobs/mnk/modules/Fists.tsx @@ -52,9 +52,9 @@ export class Fist { } export default class Fists extends Module { - static handle = 'fists' - static title = t('mnk.fists.title')`Fists` - static displayOrder = DISPLAY_ORDER.FISTS + static override handle = 'fists' + static override title = t('mnk.fists.title')`Fists` + static override displayOrder = DISPLAY_ORDER.FISTS @dependency private combatants!: Combatants @dependency private data!: Data @@ -68,7 +68,7 @@ export default class Fists extends Module { // if there's a pre-start applybuff, it'll get corrected, and if not, it's already correct private activeFist: Fist = new Fist(this.data.statuses.FISTS_OF_FIRE.id, this.parser.fight.start_time) - protected init(): void { + protected override init(): void { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('applybuff', {to: 'player', abilityId: FISTS}, this.onGain) this.addEventHook('removebuff', {to: 'player', abilityId: FISTS}, this.onRemove) diff --git a/src/parser/jobs/mnk/modules/Forms.tsx b/src/parser/jobs/mnk/modules/Forms.tsx index 5d2de7ccf1..9ec85aba87 100644 --- a/src/parser/jobs/mnk/modules/Forms.tsx +++ b/src/parser/jobs/mnk/modules/Forms.tsx @@ -25,7 +25,7 @@ const OPO_OPO_SKILLS = [ ] export default class Forms extends Module { - static handle = 'forms' + static override handle = 'forms' @dependency private combatants!: Combatants @dependency private data!: Data @@ -41,7 +41,7 @@ export default class Forms extends Module { private lastFormDropped?: number private perfectlyFresh?: number - protected init(): void { + protected override init(): void { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('applybuff', {to: 'player', abilityId: FORMS}, this.onGain) this.addEventHook('refreshbuff', {to: 'player', abilityId: FORMS}, this.onGain) diff --git a/src/parser/jobs/mnk/modules/MultiHitSkills.tsx b/src/parser/jobs/mnk/modules/MultiHitSkills.tsx index b3ccbc68b3..73c556d2e5 100644 --- a/src/parser/jobs/mnk/modules/MultiHitSkills.tsx +++ b/src/parser/jobs/mnk/modules/MultiHitSkills.tsx @@ -5,7 +5,7 @@ import {Data} from 'parser/core/modules/Data' import {NormalisedDamageEvent} from 'parser/core/modules/NormalisedEvents' export default class AoE extends AoEUsages { - static handle = 'aoe' + static override handle = 'aoe' @dependency private combatants!: Combatants @dependency private data!: Data @@ -39,7 +39,7 @@ export default class AoE extends AoEUsages { }, ] - protected adjustMinTargets(event: NormalisedDamageEvent, minTargets: number): number { + protected override adjustMinTargets(event: NormalisedDamageEvent, minTargets: number): number { const action = this.data.getAction(event.ability.guid) // How in the fuck did we even get here tbh diff --git a/src/parser/jobs/mnk/modules/OGCDDowntime.ts b/src/parser/jobs/mnk/modules/OGCDDowntime.ts index e17480b724..e80344eaec 100644 --- a/src/parser/jobs/mnk/modules/OGCDDowntime.ts +++ b/src/parser/jobs/mnk/modules/OGCDDowntime.ts @@ -12,8 +12,8 @@ const DEFAULT_AVERAGE_DOWNTIME = 2425 const MAX_CHAKRA_DELAY_OFFSET = 16000 export default class OGCDDowntime extends CooldownDowntime { - defaultAllowedAverageDowntime = DEFAULT_AVERAGE_DOWNTIME - trackedCds = [ + override defaultAllowedAverageDowntime = DEFAULT_AVERAGE_DOWNTIME + override trackedCds = [ { cooldowns: [ACTIONS.BROTHERHOOD], firstUseOffset: 11000, diff --git a/src/parser/jobs/mnk/modules/PerfectBalance.tsx b/src/parser/jobs/mnk/modules/PerfectBalance.tsx index acdc2f3e0d..49cf58c465 100644 --- a/src/parser/jobs/mnk/modules/PerfectBalance.tsx +++ b/src/parser/jobs/mnk/modules/PerfectBalance.tsx @@ -27,10 +27,10 @@ interface Balance { } export default class PerfectBalance extends Module { - static debug = false - static handle = 'perfectBalance' - static title = t('mnk.pb.title')`Perfect Balance` - static displayOrder = DISPLAY_ORDER.PERFECT_BALANCE + static override debug = false + static override handle = 'perfectBalance' + static override title = t('mnk.pb.title')`Perfect Balance` + static override displayOrder = DISPLAY_ORDER.PERFECT_BALANCE @dependency private combatants!: Combatants @dependency private data!: Data @@ -39,7 +39,7 @@ export default class PerfectBalance extends Module { private current: Balance | undefined private history: Balance[] = [] - init() { + override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('applybuffstack', {to: 'player', abilityId: PB_BAD_ACTIONS}, this.onStacc) this.addEventHook('removebuff', {to: 'player', abilityId: this.data.statuses.PERFECT_BALANCE.id}, this.onDrop) diff --git a/src/parser/jobs/mnk/modules/RiddleOfFire.tsx b/src/parser/jobs/mnk/modules/RiddleOfFire.tsx index 757ba3ca06..d22adf718b 100644 --- a/src/parser/jobs/mnk/modules/RiddleOfFire.tsx +++ b/src/parser/jobs/mnk/modules/RiddleOfFire.tsx @@ -86,9 +86,9 @@ class Riddle { } export default class RiddleOfFire extends Module { - static handle = 'riddleoffire' - static title = t('mnk.rof.title')`Riddle of Fire` - static displayOrder = DISPLAY_ORDER.RIDDLE_OF_FIRE + static override handle = 'riddleoffire' + static override title = t('mnk.rof.title')`Riddle of Fire` + static override displayOrder = DISPLAY_ORDER.RIDDLE_OF_FIRE @dependency private data!: Data @dependency private fists!: Fists @@ -98,7 +98,7 @@ export default class RiddleOfFire extends Module { private history: Riddle[] = [] private riddle?: Riddle - protected init(): void { + protected override init(): void { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook('removebuff', {by: 'player', abilityId: this.data.statuses.RIDDLE_OF_FIRE.id}, this.onDrop) this.addEventHook('complete', this.onComplete) @@ -211,7 +211,7 @@ export default class RiddleOfFire extends Module { } } - output() { + override output() { return SSS_MAX_WEAVES diff --git a/src/parser/jobs/pld/modules/Combos.tsx b/src/parser/jobs/pld/modules/Combos.tsx index 84b3b2c23c..faa39cec79 100644 --- a/src/parser/jobs/pld/modules/Combos.tsx +++ b/src/parser/jobs/pld/modules/Combos.tsx @@ -3,5 +3,5 @@ import CoreCombos from 'parser/core/modules/Combos' export default class Combos extends CoreCombos { // Overrides - static suggestionIcon = ACTIONS.ROYAL_AUTHORITY.icon + static override suggestionIcon = ACTIONS.ROYAL_AUTHORITY.icon } diff --git a/src/parser/jobs/pld/modules/Cooldowns.tsx b/src/parser/jobs/pld/modules/Cooldowns.tsx index 06b53a2d55..bb67d144da 100644 --- a/src/parser/jobs/pld/modules/Cooldowns.tsx +++ b/src/parser/jobs/pld/modules/Cooldowns.tsx @@ -1,7 +1,7 @@ import CoreCooldowns, {CooldownOrderItem} from 'parser/core/modules/Cooldowns' export default class Cooldowns extends CoreCooldowns { - static cooldownOrder: CooldownOrderItem[] = [ + static override cooldownOrder: CooldownOrderItem[] = [ // Buffs 'FIGHT_OR_FLIGHT', 'REQUIESCAT', diff --git a/src/parser/jobs/pld/modules/FightOrFlight.tsx b/src/parser/jobs/pld/modules/FightOrFlight.tsx index 773c3380b2..d3aa2c7739 100644 --- a/src/parser/jobs/pld/modules/FightOrFlight.tsx +++ b/src/parser/jobs/pld/modules/FightOrFlight.tsx @@ -90,8 +90,8 @@ class FightOrFlightErrorResult { } export default class FightOrFlight extends Module { - static handle = 'fightorflight' - static title = t('pld.fightorflight.title')`Fight Or Flight Usage` + static override handle = 'fightorflight' + static override title = t('pld.fightorflight.title')`Fight Or Flight Usage` @dependency private suggestions!: Suggestions @dependency private timeline!: Timeline @@ -103,7 +103,7 @@ export default class FightOrFlight extends Module { private fofRotations: TimestampRotationMap = {} private fofErrorResult = new FightOrFlightErrorResult() - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook( 'removebuff', @@ -255,7 +255,7 @@ export default class FightOrFlight extends Module { }, 0) } - output() { + override output() { return @@ -43,7 +43,7 @@ export default class Goring extends DoTs { })) } - addClippingSuggestions(clip: TODO) { + override addClippingSuggestions(clip: TODO) { // Suggestion for Goring Blade DoT clipping this.suggestions.add(new TieredSuggestion({ icon: ACTIONS.GORING_BLADE.icon, diff --git a/src/parser/jobs/pld/modules/OGCDDowntime.tsx b/src/parser/jobs/pld/modules/OGCDDowntime.tsx index 1799ec59b6..b0841969d9 100644 --- a/src/parser/jobs/pld/modules/OGCDDowntime.tsx +++ b/src/parser/jobs/pld/modules/OGCDDowntime.tsx @@ -14,7 +14,7 @@ const FIRST_USE_OFFSET_FOF = 24000 const FIRST_USE_OFFSET_REQ = 31000 export default class OGCDDowntime extends CooldownDowntime { - static debug = false + static override debug = false trackedCds = [ { cooldowns: [ACTIONS.FIGHT_OR_FLIGHT], diff --git a/src/parser/jobs/pld/modules/Requiescat.tsx b/src/parser/jobs/pld/modules/Requiescat.tsx index 28e78ff9b0..603b669969 100644 --- a/src/parser/jobs/pld/modules/Requiescat.tsx +++ b/src/parser/jobs/pld/modules/Requiescat.tsx @@ -63,8 +63,8 @@ class RequiescatState { } export default class Requiescat extends Module { - static handle = 'requiescat' - static title = t('pld.requiescat.title')`Requiescat Usage` + static override handle = 'requiescat' + static override title = t('pld.requiescat.title')`Requiescat Usage` @dependency private suggestions!: Suggestions @dependency private timeline!: Timeline @@ -77,7 +77,7 @@ export default class Requiescat extends Module { return _.last(this.requiescats) } - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player'}, this.onCast) this.addEventHook( 'applybuff', @@ -186,7 +186,7 @@ export default class Requiescat extends Module { return rotation.reduce((sum, event) => sum + (event.ability.guid === abilityId ? 1 : 0), 0) } - output() { + override output() { return Each of your windows should contain {CONSTANTS.TOTAL_GCDS.EXPECTED} spells at minimum to maintain the alignment of your rotation. Most of the time, a window should consist of {CONSTANTS.HOLY_SPIRIT.EXPECTED + 1} casts of or and end with a cast of . However, under some circumstances, it is useful to drop one per minute in order to better align your rotation with buffs or mechanics. If you don't have a specific plan to do this, you should aim for {CONSTANTS.HOLY_SPIRIT.EXPECTED + 1} casts of per window. diff --git a/src/parser/jobs/pld/modules/Statuses.ts b/src/parser/jobs/pld/modules/Statuses.ts index d4e350d4a1..cf26f7d356 100644 --- a/src/parser/jobs/pld/modules/Statuses.ts +++ b/src/parser/jobs/pld/modules/Statuses.ts @@ -2,7 +2,7 @@ import STATUSES from 'data/STATUSES' import CoreStatuses from 'parser/core/modules/Statuses' export default class Statuses extends CoreStatuses { - static statusesStackMapping = { + static override statusesStackMapping = { [STATUSES.DIVINE_VEIL_PROC.id]: STATUSES.DIVINE_VEIL.id, } } diff --git a/src/parser/jobs/pld/modules/Tincture.tsx b/src/parser/jobs/pld/modules/Tincture.tsx index e4fac0ee7d..fe7ffa7d26 100644 --- a/src/parser/jobs/pld/modules/Tincture.tsx +++ b/src/parser/jobs/pld/modules/Tincture.tsx @@ -5,9 +5,9 @@ import {Tincture as CoreTincture} from 'parser/core/modules/Tincture' import React from 'react' export default class Tincture extends CoreTincture { - buffAction = this.data.actions.INFUSION_STR + override buffAction = this.data.actions.INFUSION_STR - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: 13, suggestionContent: Try to land 13 GCDs during every window. @@ -19,7 +19,7 @@ export default class Tincture extends CoreTincture { }, } - trackedActions = { + override trackedActions = { icon: this.data.actions.INFUSION_STR.icon, actions: [ { diff --git a/src/parser/jobs/pld/modules/Weaving.tsx b/src/parser/jobs/pld/modules/Weaving.tsx index bd4da45053..386cba979b 100644 --- a/src/parser/jobs/pld/modules/Weaving.tsx +++ b/src/parser/jobs/pld/modules/Weaving.tsx @@ -15,7 +15,7 @@ export default class Weaving extends CoreWeaving { @dependency private combatants!: Combatants - isBadWeave(weave: WeaveInfo /*, maxWeaves*/) { + override isBadWeave(weave: WeaveInfo /*, maxWeaves*/) { // Check for if the homie opened on an oGCD for w/e reason if (weave.leadingGcdEvent.type != null && weave.leadingGcdEvent.ability != null) { // Requiescat makes spells instant cast, so they get 2 weaves by default. diff --git a/src/parser/jobs/rdm/modules/GeneralCDDowntime.ts b/src/parser/jobs/rdm/modules/GeneralCDDowntime.ts index e0b4122a35..45fb9307dc 100644 --- a/src/parser/jobs/rdm/modules/GeneralCDDowntime.ts +++ b/src/parser/jobs/rdm/modules/GeneralCDDowntime.ts @@ -4,9 +4,9 @@ import {CooldownDowntime} from 'parser/core/modules/CooldownDowntime' // Time that Jump deems ok for a OGCD to be down : ^) const DEFAULT_ALLOWED_DOWNTIME = 1000 export default class GeneralCDDowntime extends CooldownDowntime { - defaultAllowedAverageDowntime = DEFAULT_ALLOWED_DOWNTIME + override defaultAllowedAverageDowntime = DEFAULT_ALLOWED_DOWNTIME - trackedCds = [ + override trackedCds = [ // With the changes to Acceleration, we have a lot of instances where we should hold the skill. // Since it's not really possible to always know when during analysis we give a blanket grace of 20 and // hope that it's accurate enough diff --git a/src/parser/jobs/rdm/modules/Interrupts.tsx b/src/parser/jobs/rdm/modules/Interrupts.tsx index 7d6c14a6b2..f24bf2e357 100644 --- a/src/parser/jobs/rdm/modules/Interrupts.tsx +++ b/src/parser/jobs/rdm/modules/Interrupts.tsx @@ -4,7 +4,7 @@ import {Interrupts as CoreInterrupts} from 'parser/core/modules/Interrupts' import React from 'react' export class Interrupts extends CoreInterrupts { - suggestionContent = + override suggestionContent = Avoid interrupting casts by either prepositioning yourself or utilizing slidecasting where possible. If you need to move, try to save a use of or pool mana for a melee combo or . } diff --git a/src/parser/jobs/sam/modules/Combos.ts b/src/parser/jobs/sam/modules/Combos.ts index 90706eff8e..46a51c3bd7 100644 --- a/src/parser/jobs/sam/modules/Combos.ts +++ b/src/parser/jobs/sam/modules/Combos.ts @@ -6,11 +6,11 @@ import CoreCombos, {ComboEvent} from 'parser/core/modules/Combos' import {NormalisedDamageEvent} from 'parser/core/modules/NormalisedEvents' export default class Combos extends CoreCombos { - static suggestionIcon = ACTIONS.HAKAZE.icon + static override suggestionIcon = ACTIONS.HAKAZE.icon @dependency private combatants!: Combatants - checkCombo(combo: ComboEvent, event: NormalisedDamageEvent) { + override checkCombo(combo: ComboEvent, event: NormalisedDamageEvent) { // If they've got Meikyo Shisui up, all combos are correct, and nothing combos together if (this.combatants.selected.hasStatus(STATUSES.MEIKYO_SHISUI.id) && (event.ability.guid !== ACTIONS.HAKAZE.id)) { this.fabricateComboEvent(event) diff --git a/src/parser/jobs/sam/modules/Meikyo.tsx b/src/parser/jobs/sam/modules/Meikyo.tsx index 820837d0e0..b321a3bf73 100644 --- a/src/parser/jobs/sam/modules/Meikyo.tsx +++ b/src/parser/jobs/sam/modules/Meikyo.tsx @@ -17,73 +17,67 @@ const SEN_GCDS = 3 const SAM_BASE_GCD_SPEED_BUFFED = 2180 export default class MeikyoShisui extends BuffWindowModule { - static displayOrder = DISPLAY_ORDER.MEIKYO - static handle = 'Meikyo' - static title = t('sam.ms.title')`Meikyo Shisui Windows` + static override displayOrder = DISPLAY_ORDER.MEIKYO + static override handle = 'Meikyo' + static override title = t('sam.ms.title')`Meikyo Shisui Windows` buffAction = ACTIONS.MEIKYO_SHISUI buffStatus = STATUSES.MEIKYO_SHISUI -expectedGCDs = { - expectedPerWindow: SEN_GCDS, - suggestionContent: - Try to land 3 GCDs during every window. , - severityTiers: { - 1: SEVERITY.MEDIUM, - 2: SEVERITY.MAJOR, - }, -} - -requiredGCDs = { - icon: ACTIONS.MEIKYO_SHISUI.icon, - actions: [ - // Single Target - ACTIONS.GEKKO, - ACTIONS.KASHA, - ACTIONS.YUKIKAZE, - - // AoE - ACTIONS.OKA, - ACTIONS.MANGETSU, - ], - suggestionContent: - GCDs used during should be limited to sen building skills. , - severityTiers: { - 1: SEVERITY.MAJOR, - }, - -} - -// override for consider action. - -considerAction(action: Action) { - - if (ONLY_SHOW.has(action.id)) { - return true + override expectedGCDs = { + expectedPerWindow: SEN_GCDS, + suggestionContent: + Try to land 3 GCDs during every window. , + severityTiers: { + 1: SEVERITY.MEDIUM, + 2: SEVERITY.MAJOR, + }, } - return false -} + override requiredGCDs = { + icon: ACTIONS.MEIKYO_SHISUI.icon, + actions: [ + // Single Target + ACTIONS.GEKKO, + ACTIONS.KASHA, + ACTIONS.YUKIKAZE, + + // AoE + ACTIONS.OKA, + ACTIONS.MANGETSU, + ], + suggestionContent: + GCDs used during should be limited to sen building skills. , + severityTiers: { + 1: SEVERITY.MAJOR, + }, + } -// override for end of fight reducing + // override for consider action. + override considerAction(action: Action) { + if (ONLY_SHOW.has(action.id)) { + return true + } + return false + } -reduceExpectedGCDsEndOfFight(buffWindow: BuffWindowState): number { - let reduceGCDsBy = 0 + // override for end of fight reducing + override reduceExpectedGCDsEndOfFight(buffWindow: BuffWindowState): number { + let reduceGCDsBy = 0 - // Check to see if this window is rushing due to end of fight - reduce expected GCDs accordingly - const windowDurationMillis = this.buffStatus.duration * 1000 - const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) + // Check to see if this window is rushing due to end of fight - reduce expected GCDs accordingly + const windowDurationMillis = this.buffStatus.duration * 1000 + const fightTimeRemaining = this.parser.pull.duration - (buffWindow.start - this.parser.eventTimeOffset) - if (windowDurationMillis >= fightTimeRemaining) { - // This is using floor instead of ceiling to grant some forgiveness to first weave slot casts at the cost of 2nd weaves might be too forgiven - const possibleGCDs = Math.floor(fightTimeRemaining / SAM_BASE_GCD_SPEED_BUFFED) + if (windowDurationMillis >= fightTimeRemaining) { + // This is using floor instead of ceiling to grant some forgiveness to first weave slot casts at the cost of 2nd weaves might be too forgiven + const possibleGCDs = Math.floor(fightTimeRemaining / SAM_BASE_GCD_SPEED_BUFFED) - if (possibleGCDs < SEN_GCDS) { - reduceGCDsBy += (SEN_GCDS - possibleGCDs) + if (possibleGCDs < SEN_GCDS) { + reduceGCDsBy += (SEN_GCDS - possibleGCDs) + } } - } - - return reduceGCDsBy -} + return reduceGCDsBy + } } diff --git a/src/parser/jobs/sam/modules/OGCDDowntime.ts b/src/parser/jobs/sam/modules/OGCDDowntime.ts index 708f8f020e..d6381c4afc 100644 --- a/src/parser/jobs/sam/modules/OGCDDowntime.ts +++ b/src/parser/jobs/sam/modules/OGCDDowntime.ts @@ -13,8 +13,8 @@ const DEFAULT_ALLOWED_DOWNTIME = 2180 const MEIKYO_ALLOWED_DOWNTIME = 4360 export default class OGCDDowntime extends CooldownDowntime { - defaultAllowedAverageDowntime = DEFAULT_ALLOWED_DOWNTIME - trackedCds = [ + override defaultAllowedAverageDowntime = DEFAULT_ALLOWED_DOWNTIME + override trackedCds = [ { cooldowns: [ACTIONS.MEIKYO_SHISUI], firstUseOffset: FIRSTUSEOFFSET_MEIKYO, diff --git a/src/parser/jobs/sam/modules/Sen.tsx b/src/parser/jobs/sam/modules/Sen.tsx index 4ffb1ec515..8c2e1870d5 100644 --- a/src/parser/jobs/sam/modules/Sen.tsx +++ b/src/parser/jobs/sam/modules/Sen.tsx @@ -129,9 +129,9 @@ class SenState { } export default class Sen extends Module { - static displayOrder = DISPLAY_ORDER.SEN - static handle = 'sen' - static title = t('sam.sen.title')`Non-Standard Sen Windows` + static override displayOrder = DISPLAY_ORDER.SEN + static override handle = 'sen' + static override title = t('sam.sen.title')`Non-Standard Sen Windows` @dependency private suggestions!: Suggestions @dependency private kenki!: Kenki @@ -147,7 +147,7 @@ export default class Sen extends Module { return _.last(this.senStateWindows) } - protected init() { + protected override init() { this.addEventHook( 'cast', @@ -353,7 +353,7 @@ export default class Sen extends Module { } - output() { + override output() { if (this.nonStandardCount !== 0) { return diff --git a/src/parser/jobs/sam/modules/Shoha.tsx b/src/parser/jobs/sam/modules/Shoha.tsx index 76b1ad5538..da545ee4cb 100644 --- a/src/parser/jobs/sam/modules/Shoha.tsx +++ b/src/parser/jobs/sam/modules/Shoha.tsx @@ -37,10 +37,10 @@ interface StackState { } export default class Shoha extends Module { - static displayOrder = DISPLAY_ORDER.SHOHA - static handle = 'shoha' - static title = t('sam.shoha.title')`Meditation Timeline` - static displayMode = DISPLAY_MODE.FULL + static override displayOrder = DISPLAY_ORDER.SHOHA + static override handle = 'shoha' + static override title = t('sam.shoha.title')`Meditation Timeline` + static override displayMode = DISPLAY_MODE.FULL private stacks = 0 private meditateStart = 0 @@ -60,7 +60,7 @@ export default class Shoha extends Module { @dependency private checklist!: Checklist @dependency private data!: Data - protected init() { + protected override init() { this.addEventHook('init', this.pushToHistory) this.addEventHook( 'cast', @@ -215,7 +215,7 @@ export default class Shoha extends Module { fluid /> } - output() { + override output() { const stackColor = Color(JOBS.SAMURAI.colour) /* eslint-disable @typescript-eslint/no-magic-numbers */ const chartData = { diff --git a/src/parser/jobs/sch/modules/ChainStrat.tsx b/src/parser/jobs/sch/modules/ChainStrat.tsx index 56ec6652c2..70909d5b48 100644 --- a/src/parser/jobs/sch/modules/ChainStrat.tsx +++ b/src/parser/jobs/sch/modules/ChainStrat.tsx @@ -5,12 +5,12 @@ import {CooldownDowntime} from 'parser/core/modules/CooldownDowntime' import React from 'react' export default class ChainStrat extends CooldownDowntime { - trackedCds = [ + override trackedCds = [ { cooldowns: [ACTIONS.CHAIN_STRATAGEM], allowedAverageDowntime: 7500, firstUseOffset: 10000, }, ] - checklistDescription = Try to use on cooldown throughout the fight, particularly when your team has other buffs up for maximum effect. + override checklistDescription = Try to use on cooldown throughout the fight, particularly when your team has other buffs up for maximum effect. } diff --git a/src/parser/jobs/smn/modules/EgiCommands.tsx b/src/parser/jobs/smn/modules/EgiCommands.tsx index ee3718cbf1..e90514ce67 100644 --- a/src/parser/jobs/smn/modules/EgiCommands.tsx +++ b/src/parser/jobs/smn/modules/EgiCommands.tsx @@ -74,8 +74,8 @@ class UnexecutedCommands { } export default class EgiCommands extends Module { - static handle = 'egicommands' - static title = t('smn.egicommands.title')`Unexecuted Egi Commands` + static override handle = 'egicommands' + static override title = t('smn.egicommands.title')`Unexecuted Egi Commands` @dependency private suggestions!: Suggestions @dependency private timeline!: Timeline @@ -91,7 +91,7 @@ export default class EgiCommands extends Module { private activeCommands: CastEvent[] = [] private unexecutedCommands: UnexecutedCommands[] = [] - protected init() { + protected override init() { this.addEventHook('cast', {by: 'player', abilityId: ACTIONS.RUIN_IV.id}, this.onRuin4) this.addEventHook('cast', {by: 'player', abilityId: ACTIONS.SUMMON_BAHAMUT.id}, this.onSummonBahamut) this.addEventHook('cast', {by: 'player', abilityId: ACTIONS.ASSAULT_I_EARTHEN_ARMOR.id}, this.onPlayerEarthenArmor) @@ -236,7 +236,7 @@ export default class EgiCommands extends Module { } } - output() { + override output() { if (this.unexecutedCommands.length === 0) { return false } return Try to land 5 GCDs during every window. If you cannot do this with full uptime and no clipping, consider adjusting your gearset for more Skill Speed. @@ -23,7 +23,7 @@ export default class InnerRelease extends BuffWindowModule { 1: SEVERITY.MAJOR, }, } - requiredGCDs = { + override requiredGCDs = { icon: ACTIONS.FELL_CLEAVE.icon, actions: [ ACTIONS.FELL_CLEAVE, @@ -36,7 +36,7 @@ export default class InnerRelease extends BuffWindowModule { 1: SEVERITY.MAJOR, }, } - trackedActions = { + override trackedActions = { icon: ACTIONS.UPHEAVAL.icon, actions: [ { @@ -56,7 +56,7 @@ export default class InnerRelease extends BuffWindowModule { }, } - trackedBadActions = { + override trackedBadActions = { icon: ACTIONS.INNER_CHAOS.icon, actions: [ { diff --git a/src/parser/jobs/war/modules/StormsEye.tsx b/src/parser/jobs/war/modules/StormsEye.tsx index 68a8d83796..08ae1be017 100644 --- a/src/parser/jobs/war/modules/StormsEye.tsx +++ b/src/parser/jobs/war/modules/StormsEye.tsx @@ -14,7 +14,7 @@ import React from 'react' const STORMS_EYE_BUFFER = 7000 export default class StormsEye extends Module { - static handle = 'stormseye' + static override handle = 'stormseye' @dependency private checklist!: Checklist @dependency private combatants!: Combatants @@ -26,7 +26,7 @@ export default class StormsEye extends Module { private totalEyes: number = 0 private lastRefresh: number = this.parser.fight.start_time - protected init(): void { + protected override init(): void { this.addEventHook('applybuff', {by: 'player', abilityId: STATUSES.STORMS_EYE.id}, this.onGain) this.addEventHook('refreshbuff', {by: 'player', abilityId: STATUSES.STORMS_EYE.id}, this.onGain) this.addEventHook('complete', this.onComplete) diff --git a/src/parser/jobs/whm/modules/oGCDs.tsx b/src/parser/jobs/whm/modules/oGCDs.tsx index f8f2572272..c86fc834e7 100644 --- a/src/parser/jobs/whm/modules/oGCDs.tsx +++ b/src/parser/jobs/whm/modules/oGCDs.tsx @@ -62,8 +62,8 @@ interface CooldownTrackCollection { } export default class OGCDs extends Module { - static handle = 'oGCDs' - static title = t('whm.ogcds.title')`Off Global Cooldowns` + static override handle = 'oGCDs' + static override title = t('whm.ogcds.title')`Off Global Cooldowns` @dependency private checklist!: Checklist @dependency private suggestions!: Suggestions @@ -72,7 +72,7 @@ export default class OGCDs extends Module { private castFilter: number[] = [] private spellCooldowns: {[id: number]: number} = {} - protected init() { + protected override init() { this.initSpellCooldowns() this.initCastFilter() this.initCooldownUsage() diff --git a/src/reportSources/legacyFflogs/eventAdapter/deduplicateActorUpdates.ts b/src/reportSources/legacyFflogs/eventAdapter/deduplicateActorUpdates.ts index 0fb4203f80..5ae0d1c5c3 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/deduplicateActorUpdates.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/deduplicateActorUpdates.ts @@ -7,7 +7,7 @@ import {AdapterStep} from './base' export class DeduplicateActorUpdateStep extends AdapterStep { private actorState = new Map() - adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { + override adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { const out: Event[] = [] for (const event of adaptedEvents) { const adapted = event.type === 'actorUpdate' diff --git a/src/reportSources/legacyFflogs/eventAdapter/deduplicateStatus.ts b/src/reportSources/legacyFflogs/eventAdapter/deduplicateStatus.ts index e37d204d38..4272572ab4 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/deduplicateStatus.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/deduplicateStatus.ts @@ -13,7 +13,7 @@ const PERMITTED_TIME_DELTA = 0 export class DeduplicateStatusApplicationStep extends AdapterStep { private activeStatuses = new Map(); - adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { + override adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { const out: Event[] = [] for (const event of adaptedEvents) { const adapted = event.type === 'statusApply' diff --git a/src/reportSources/legacyFflogs/eventAdapter/prepullAction.ts b/src/reportSources/legacyFflogs/eventAdapter/prepullAction.ts index 5b011bf97b..7f66deb8a6 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/prepullAction.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/prepullAction.ts @@ -2,7 +2,7 @@ import {Event, Events} from 'event' import {AdapterStep, PREPULL_OFFSETS} from './base' export class PrepullActionAdapterStep extends AdapterStep { - postprocess(adaptedEvents: Event[]): Event[] { + override postprocess(adaptedEvents: Event[]): Event[] { const precastEvents: Event[] = [] for (const event of adaptedEvents) { diff --git a/src/reportSources/legacyFflogs/eventAdapter/prepullStatus.ts b/src/reportSources/legacyFflogs/eventAdapter/prepullStatus.ts index 916050e5e0..a8ae3e95e2 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/prepullStatus.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/prepullStatus.ts @@ -17,7 +17,7 @@ export class PrepullStatusAdapterStep extends AdapterStep { private observedStatuses = new Map>() private precastEvents: Event[] = [] - postprocess(adaptedEvents: Event[]): Event[] { + override postprocess(adaptedEvents: Event[]): Event[] { for (const event of adaptedEvents) { if (event.type !== 'statusApply' && event.type !== 'statusRemove') { if (event.type === 'action') { diff --git a/src/reportSources/legacyFflogs/eventAdapter/reassignUnknownActor.ts b/src/reportSources/legacyFflogs/eventAdapter/reassignUnknownActor.ts index ba8944386e..1c43ac0e65 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/reassignUnknownActor.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/reassignUnknownActor.ts @@ -18,7 +18,7 @@ export class ReassignUnknownActorStep extends AdapterStep { // Optimisation; store results of ID lookups to save looping the actors array every time private knownIds = new Map() - adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): MutationAdaptionResult { + override adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): MutationAdaptionResult { // In the common case, this chain of assignments isn't actually changing anything - // we're only creating a new event object when an explicit mutation is performed. let event = baseEvent diff --git a/src/reportSources/legacyFflogs/eventAdapter/translate.ts b/src/reportSources/legacyFflogs/eventAdapter/translate.ts index 96a6c4bce7..101ceef902 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/translate.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/translate.ts @@ -31,7 +31,7 @@ const targetHitType: Partial> = { export class TranslateAdapterStep extends AdapterStep { private unhandledTypes = new Set() - adapt(baseEvent: FflogsEvent, _adaptedEvents: Event[]): Event[] { + override adapt(baseEvent: FflogsEvent, _adaptedEvents: Event[]): Event[] { switch (baseEvent.type) { case 'begincast': case 'cast': diff --git a/src/reportSources/legacyFflogs/store.ts b/src/reportSources/legacyFflogs/store.ts index 55add9abf2..7789dce777 100644 --- a/src/reportSources/legacyFflogs/store.ts +++ b/src/reportSources/legacyFflogs/store.ts @@ -14,7 +14,7 @@ import {adaptReport} from './reportAdapter' */ export class LegacyFflogsReportStore extends ReportStore { @computed - get report() { + override get report() { // If the report hasn't finished loading yet, bail early const report = legacyReportStore.report if (report?.loading !== false) { @@ -29,7 +29,7 @@ export class LegacyFflogsReportStore extends ReportStore { legacyReportStore.fetchReportIfNeeded(code) } - requestPulls(options?: FetchOptions) { + override requestPulls(options?: FetchOptions) { // `fetchReport` gets the full set of pulls for us, only fire fetches // if bypassing the cache. if (options?.bypassCache !== true) { return } @@ -38,7 +38,7 @@ export class LegacyFflogsReportStore extends ReportStore { } // todo: clean up - async fetchEvents(pullId: Pull['id']) { + override async fetchEvents(pullId: Pull['id']) { if (this.report == null) { // todo: wait for report? throw new Error('no report') @@ -70,7 +70,7 @@ export class LegacyFflogsReportStore extends ReportStore { return adaptEvents(report, pull, legacyEvents) } - getReportLink(pullId?: Pull['id'], actorId?: Actor['id']) { + override getReportLink(pullId?: Pull['id'], actorId?: Actor['id']) { if (this.report == null) { return } From 968d632b391c64ac7f4e9be74ea620927b23e507 Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 4 Jun 2021 17:35:59 +1000 Subject: [PATCH 5/9] Update tools --- package.json | 6 +- yarn.lock | 155 +++++++++++++++++++++++++++------------------------ 2 files changed, 84 insertions(+), 77 deletions(-) diff --git a/package.json b/package.json index a1727d27d1..aeb8099646 100644 --- a/package.json +++ b/package.json @@ -100,8 +100,8 @@ "@types/webpack": "^5", "@types/webpack-dev-server": "^3.11.1", "@types/webpack-env": "^1.13.6", - "@typescript-eslint/eslint-plugin": "^4.12.0", - "@typescript-eslint/parser": "^4.12.0", + "@typescript-eslint/eslint-plugin": "^4.26.0", + "@typescript-eslint/parser": "^4.26.0", "@xivanalysis/eslint-plugin": "^0.0.2", "autoprefixer": "^10.1.0", "babel-jest": "^26.6.3", @@ -138,7 +138,7 @@ "postcss-modules-values-replace": "^3.1.0", "raw-loader": "^4.0.2", "style-loader": "^2.0.0", - "typescript": "~4.3.1-rc", + "typescript": "~4.3.2", "url-loader": "^4.1.1", "webpack": "^5.11.1", "webpack-cli": "^4.3.1", diff --git a/yarn.lock b/yarn.lock index d7aea53582..48344e5de8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1815,7 +1815,7 @@ jest-diff "^26.0.0" pretty-format "^26.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": version "7.0.7" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -2080,74 +2080,74 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.12.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.24.0.tgz#03801ffc25b2af9d08f3dc9bccfc0b7ce3780d0f" - integrity sha512-qbCgkPM7DWTsYQGjx9RTuQGswi+bEt0isqDBeo+CKV0953zqI0Tp7CZ7Fi9ipgFA6mcQqF4NOVNwS/f2r6xShw== +"@typescript-eslint/eslint-plugin@^4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz#12bbd6ebd5e7fabd32e48e1e60efa1f3554a3242" + integrity sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg== dependencies: - "@typescript-eslint/experimental-utils" "4.24.0" - "@typescript-eslint/scope-manager" "4.24.0" - debug "^4.1.1" + "@typescript-eslint/experimental-utils" "4.26.0" + "@typescript-eslint/scope-manager" "4.26.0" + debug "^4.3.1" functional-red-black-tree "^1.0.1" - lodash "^4.17.15" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@4.24.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.24.0.tgz#c23ead9de44b99c3a5fd925c33a106b00165e172" - integrity sha512-IwTT2VNDKH1h8RZseMH4CcYBz6lTvRoOLDuuqNZZoThvfHEhOiZPQCow+5El3PtyxJ1iDr6UXZwYtE3yZQjhcw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^4.12.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.24.0.tgz#2e5f1cc78ffefe43bfac7e5659309a92b09a51bd" - integrity sha512-dj1ZIh/4QKeECLb2f/QjRwMmDArcwc2WorWPRlB8UNTZlY1KpTVsbX7e3ZZdphfRw29aTFUSNuGB8w9X5sS97w== - dependencies: - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" - debug "^4.1.1" - -"@typescript-eslint/scope-manager@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.24.0.tgz#38088216f0eaf235fa30ed8cabf6948ec734f359" - integrity sha512-9+WYJGDnuC9VtYLqBhcSuM7du75fyCS/ypC8c5g7Sdw7pGL4NDTbeH38eJPfzIydCHZDoOgjloxSAA3+4l/zsA== - dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" - -"@typescript-eslint/types@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.24.0.tgz#6d0cca2048cbda4e265e0c4db9c2a62aaad8228c" - integrity sha512-tkZUBgDQKdvfs8L47LaqxojKDE+mIUmOzdz7r+u+U54l3GDkTpEbQ1Jp3cNqqAU9vMUCBA1fitsIhm7yN0vx9Q== - -"@typescript-eslint/typescript-estree@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.24.0.tgz#b49249679a98014d8b03e8d4b70864b950e3c90f" - integrity sha512-kBDitL/by/HK7g8CYLT7aKpAwlR8doshfWz8d71j97n5kUa5caHWvY0RvEUEanL/EqBJoANev8Xc/mQ6LLwXGA== - dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" - debug "^4.1.1" - globby "^11.0.1" + lodash "^4.17.21" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.26.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.26.0.tgz#ba7848b3f088659cdf71bce22454795fc55be99a" + integrity sha512-TH2FO2rdDm7AWfAVRB5RSlbUhWxGVuxPNzGT7W65zVfl8H/WeXTk1e69IrcEVsBslrQSTDKQSaJD89hwKrhdkw== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.26.0" + "@typescript-eslint/types" "4.26.0" + "@typescript-eslint/typescript-estree" "4.26.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.26.0.tgz#31b6b732c9454f757b020dab9b6754112aa5eeaf" + integrity sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg== + dependencies: + "@typescript-eslint/scope-manager" "4.26.0" + "@typescript-eslint/types" "4.26.0" + "@typescript-eslint/typescript-estree" "4.26.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.26.0.tgz#60d1a71df162404e954b9d1c6343ff3bee496194" + integrity sha512-G6xB6mMo4xVxwMt5lEsNTz3x4qGDt0NSGmTBNBPJxNsrTXJSm21c6raeYroS2OwQsOyIXqKZv266L/Gln1BWqg== + dependencies: + "@typescript-eslint/types" "4.26.0" + "@typescript-eslint/visitor-keys" "4.26.0" + +"@typescript-eslint/types@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.26.0.tgz#7c6732c0414f0a69595f4f846ebe12616243d546" + integrity sha512-rADNgXl1kS/EKnDr3G+m7fB9yeJNnR9kF7xMiXL6mSIWpr3Wg5MhxyfEXy/IlYthsqwBqHOr22boFbf/u6O88A== + +"@typescript-eslint/typescript-estree@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.26.0.tgz#aea17a40e62dc31c63d5b1bbe9a75783f2ce7109" + integrity sha512-GHUgahPcm9GfBuy3TzdsizCcPjKOAauG9xkz9TR8kOdssz2Iz9jRCSQm6+aVFa23d5NcSpo1GdHGSQKe0tlcbg== + dependencies: + "@typescript-eslint/types" "4.26.0" + "@typescript-eslint/visitor-keys" "4.26.0" + debug "^4.3.1" + globby "^11.0.3" is-glob "^4.0.1" - semver "^7.3.2" - tsutils "^3.17.1" + semver "^7.3.5" + tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.24.0.tgz#a8fafdc76cad4e04a681a945fbbac4e35e98e297" - integrity sha512-4ox1sjmGHIxjEDBnMCtWFFhErXtKA1Ec0sBpuz0fqf3P+g3JFGyTxxbF06byw0FRsPnnbq44cKivH7Ks1/0s6g== +"@typescript-eslint/visitor-keys@4.26.0": + version "4.26.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.26.0.tgz#26d2583169222815be4dcd1da4fe5459bc3bcc23" + integrity sha512-cw4j8lH38V1ycGBbF+aFiLUls9Z0Bw8QschP3mkth50BbWzgFS33ISIgBzUMuQ2IdahoEv/rXstr8Zhlz4B1Zg== dependencies: - "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/types" "4.26.0" eslint-visitor-keys "^2.0.0" "@visx/curve@1.7.0": @@ -3871,7 +3871,7 @@ debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -4470,7 +4470,7 @@ eslint-rule-composer@^0.3.0: resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== -eslint-scope@^5.0.0, eslint-scope@^5.1.1: +eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -4478,13 +4478,20 @@ eslint-scope@^5.0.0, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" @@ -8690,7 +8697,7 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: call-bind "^1.0.2" define-properties "^1.1.3" -regexpp@^3.0.0, regexpp@^3.1.0: +regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -9087,7 +9094,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== @@ -9883,7 +9890,7 @@ tslib@^2, tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== -tsutils@^3.17.1: +tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== @@ -9971,10 +9978,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@~4.3.1-rc: - version "4.3.1-rc" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.1-rc.tgz#925149c8d8514e20a6bd8d4bd7f42adac67ab59c" - integrity sha512-L3uJ0gcntaRaKni9aV2amYB+pCDVodKe/B5+IREyvtKGsDOF7cYjchHb/B894skqkgD52ykRuWatIZMqEsHIqA== +typescript@~4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" + integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== unbox-primitive@^1.0.0: version "1.0.1" From 63f744473184abe2335016c9341c9b42a8560bc0 Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 4 Jun 2021 17:36:02 +1000 Subject: [PATCH 6/9] Fix lint --- src/parser/jobs/mnk/modules/Demolish.tsx | 2 +- src/parser/jobs/sam/modules/index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/parser/jobs/mnk/modules/Demolish.tsx b/src/parser/jobs/mnk/modules/Demolish.tsx index c59366ddea..25b8caae65 100644 --- a/src/parser/jobs/mnk/modules/Demolish.tsx +++ b/src/parser/jobs/mnk/modules/Demolish.tsx @@ -37,7 +37,7 @@ export default class Demolish extends DoTs { displayOrder: DISPLAY_ORDER.DEMOLISH, requirements: [ new Requirement({ - name: uptime, + name: uptime, percent: () => this.getUptimePercent(this.data.statuses.DEMOLISH.id), }), ], diff --git a/src/parser/jobs/sam/modules/index.js b/src/parser/jobs/sam/modules/index.js index 95a3b8fff4..f5a6b79b8c 100644 --- a/src/parser/jobs/sam/modules/index.js +++ b/src/parser/jobs/sam/modules/index.js @@ -1,10 +1,10 @@ import AoeChecker from './AoeChecker' import Buffs from './Buffs' import Combos from './Combos' -import { Higanbana } from './Higanbana' +import {Higanbana} from './Higanbana' import Interrupts from './Interrupts' import Kaiten from './Kaiten' -import { Kenki } from './Kenki' +import {Kenki} from './Kenki' import Meikyo from './Meikyo' import OGCDDowntime from './OGCDDowntime' import Sen from './Sen' From ce8106cd221c6a7895452af5b8b0e408c33c05bf Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 4 Jun 2021 17:45:31 +1000 Subject: [PATCH 7/9] Add more overrides --- src/parser/core/Analyser.ts | 6 ------ src/parser/core/Module.ts | 1 - src/parser/core/modules/CastTime.ts | 4 ++-- src/parser/core/modules/Death.tsx | 2 +- src/parser/core/modules/Downtime.tsx | 4 ++-- src/parser/core/modules/Dummy.tsx | 8 ++++---- src/parser/core/modules/Medicated.ts | 4 ++-- src/parser/core/modules/Procs.tsx | 6 +++--- src/parser/jobs/blm/modules/Leylines.tsx | 10 +++++----- src/parser/jobs/blm/modules/Procs.tsx | 10 +++++----- src/parser/jobs/brd/modules/RefulgentProcs.tsx | 14 +++++++------- src/parser/jobs/dnc/modules/Gauge.tsx | 4 ++-- src/parser/jobs/dnc/modules/Procs.tsx | 14 +++++++------- src/parser/jobs/drg/modules/Procs.tsx | 2 +- src/parser/jobs/gnb/modules/NoMercy.tsx | 15 +++++++-------- src/parser/jobs/pld/modules/Gauge.tsx | 4 ++-- src/parser/jobs/rdm/modules/Procs.tsx | 6 +++--- .../legacyFflogs/eventAdapter/interrupts.ts | 2 +- .../legacyFflogs/eventAdapter/oneHpLock.ts | 2 +- .../legacyFflogs/eventAdapter/translate.ts | 2 +- 20 files changed, 56 insertions(+), 64 deletions(-) diff --git a/src/parser/core/Analyser.ts b/src/parser/core/Analyser.ts index ece10b96d2..08be3b8f08 100644 --- a/src/parser/core/Analyser.ts +++ b/src/parser/core/Analyser.ts @@ -65,12 +65,6 @@ export class Analyser extends Injectable { /** The style of the wrapper that analysis output should be rendered in. */ static displayMode = DisplayMode.COLLAPSIBLE - /** - * Set to `true` to enable debug mode for this analyser, allowing the execution - * of any calls to the debug method. - */ - static debug = false - /** The parser for the current analysis. */ protected readonly parser: Parser diff --git a/src/parser/core/Module.ts b/src/parser/core/Module.ts index 10b46a83ef..27e6276b6c 100644 --- a/src/parser/core/Module.ts +++ b/src/parser/core/Module.ts @@ -36,7 +36,6 @@ export default class Module extends Injectable { static displayMode: DISPLAY_MODE // TODO: Refactor this var static i18n_id?: string // tslint:disable-line - static debug: boolean = false private static _title: string | MessageDescriptor static get title() { diff --git a/src/parser/core/modules/CastTime.ts b/src/parser/core/modules/CastTime.ts index 6c54d638e2..1235d7dd39 100644 --- a/src/parser/core/modules/CastTime.ts +++ b/src/parser/core/modules/CastTime.ts @@ -13,14 +13,14 @@ export interface CastTimeAdjustment { } export default class CastTime extends Analyser { - static handle = 'castTime' + static override handle = 'castTime' @dependency data!: Data private castTimes: CastTimeAdjustment[] = [] private scIndex: number | null = null - initialise() { + override initialise() { // Only going to deal with SC here, job-specific can do it themselves const switftCastFilter = filter() .target(this.parser.actor.id) diff --git a/src/parser/core/modules/Death.tsx b/src/parser/core/modules/Death.tsx index 6e2fd66163..a4fe29fdfb 100644 --- a/src/parser/core/modules/Death.tsx +++ b/src/parser/core/modules/Death.tsx @@ -79,7 +79,7 @@ export class Death extends Analyser { return actorInfo.duration + currentDeadTime } - initialise() { + override initialise() { // An actor hitting 0 HP is a sign of a death. this.addEventHook({ type: 'actorUpdate', diff --git a/src/parser/core/modules/Downtime.tsx b/src/parser/core/modules/Downtime.tsx index a9a2152697..6f70fce875 100644 --- a/src/parser/core/modules/Downtime.tsx +++ b/src/parser/core/modules/Downtime.tsx @@ -11,13 +11,13 @@ interface DowntimeWindow { } export default class Downtime extends Analyser { - static handle = 'downtime' + static override handle = 'downtime' @dependency private readonly unableToAct!: UnableToAct @dependency private readonly invulnerability!: Invulnerability @dependency private readonly timeline!: Timeline - initialise() { + override initialise() { this.addEventHook('complete', this.onComplete) } diff --git a/src/parser/core/modules/Dummy.tsx b/src/parser/core/modules/Dummy.tsx index 7049406a31..a38fed6b27 100644 --- a/src/parser/core/modules/Dummy.tsx +++ b/src/parser/core/modules/Dummy.tsx @@ -13,16 +13,16 @@ import {Death} from './Death' const LIKELY_DUMMY_THRESHOLD = 3 export class Dummy extends Analyser { - static title = t('core.dummy.title')`Striking Dummy` - static handle = 'dummy' - static debug = false + static override title = t('core.dummy.title')`Striking Dummy` + static override handle = 'dummy' + static override debug = false @dependency private brokenLog!: BrokenLog @dependency private death!: Death private hook?: EventHook - initialise() { + override initialise() { const foeIds = this.parser.pull.actors .filter(actor => actor.team === Team.FOE) .map(actor => actor.id) diff --git a/src/parser/core/modules/Medicated.ts b/src/parser/core/modules/Medicated.ts index 8c21c9d251..73d1b5a5ac 100644 --- a/src/parser/core/modules/Medicated.ts +++ b/src/parser/core/modules/Medicated.ts @@ -10,7 +10,7 @@ interface Medication { } export class Medicated extends Analyser { - static handle = 'medicated' + static override handle = 'medicated' @dependency private data!: Data @dependency private timeline!: Timeline @@ -18,7 +18,7 @@ export class Medicated extends Analyser { private pot: Medication | undefined private pots: Medication[] = [] - initialise() { + override initialise() { this.addEventHook({ type: 'statusApply', target: this.parser.actor.id, diff --git a/src/parser/core/modules/Procs.tsx b/src/parser/core/modules/Procs.tsx index 0664a2fc6e..1c49012b90 100644 --- a/src/parser/core/modules/Procs.tsx +++ b/src/parser/core/modules/Procs.tsx @@ -43,8 +43,8 @@ const DEFAULT_SEVERITY_TIERS = { 3: SEVERITY.MAJOR, } export abstract class Procs extends Analyser { - static handle = 'procs' - static title = t('core.procs.title')`Procs` + static override handle = 'procs' + static override title = t('core.procs.title')`Procs` @dependency private downtime!: Downtime @dependency protected suggestions!: Suggestions @@ -231,7 +231,7 @@ export abstract class Procs extends Analyser { protected castingSpellId: number | null = null protected lastCastingSpellId: number | null = null - initialise() { + override initialise() { this.addEventHook(filter().type('prepare').source(this.parser.actor.id), this.onPrepare) const trackedProcActionsIds: number[] = this.trackedProcs.map(group => group.consumeActions).reduce((acc, cur) => acc.concat(cur)).map(action => action.id) diff --git a/src/parser/jobs/blm/modules/Leylines.tsx b/src/parser/jobs/blm/modules/Leylines.tsx index 662af33864..7e4f2b84d2 100644 --- a/src/parser/jobs/blm/modules/Leylines.tsx +++ b/src/parser/jobs/blm/modules/Leylines.tsx @@ -23,9 +23,9 @@ interface LeyLinesWindows { } export default class Leylines extends Analyser { - static handle = 'leylines' - static title = t('blm.leylines.title')`Ley Lines` - static displayOrder = DISPLAY_ORDER.LEY_LINES + static override handle = 'leylines' + static override title = t('blm.leylines.title')`Ley Lines` + static override displayOrder = DISPLAY_ORDER.LEY_LINES @dependency data!: Data @dependency checklist!: Checklist @@ -38,7 +38,7 @@ export default class Leylines extends Analyser { private buffWindows: {[key: number]: LeyLinesWindows} = {} - initialise() { + override initialise() { const leyLinesFilter = filter() .source(this.parser.actor.id) .status(oneOf(this.leyLinesStatuses)) @@ -152,7 +152,7 @@ export default class Leylines extends Analyser { })) } - output() { + override output() { const fightEnd = this.parser.pull.timestamp + this.parser.pull.duration return
diff --git a/src/parser/jobs/blm/modules/Procs.tsx b/src/parser/jobs/blm/modules/Procs.tsx index d25203fce0..29b794c8ee 100644 --- a/src/parser/jobs/blm/modules/Procs.tsx +++ b/src/parser/jobs/blm/modules/Procs.tsx @@ -11,7 +11,7 @@ import React from 'react' export default class Procs extends CoreProcs { @dependency castTime!: CastTime - trackedProcs = [ + override trackedProcs = [ { procStatus: this.data.statuses.THUNDERCLOUD, consumeActions: [ @@ -27,7 +27,7 @@ export default class Procs extends CoreProcs { private hasSharpcast: boolean = false - initialise() { + override initialise() { super.initialise() // Hacky workaround because Statuses aren't in Analyser format yet, can (and probably should) remove this when that's done @@ -38,12 +38,12 @@ export default class Procs extends CoreProcs { this.addEventHook(trackedStatusFilter.type('statusRemove'), () => { this.hasSharpcast = false }) } - protected jobSpecificCheckConsumeProc(_procGroup: ProcGroup, event: Events['action']): boolean { + protected override jobSpecificCheckConsumeProc(_procGroup: ProcGroup, event: Events['action']): boolean { // If we were already hardcasting this spell, it does not consume the proc return !(this.lastCastingSpellId && this.lastCastingSpellId === event.action) } - protected jobSpecificOnConsumeProc(procGroup: ProcGroup, event: Events['action']): void { + protected override jobSpecificOnConsumeProc(procGroup: ProcGroup, event: Events['action']): void { // BLM's procs are all instant-casts this.castTime.set([event.action], 0, event.timestamp, event.timestamp) @@ -54,7 +54,7 @@ export default class Procs extends CoreProcs { return } - protected addJobSpecificSuggestions(): void { + protected override addJobSpecificSuggestions(): void { const droppedThunderClouds: number = this.getDropCountForStatus(this.data.statuses.THUNDERCLOUD.id) if (droppedThunderClouds > 0) { this.suggestions.add(new Suggestion({ diff --git a/src/parser/jobs/brd/modules/RefulgentProcs.tsx b/src/parser/jobs/brd/modules/RefulgentProcs.tsx index 8c6af8e855..168bac9b6e 100644 --- a/src/parser/jobs/brd/modules/RefulgentProcs.tsx +++ b/src/parser/jobs/brd/modules/RefulgentProcs.tsx @@ -4,22 +4,22 @@ import {Procs} from 'parser/core/modules/Procs' import React from 'react' export default class RefulgentProcs extends Procs { - trackedProcs = [ + override trackedProcs = [ { procStatus: this.data.statuses.STRAIGHT_SHOT_READY, consumeActions: [this.data.actions.REFULGENT_ARROW], }, ] - showDroppedProcSuggestion = true - droppedProcIcon = this.data.actions.REFULGENT_ARROW.icon - droppedProcContent = + override showDroppedProcSuggestion = true + override droppedProcIcon = this.data.actions.REFULGENT_ARROW.icon + override droppedProcContent = Try to use whenever you have . - showOverwroteProcSuggestion = true - overwroteProcIcon = this.data.actions.REFULGENT_ARROW.icon - overwroteProcContent = + override showOverwroteProcSuggestion = true + override overwroteProcIcon = this.data.actions.REFULGENT_ARROW.icon + override overwroteProcContent = Avoid using actions that grant when you could use instead. diff --git a/src/parser/jobs/dnc/modules/Gauge.tsx b/src/parser/jobs/dnc/modules/Gauge.tsx index 90261f79b6..fd57f23cae 100644 --- a/src/parser/jobs/dnc/modules/Gauge.tsx +++ b/src/parser/jobs/dnc/modules/Gauge.tsx @@ -54,7 +54,7 @@ const MAX_FEATHERS = 4 const DNC_COLOR = Color(JOBS.DANCER.colour) export default class Gauge extends Analyser { - static handle = 'gauge' + static override handle = 'gauge' @dependency private data!: Data @dependency private suggestions!: Suggestions @@ -117,7 +117,7 @@ export default class Gauge extends Analyser { private pauseGeneration = false; - initialise() { + override initialise() { const espritApplyFilter = filter() .type('statusApply') .source(this.parser.actor.id) diff --git a/src/parser/jobs/dnc/modules/Procs.tsx b/src/parser/jobs/dnc/modules/Procs.tsx index 5e0d256441..e50cd16c16 100644 --- a/src/parser/jobs/dnc/modules/Procs.tsx +++ b/src/parser/jobs/dnc/modules/Procs.tsx @@ -4,7 +4,7 @@ import {Procs as CoreProcs} from 'parser/core/modules/Procs' import React from 'react' export default class Procs extends CoreProcs { - trackedProcs = [ + override trackedProcs = [ { procStatus: this.data.statuses.FLOURISHING_FAN_DANCE, consumeActions: [this.data.actions.FAN_DANCE_III], @@ -27,16 +27,16 @@ export default class Procs extends CoreProcs { }, ] - showDroppedProcSuggestion = true - droppedProcIcon = this.data.actions.FOUNTAINFALL.icon - droppedProcContent = + override showDroppedProcSuggestion = true + override droppedProcIcon = this.data.actions.FOUNTAINFALL.icon + override droppedProcContent = Avoid dropping your procs unless absolutely necessary. If you have to drop one to keep your Esprit from overcapping, or will lose the least DPS overall. - showOverwroteProcSuggestion = true - overwroteProcIcon = this.data.actions.REVERSE_CASCADE.icon - overwroteProcContent = + override showOverwroteProcSuggestion = true + override overwroteProcIcon = this.data.actions.REVERSE_CASCADE.icon + override overwroteProcContent = Avoid overwriting your procs. Your proc actions are stronger than your normal combo, so overwriting them is a significant DPS loss. diff --git a/src/parser/jobs/drg/modules/Procs.tsx b/src/parser/jobs/drg/modules/Procs.tsx index e6c4b9cfaa..d89a93b0a4 100644 --- a/src/parser/jobs/drg/modules/Procs.tsx +++ b/src/parser/jobs/drg/modules/Procs.tsx @@ -20,7 +20,7 @@ export default class Procs extends CoreProcs { }, ] - protected addJobSpecificSuggestions(): void { + protected override addJobSpecificSuggestions(): void { const droppedFang = this.getDropCountForStatus(this.data.statuses.SHARPER_FANG_AND_CLAW.id) const droppedWheeling = this.getDropCountForStatus(this.data.statuses.ENHANCED_WHEELING_THRUST.id) const droppedMirage = this.getDropCountForStatus(this.data.statuses.DIVE_READY.id) diff --git a/src/parser/jobs/gnb/modules/NoMercy.tsx b/src/parser/jobs/gnb/modules/NoMercy.tsx index d44420a213..4e15cd260b 100644 --- a/src/parser/jobs/gnb/modules/NoMercy.tsx +++ b/src/parser/jobs/gnb/modules/NoMercy.tsx @@ -35,15 +35,15 @@ const EXPECTED_USES = { } export default class NoMercy extends BuffWindowModule { - static handle = 'nomercy' - static title = t('gnb.nomercy.title')`No Mercy Windows` + static override handle = 'nomercy' + static override title = t('gnb.nomercy.title')`No Mercy Windows` buffAction = ACTIONS.NO_MERCY buffStatus = STATUSES.NO_MERCY - rotationTableNotesColumnHeader = Bloodfest Used + override rotationTableNotesColumnHeader = Bloodfest Used - expectedGCDs = { + override expectedGCDs = { expectedPerWindow: EXPECTED_USES.GCD, suggestionContent: Try to land 9 GCDs during every window. A 20 second duration is sufficient @@ -52,7 +52,7 @@ export default class NoMercy extends BuffWindowModule { severityTiers: SEVERITIES.TOO_FEW_GCDS, } - trackedActions = { + override trackedActions = { icon: ACTIONS.NO_MERCY.icon, actions: [ { @@ -96,7 +96,7 @@ export default class NoMercy extends BuffWindowModule { } - changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction) { + override changeExpectedTrackedActionClassLogic(buffWindow: BuffWindowState, action: BuffWindowTrackedAction) { const Id = action.action.id if (Id === ACTIONS.BURST_STRIKE.id) { @@ -113,9 +113,8 @@ export default class NoMercy extends BuffWindowModule { return 0 } - getBuffWindowNotes(buffWindow: BuffWindowState) { + override getBuffWindowNotes(buffWindow: BuffWindowState) { return buffWindow.rotation.find(cast => cast.ability.guid === ACTIONS.BLOODFEST.id) ? Yes : No } - } diff --git a/src/parser/jobs/pld/modules/Gauge.tsx b/src/parser/jobs/pld/modules/Gauge.tsx index 2948d114a4..f367f2f0a7 100644 --- a/src/parser/jobs/pld/modules/Gauge.tsx +++ b/src/parser/jobs/pld/modules/Gauge.tsx @@ -20,7 +20,7 @@ const OATH_MODIFIERS = new Map([ [ACTIONS.COVER.id, {cast: -50}], ]) export default class Gauge extends CoreGauge { - static title = t('pld.gauge.title')`Oath Gauge Usage` + static override title = t('pld.gauge.title')`Oath Gauge Usage` @dependency private suggestions!: Suggestions @@ -28,7 +28,7 @@ export default class Gauge extends CoreGauge { chart: {label: 'Oath Gauge', color: JOBS.PALADIN.colour}, })) - protected init() { + protected override init() { super.init() this.addEventHook('cast', {by: 'player', abilityId: Array.from(OATH_MODIFIERS.keys())}, this.onOathModifying) diff --git a/src/parser/jobs/rdm/modules/Procs.tsx b/src/parser/jobs/rdm/modules/Procs.tsx index 46518bad56..822f18128a 100644 --- a/src/parser/jobs/rdm/modules/Procs.tsx +++ b/src/parser/jobs/rdm/modules/Procs.tsx @@ -25,7 +25,7 @@ const SEVERITY_MISSED_PROCS = { } export default class Procs extends CoreProcs { - static title = t('rdm.procs.title')`Proc Issues` + static override title = t('rdm.procs.title')`Proc Issues` /** * Procs that a RDM gains over a fight caused by the RDM themselves @@ -137,7 +137,7 @@ export default class Procs extends CoreProcs { } - protected addJobSpecificSuggestions() { + protected override addJobSpecificSuggestions() { const missedFire = this.getDropCountForStatus(this.data.statuses.VERFIRE_READY.id) const invulnFire = this.getInvulnCountForStatus(this.data.statuses.VERFIRE_READY.id) const overWrittenFire = this.getOverwriteCountForStatus(this.data.statuses.VERFIRE_READY.id) @@ -172,7 +172,7 @@ export default class Procs extends CoreProcs { })) } - output() { + override output() { const allInvulns = this.getInvulnsForStatus(this.data.statuses.VERFIRE_READY.id).concat(this.getInvulnsForStatus(this.data.statuses.VERSTONE_READY.id)).sort((a, b) => a.timestamp - b.timestamp) if (allInvulns.length === 0) { return } diff --git a/src/reportSources/legacyFflogs/eventAdapter/interrupts.ts b/src/reportSources/legacyFflogs/eventAdapter/interrupts.ts index da1829f397..b5c166a6fb 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/interrupts.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/interrupts.ts @@ -6,7 +6,7 @@ import {AdapterStep} from './base' export class InterruptsAdapterStep extends AdapterStep { private casts = new Map() - adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { + override adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]): Event[] { const interrupts: Array = [] for (const event of adaptedEvents) { diff --git a/src/reportSources/legacyFflogs/eventAdapter/oneHpLock.ts b/src/reportSources/legacyFflogs/eventAdapter/oneHpLock.ts index b7ec588b47..c28cd4f6e9 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/oneHpLock.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/oneHpLock.ts @@ -15,7 +15,7 @@ import {AdapterStep} from './base' * adapter pipeline. */ export class OneHpLockAdapterStep extends AdapterStep { - postprocess(adaptedEvents: Event[]) { + override postprocess(adaptedEvents: Event[]) { const zeroHp = new Map() for (const event of adaptedEvents) { diff --git a/src/reportSources/legacyFflogs/eventAdapter/translate.ts b/src/reportSources/legacyFflogs/eventAdapter/translate.ts index 0fa598d099..87c64a9535 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/translate.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/translate.ts @@ -78,7 +78,7 @@ export class TranslateAdapterStep extends AdapterStep { : this.adaptPostCalculatedHealEvent } - adapt(baseEvent: FflogsEvent, _adaptedEvents: Event[]): Event[] { + override adapt(baseEvent: FflogsEvent, _adaptedEvents: Event[]): Event[] { switch (baseEvent.type) { case 'begincast': case 'cast': From a52562493103111fdbaa145a7abbbdd5945b6a1c Mon Sep 17 00:00:00 2001 From: ackwell Date: Fri, 4 Jun 2021 17:52:52 +1000 Subject: [PATCH 8/9] Update babel --- package.json | 2 +- yarn.lock | 182 +++++++++++++++++++++++++-------------------------- 2 files changed, 92 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index aeb8099646..b41421a572 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-decorators": "^7.12.12", "@babel/plugin-transform-runtime": "^7.12.10", - "@babel/plugin-transform-typescript": "^7.12.1", + "@babel/plugin-transform-typescript": "^7.14.4", "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/register": "^7.12.10", diff --git a/yarn.lock b/yarn.lock index 48344e5de8..019f1384af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,10 +16,10 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" - integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" + integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== "@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.7.5": version "7.14.3" @@ -66,26 +66,26 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" + integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA== dependencies: - "@babel/compat-data" "^7.13.15" + "@babel/compat-data" "^7.14.4" "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" + browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a" - integrity sha512-BnEfi5+6J2Lte9LeiL6TxLWdIlEv9Woacc1qXzXBgbikcOzMRM2Oya5XGg/f/ngotv1ej2A/b+3iJH8wbS1+lQ== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3", "@babel/helper-create-class-features-plugin@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" + integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" "@babel/helper-function-name" "^7.14.2" "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.14.3" + "@babel/helper-replace-supers" "^7.14.4" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-create-regexp-features-plugin@^7.12.13": @@ -96,10 +96,10 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -190,15 +190,15 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" - integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" + integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ== dependencies: "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" + "@babel/types" "^7.14.4" "@babel/helper-simple-access@^7.13.12": version "7.13.12" @@ -272,9 +272,9 @@ v8flags "^3.1.1" "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" - integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" + integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -302,7 +302,7 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-class-static-block@^7.13.11": +"@babel/plugin-proposal-class-static-block@^7.14.3": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== @@ -368,13 +368,13 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" - integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw== +"@babel/plugin-proposal-object-rest-spread@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4" + integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA== dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" + "@babel/compat-data" "^7.14.4" + "@babel/helper-compilation-targets" "^7.14.4" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.2" @@ -578,23 +578,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" - integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg== +"@babel/plugin-transform-block-scoping@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8" + integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g== dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-classes@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" - integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg== +"@babel/plugin-transform-classes@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a" + integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ== dependencies: "@babel/helper-annotate-as-pure" "^7.12.13" "@babel/helper-function-name" "^7.14.2" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-replace-supers" "^7.14.4" "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" @@ -605,10 +605,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.13.17": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" - integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== +"@babel/plugin-transform-destructuring@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed" + integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA== dependencies: "@babel/helper-plugin-utils" "^7.13.0" @@ -833,12 +833,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-typescript@^7.12.1": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.3.tgz#44f67f725a60cccee33d9d6fee5e4f338258f34f" - integrity sha512-G5Bb5pY6tJRTC4ag1visSgiDoGgJ1u1fMUgmc2ijLkcIdzP83Q1qyZX4ggFQ/SkR+PNOatkaYC+nKcTlpsX4ag== +"@babel/plugin-transform-typescript@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.4.tgz#1c48829fa6d5f2de646060cd08abb6cda4b521a7" + integrity sha512-WYdcGNEO7mCCZ2XzRlxwGj3PgeAr50ifkofOUC/+IN/GzKLB+biDPVBUAQN2C/dVZTvEXCp80kfQ1FFZPrwykQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.3" + "@babel/helper-create-class-features-plugin" "^7.14.4" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-typescript" "^7.12.13" @@ -858,25 +858,25 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.12.11": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5" - integrity sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ== + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d" + integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA== dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" + "@babel/compat-data" "^7.14.4" + "@babel/helper-compilation-targets" "^7.14.4" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions" "^7.14.2" "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-class-static-block" "^7.13.11" + "@babel/plugin-proposal-class-static-block" "^7.14.3" "@babel/plugin-proposal-dynamic-import" "^7.14.2" "@babel/plugin-proposal-export-namespace-from" "^7.14.2" "@babel/plugin-proposal-json-strings" "^7.14.2" "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" "@babel/plugin-proposal-numeric-separator" "^7.14.2" - "@babel/plugin-proposal-object-rest-spread" "^7.14.2" + "@babel/plugin-proposal-object-rest-spread" "^7.14.4" "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" "@babel/plugin-proposal-optional-chaining" "^7.14.2" "@babel/plugin-proposal-private-methods" "^7.13.0" @@ -899,10 +899,10 @@ "@babel/plugin-transform-arrow-functions" "^7.13.0" "@babel/plugin-transform-async-to-generator" "^7.13.0" "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.14.2" - "@babel/plugin-transform-classes" "^7.14.2" + "@babel/plugin-transform-block-scoping" "^7.14.4" + "@babel/plugin-transform-classes" "^7.14.4" "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.17" + "@babel/plugin-transform-destructuring" "^7.14.4" "@babel/plugin-transform-dotall-regex" "^7.12.13" "@babel/plugin-transform-duplicate-keys" "^7.12.13" "@babel/plugin-transform-exponentiation-operator" "^7.12.13" @@ -929,7 +929,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.2" + "@babel/types" "^7.14.4" babel-plugin-polyfill-corejs2 "^0.2.0" babel-plugin-polyfill-corejs3 "^0.2.0" babel-plugin-polyfill-regenerator "^0.2.0" @@ -1008,10 +1008,10 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" - integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" + integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== dependencies: "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" @@ -2777,28 +2777,28 @@ babel-plugin-macros@^3: resolve "^1.19.0" babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" + integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.2" core-js-compat "^3.9.1" babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.2" babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" @@ -3106,9 +3106,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001165, caniuse-lite@^1.0.30001219: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== + version "1.0.30001234" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001234.tgz#8fc2e709e3b0679d7af7f073a1c661155c39b975" + integrity sha512-a3gjUVKkmwLdNysa1xkUAwN2VfJUJyVW47rsi3aCbkRCtbHAfo+rOsCqVw29G6coQ8gzAPb5XBXwiGHwme3isA== capture-exit@^2.0.0: version "2.0.0" @@ -3524,9 +3524,9 @@ copy-webpack-plugin@^8: serialize-javascript "^5.0.1" core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" - integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== + version "3.13.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.1.tgz#05444caa8f153be0c67db03cf8adb8ec0964e58e" + integrity sha512-mdrcxc0WznfRd8ZicEZh1qVeJ2mu6bwQFh8YVUK48friy/FOwFV5EJj9/dlh+nMQ74YusdVfBFDuomKgUspxWQ== dependencies: browserslist "^4.16.6" semver "7.0.0" @@ -4194,9 +4194,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.723: - version "1.3.730" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.730.tgz#6e1fad8f250827f5524672e572f823b34a6417e1" - integrity sha512-1Tr3h09wXhmqXnvDyrRe6MFgTeU0ZXy3+rMJWTrOHh/HNesWwBBrKnMxRJWZ86dzs8qQdw2c7ZE1/qeGHygImA== + version "1.3.748" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.748.tgz#16638a8130f407ae5bf2fc168f2173574deb36c5" + integrity sha512-fmIKfYALVeEybk/L2ucdgt7jN3JsbGtg3K9pmF/MRWgkeADBI1VSAa5IzdG2gZwTxsnsrFtdMpOTSM5mrBRKVQ== emittery@^0.7.1: version "0.7.2" @@ -7771,9 +7771,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-starts-with@^1.0.0: version "1.0.0" From 885e6e1338ec36c6ba0c82cc867443070d99ca94 Mon Sep 17 00:00:00 2001 From: ackwell Date: Mon, 7 Jun 2021 21:02:55 +1000 Subject: [PATCH 9/9] Fix new stuff --- src/components/ui/Rotation.tsx | 2 +- src/parser/core/modules/SpeedAdjustments.ts | 2 +- src/reportSources/legacyFflogs/eventAdapter/speedStat.ts | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/ui/Rotation.tsx b/src/components/ui/Rotation.tsx index f652242d9a..3f51e3df3b 100644 --- a/src/components/ui/Rotation.tsx +++ b/src/components/ui/Rotation.tsx @@ -32,7 +32,7 @@ export default class Rotation extends Component { return undefined } - render() { + override render() { const {events} = this.props return
diff --git a/src/parser/core/modules/SpeedAdjustments.ts b/src/parser/core/modules/SpeedAdjustments.ts index 52b454a4e0..e1a47669b3 100644 --- a/src/parser/core/modules/SpeedAdjustments.ts +++ b/src/parser/core/modules/SpeedAdjustments.ts @@ -8,7 +8,7 @@ import {Actors} from './Actors' type SpeedAttribute = Attribute.SKILL_SPEED | Attribute.SPELL_SPEED export class SpeedAdjustments extends Analyser { - static handle = 'speedAdjustments' + static override handle = 'speedAdjustments' @dependency private actors!: Actors diff --git a/src/reportSources/legacyFflogs/eventAdapter/speedStat.ts b/src/reportSources/legacyFflogs/eventAdapter/speedStat.ts index f905b07927..d152152c4f 100644 --- a/src/reportSources/legacyFflogs/eventAdapter/speedStat.ts +++ b/src/reportSources/legacyFflogs/eventAdapter/speedStat.ts @@ -38,10 +38,10 @@ export class SpeedStatsAdapterStep extends AdapterStep { private actorActions = new Map() private actorSpeedmodWindows = new Map>() - static debug = false + static override debug = false private endTimestamp = 0 - adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]) { + override adapt(baseEvent: FflogsEvent, adaptedEvents: Event[]) { if (baseEvent.type === 'encounterend') { this.endTimestamp = baseEvent.timestamp } @@ -49,7 +49,7 @@ export class SpeedStatsAdapterStep extends AdapterStep { return adaptedEvents } - postprocess(adaptedEvents: Event[]): Event[] { + override postprocess(adaptedEvents: Event[]): Event[] { adaptedEvents.forEach((event) => { if (!('source' in event) || !this.actorIsFriendly(event.source)) { return }