Skip to content
Merged

Deploy #1680

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import ParsedText from '@/shared/components/parsed-text/ParsedText.svelte';
import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte';
import YesNoIcon from '@/shared/components/icons/YesNoIcon.svelte';

export let character: Character;
export let datas: ManualDataProgressData[];
Expand Down Expand Up @@ -153,7 +154,10 @@
{#if iconOverride}
<WowthingImage name={iconOverride} size={20} border={1} />
{:else}
{haveIndexes.indexOf(dataIndex) >= 0 ? '✔' : '❌'}
<YesNoIcon
state={haveIndexes.indexOf(dataIndex) >= 0}
useStatusColors={true}
/>
{/if}
</td>
<td class="name">
Expand Down
8 changes: 8 additions & 0 deletions apps/frontend/data/achievements.ts
Original file line number Diff line number Diff line change
Expand Up @@ -435,4 +435,12 @@ export const extraCategories: ExtraAchievementCategory[] = [
{ targetSlug: 'expansion-features/prey', nameType: 2 },
],
},
{
slug: 'prepatch-midnight',
achievementIds: [
42300, // Two Minutes to Midnight
61430, // Crunching for Cultists
],
children: [],
},
];
6 changes: 6 additions & 0 deletions apps/frontend/data/holidays.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ export const holidayIds: Record<number, number[]> = {
[Holiday.BrawlTempleOfHotmogu]: [1166, 1167, 1168, 1169, 1170],
[Holiday.BrawlWarsongScramble]: [664, 671, 678, 685, 1221],

[Holiday.PrepatchMidnight]: [1636, 1670, 1671, 1672, 1683],
[Holiday.RemixLegion]: [1640, 1641, 1642, 1643, 1644, 1697],
};

Expand Down Expand Up @@ -166,6 +167,11 @@ export const fancyHolidays: FancyHoliday[] = [
shortName: 'Anni',
everything: 'anniversary',
},
{
holiday: Holiday.PrepatchMidnight,
shortName: 'Prepatch',
everything: 'prepatch-midnight',
},
{
holiday: Holiday.RemixLegion,
shortName: 'Lemix',
Expand Down
2 changes: 2 additions & 0 deletions apps/frontend/data/tasks/events/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ import { eventAnniversary } from './anniversary';
import { eventBonus } from './bonus';
import { eventBrewfest } from './brewfest';
import { eventDarkmoonFaire } from './darkmoon-faire';
import { eventPrepatch } from './prepatch';
import { eventTimewalking } from './timewalking';

export const eventTasks = [
eventAnniversary,
eventBonus,
eventBrewfest,
eventDarkmoonFaire,
eventPrepatch,
eventTimewalking,
];
31 changes: 31 additions & 0 deletions apps/frontend/data/tasks/events/prepatch.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Holiday } from '@/enums/holiday';
import { DbResetType } from '@/shared/stores/db/enums';
import type { Task } from '@/types/tasks';

export const eventPrepatch: Task = {
key: 'eventMidnightPrepatch',
name: '[Event] Midnight Prepatch',
shortName: 'Pre',
minimumLevel: 10,
showSeparate: true,
chores: [
{
key: 'disrupt',
name: 'Disrupt the Call',
minimumLevel: 10,
requiredHolidays: [Holiday.PrepatchMidnight],
questReset: DbResetType.Weekly,
questResetForced: true,
questIds: [91795], // Disrupt the Call
},
{
key: 'twilight',
name: "Twilight's Dawn",
minimumLevel: 10,
requiredHolidays: [Holiday.PrepatchMidnight],
questReset: DbResetType.Weekly,
questResetForced: true,
questIds: [87308], // Twilight's Dawn
},
],
};
2 changes: 2 additions & 0 deletions apps/frontend/enums/holiday.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ export enum Holiday {
BrawlTempleOfHotmogu,
BrawlWarsongScramble,

// Temporary
PrepatchMidnight,
RemixLegion,
}

Expand Down
7 changes: 7 additions & 0 deletions apps/frontend/shared/stores/data/static/process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,13 @@ export function processStaticData(rawData: RawStatic): DataStatic {
}
}

for (const transmogSet of data.transmogSetById.values()) {
for (const [itemId, modifier] of transmogSet.items) {
data.transmogSetBySourceId.set((itemId % 1_000_000) * 1000 + modifier, transmogSet);
}
}
console.log(data.transmogSetBySourceId);

