;
diff --git a/apps/frontend/user-home/components/reputations/AccountWide.svelte b/apps/frontend/user-home/components/reputations/AccountWide.svelte
index f93779d26..faa34c10a 100644
--- a/apps/frontend/user-home/components/reputations/AccountWide.svelte
+++ b/apps/frontend/user-home/components/reputations/AccountWide.svelte
@@ -91,13 +91,10 @@
class="account-rep {cls} flex-wrapper"
use:componentTooltip={{
component: TooltipReputation,
- props: {
+ propsFunc: () => ({
characterRep: characterRep.value,
- // character,
dataRep,
- // paragon,
- // reputation,
- },
+ }),
}}
>
diff --git a/apps/frontend/user-home/components/reputations/get-renown-data.ts b/apps/frontend/user-home/components/reputations/get-renown-data.ts
index a37155493..92a69730d 100644
--- a/apps/frontend/user-home/components/reputations/get-renown-data.ts
+++ b/apps/frontend/user-home/components/reputations/get-renown-data.ts
@@ -50,7 +50,7 @@ export function getRenownData({
ret.dataRep = wowthingData.static.reputationById.get(ret.characterRep.reputationId);
const actualCharacter = ret.dataRep.accountWide
- ? userState.general.characterById[userState.reputations[ret.dataRep.id]?.[1]]
+ ? userState.general.characterById[userState.reputations[ret.dataRep.id]?.characterId]
: character;
ret.characterRep =
diff --git a/apps/frontend/user-home/state/user/derived.svelte.ts b/apps/frontend/user-home/state/user/derived.svelte.ts
index 6340938cc..6685f7b87 100644
--- a/apps/frontend/user-home/state/user/derived.svelte.ts
+++ b/apps/frontend/user-home/state/user/derived.svelte.ts
@@ -297,22 +297,44 @@ export class DataUserDerived {
public doReputations(allCharacters: Character[]) {
console.time('doReputations');
- const maxReps: Record = {};
+ const maxReps: Record<
+ number,
+ { value: number; characterId: number; characterScanned: number }
+ > = {};
const hasParagons = new Set();
for (const character of allCharacters) {
for (const expansion of Object.values(character.reputationData)) {
for (const reputationSet of expansion.sets) {
for (const { reputationId, value } of reputationSet) {
- const maxRep = maxReps[reputationId]?.[0] || -99999;
+ const currentMax = maxReps[reputationId];
+ if (
+ currentMax &&
+ character.lastSeenAddonUnix < currentMax.characterScanned
+ ) {
+ continue;
+ }
+
+ const maxRep = currentMax?.value || -99999;
+ let setMax = false;
if (value > maxRep) {
- maxReps[reputationId] = [value, character.id];
+ if (!currentMax || character.lastSeenAddonUnix) {
+ setMax = true;
+ }
} else if (
value === maxRep &&
!hasParagons.has(reputationId) &&
character.paragons?.[reputationId]
) {
hasParagons.add(reputationId);
- maxReps[reputationId] = [value, character.id];
+ setMax = true;
+ }
+
+ if (setMax) {
+ maxReps[reputationId] = {
+ value,
+ characterId: character.id,
+ characterScanned: character.lastSeenAddonUnix,
+ };
}
}
}
@@ -523,6 +545,23 @@ export class DataUserDerived {
const choreReset = chore.questReset || parent?.questReset;
const resetForced = chore.questResetForced === true || parent?.questResetForced === true;
+ let expiresAt: DateTime;
+ if (choreReset === DbResetType.Weekly) {
+ expiresAt = getNextWeeklyResetFromTime(
+ charScanned,
+ character.realm?.region || Region.US,
+ character
+ );
+ } else if (choreReset === DbResetType.Never) {
+ expiresAt = timeState.slowTime.plus({ days: 30 });
+ } else {
+ expiresAt = getNextDailyResetFromTime(
+ charScanned,
+ character.realm?.region || Region.US,
+ character
+ );
+ }
+
let completedCount = 0;
let questIds: number[] = [];
if (chore.questIds) {
@@ -531,23 +570,8 @@ export class DataUserDerived {
? chore.questIds(character, chore)
: chore.questIds;
- let expiresAt: DateTime;
- if (choreReset === DbResetType.Weekly) {
- expiresAt = getNextWeeklyResetFromTime(
- charScanned,
- character.realm?.region || Region.US,
- character
- );
- } else if (choreReset === DbResetType.Custom) {
+ if (choreReset === DbResetType.Custom) {
expiresAt = chore.customExpiryFunc(character, charScanned, questIds);
- } else if (choreReset === DbResetType.Never) {
- expiresAt = timeState.slowTime.plus({ days: 30 });
- } else {
- expiresAt = getNextDailyResetFromTime(
- charScanned,
- character.realm?.region || Region.US,
- character
- );
}
for (const questId of questIds) {
@@ -649,7 +673,10 @@ export class DataUserDerived {
}
} else if (chore.progressFunc) {
const { have, need } = chore.progressFunc(character);
- charChore.progressCurrent = have;
+
+ if (!resetForced || expiresAt > timeState.slowTime) {
+ charChore.progressCurrent = have;
+ }
charChore.progressTotal = need;
if (charChore.progressCurrent === charChore.progressTotal) {
diff --git a/apps/frontend/utils/mythic-plus/get-vault-item-level.ts b/apps/frontend/utils/mythic-plus/get-vault-item-level.ts
index 91993d9b2..d0377b27d 100644
--- a/apps/frontend/utils/mythic-plus/get-vault-item-level.ts
+++ b/apps/frontend/utils/mythic-plus/get-vault-item-level.ts
@@ -1,7 +1,7 @@
-import { keyVaultItemLevel } from '@/data/vault';
+import { dungeonVaultItemLevel } from '@/data/vault';
export function getVaultItemLevel(keyLevel: number): number[] {
- for (const [tierKeyLevel, tierItemLevel, tierQuality] of keyVaultItemLevel) {
+ for (const [tierKeyLevel, tierItemLevel, tierQuality] of dungeonVaultItemLevel) {
if (keyLevel >= tierKeyLevel) {
return [tierItemLevel, tierQuality];
}
diff --git a/apps/frontend/utils/mythic-plus/get-vault-quality-by-item-level.ts b/apps/frontend/utils/mythic-plus/get-vault-quality-by-item-level.ts
index 7fab39311..d942e4d4a 100644
--- a/apps/frontend/utils/mythic-plus/get-vault-quality-by-item-level.ts
+++ b/apps/frontend/utils/mythic-plus/get-vault-quality-by-item-level.ts
@@ -1,7 +1,7 @@
-import { keyVaultItemLevel } from '@/data/vault';
+import { dungeonVaultItemLevel } from '@/data/vault';
export function getVaultQualityByItemLevel(itemLevel: number) {
- for (const [, tierItemLevel, tierQuality] of keyVaultItemLevel) {
+ for (const [, tierItemLevel, tierQuality] of dungeonVaultItemLevel) {
if (itemLevel >= tierItemLevel) {
return tierQuality;
}