diff --git a/ui/raidboss/data/06-ew/alliance/aglaia.ts b/ui/raidboss/data/06-ew/alliance/aglaia.ts index ba81124377..0de80cf7d6 100644 --- a/ui/raidboss/data/06-ew/alliance/aglaia.ts +++ b/ui/raidboss/data/06-ew/alliance/aglaia.ts @@ -400,7 +400,7 @@ const triggerSet: TriggerSet = { alertText: (data, matches, output) => { if (data.naldSmeltingSpread.includes(data.me)) return; - return output.stackOnPlayer!({ player: data.ShortName(matches.target) }); + return output.stackOnPlayer!({ player: data.party.member(matches.target) }); }, run: (data) => data.naldSmeltingSpread = [], outputStrings: { @@ -494,7 +494,7 @@ const triggerSet: TriggerSet = { delaySeconds: 0.5, alertText: (data, matches, output) => { if (data.naldLastColor === 'orange') - return output.lineStackOn!({ player: data.ShortName(matches.target) }); + return output.lineStackOn!({ player: data.party.member(matches.target) }); }, outputStrings: { lineStackOn: { diff --git a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon-savage.ts b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon-savage.ts index 0ce3de0a6d..e5c2688369 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon-savage.ts +++ b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon-savage.ts @@ -11,6 +11,7 @@ import { RaidbossData } from '../../../../../types/data'; import { PluginCombatantState } from '../../../../../types/event'; import { Job } from '../../../../../types/job'; import { NetMatches } from '../../../../../types/net_matches'; +import { PartyMemberParamObject } from '../../../../../types/party'; import { LocaleText, Output, ResponseOutput, TriggerSet } from '../../../../../types/trigger'; type RousingTower = { @@ -330,7 +331,7 @@ const stackSpreadResponse = ( const stackType = findStackPartners(data, stack1.target, stack2.target); const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = hideStackList ? {} : { infoText: output.stacks!({ player1: player1, player2: player2 }) }; @@ -524,7 +525,7 @@ const triggerSet: TriggerSet = { if (matches.target === data.me) return { alarmText: output.chargeOnYou!() }; - return { alertText: output.chargeOn!({ player: data.ShortName(matches.target) }) }; + return { alertText: output.chargeOn!({ player: data.party.member(matches.target) }) }; }, }, { @@ -766,7 +767,7 @@ const triggerSet: TriggerSet = { const args = { inOut: inOut, outIn: outIn }; const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = { infoText: output.stacks!({ player1: player1, player2: player2 }) }; data.vortexSecondMechanic = isInFirst ? 'out' : 'in'; @@ -996,12 +997,12 @@ const triggerSet: TriggerSet = { if (spread.includes(data.me)) { data.ghostMechanic = 'spread'; const otherPlayer = spread.find((x) => x !== data.me) ?? output.unknown!(); - return output.spread!({ player: data.ShortName(otherPlayer) }); + return output.spread!({ player: data.party.member(otherPlayer) }); } data.ghostMechanic = 'tower'; const otherPlayer = towers.find((x) => x !== data.me) ?? output.unknown!(); - return output.tower!({ player: data.ShortName(otherPlayer) }); + return output.tower!({ player: data.party.member(otherPlayer) }); }, outputStrings: { tower: { @@ -1165,7 +1166,7 @@ const triggerSet: TriggerSet = { const stackType = findStackPartners(data, stack1.target, stack2.target); const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = { infoText: output.stacks!({ player1: player1, player2: player2 }) }; if (stackType === 'melee') { @@ -1263,7 +1264,7 @@ const triggerSet: TriggerSet = { if (matches.target === data.me) return output.beBehindTank!(); if (data.role === 'tank') - return output.blockLaser!({ player: data.ShortName(matches.target) }); + return output.blockLaser!({ player: data.party.member(matches.target) }); return output.avoidLaser!(); }, outputStrings: { @@ -1470,10 +1471,10 @@ const triggerSet: TriggerSet = { const isAllMixed = playerCount === mixedCount; const mixedType = isAllMixed ? output.mixedTypeFull!() : output.mixedTypeHalf!(); - let partner = output.unknown!(); + let partner: string | PartyMemberParamObject = output.unknown!(); for (const [name, color] of Object.entries(firstColor)) { if (name !== data.me && color === color1) { - partner = data.ShortName(name); + partner = data.party.member(name); break; } } @@ -1893,7 +1894,7 @@ const triggerSet: TriggerSet = { } const outputKey = `${thisAbility}OnPlayer`; - return { infoText: output[outputKey]!({ player: data.ShortName(player) }) }; + return { infoText: output[outputKey]!({ player: data.party.member(player) }) }; }, }, { @@ -1953,7 +1954,7 @@ const triggerSet: TriggerSet = { }) ?? output.unknown!(); return { - alertText: output.unmarkedWithPlayer!({ player: data.ShortName(remainingPlayer) }), + alertText: output.unmarkedWithPlayer!({ player: data.party.member(remainingPlayer) }), }; } @@ -1965,7 +1966,7 @@ const triggerSet: TriggerSet = { return; const outputKey = `${thisAbility}OnYou`; - return { alarmText: output[outputKey]!({ player: data.ShortName(otherPlayer) }) }; + return { alarmText: output[outputKey]!({ player: data.party.member(otherPlayer) }) }; }, }, { diff --git a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts index eaf638570d..9b010ac4e0 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts +++ b/ui/raidboss/data/06-ew/dungeon/another_mount_rokkon.ts @@ -8,6 +8,7 @@ import { RaidbossData } from '../../../../../types/data'; import { PluginCombatantState } from '../../../../../types/event'; import { Job } from '../../../../../types/job'; import { NetMatches } from '../../../../../types/net_matches'; +import { PartyMemberParamObject } from '../../../../../types/party'; import { LocaleText, Output, ResponseOutput, TriggerSet } from '../../../../../types/trigger'; type RousingTower = { @@ -327,7 +328,7 @@ const stackSpreadResponse = ( const stackType = findStackPartners(data, stack1.target, stack2.target); const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = hideStackList ? {} : { infoText: output.stacks!({ player1: player1, player2: player2 }) }; @@ -521,7 +522,7 @@ const triggerSet: TriggerSet = { if (matches.target === data.me) return { alarmText: output.chargeOnYou!() }; - return { alertText: output.chargeOn!({ player: data.ShortName(matches.target) }) }; + return { alertText: output.chargeOn!({ player: data.party.member(matches.target) }) }; }, }, { @@ -763,7 +764,7 @@ const triggerSet: TriggerSet = { const args = { inOut: inOut, outIn: outIn }; const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = { infoText: output.stacks!({ player1: player1, player2: player2 }) }; data.vortexSecondMechanic = isInFirst ? 'out' : 'in'; @@ -993,12 +994,12 @@ const triggerSet: TriggerSet = { if (spread.includes(data.me)) { data.ghostMechanic = 'spread'; const otherPlayer = spread.find((x) => x !== data.me) ?? output.unknown!(); - return output.spread!({ player: data.ShortName(otherPlayer) }); + return output.spread!({ player: data.party.member(otherPlayer) }); } data.ghostMechanic = 'tower'; const otherPlayer = towers.find((x) => x !== data.me) ?? output.unknown!(); - return output.tower!({ player: data.ShortName(otherPlayer) }); + return output.tower!({ player: data.party.member(otherPlayer) }); }, outputStrings: { tower: { @@ -1162,7 +1163,7 @@ const triggerSet: TriggerSet = { const stackType = findStackPartners(data, stack1.target, stack2.target); const stacks = [stack1, stack2].map((x) => x.target).sort(); - const [player1, player2] = stacks.map((x) => data.ShortName(x)); + const [player1, player2] = stacks.map((x) => data.party.member(x)); const stackInfo = { infoText: output.stacks!({ player1: player1, player2: player2 }) }; if (stackType === 'melee') { @@ -1260,7 +1261,7 @@ const triggerSet: TriggerSet = { if (matches.target === data.me) return output.beBehindTank!(); if (data.role === 'tank') - return output.blockLaser!({ player: data.ShortName(matches.target) }); + return output.blockLaser!({ player: data.party.member(matches.target) }); return output.avoidLaser!(); }, outputStrings: { @@ -1467,10 +1468,10 @@ const triggerSet: TriggerSet = { const isAllMixed = playerCount === mixedCount; const mixedType = isAllMixed ? output.mixedTypeFull!() : output.mixedTypeHalf!(); - let partner = output.unknown!(); + let partner: string | PartyMemberParamObject = output.unknown!(); for (const [name, color] of Object.entries(firstColor)) { if (name !== data.me && color === color1) { - partner = data.ShortName(name); + partner = data.party.member(name); break; } } @@ -1890,7 +1891,7 @@ const triggerSet: TriggerSet = { } const outputKey = `${thisAbility}OnPlayer`; - return { infoText: output[outputKey]!({ player: data.ShortName(player) }) }; + return { infoText: output[outputKey]!({ player: data.party.member(player) }) }; }, }, { @@ -1950,7 +1951,7 @@ const triggerSet: TriggerSet = { }) ?? output.unknown!(); return { - alertText: output.unmarkedWithPlayer!({ player: data.ShortName(remainingPlayer) }), + alertText: output.unmarkedWithPlayer!({ player: data.party.member(remainingPlayer) }), }; } @@ -1962,7 +1963,7 @@ const triggerSet: TriggerSet = { return; const outputKey = `${thisAbility}OnYou`; - return { alarmText: output[outputKey]!({ player: data.ShortName(otherPlayer) }) }; + return { alarmText: output[outputKey]!({ player: data.party.member(otherPlayer) }) }; }, }, { diff --git a/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts b/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts index aad2e95e15..3bcfd4f4a5 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts +++ b/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane-savage.ts @@ -9,6 +9,7 @@ import { Responses } from '../../../../../resources/responses'; import ZoneId from '../../../../../resources/zone_id'; import { RaidbossData } from '../../../../../types/data'; import { NetMatches } from '../../../../../types/net_matches'; +import { PartyMemberParamObject } from '../../../../../types/party'; import { TriggerSet } from '../../../../../types/trigger'; // TODO: Gladiator adjustments to timeline @@ -340,7 +341,7 @@ const triggerSet: TriggerSet = { // Does not happen on first or third Slippery Soap if (matches.target === data.me) return output.getBehindPartyKnockback!(); - return output.getInFrontOfPlayerKnockback!({ player: data.ShortName(matches.target) }); + return output.getInFrontOfPlayerKnockback!({ player: data.party.member(matches.target) }); } if (matches.target === data.me) { if (data.soapCounter === 1) @@ -349,7 +350,7 @@ const triggerSet: TriggerSet = { return output.getBehindPuffs!(); return output.getBehindParty!(); } - return output.getInFrontOfPlayer!({ player: data.ShortName(matches.target) }); + return output.getInFrontOfPlayer!({ player: data.party.member(matches.target) }); }, outputStrings: { getBehindPuff: { @@ -473,7 +474,7 @@ const triggerSet: TriggerSet = { if (data.role !== 'tank' && data.role !== 'healer') return; - return { infoText: output.busterOnTarget!({ player: data.ShortName(matches.target) }) }; + return { infoText: output.busterOnTarget!({ player: data.party.member(matches.target) }) }; }, }, { @@ -1047,7 +1048,7 @@ const triggerSet: TriggerSet = { alertText: (data, matches, output) => { if (matches.target === data.me) return output.chargeOnYou!(); - return output.chargeOn!({ player: data.ShortName(matches.target) }); + return output.chargeOn!({ player: data.party.member(matches.target) }); }, outputStrings: { chargeOn: { @@ -1113,7 +1114,9 @@ const triggerSet: TriggerSet = { return output.spreadThenStackOnYou!(); if (data.thunderousEchoPlayer === undefined) return output.spreadThenStack!(); - return output.spreadThenStackOn!({ player: data.ShortName(data.thunderousEchoPlayer) }); + return output.spreadThenStackOn!({ + player: data.party.member(data.thunderousEchoPlayer), + }); } if (data.hasLingering) @@ -1122,7 +1125,7 @@ const triggerSet: TriggerSet = { return output.stackOnYouThenSpread!(); if (data.thunderousEchoPlayer === undefined) return output.stackThenSpread!(); - return output.stackOnThenSpread!({ player: data.ShortName(data.thunderousEchoPlayer) }); + return output.stackOnThenSpread!({ player: data.party.member(data.thunderousEchoPlayer) }); }, outputStrings: { stackThenSpread: Outputs.stackThenSpread, @@ -1233,7 +1236,7 @@ const triggerSet: TriggerSet = { return output.baitPuddle!(); if (matches.target === data.me) return output.stackOnYou!(); - return output.stackOn!({ player: data.ShortName(matches.target) }); + return output.stackOn!({ player: data.party.member(matches.target) }); }, outputStrings: { // TODO: should this also say "In", e.g. "In + Spread" or "Spread (In)"? @@ -1596,12 +1599,12 @@ const triggerSet: TriggerSet = { // Figure out partner, so that you know if the person running out // with you has the same debuff. - let partner = output.unknown!(); + let partner: string | PartyMemberParamObject = output.unknown!(); for (const [name, id] of Object.entries(data.screamOfTheFallen)) { if (name === data.me) continue; if (id === myBuff) { - partner = data.ShortName(name); + partner = data.party.member(name); break; } } diff --git a/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane.ts b/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane.ts index 99745dd2a5..43082919ec 100644 --- a/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane.ts +++ b/ui/raidboss/data/06-ew/dungeon/another_sildihn_subterrane.ts @@ -6,6 +6,7 @@ import { Responses } from '../../../../../resources/responses'; import ZoneId from '../../../../../resources/zone_id'; import { RaidbossData } from '../../../../../types/data'; import { NetMatches } from '../../../../../types/net_matches'; +import { PartyMemberParamObject } from '../../../../../types/party'; import { TriggerSet } from '../../../../../types/trigger'; // TODO: Gladiator adjustments to timeline @@ -337,7 +338,7 @@ const triggerSet: TriggerSet = { // Does not happen on first or third Slippery Soap if (matches.target === data.me) return output.getBehindPartyKnockback!(); - return output.getInFrontOfPlayerKnockback!({ player: data.ShortName(matches.target) }); + return output.getInFrontOfPlayerKnockback!({ player: data.party.member(matches.target) }); } if (matches.target === data.me) { if (data.soapCounter === 1) @@ -346,7 +347,7 @@ const triggerSet: TriggerSet = { return output.getBehindPuffs!(); return output.getBehindParty!(); } - return output.getInFrontOfPlayer!({ player: data.ShortName(matches.target) }); + return output.getInFrontOfPlayer!({ player: data.party.member(matches.target) }); }, outputStrings: { getBehindPuff: { @@ -470,7 +471,7 @@ const triggerSet: TriggerSet = { if (data.role !== 'tank' && data.role !== 'healer') return; - return { infoText: output.busterOnTarget!({ player: data.ShortName(matches.target) }) }; + return { infoText: output.busterOnTarget!({ player: data.party.member(matches.target) }) }; }, }, { @@ -1044,7 +1045,7 @@ const triggerSet: TriggerSet = { alertText: (data, matches, output) => { if (matches.target === data.me) return output.chargeOnYou!(); - return output.chargeOn!({ player: data.ShortName(matches.target) }); + return output.chargeOn!({ player: data.party.member(matches.target) }); }, outputStrings: { chargeOn: { @@ -1110,7 +1111,9 @@ const triggerSet: TriggerSet = { return output.spreadThenStackOnYou!(); if (data.thunderousEchoPlayer === undefined) return output.spreadThenStack!(); - return output.spreadThenStackOn!({ player: data.ShortName(data.thunderousEchoPlayer) }); + return output.spreadThenStackOn!({ + player: data.party.member(data.thunderousEchoPlayer), + }); } if (data.hasLingering) @@ -1119,7 +1122,7 @@ const triggerSet: TriggerSet = { return output.stackOnYouThenSpread!(); if (data.thunderousEchoPlayer === undefined) return output.stackThenSpread!(); - return output.stackOnThenSpread!({ player: data.ShortName(data.thunderousEchoPlayer) }); + return output.stackOnThenSpread!({ player: data.party.member(data.thunderousEchoPlayer) }); }, outputStrings: { stackThenSpread: Outputs.stackThenSpread, @@ -1230,7 +1233,7 @@ const triggerSet: TriggerSet = { return output.baitPuddle!(); if (matches.target === data.me) return output.stackOnYou!(); - return output.stackOn!({ player: data.ShortName(matches.target) }); + return output.stackOn!({ player: data.party.member(matches.target) }); }, outputStrings: { // TODO: should this also say "In", e.g. "In + Spread" or "Spread (In)"? @@ -1593,12 +1596,12 @@ const triggerSet: TriggerSet = { // Figure out partner, so that you know if the person running out // with you has the same debuff. - let partner = output.unknown!(); + let partner: string | PartyMemberParamObject = output.unknown!(); for (const [name, id] of Object.entries(data.screamOfTheFallen)) { if (name === data.me) continue; if (id === myBuff) { - partner = data.ShortName(name); + partner = data.party.member(name); break; } } diff --git a/ui/raidboss/data/06-ew/dungeon/lapis_manalis.ts b/ui/raidboss/data/06-ew/dungeon/lapis_manalis.ts index 810a827aff..3a187957a0 100644 --- a/ui/raidboss/data/06-ew/dungeon/lapis_manalis.ts +++ b/ui/raidboss/data/06-ew/dungeon/lapis_manalis.ts @@ -173,7 +173,7 @@ const triggerSet: TriggerSet = { netRegex: { effectId: 'D24', source: 'Galatea Magna' }, condition: (data) => data.CanCleanse(), alertText: (data, matches, output) => - output.text!({ player: data.ShortName(matches.target) }), + output.text!({ player: data.party.member(matches.target) }), outputStrings: { text: { en: 'Esuna ${player}', diff --git a/ui/raidboss/data/06-ew/dungeon/the_dead_ends.ts b/ui/raidboss/data/06-ew/dungeon/the_dead_ends.ts index 5b173183f4..0c6f89896a 100644 --- a/ui/raidboss/data/06-ew/dungeon/the_dead_ends.ts +++ b/ui/raidboss/data/06-ew/dungeon/the_dead_ends.ts @@ -46,7 +46,8 @@ const triggerSet: TriggerSet = { type: 'GainsEffect', netRegex: { effectId: 'B95' }, condition: (data) => data.CanCleanse(), - infoText: (data, matches, output) => output.text!({ player: data.ShortName(matches.target) }), + infoText: (data, matches, output) => + output.text!({ player: data.party.member(matches.target) }), outputStrings: { text: { en: 'Esuna ${player}', @@ -144,9 +145,9 @@ const triggerSet: TriggerSet = { return { alertText: output.tankLaserOnYou!() }; if (data.role === 'healer') return { - alertText: output.tankLaserOnPlayer!({ player: data.ShortName(matches.target) }), + alertText: output.tankLaserOnPlayer!({ player: data.party.member(matches.target) }), }; - return { info: output.avoidLaserOnPlayer!({ player: data.ShortName(matches.target) }) }; + return { info: output.avoidLaserOnPlayer!({ player: data.party.member(matches.target) }) }; }, }, { @@ -208,7 +209,7 @@ const triggerSet: TriggerSet = { netRegex: { effectId: '6E9' }, condition: (data) => data.CanCleanse(), alertText: (data, matches, output) => - output.cleanse!({ player: data.ShortName(matches.target) }), + output.cleanse!({ player: data.party.member(matches.target) }), outputStrings: { cleanse: { en: 'Heal ${player} to Full', diff --git a/ui/raidboss/data/06-ew/dungeon/the_lunar_subterrane.ts b/ui/raidboss/data/06-ew/dungeon/the_lunar_subterrane.ts index 4c9215a77b..0cb91386e2 100644 --- a/ui/raidboss/data/06-ew/dungeon/the_lunar_subterrane.ts +++ b/ui/raidboss/data/06-ew/dungeon/the_lunar_subterrane.ts @@ -71,7 +71,7 @@ const triggerSet: TriggerSet = { netRegex: { effectId: 'D24' }, condition: (data) => Util.canCleanse(data.job), alertText: (data, matches, output) => { - return output.cleanse!({ player: data.ShortName(matches.target) }); + return output.cleanse!({ player: data.party.member(matches.target) }); }, outputStrings: { cleanse: { diff --git a/ui/raidboss/data/06-ew/raid/p10s.ts b/ui/raidboss/data/06-ew/raid/p10s.ts index 08be831018..ecdd394e9b 100644 --- a/ui/raidboss/data/06-ew/raid/p10s.ts +++ b/ui/raidboss/data/06-ew/raid/p10s.ts @@ -457,15 +457,15 @@ const triggerSet: TriggerSet = { if (duration > data.daemonicBondsTime) { data.bondsSecondMechanic = 'stack'; return output.spreadThenStack!({ - player1: data.ShortName(data.tetradaemonicTarget[0]), - player2: data.ShortName(data.tetradaemonicTarget[1]), + player1: data.party.member(data.tetradaemonicTarget[0]), + player2: data.party.member(data.tetradaemonicTarget[1]), }); } data.bondsSecondMechanic = 'spread'; return output.stackThenSpread!({ - player1: data.ShortName(data.tetradaemonicTarget[0]), - player2: data.ShortName(data.tetradaemonicTarget[1]), + player1: data.party.member(data.tetradaemonicTarget[0]), + player2: data.party.member(data.tetradaemonicTarget[1]), }); }, outputStrings: { @@ -499,8 +499,8 @@ const triggerSet: TriggerSet = { // We can't make this a `condition` as this is not known until after some delay. if (data.bondsSecondMechanic === 'stack') return output.spreadThenStack!({ - player1: data.ShortName(data.tetradaemonicTarget[0]), - player2: data.ShortName(data.tetradaemonicTarget[1]), + player1: data.party.member(data.tetradaemonicTarget[0]), + player2: data.party.member(data.tetradaemonicTarget[1]), }); if (data.bondsSecondMechanic === 'partners') return output.spreadThenPartners!(); @@ -558,8 +558,8 @@ const triggerSet: TriggerSet = { // If this is undefined, then this is the second mechanic and will be called out elsewhere. if (data.bondsSecondMechanic === 'spread') return output.stackThenSpread!({ - player1: data.ShortName(data.tetradaemonicTarget[0]), - player2: data.ShortName(data.tetradaemonicTarget[1]), + player1: data.party.member(data.tetradaemonicTarget[0]), + player2: data.party.member(data.tetradaemonicTarget[1]), }); }, outputStrings: { @@ -589,8 +589,8 @@ const triggerSet: TriggerSet = { return output.partners!(); if (data.bondsSecondMechanic === 'stack') return output.stack!({ - player1: data.ShortName(data.tetradaemonicTarget[0]), - player2: data.ShortName(data.tetradaemonicTarget[1]), + player1: data.party.member(data.tetradaemonicTarget[0]), + player2: data.party.member(data.tetradaemonicTarget[1]), }); }, run: (data) => delete data.bondsSecondMechanic, diff --git a/ui/raidboss/data/06-ew/raid/p11n.ts b/ui/raidboss/data/06-ew/raid/p11n.ts index 66e3913c36..81cb6b9f7d 100644 --- a/ui/raidboss/data/06-ew/raid/p11n.ts +++ b/ui/raidboss/data/06-ew/raid/p11n.ts @@ -166,7 +166,7 @@ const triggerSet: TriggerSet = { netRegex: { id: '01CF' }, infoText: (data, matches, output) => { if (data.me !== matches.target) - return output.avoidCleave!({ target: data.ShortName(matches.target) }); + return output.avoidCleave!({ target: data.party.member(matches.target) }); return output.cleaveOnYou!(); }, outputStrings: { @@ -192,7 +192,9 @@ const triggerSet: TriggerSet = { id: 'P11N Upheld Ruling Chariot', type: 'HeadMarker', netRegex: { id: '013E' }, - infoText: (data, matches, output) => output.text!({ target: data.ShortName(matches.target) }), + infoText: (data, matches, output) => { + return output.text!({ target: data.party.member(matches.target) }); + }, outputStrings: { text: { en: 'Stack on ${target} -> get out', diff --git a/ui/raidboss/data/06-ew/raid/p11s.ts b/ui/raidboss/data/06-ew/raid/p11s.ts index 0fa742f80f..8190ac395e 100644 --- a/ui/raidboss/data/06-ew/raid/p11s.ts +++ b/ui/raidboss/data/06-ew/raid/p11s.ts @@ -278,7 +278,7 @@ const triggerSet: TriggerSet = { if (tether.target === data.me) return { alarmText: output.upheldOnYou!() }; - return { alertText: output.upheldOnPlayer!({ player: data.ShortName(tether.target) }) }; + return { alertText: output.upheldOnPlayer!({ player: data.party.member(tether.target) }) }; }, run: (data) => data.upheldTethers = [], }, @@ -346,7 +346,7 @@ const triggerSet: TriggerSet = { if (tether.target === data.me) return { alarmText: output.tankTether!() }; return { - alertText: output.partyStackPlayerOut!({ player: data.ShortName(tether.target) }), + alertText: output.partyStackPlayerOut!({ player: data.party.member(tether.target) }), }; }, run: (data) => data.upheldTethers = [], @@ -736,7 +736,7 @@ const triggerSet: TriggerSet = { else myBuddyRole = output.unknown!(); - const myBuddyShort = data.ShortName(myBuddy); + const myBuddyShort = data.party.member(myBuddy); let alertText: string; if (myLength === 'near') { @@ -756,7 +756,7 @@ const triggerSet: TriggerSet = { const playerNames = Object.keys(data.lightDarkTether); const sameLength = playerNames.filter((x) => data.lightDarkTether[x] === myLength); const others = sameLength.filter((x) => x !== data.me && x !== myBuddy).sort(); - const [player1, player2] = others.map((x) => data.ShortName(x)); + const [player1, player2] = others.map((x) => data.party.member(x)); if (player1 !== undefined && player2 !== undefined) { if (myLength === 'near') infoText = output.otherNear!({ player1: player1, player2: player2 }); diff --git a/ui/raidboss/data/06-ew/raid/p12s.ts b/ui/raidboss/data/06-ew/raid/p12s.ts index a3660b8696..2331c2bb1d 100644 --- a/ui/raidboss/data/06-ew/raid/p12s.ts +++ b/ui/raidboss/data/06-ew/raid/p12s.ts @@ -1614,7 +1614,7 @@ const triggerSet: TriggerSet = { ? output.light!() : output.dark!(); const partner = - data.ShortName(data.engravement3TowerPlayers.find((name) => name !== data.me)) ?? + data.party.member(data.engravement3TowerPlayers.find((name) => name !== data.me)) ?? output.unknown!(); return output.towerOnYou!({ color: towerColor, partner: partner }); }, @@ -3475,7 +3475,7 @@ const triggerSet: TriggerSet = { const myBuddy = Object.keys(data.pangenesisRole).find((x) => { return data.pangenesisRole[x] === myRole && x !== data.me; }); - const player = myBuddy === undefined ? output.unknown!() : data.ShortName(myBuddy); + const player = myBuddy === undefined ? output.unknown!() : data.party.member(myBuddy); if (myRole === 'not') { if (strat === 'not') return output.nothingWithTower!({ player: player, tower: output.firstTower!() }); @@ -3841,10 +3841,10 @@ const triggerSet: TriggerSet = { return; const partner = matches.source === data.me ? matches.target : matches.source; if (data.phase === 'gaiaochos1') - return output.uav1!({ partner: data.ShortName(partner) }); + return output.uav1!({ partner: data.party.member(partner) }); data.seenSecondTethers = true; return output.uav2!({ - partner: data.ShortName(partner), + partner: data.party.member(partner), geocentrism: data.geocentrism2OutputStr ?? output.unknown!(), }); }, @@ -3983,13 +3983,13 @@ const triggerSet: TriggerSet = { if (index < 0) return { infoText: output.noBeacon!({ - player1: data.ShortName(data.caloric1First[0]), - player2: data.ShortName(data.caloric1First[1]), + player1: data.party.member(data.caloric1First[0]), + player2: data.party.member(data.caloric1First[1]), }), }; const partner = index === 0 ? 1 : 0; return { - alertText: output.beacon!({ partner: data.ShortName(data.caloric1First[partner]) }), + alertText: output.beacon!({ partner: data.party.member(data.caloric1First[partner]) }), }; }, }, @@ -4094,9 +4094,11 @@ const triggerSet: TriggerSet = { const myTeam: string[] = []; for (const [name, stat] of Object.entries(data.caloric1Buff)) { if (stat === myBuff && name !== data.me) - myTeam.push(data.ShortName(name)); + myTeam.push(name); } - return { alertText: output.fire!({ team: myTeam.sort().join(', ') }) }; + return { + alertText: output.fire!({ team: myTeam.sort().map((x) => data.party.member(x)) }), + }; } if (data.caloric1First.includes(data.me)) @@ -4105,9 +4107,11 @@ const triggerSet: TriggerSet = { const myTeam: string[] = []; for (const [name, stat] of Object.entries(data.caloric1Buff)) { if (stat === myBuff && name !== data.me && !data.caloric1First.includes(name)) - myTeam.push(data.ShortName(name)); + myTeam.push(name); } - return { alertText: output.wind!({ team: myTeam.sort().join(', ') }) }; + return { + alertText: output.wind!({ team: myTeam.sort().map((x) => data.party.member(x)) }), + }; }, run: (data) => { data.caloric1First = []; @@ -4146,7 +4150,7 @@ const triggerSet: TriggerSet = { return; if (data.me === matches.target) return { alarmText: output.fireOnMe!() }; - return { infoText: output.fireOn!({ player: data.ShortName(matches.target) }) }; + return { infoText: output.fireOn!({ player: data.party.member(matches.target) }) }; }, }, { diff --git a/ui/raidboss/data/06-ew/raid/p1s.ts b/ui/raidboss/data/06-ew/raid/p1s.ts index ca23525d8c..9c053a7fb8 100644 --- a/ui/raidboss/data/06-ew/raid/p1s.ts +++ b/ui/raidboss/data/06-ew/raid/p1s.ts @@ -126,20 +126,20 @@ const triggerSet: TriggerSet = { durationSeconds: (_data, matches) => parseFloat(matches.duration) - 2, infoText: (data, _matches, output) => { if (data.companionship === data.me) - return output.farShacklesOn!({ far: data.ShortName(data.loneliness) }); + return output.farShacklesOn!({ far: data.party.member(data.loneliness) }); if (data.loneliness === data.me) - return output.closeShacklesOn!({ close: data.ShortName(data.companionship) }); + return output.closeShacklesOn!({ close: data.party.member(data.companionship) }); return output.shacklesOn!({ - close: data.ShortName(data.companionship), - far: data.ShortName(data.loneliness), + close: data.party.member(data.companionship), + far: data.party.member(data.loneliness), }); }, tts: (data, _matches, output) => { if (data.companionship === data.me || data.loneliness === data.me) return null; return output.shacklesOn!({ - close: data.ShortName(data.companionship), - far: data.ShortName(data.loneliness), + close: data.party.member(data.companionship), + far: data.party.member(data.loneliness), }); }, run: (data) => { @@ -335,7 +335,7 @@ const triggerSet: TriggerSet = { alertText: (data, matches, output) => { if (matches.target === data.me) return output.oppositeParty!(); - return output.oppositePlayer!({ player: data.ShortName(matches.target) }); + return output.oppositePlayer!({ player: data.party.member(matches.target) }); }, outputStrings: { oppositePlayer: { diff --git a/ui/raidboss/data/06-ew/raid/p2n.ts b/ui/raidboss/data/06-ew/raid/p2n.ts index 4f5199f70f..e7119185a0 100644 --- a/ui/raidboss/data/06-ew/raid/p2n.ts +++ b/ui/raidboss/data/06-ew/raid/p2n.ts @@ -184,7 +184,7 @@ const triggerSet: TriggerSet = { netRegex: { id: '6D14' }, condition: (data) => data.flareTarget !== data.me, alertText: (data, matches, output) => - output.lineStackOn!({ player: data.ShortName(matches.target) }), + output.lineStackOn!({ player: data.party.member(matches.target) }), outputStrings: { lineStackOn: { en: 'Line stack on ${player}', diff --git a/ui/raidboss/data/06-ew/raid/p2s.ts b/ui/raidboss/data/06-ew/raid/p2s.ts index cdd051f05a..9985552a41 100644 --- a/ui/raidboss/data/06-ew/raid/p2s.ts +++ b/ui/raidboss/data/06-ew/raid/p2s.ts @@ -152,8 +152,8 @@ const triggerSet: TriggerSet = { if (data.avarice === undefined) return; - const name1 = data.avarice[0] ? data.ShortName(data.avarice[0]?.target) : output.unknown!(); - const name2 = data.avarice[1] ? data.ShortName(data.avarice[1]?.target) : output.unknown!(); + const name1 = data.party.member(data.avarice[0]?.target); + const name2 = data.party.member(data.avarice[1]?.target); const markText = output.marks!({ player1: name1, player2: name2 }); const isOnYou = data.avarice.find((m) => m.target === data.me); diff --git a/ui/raidboss/data/06-ew/raid/p3s.ts b/ui/raidboss/data/06-ew/raid/p3s.ts index 3b4a3f4140..c86e2278a1 100644 --- a/ui/raidboss/data/06-ew/raid/p3s.ts +++ b/ui/raidboss/data/06-ew/raid/p3s.ts @@ -275,8 +275,12 @@ const triggerSet: TriggerSet = { if (outputDir === undefined) throw new UnreachableCode(); - if (parentTether) - return output.playerTether!({ dir: outputDir, player: data.ShortName(myTether.source) }); + if (parentTether) { + return output.playerTether!({ + dir: outputDir, + player: data.party.member(myTether.source), + }); + } return output.birdTether!({ dir: outputDir }); }, outputStrings: { diff --git a/ui/raidboss/data/06-ew/raid/p4s.ts b/ui/raidboss/data/06-ew/raid/p4s.ts index c37db5ea05..014c9e1fea 100644 --- a/ui/raidboss/data/06-ew/raid/p4s.ts +++ b/ui/raidboss/data/06-ew/raid/p4s.ts @@ -1003,7 +1003,9 @@ const triggerSet: TriggerSet = { return; } - const other = data.ShortName(matches.target === data.me ? matches.source : matches.target); + const other = data.party.member( + matches.target === data.me ? matches.source : matches.target, + ); return { '012D': output.purpleTether!({ player: other }), '012E': output.greenTether!({ player: other }), diff --git a/ui/raidboss/data/06-ew/raid/p5s.ts b/ui/raidboss/data/06-ew/raid/p5s.ts index 7ae1d1c053..e4394fea79 100644 --- a/ui/raidboss/data/06-ew/raid/p5s.ts +++ b/ui/raidboss/data/06-ew/raid/p5s.ts @@ -141,7 +141,7 @@ const triggerSet: TriggerSet = { if (data.target === data.me) return output.busterOnYou!(); - return output.busterOnTarget!({ player: data.ShortName(data.target) }); + return output.busterOnTarget!({ player: data.party.member(data.target) }); }, outputStrings: { busterOnYou: Outputs.tankBusterOnYou, diff --git a/ui/raidboss/data/06-ew/raid/p8s.ts b/ui/raidboss/data/06-ew/raid/p8s.ts index 3ca0eb8e36..f783a3023f 100644 --- a/ui/raidboss/data/06-ew/raid/p8s.ts +++ b/ui/raidboss/data/06-ew/raid/p8s.ts @@ -7,6 +7,7 @@ import ZoneId from '../../../../../resources/zone_id'; import { RaidbossData } from '../../../../../types/data'; import { PluginCombatantState } from '../../../../../types/event'; import { NetMatches } from '../../../../../types/net_matches'; +import { PartyMemberParamObject } from '../../../../../types/party'; import { Output, TriggerSet } from '../../../../../types/trigger'; // TODO: call out shriek specifically again when debuff soon? (or maybe even gaze/poison/stack too?) @@ -880,13 +881,13 @@ const triggerSet: TriggerSet = { if (myDebuff === undefined) return; - let partner = output.unknown!(); + let partner: string | PartyMemberParamObject = output.unknown!(); for (const [name, theirDebuff] of Object.entries(data.firstSnakeDebuff)) { if (myDebuff !== theirDebuff || name === data.me) continue; const theirNumber = data.firstSnakeOrder[name]; if (myNumber === theirNumber) { - partner = data.ShortName(name); + partner = data.party.member(name); break; } } @@ -987,7 +988,7 @@ const triggerSet: TriggerSet = { const friends = []; for (const [name, theirDebuff] of Object.entries(data.secondSnakeDebuff)) { if (myDebuff === theirDebuff && name !== data.me) - friends.push(data.ShortName(name)); + friends.push(data.party.member(name)); } const gazeAlert = isGazeFirst ? output.firstGaze!() : output.secondGaze!(); @@ -1788,7 +1789,7 @@ const triggerSet: TriggerSet = { netRegex: { effectId: 'D15' }, infoText: (data, matches, output) => { if (!data.inverseMagics[matches.target]) - return output.reversed!({ player: data.ShortName(matches.target) }); + return output.reversed!({ player: data.party.member(matches.target) }); }, run: (data, matches) => data.inverseMagics[matches.target] = true, outputStrings: { @@ -1831,7 +1832,10 @@ const triggerSet: TriggerSet = { sound: '', infoText: (data, _matches, output) => { const [name1, name2] = data.alignmentTargets.sort(); - return output.text!({ player1: data.ShortName(name1), player2: data.ShortName(name2) }); + return output.text!({ + player1: data.party.member(name1), + player2: data.party.member(name2), + }); }, tts: null, run: (data) => data.alignmentTargets = [], @@ -2418,7 +2422,7 @@ const triggerSet: TriggerSet = { const [otherConcept] = [...concepts].filter((x) => x !== myConcept); if (otherConcept === undefined) throw new UnreachableCode(); - const [name1, name2] = conceptToPlayers[otherConcept].map((x) => data.ShortName(x)); + const [name1, name2] = conceptToPlayers[otherConcept].map((x) => data.party.member(x)); if (name1 === undefined) return { alertText: output.colorTowerMergeLetter!({ @@ -2448,7 +2452,7 @@ const triggerSet: TriggerSet = { if (concept1 === undefined || concept2 === undefined) throw new UnreachableCode(); const [name1, name2] = [...conceptToPlayers[concept1], ...conceptToPlayers[concept2]].map( - (x) => data.ShortName(x), + (x) => data.party.member(x), ); if (name1 === undefined || name2 === undefined) return { @@ -2461,7 +2465,7 @@ const triggerSet: TriggerSet = { } // If not doubled, merge with one of the doubled folks (because they can't merge together). - const [name1, name2] = conceptToPlayers[doubled].map((x) => data.ShortName(x)); + const [name1, name2] = conceptToPlayers[doubled].map((x) => data.party.member(x)); const [tower] = towerColors.filter((x) => towerToConcept[x].includes(myConcept)); if (tower === undefined) throw new UnreachableCode(); @@ -2559,6 +2563,7 @@ const triggerSet: TriggerSet = { data.deformationHit = []; data.deformationNotHit = [...data.party.partyNames]; data.deformationOnMe = false; + // TODO: should this be undefined and not empty string?? data.deformationPartner = ''; }, }, @@ -2591,15 +2596,15 @@ const triggerSet: TriggerSet = { const pRole = data.party.isDPS(p) ? 'dps' : 'support'; if (pRole === myRole) { partnerCount++; - data.deformationPartner = data.ShortName(p); + data.deformationPartner = p; } } if (data.deformationHit.length === 3 && partnerCount !== 1) { // non-standard party comp with multiple possible role partners - show all hit return output.multiple!({ - player1: data.ShortName(data.deformationHit[0]), - player2: data.ShortName(data.deformationHit[1]), - player3: data.ShortName(data.deformationHit[2]), + player1: data.party.member(data.deformationHit[0]), + player2: data.party.member(data.deformationHit[1]), + player3: data.party.member(data.deformationHit[2]), }); } else if (partnerCount === 1) { return output.partner!({ player: data.deformationPartner }); @@ -2651,18 +2656,18 @@ const triggerSet: TriggerSet = { const pRole = data.party.isDPS(p) ? 'dps' : 'support'; if (pRole === myRole) { partnerCount++; - data.deformationPartner = data.ShortName(p); + data.deformationPartner = p; } } if (data.deformationNotHit.length === 3 && partnerCount !== 1) { // non-standard party comp with multiple possible role partners - show all not hit return output.multiple!({ - player1: data.ShortName(data.deformationNotHit[0]), - player2: data.ShortName(data.deformationNotHit[1]), - player3: data.ShortName(data.deformationNotHit[2]), + player1: data.party.member(data.deformationNotHit[0]), + player2: data.party.member(data.deformationNotHit[1]), + player3: data.party.member(data.deformationNotHit[2]), }); } else if (partnerCount === 1) { - return output.partner!({ player: data.deformationPartner }); + return output.partner!({ player: data.party.member(data.deformationPartner) }); } return output.unknown!(); } diff --git a/ui/raidboss/data/06-ew/raid/p9n.ts b/ui/raidboss/data/06-ew/raid/p9n.ts index 58c926456d..5d2aeac026 100644 --- a/ui/raidboss/data/06-ew/raid/p9n.ts +++ b/ui/raidboss/data/06-ew/raid/p9n.ts @@ -175,7 +175,7 @@ const triggerSet: TriggerSet = { return output.tankbusterOnYouStretchTethers!(); if (data.role === 'healer' || data.job === 'BLU') - return output.tankbusterOn!({ player: data.ShortName(matches.target) }); + return output.tankbusterOn!({ player: data.party.member(matches.target) }); }, outputStrings: { tankbusterOnYouStretchTethers: { diff --git a/ui/raidboss/data/06-ew/trial/golbez.ts b/ui/raidboss/data/06-ew/trial/golbez.ts index 1d4e5f1958..f1e9d87392 100644 --- a/ui/raidboss/data/06-ew/trial/golbez.ts +++ b/ui/raidboss/data/06-ew/trial/golbez.ts @@ -135,7 +135,7 @@ const triggerSet: TriggerSet = { type: 'StartsUsing', netRegex: { id: '8495', source: 'Golbez' }, alertText: (data, matches, output) => { - const target = data.ShortName(matches.target) ?? '??'; + const target = data.party.member(matches.target); return output.text!({ player: target }); }, outputStrings: { diff --git a/ui/raidboss/data/06-ew/trial/rubicante-ex.ts b/ui/raidboss/data/06-ew/trial/rubicante-ex.ts index c215513ffc..a3269668b8 100644 --- a/ui/raidboss/data/06-ew/trial/rubicante-ex.ts +++ b/ui/raidboss/data/06-ew/trial/rubicante-ex.ts @@ -247,7 +247,7 @@ const triggerSet: TriggerSet = { alertText: (data, _matches, output) => { if (data.flamespireBrandStack === data.me) return output.stackOnYou!(); - return output.stackOnPlayer!({ player: data.ShortName(data.flamespireBrandStack) }); + return output.stackOnPlayer!({ player: data.party.member(data.flamespireBrandStack) }); }, outputStrings: { stackOnPlayer: Outputs.stackOnPlayer, diff --git a/ui/raidboss/data/06-ew/trial/zeromus-ex.ts b/ui/raidboss/data/06-ew/trial/zeromus-ex.ts index 263181091e..88e7d33be0 100644 --- a/ui/raidboss/data/06-ew/trial/zeromus-ex.ts +++ b/ui/raidboss/data/06-ew/trial/zeromus-ex.ts @@ -109,7 +109,7 @@ const triggerSet: TriggerSet = { data.seenSableThread = true; if (matches.target === data.me) return output.lineStackOnYou!({ num: num }); - return output.lineStackOn!({ num: num, player: data.ShortName(matches.target) }); + return output.lineStackOn!({ num: num, player: data.party.member(matches.target) }); }, outputStrings: { lineStackOn: { @@ -377,7 +377,7 @@ const triggerSet: TriggerSet = { return; if (data.me === matches.target) return output.stackOnYou!(); - return output.stackOnTarget!({ player: data.ShortName(matches.target) }); + return output.stackOnTarget!({ player: data.party.member(matches.target) }); }, outputStrings: { stackOnYou: Outputs.stackOnYou, @@ -415,7 +415,7 @@ const triggerSet: TriggerSet = { suppressSeconds: 10, alertText: (data, matches, output) => { const partner = matches.source === data.me ? matches.target : matches.source; - return output.breakTether!({ partner: data.ShortName(partner) }); + return output.breakTether!({ partner: data.party.member(partner) }); }, outputStrings: { breakTether: { diff --git a/ui/raidboss/data/06-ew/trial/zeromus.ts b/ui/raidboss/data/06-ew/trial/zeromus.ts index 2ac2bb1061..54666714d7 100644 --- a/ui/raidboss/data/06-ew/trial/zeromus.ts +++ b/ui/raidboss/data/06-ew/trial/zeromus.ts @@ -57,7 +57,7 @@ const triggerSet: TriggerSet = { type: 'Ability', netRegex: { id: '8AEF', source: 'Zeromus' }, alertText: (data, matches, output) => { - return output.lineStackOn!({ player: data.ShortName(matches.target) }); + return output.lineStackOn!({ player: data.party.member(matches.target) }); }, outputStrings: { lineStackOn: { diff --git a/ui/raidboss/data/06-ew/ultimate/dragonsongs_reprise_ultimate.ts b/ui/raidboss/data/06-ew/ultimate/dragonsongs_reprise_ultimate.ts index e1a093e4ad..0549dae6a8 100644 --- a/ui/raidboss/data/06-ew/ultimate/dragonsongs_reprise_ultimate.ts +++ b/ui/raidboss/data/06-ew/ultimate/dragonsongs_reprise_ultimate.ts @@ -217,7 +217,7 @@ const triggerSet: TriggerSet = { if (data.me === data.mortalVowPlayer) return output.vowOnYou!(); if (data.mortalVowPlayer !== undefined) - return output.vowOn!({ player: data.mortalVowPlayer }); + return output.vowOn!({ player: data.party.member(data.mortalVowPlayer) }); return output.vowSoon!(); }, outputStrings: { @@ -942,8 +942,8 @@ const triggerSet: TriggerSet = { if (data.sanctitySword1 === undefined || data.sanctitySword2 === undefined) return; - const name1 = data.ShortName(data.sanctitySword1); - const name2 = data.ShortName(data.sanctitySword2); + const name1 = data.party.member(data.sanctitySword1); + const name2 = data.party.member(data.sanctitySword2); return output.text!({ name1: name1, name2: name2 }); }, // Don't collide with the more important 1/2 call. @@ -985,13 +985,19 @@ const triggerSet: TriggerSet = { const p2dps = data.party.isDPS(p2); if (p1dps && p2dps) - return output.dpsMeteors!({ player1: data.ShortName(p1), player2: data.ShortName(p2) }); + return output.dpsMeteors!({ + player1: data.party.member(p1), + player2: data.party.member(p2), + }); if (!p1dps && !p2dps) return output.tankHealerMeteors!({ - player1: data.ShortName(p1), - player2: data.ShortName(p2), + player1: data.party.member(p1), + player2: data.party.member(p2), }); - return output.unknownMeteors!({ player1: data.ShortName(p1), player2: data.ShortName(p2) }); + return output.unknownMeteors!({ + player1: data.party.member(p1), + player2: data.party.member(p2), + }); }, outputStrings: { tankHealerMeteors: { @@ -1923,8 +1929,8 @@ const triggerSet: TriggerSet = { infoText: (data, _matches, output) => { // In case somebody wants to do some "go in the order cactbot tells you" sort of strat. const [fullName1, fullName2] = data.thunderstruck.sort(); - const name1 = fullName1 !== undefined ? data.ShortName(fullName1) : output.unknown!(); - const name2 = fullName2 !== undefined ? data.ShortName(fullName2) : output.unknown!(); + const name1 = data.party.member(fullName1); + const name2 = data.party.member(fullName2); return output.text!({ name1: name1, name2: name2 }); }, // Sorry tts players, but "Thunder on YOU" and "Thunder: names" are too similar. @@ -2246,9 +2252,9 @@ const triggerSet: TriggerSet = { return; if (myMarker === 'triangle') - return output.doubleTriangle!({ player: data.ShortName(partner) }); + return output.doubleTriangle!({ player: data.party.member(partner) }); if (myMarker === 'square') - return output.doubleSquare!({ player: data.ShortName(partner) }); + return output.doubleSquare!({ player: data.party.member(partner) }); }, outputStrings: { // In case users want to have triangle vs square say something different. @@ -2376,7 +2382,7 @@ const triggerSet: TriggerSet = { type: 'GainsEffect', netRegex: { effectId: 'B50' }, suppressSeconds: 1, - run: (data, matches) => data.mortalVowPlayer = data.ShortName(matches.target), + run: (data, matches) => data.mortalVowPlayer = matches.target, }, { id: 'DSR Akh Afah', diff --git a/ui/raidboss/data/06-ew/ultimate/the_omega_protocol.ts b/ui/raidboss/data/06-ew/ultimate/the_omega_protocol.ts index c5e9654ebf..b8c123a761 100644 --- a/ui/raidboss/data/06-ew/ultimate/the_omega_protocol.ts +++ b/ui/raidboss/data/06-ew/ultimate/the_omega_protocol.ts @@ -384,7 +384,7 @@ const triggerSet: TriggerSet = { break; } } - return output.text!({ num: myNum, player: data.ShortName(partner) }); + return output.text!({ num: myNum, player: data.party.member(partner) }); }, outputStrings: { text: { @@ -751,10 +751,10 @@ const triggerSet: TriggerSet = { } return { - circle: output.circle!({ glitch: glitch, player: data.ShortName(partner) }), - triangle: output.triangle!({ glitch: glitch, player: data.ShortName(partner) }), - square: output.square!({ glitch: glitch, player: data.ShortName(partner) }), - cross: output.cross!({ glitch: glitch, player: data.ShortName(partner) }), + circle: output.circle!({ glitch: glitch, player: data.party.member(partner) }), + triangle: output.triangle!({ glitch: glitch, player: data.party.member(partner) }), + square: output.square!({ glitch: glitch, player: data.party.member(partner) }), + cross: output.cross!({ glitch: glitch, player: data.party.member(partner) }), }[myMarker]; }, outputStrings: { @@ -890,8 +890,8 @@ const triggerSet: TriggerSet = { const stacksOn = output.stacksOn!({ glitch: glitch, - player1: data.ShortName(p1), - player2: data.ShortName(p2), + player1: data.party.member(p1), + player2: data.party.member(p2), }); if (!data.spotlightStacks.includes(data.me)) return { infoText: stacksOn }; @@ -1018,9 +1018,9 @@ const triggerSet: TriggerSet = { opposites.push(name); } - const partnerText = output.sameDebuffPartner!({ player: data.ShortName(partner) }); + const partnerText = output.sameDebuffPartner!({ player: data.party.member(partner) }); - const [p1, p2] = opposites.sort().map((x) => data.ShortName(x)); + const [p1, p2] = opposites.sort().map((x) => data.party.member(x)); if (myBuff === 'stack') return { alertText: output.stack!({ player1: p1, player2: p2 }), infoText: partnerText }; return { @@ -1432,7 +1432,7 @@ const triggerSet: TriggerSet = { data.monitorPlayers = []; if (players.includes(data.me)) { - const [p1, p2] = players.filter((x) => x !== data.me).map((x) => data.ShortName(x)); + const [p1, p2] = players.filter((x) => x !== data.me).map((x) => data.party.member(x)); return { alertText: output.monitorOnYou!({ player1: p1, player2: p2 }) }; } return { infoText: output.unmarked!() }; @@ -1478,11 +1478,14 @@ const triggerSet: TriggerSet = { const onYou = p1 === data.me || p2 === data.me; if (onYou) { const otherPerson = p1 === data.me ? p2 : p1; - return { alertText: output.stackOnYou!({ player: data.ShortName(otherPerson) }) }; + return { alertText: output.stackOnYou!({ player: data.party.member(otherPerson) }) }; } return { - infoText: output.stacks!({ player1: data.ShortName(p1), player2: data.ShortName(p2) }), + infoText: output.stacks!({ + player1: data.party.member(p1), + player2: data.party.member(p2), + }), }; }, run: (data, _matches) => data.waveCannonStacks = [],