data.transmogSetsByGroupId = new Map(
getNumberKeyedEntries(
groupBy(
Expand Down
3 changes: 2 additions & 1 deletion apps/frontend/shared/stores/data/static/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,6 @@ export class DataStatic {
public reputationById: Map<number, StaticDataReputation>;
public toyById: Map<number, StaticDataToy>;
public transmogSetById: Map<number, StaticDataTransmogSet>;
public transmogSetsByGroupId: Map<number, StaticDataTransmogSet[]>;
public worldQuestById: Map<number, StaticDataWorldQuest>;

// Calculate
Expand All @@ -159,6 +158,8 @@ export class DataStatic {
public professionBySlug = new Map<string, StaticDataProfession>();
public requiredProfessionByItemId = new Map<number, number>();
public toyByItemId = new Map<number, StaticDataToy>();
public transmogSetsByGroupId: Map<number, StaticDataTransmogSet[]>;
public transmogSetBySourceId = new Map<number, StaticDataTransmogSet>();

// Professions eh
public buildProfessionData() {
Expand Down
11 changes: 9 additions & 2 deletions apps/frontend/shared/stores/db/types/thing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import { DbDataThingLocation } from './thing-location';
import { DbDataThingContent, type DbDataThingContentArray } from './thing-content';
import { DbDataThingGroup, type DbDataThingGroupArray } from './thing-group';

const normalReputationTiers = ['friendly', 'honored', 'revered', 'exalted'];

export class DbDataThing {
public accountWide: boolean;
public contents: DbDataThingContent[] = [];
Expand Down Expand Up @@ -90,8 +92,13 @@ export class DbDataThing {
const reputationParts = requirement.split(' ');
const reputationId = parseInt(reputationParts[1]);
if (reputationId > 0) {
if (reputationParts[2]?.startsWith('renown-')) {
contentRequirement = reputationParts[2].replace('renown-', 'R ');
const requiredRep = reputationParts[2] || '';
if (requiredRep.startsWith('renown-')) {
contentRequirement = requiredRep.replace('renown-', 'R ');
} else if (normalReputationTiers.includes(requiredRep)) {
contentRequirement =
requiredRep.substring(0, 1).toLocaleUpperCase() +
requiredRep.substring(1, 3);
} else {
console.log('dunno what to do with this', reputationParts);
}
Expand Down
7 changes: 4 additions & 3 deletions apps/frontend/stores/achievements.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ export class AchievementDataStore extends WritableFancyStore<AchievementData> {
let categoryId = 100000;
for (const extraCategory of extraCategories) {
const reputations = data.categories.find((cat) => cat?.slug === 'reputation');
const slugCat = reputations?.children.find(
(child) => child.slug === extraCategory.slug
);
const slugCat =
extraCategory.slug === 'prepatch-midnight'
? { name: 'Prepatch: Midnight ', slug: 'prepatch-midnight' }
: reputations?.children.find((child) => child.slug === extraCategory.slug);
if (!slugCat) {
console.log('uh oh', extraCategory);
continue;
Expand Down
6 changes: 6 additions & 0 deletions apps/frontend/user-home/components/everything/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,12 @@ export const everythingData: Record<string, EverythingData> = {
achievementsKey: ['world-events', 'anniversary-celebration'],
vendorsKey: ['world-events', 'anniversary'],
},
'prepatch-midnight': {
name: 'Prepatch: Midnight',
tag: 'event:prepatch-midnight',
achievementsKey: ['prepatch-midnight'],
vendorsKey: ['world-events', 'mid-twilight-ascension'],
},
'remix-legion': {
name: 'Remix: Legion',
tag: 'event:remix-legion',
Expand Down
15 changes: 14 additions & 1 deletion apps/frontend/user-home/state/lazy/convertible.svelte.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,20 @@ export function doConvertible(): LazyConvertible {
for (const setItemId of wowthingData.items.itemConversionEntries[convertibleCategory.id] ||
[]) {
const setItem = wowthingData.items.items[setItemId];
const classId = maskToClass[setItem.classMask];

let classId = maskToClass[setItem.classMask];
// 8191 = all classes, for some reason pre-TWW cloaks got set to this
if (setItem.classMask === 8191) {
// hope it has a modifier 0!
const sourceId = setItemId * 1000;
const transmogSet = wowthingData.static.transmogSetBySourceId.get(sourceId);
if (transmogSet) {
classId = maskToClass[transmogSet.classMask];
} else {
console.log(setItemId, 'has no transmog set??');
}
}

if (!classId) {
console.warn('invalid classMask', setItem.classMask);
continue;
Expand Down
4 changes: 2 additions & 2 deletions apps/frontend/utils/home/home-sort.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ export function homeSort(char: Character, sortBy: string): string {
);
} else if (sortBy === 'lastSeenAddon') {
return leftPad(2_000_000_000_000 - (char.lastSeenAddon?.toMillis() || 0), 13, '0');
} else if (sortBy === 'locationCurrent') {
} else if (sortBy === 'currentLocation') {
// adding two spaces makes it sort before " > blah"
return char.currentLocation + ' ' || 'ZZZZZ';
} else if (sortBy === 'locationHearth') {
} else if (sortBy === 'hearthLocation') {
// adding two spaces makes it sort before " > blah"
return char.hearthLocation + ' ' || 'ZZZZZ';
} else if (sortBy === 'keystone') {
Expand Down
Loading