Skip to content

Commit

Permalink
jobs: buff tracker update (#210)
Browse files Browse the repository at this point in the history
- new raidbuff: dokumori (NIN, mug upgrade), starry muse (PCT).
- removed raidbuff: dragon eyes (DRG), card (AST, new card is not the
same effect)
- remove durationSeconds, all useEffectDuration now.

All tested OK.

---------

Co-authored-by: Maiko Tan <[email protected]>
  • Loading branch information
Echoring and MaikoTan authored Jul 9, 2024
1 parent 5009b69 commit 3a726d3
Show file tree
Hide file tree
Showing 6 changed files with 131 additions and 99 deletions.
6 changes: 4 additions & 2 deletions resources/effect_id.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1827,7 +1827,8 @@ const data = {
'ThaliaksWard': 'E7',
'ThatWhichBindsUs': '169',
'TheArrow': '75C',
'TheBalance': '75A',
'TheBalance': 'F2F',
'TheBalance6x': '75A',
'TheBole': '75B',
'TheDeceiver': '5A5',
'TheDragonsCurse': '131',
Expand All @@ -1838,7 +1839,8 @@ const data = {
'TheOneDragon': '611',
'TheRoadTo90': '583',
'TheScroll': 'A0C',
'TheSpear': '75D',
'TheSpear': 'F31',
'TheSpear6x': '75D',
'TheSpire': '75F',
'TheTwelvesBounty': '339',
'TheUnforgotten': 'C88',
Expand Down
Binary file added resources/ffxiv/status/dokumori.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/ffxiv/status/starry-muse.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
215 changes: 120 additions & 95 deletions ui/jobs/buff_tracker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import brotherhoodImage from '../../resources/ffxiv/status/brotherhood.png';
import chainStratagemImage from '../../resources/ffxiv/status/chain-stratagem.png';
import devilmentImage from '../../resources/ffxiv/status/devilment.png';
import divinationImage from '../../resources/ffxiv/status/divination.png';
import dokumoriImage from '../../resources/ffxiv/status/dokumori.png';
import dragonSightImage from '../../resources/ffxiv/status/dragon-sight.png';
import emboldenImage from '../../resources/ffxiv/status/embolden.png';
import ewerImage from '../../resources/ffxiv/status/ewer.png';
Expand All @@ -25,6 +26,7 @@ import searingLightImage from '../../resources/ffxiv/status/searing-light.png';
import spearImage from '../../resources/ffxiv/status/spear.png';
import spireImage from '../../resources/ffxiv/status/spire.png';
import standardFinishImage from '../../resources/ffxiv/status/standard-finish.png';
import starryMuseImage from '../../resources/ffxiv/status/starry-muse.png';
import technicalFinishImage from '../../resources/ffxiv/status/technical-finish.png';
import umbralImage from '../../resources/ffxiv/status/umbral.png';
import PartyTracker from '../../resources/party';
Expand Down Expand Up @@ -327,7 +329,6 @@ export class BuffTracker {
mobGainsEffect: EffectId.OffGuard,
mobLosesEffect: EffectId.OffGuard,
useEffectDuration: true,
durationSeconds: 15,
icon: offguardImage,
borderColor: '#47bf41',
sortKey: 1,
Expand All @@ -339,7 +340,6 @@ export class BuffTracker {
mobGainsEffect: EffectId.PeculiarLight,
mobLosesEffect: EffectId.PeculiarLight,
useEffectDuration: true,
durationSeconds: 15,
icon: peculiarLightImage,
borderColor: '#F28F7B',
sortKey: 1,
Expand All @@ -351,19 +351,28 @@ export class BuffTracker {
mobGainsEffect: EffectId.VulnerabilityUp,
mobLosesEffect: EffectId.VulnerabilityUp,
useEffectDuration: true,
durationSeconds: 20,
icon: mugImage,
// Magenta.
borderColor: '#FC4AE6',
sortKey: 1,
cooldown: 120,
},
Dokumori: {
cooldownAbility: [kAbility.Dokumori],
mobGainsEffect: EffectId.Dokumori,
mobLosesEffect: EffectId.Dokumori,
useEffectDuration: true,
icon: dokumoriImage,
// Magenta.
borderColor: '#FC4AE6',
sortKey: 1,
cooldown: 120,
},
litany: {
cooldownAbility: [kAbility.BattleLitany],
gainEffect: [EffectId.BattleLitany],
loseEffect: [EffectId.BattleLitany],
useEffectDuration: true,
durationSeconds: 15,
partyOnly: true,
icon: battleLitanyImage,
// Cyan.
Expand All @@ -376,23 +385,13 @@ export class BuffTracker {
gainEffect: [EffectId.Embolden, EffectId.EmboldenSelf],
loseEffect: [EffectId.Embolden, EffectId.EmboldenSelf],
useEffectDuration: true,
durationSeconds: 20,
partyOnly: true,
icon: emboldenImage,
// Lime.
borderColor: '#57FC4A',
sortKey: 3,
cooldown: 120,
},
arrow: {
gainEffect: [EffectId.TheArrow],
loseEffect: [EffectId.TheArrow],
useEffectDuration: true,
icon: arrowImage,
// Light Blue.
borderColor: '#37ccee',
sortKey: 4,
},
balance: {
gainEffect: [EffectId.TheBalance],
loseEffect: [EffectId.TheBalance],
Expand All @@ -402,24 +401,6 @@ export class BuffTracker {
borderColor: '#ff9900',
sortKey: 4,
},
bole: {
gainEffect: [EffectId.TheBole],
loseEffect: [EffectId.TheBole],
useEffectDuration: true,
icon: boleImage,
// Green.
borderColor: '#22dd77',
sortKey: 4,
},
ewer: {
gainEffect: [EffectId.TheEwer],
loseEffect: [EffectId.TheEwer],
useEffectDuration: true,
icon: ewerImage,
// Light Blue.
borderColor: '#66ccdd',
sortKey: 4,
},
spear: {
gainEffect: [EffectId.TheSpear],
loseEffect: [EffectId.TheSpear],
Expand All @@ -429,33 +410,6 @@ export class BuffTracker {
borderColor: '#4477dd',
sortKey: 4,
},
spire: {
gainEffect: [EffectId.TheSpire],
loseEffect: [EffectId.TheSpire],
useEffectDuration: true,
icon: spireImage,
// Yellow.
borderColor: '#ddd044',
sortKey: 4,
},
ladyOfCrowns: {
gainEffect: [EffectId.LadyOfCrowns],
loseEffect: [EffectId.LadyOfCrowns],
useEffectDuration: true,
icon: ladyOfCrownsImage,
// Purple.
borderColor: '#9e5599',
sortKey: 4,
},
lordOfCrowns: {
gainEffect: [EffectId.LordOfCrowns],
loseEffect: [EffectId.LordOfCrowns],
useEffectDuration: true,
icon: lordOfCrownsImage,
// Dark Red.
borderColor: '#9a2222',
sortKey: 4,
},
devilment: {
gainEffect: [EffectId.Devilment],
loseEffect: [EffectId.Devilment],
Expand Down Expand Up @@ -489,7 +443,6 @@ export class BuffTracker {
gainEffect: [EffectId.TechnicalFinish],
loseEffect: [EffectId.TechnicalFinish],
useEffectDuration: true,
durationSeconds: 20,
partyOnly: true,
icon: technicalFinishImage,
// Dark Peach.
Expand All @@ -502,7 +455,6 @@ export class BuffTracker {
gainEffect: [EffectId.BattleVoice],
loseEffect: [EffectId.BattleVoice],
useEffectDuration: true,
durationSeconds: 15,
partyOnly: true,
icon: battleVoiceImage,
// Red.
Expand All @@ -515,7 +467,6 @@ export class BuffTracker {
gainEffect: [EffectId.RadiantFinale],
loseEffect: [EffectId.RadiantFinale],
useEffectDuration: true,
durationSeconds: 15,
partyOnly: true,
icon: finaleImage,
// Yellow.
Expand All @@ -528,39 +479,29 @@ export class BuffTracker {
mobGainsEffect: EffectId.ChainStratagem,
mobLosesEffect: EffectId.ChainStratagem,
useEffectDuration: true,
durationSeconds: 15,
icon: chainStratagemImage,
// Blue.
borderColor: '#4674E5',
sortKey: 8,
cooldown: 120,
},
lefteye: {
gainEffect: [EffectId.LeftEye],
loseEffect: [EffectId.LeftEye],
starrymuse: {
cooldownAbility: [kAbility.StarryMuse],
gainEffect: [EffectId.StarryMuse],
loseEffect: [EffectId.StarryMuse],
useEffectDuration: true,
icon: dragonSightImage,
// Orange.
borderColor: '#FA8737',
partyOnly: true,
icon: starryMuseImage,
// Dark purple.
borderColor: '#5C1F58',
sortKey: 9,
cooldown: 120,
},
righteye: {
gainEffect: [EffectId.RightEye],
loseEffect: [EffectId.RightEye],
useEffectDuration: true,
icon: dragonSightImage,
// Orange.
borderColor: '#FA8737',
sortKey: 10,
cooldown: 120,
},
brotherhood: {
cooldownAbility: [kAbility.Brotherhood],
gainEffect: [EffectId.Brotherhood],
loseEffect: [EffectId.Brotherhood],
useEffectDuration: true,
durationSeconds: 15,
partyOnly: true,
icon: brotherhoodImage,
// Dark Orange.
Expand All @@ -573,7 +514,6 @@ export class BuffTracker {
gainEffect: [EffectId.Divination],
loseEffect: [EffectId.Divination],
useEffectDuration: true,
durationSeconds: 15,
partyOnly: true,
icon: divinationImage,
// Dark purple.
Expand All @@ -586,7 +526,6 @@ export class BuffTracker {
gainEffect: [EffectId.ArcaneCircle],
loseEffect: [EffectId.ArcaneCircle],
useEffectDuration: true,
durationSeconds: 20,
partyOnly: true,
icon: arcaneCircleImage,
// Light pink..
Expand All @@ -599,7 +538,6 @@ export class BuffTracker {
gainEffect: [EffectId.SearingLight],
loseEffect: [EffectId.SearingLight],
useEffectDuration: true,
durationSeconds: 30,
partyOnly: true,
icon: searingLightImage,
// Pink.
Expand All @@ -609,19 +547,106 @@ export class BuffTracker {
},
};

// Abilities that are different in 6.1 version.
const v610: { [s: string]: BuffInfo } = {};

// Abilities that are different in 6.0 version.
const v600: { [s: string]: BuffInfo } = {};

if (this.ffxivVersion < 620) {
for (const [key, entry] of Object.entries(v610))
this.buffInfo[key] = entry;
}
// Abilities that are different in 6.5 version.
// TODO: following raidbuff has been removed in 7.0
// Remove them when CN and KO reach 7.0.
const v650: { [s: string]: Omit<BuffInfo, 'name'> } = {
balance: {
gainEffect: [EffectId.TheBalance6x],
loseEffect: [EffectId.TheBalance6x],
useEffectDuration: true,
icon: balanceImage,
// Orange.
borderColor: '#ff9900',
sortKey: 4,
},
spear: {
gainEffect: [EffectId.TheSpear6x],
loseEffect: [EffectId.TheSpear6x],
useEffectDuration: true,
icon: spearImage,
// Dark Blue.
borderColor: '#4477dd',
sortKey: 4,
},
arrow: {
gainEffect: [EffectId.TheArrow],
loseEffect: [EffectId.TheArrow],
useEffectDuration: true,
icon: arrowImage,
// Light Blue.
borderColor: '#37ccee',
sortKey: 4,
},
bole: {
gainEffect: [EffectId.TheBole],
loseEffect: [EffectId.TheBole],
useEffectDuration: true,
icon: boleImage,
// Green.
borderColor: '#22dd77',
sortKey: 4,
},
ewer: {
gainEffect: [EffectId.TheEwer],
loseEffect: [EffectId.TheEwer],
useEffectDuration: true,
icon: ewerImage,
// Light Blue.
borderColor: '#66ccdd',
sortKey: 4,
},
spire: {
gainEffect: [EffectId.TheSpire],
loseEffect: [EffectId.TheSpire],
useEffectDuration: true,
icon: spireImage,
// Yellow.
borderColor: '#ddd044',
sortKey: 4,
},
ladyOfCrowns: {
gainEffect: [EffectId.LadyOfCrowns],
loseEffect: [EffectId.LadyOfCrowns],
useEffectDuration: true,
icon: ladyOfCrownsImage,
// Purple.
borderColor: '#9e5599',
sortKey: 4,
},
lordOfCrowns: {
gainEffect: [EffectId.LordOfCrowns],
loseEffect: [EffectId.LordOfCrowns],
useEffectDuration: true,
icon: lordOfCrownsImage,
// Dark Red.
borderColor: '#9a2222',
sortKey: 4,
},
lefteye: {
gainEffect: [EffectId.LeftEye],
loseEffect: [EffectId.LeftEye],
useEffectDuration: true,
icon: dragonSightImage,
// Orange.
borderColor: '#FA8737',
sortKey: 9,
cooldown: 120,
},
righteye: {
gainEffect: [EffectId.RightEye],
loseEffect: [EffectId.RightEye],
useEffectDuration: true,
icon: dragonSightImage,
// Orange.
borderColor: '#FA8737',
sortKey: 10,
cooldown: 120,
},
};

if (this.ffxivVersion < 610) {
for (const [key, entry] of Object.entries(v600))
if (this.ffxivVersion < 700) {
for (const [key, entry] of Object.entries(v650))
this.buffInfo[key] = entry;
}

Expand Down
2 changes: 2 additions & 0 deletions ui/jobs/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,8 @@ export const kAbility = {
Manafication: '1D61',
Fleche: '1D5D',
ContreSixte: '1D5F',
// PCT
StarryMuse: '8773',
// BLU
SongOfTorment: '2C7A',
OffGuard: '2C93',
Expand Down
Loading

0 comments on commit 3a726d3

Please sign in to comment.