Skip to content

Commit

Permalink
tier set wip
Browse files Browse the repository at this point in the history
  • Loading branch information
trevorm4 committed Mar 3, 2025
1 parent e6f366c commit 271dc91
Show file tree
Hide file tree
Showing 12 changed files with 77 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export default class TWW2TierSet extends Analyzer.withDependencies({
this.has4pc = this.selectedCombatant.has4PieceByTier(TIERS.TWW2);

this.addEventListener(
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.RESTO_DRUID_INSURANCE_HOT),
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.NSURANCE_HOT_DRUID),
this.onInsuranceHotHeal,
);
this.addEventListener(
Expand All @@ -101,15 +101,15 @@ export default class TWW2TierSet extends Analyzer.withDependencies({
);

this.addEventListener(
Events.applybuff.by(SELECTED_PLAYER).spell(SPELLS.RESTO_DRUID_INSURANCE_HOT),
Events.applybuff.by(SELECTED_PLAYER).spell(SPELLS.NSURANCE_HOT_DRUID),
this.onInsuranceApply,
);
this.addEventListener(
Events.refreshbuff.by(SELECTED_PLAYER).spell(SPELLS.RESTO_DRUID_INSURANCE_HOT),
Events.refreshbuff.by(SELECTED_PLAYER).spell(SPELLS.NSURANCE_HOT_DRUID),
this.onInsuranceRefresh,
);
this.addEventListener(
Events.removebuff.by(SELECTED_PLAYER).spell(SPELLS.RESTO_DRUID_INSURANCE_HOT),
Events.removebuff.by(SELECTED_PLAYER).spell(SPELLS.NSURANCE_HOT_DRUID),
this.onInsuranceRemove,
);
this.addEventListener(Events.fightend, this.onFightEnd);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const HOT_FROM_INSURANCE = 'HoT from Insurance';
const EVENT_LINKS: EventLink[] = [
{
linkRelation: INSURANCE_FROM_BLOOM,
linkingEventId: SPELLS.RESTO_DRUID_INSURANCE_HOT.id,
linkingEventId: SPELLS.NSURANCE_HOT_DRUID.id,
linkingEventType: [EventType.ApplyBuff, EventType.RefreshBuff],
referencedEventId: SPELLS.LIFEBLOOM_BLOOM_HEAL.id,
referencedEventType: EventType.Heal,
Expand All @@ -27,7 +27,7 @@ const EVENT_LINKS: EventLink[] = [
SPELLS.WILD_GROWTH.id,
],
linkingEventType: [EventType.ApplyBuff, EventType.RefreshBuff],
referencedEventId: SPELLS.RESTO_DRUID_INSURANCE_HOT.id,
referencedEventId: SPELLS.NSURANCE_HOT_DRUID.id,
referencedEventType: [EventType.RemoveBuff, EventType.RefreshBuff],
forwardBufferMs: BUFFER_MS,
backwardBufferMs: BUFFER_MS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,28 +24,28 @@ class T33Prevoker extends Analyzer {
this.has4Piece = this.selectedCombatant.has4PieceByTier(TIERS.TWW2);

this.addEventListener(
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.INSURANCE_HOT),
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.INSURANCE_HOT_EVOKER),
this.onInsuranceHeal,
);

this.addEventListener(
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.INSURANCE_PROC),
Events.heal.by(SELECTED_PLAYER).spell(SPELLS.INSURANCE_PROC_EVOKER),
this.onInsuranceHeal,
);
}

onInsuranceHeal(event: HealEvent) {
if (this.has4Piece && isInsuranceFromVe(event)) {
this.ins4pOverheal += event.overheal || 0;
if (event.ability.guid === SPELLS.INSURANCE_HOT.id) {
if (event.ability.guid === SPELLS.INSURANCE_HOT_EVOKER.id) {
this.insurance4pHotHealing += event.amount + (event.absorbed || 0);
} else if (event.ability.guid === SPELLS.INSURANCE_PROC.id) {
} else if (event.ability.guid === SPELLS.INSURANCE_PROC_EVOKER.id) {
this.insurance4pProcHealing += event.amount + (event.absorbed || 0);
}
} else {
if (event.ability.guid === SPELLS.INSURANCE_HOT.id) {
if (event.ability.guid === SPELLS.INSURANCE_HOT_EVOKER.id) {
this.insurance2pHotHealing += event.amount + (event.absorbed || 0);
} else if (event.ability.guid === SPELLS.INSURANCE_PROC.id) {
} else if (event.ability.guid === SPELLS.INSURANCE_PROC_EVOKER.id) {
this.insurance2pProcHealing += event.amount + (event.absorbed || 0);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
export const TIER_EVENT_LINKS: EventLink[] = [
{
linkRelation: VERDANT_EMBRACE_INSURANCE,
linkingEventId: SPELLS.INSURANCE_HOT.id,
linkingEventId: SPELLS.INSURANCE_HOT_EVOKER.id,
linkingEventType: [EventType.ApplyBuff, EventType.RefreshBuff],
referencedEventId: SPELLS.VERDANT_EMBRACE_HEAL.id,
referencedEventType: EventType.Heal,
Expand All @@ -19,9 +19,9 @@ export const TIER_EVENT_LINKS: EventLink[] = [
},
{
linkRelation: INSURANCE_APPLICATION,
linkingEventId: [SPELLS.INSURANCE_HOT.id, SPELLS.INSURANCE_PROC.id],
linkingEventId: [SPELLS.INSURANCE_HOT_EVOKER.id, SPELLS.INSURANCE_PROC_EVOKER.id],
linkingEventType: EventType.Heal,
referencedEventId: SPELLS.INSURANCE_HOT.id,
referencedEventId: SPELLS.INSURANCE_HOT_EVOKER.id,
referencedEventType: [EventType.ApplyBuff, EventType.RefreshBuff],
backwardBufferMs: INSURANCE_MAX_DURATION,
},
Expand Down
2 changes: 2 additions & 0 deletions src/analysis/retail/monk/mistweaver/CombatLogParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ import Coalesence from '../shared/hero/MasterOfHarmony/talents/Coalesence';
import AspectOfHarmony from './modules/heroTalents/AspectOfHarmony';
import RushingWindKick from './modules/spells/RushingWindKick';
import ResplendentMists from './modules/spells/ResplendentMist';
import T33MW from './modules/tier/T33TierSet';

class CombatLogParser extends CoreCombatLogParser {
static specModules = {
Expand Down Expand Up @@ -206,6 +207,7 @@ class CombatLogParser extends CoreCombatLogParser {

// Borrowed Power
t32TierSet: T32TierSet,
t33TierSet: T33MW,

// Mana Tab
manaTracker: ManaTracker,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,15 @@ class InvokeChiJi extends BaseCelestialAnalyzer {
healing comes from. It is important to avoid overcapping on{' '}
<SpellLink spell={TALENTS_MONK.TEACHINGS_OF_THE_MONASTERY_TALENT} /> and{' '}
<SpellLink spell={SPELLS.INVOKE_CHIJI_THE_RED_CRANE_BUFF} /> stacks.
<div>
<br />
Generally, you should try to alternate between <SpellLink spell={SPELLS.TIGER_PALM} />/
<SpellLink spell={getCurrentRSKTalent(this.selectedCombatant)} /> (if available) and{' '}
<SpellLink spell={SPELLS.BLACKOUT_KICK} /> as you only get 3{' '}
<SpellLink spell={SPELLS.GUST_OF_MISTS_CHIJI} /> events per{' '}
<SpellLink spell={SPELLS.BLACKOUT_KICK} /> cast, regardless of{' '}
<SpellLink spell={TALENTS_MONK.TEACHINGS_OF_THE_MONASTERY_TALENT} /> stacks.
</div>
</p>
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,16 @@ import {
ZEN_PULSE_VIVIFY,
STRENGTH_OF_THE_BLACK_OX,
JADE_BOND_ENVM,
INSURANCE_FROM_REM,
INSURANCE,
} from './EventLinks/EventLinkConstants';
import { RENEWING_MIST_EVENT_LINKS } from './EventLinks/RenewingMistEventLinks';
import { GUST_OF_MISTS_EVENT_LINKS } from './EventLinks/GustOfMistEventLinks';
import { MANA_TEA_EVENT_LINKS } from './EventLinks/ManaTeaEventLinks';
import { VIVIFY_EVENT_LINKS } from './EventLinks/VivifyEventLinks';
import { ENVELOPING_MIST_EVENT_LINKS } from './EventLinks/EnvelopingMistEventLinks';
import { HERO_TALENT_EVENT_LINKS } from './EventLinks/HeroTalentEventLinks';
import { TIER_EVENT_LINKS } from './EventLinks/TierEventLinks';

const FOUND_REMS: Map<string, number | null> = new Map();

Expand All @@ -72,6 +75,7 @@ const EVENT_LINKS: EventLink[] = [
...VIVIFY_EVENT_LINKS,
...ENVELOPING_MIST_EVENT_LINKS,
...HERO_TALENT_EVENT_LINKS,
...TIER_EVENT_LINKS,
{
linkRelation: SHEILUNS_GIFT,
linkingEventId: [TALENTS_MONK.SHEILUNS_GIFT_TALENT.id],
Expand Down Expand Up @@ -319,4 +323,16 @@ export function isStrengthOfTheBlackOxConsumed(event: RemoveBuffEvent): boolean
return HasRelatedEvent(event, STRENGTH_OF_THE_BLACK_OX);
}

// tier
export function isInsuranceFromHardcast(event: ApplyBuffEvent | RefreshBuffEvent | HealEvent) {
if (event.type === EventType.Heal) {
const source = GetRelatedEvents(event, INSURANCE);
if (!source.length) {
return false;
}
return HasRelatedEvent(source[0], INSURANCE_FROM_REM);
}
return HasRelatedEvent(event, INSURANCE_FROM_REM);
}

export default CastLinkNormalizer;
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const SOURCE_APPLY = 'SourceApply';
export const FROM_HARDCAST = 'FromHardcast';
export const FROM_RAPID_DIFFUSION = 'FromRD'; // can be linked to env mist or rsk cast
export const FROM_MISTS_OF_LIFE = 'FromMOL';
export const INSURANCE_FROM_REM = 'InsuranceFromRem'; // Insurance proc'd by rem hardcast
export const INSURANCE = 'Insurance'; // link insurance heal to apply
export const RAPID_DIFFUSION_BUFFER_MS = 300;
export const DANCING_MIST_BUFFER_MS = 250;
export const MAX_REM_DURATION = 77000;
Expand Down Expand Up @@ -57,3 +59,6 @@ export const STRENGTH_OF_THE_BLACK_OX = 'SotBO';
// Misc
export const CAST_BUFFER_MS = 100;
export const CHI_WAVE_RSK = 'ChiWaveRSK';

// Tier
export const INSURANCE_DURATION = 15000;
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import {
SOURCE_APPLY,
DANCING_MIST_BUFFER_MS,
FROM_MISTS_OF_LIFE,
INSURANCE_FROM_REM,
} from './EventLinkConstants';
import { TIERS } from 'game/TIERS';

export const RENEWING_MIST_EVENT_LINKS: EventLink[] = [
// link renewing mist apply to its CastEvent
Expand Down Expand Up @@ -144,4 +146,18 @@ export const RENEWING_MIST_EVENT_LINKS: EventLink[] = [
return c.hasTalent(TALENTS_MONK.MISTS_OF_LIFE_TALENT);
},
},
// Insurance from Rem hardcast
{
linkRelation: INSURANCE_FROM_REM,
linkingEventId: SPELLS.INSURANCE_HOT_MONK.id,
linkingEventType: [EventType.ApplyBuff, EventType.RefreshBuff],
referencedEventId: TALENTS_MONK.RENEWING_MIST_TALENT.id,
referencedEventType: [EventType.Cast],
backwardBufferMs: CAST_BUFFER_MS,
forwardBufferMs: CAST_BUFFER_MS,
maximumLinks: 1,
isActive: (c) => {
return c.has4PieceByTier(TIERS.TWW2);
},
},
];
2 changes: 1 addition & 1 deletion src/common/SPELLS/druid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ const spells = {
},

// HoT (heal and buff) from Resto Druid TWW S2 tier set.
RESTO_DRUID_INSURANCE_HOT: {
NSURANCE_HOT_DRUID: {
id: 1215515,
name: 'Insurance!',
icon: 'inv_10_inscription2_scroll2_color5',
Expand Down
4 changes: 2 additions & 2 deletions src/common/SPELLS/evoker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,12 +315,12 @@ const spells = {
name: 'Stasis',
icon: 'ability_evoker_stasis',
},
INSURANCE_HOT: {
INSURANCE_HOT_EVOKER: {
id: 1215550,
name: 'Insurance',
icon: 'inv_10_inscription2_scroll2_color5',
},
INSURANCE_PROC: {
INSURANCE_PROC_EVOKER: {
id: 1215553,
name: 'Insurance',
icon: 'inv_10_inscription2_scroll2_color5',
Expand Down
12 changes: 11 additions & 1 deletion src/common/SPELLS/monk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -525,12 +525,22 @@ const spells = {
name: 'Overflowing Mists',
icon: 'inv_legion_faction_dreamweavers',
},
//Invigorating Mist Heal
INVIGORATING_MISTS_HEAL: {
id: 425804,
name: 'Invigorating Mists',
icon: 'ability_monk_vivify',
},
// Tier
INSURANCE_HOT_MONK: {
id: 1215544,
name: 'Insurance',
icon: 'inv_10_inscription2_scroll2_color5',
},
INSURANCE_PROC_MONK: {
id: 1215545,
name: 'Insurance',
icon: 'inv_10_inscription2_scroll2_color5',
},
// Brewmaster
NIUZAO_STOMP_DAMAGE: {
id: 227291,
Expand Down

0 comments on commit 271dc91

Please sign in to comment.