Skip to content
Merged

Deploy #1723

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
34 changes: 25 additions & 9 deletions apps/frontend/components/items/ItemsItem.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,34 @@
import { wowthingData } from '@/shared/stores/data';
import { getItemUrl } from '@/utils/get-item-url';
import type { Character, CharacterGear } from '@/types';
import type { ItemDataItem } from '@/types/data/item';
import type { CharacterProps } from '@/types/props';

import CraftedQualityIcon from '@/shared/components/images/CraftedQualityIcon.svelte';
import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte';
import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte';
import type { ConvertibleCategoryUpgrade } from './convertible/types';
import WowheadLink from '@/shared/components/links/WowheadLink.svelte';

export let character: Character = undefined;
export let forceCrafted = false;
export let gear: Partial<CharacterGear>;
export let tierPieces: number[] = undefined;
export let useHighlighting = false;
export let useItemCount = false;
type Props = Partial<CharacterProps> & {
gear: Partial<CharacterGear>;
character?: Character;
forceCrafted?: boolean;
tierPieces?: number[];
useHighlighting?: boolean;
useItemCount?: boolean;
failStateFunc?: (item: ItemDataItem) => boolean;
};

let {
gear,
character,
forceCrafted,
tierPieces,
useHighlighting,
useItemCount,
failStateFunc,
}: Props = $props();

function getIconName(): [string, number] {
let tiers: ConvertibleCategoryUpgrade[][];
Expand Down Expand Up @@ -85,11 +100,11 @@

<style lang="scss">
.gear {
height: 46px;
height: 48px;
padding: 2px;
position: relative;
text-align: center;
width: 46px;
width: 48px;

--image-border-width: 2px;
--image-margin-top: 0;
Expand Down Expand Up @@ -184,8 +199,9 @@
</WowheadLink>
{:else}
{@const item = wowthingData.items.items[gear.equipped.itemId]}
{@const failState = failStateFunc?.(item)}
<a
class="quality{gear.equipped.quality}"
class={failState ? 'border-fail' : `quality${gear.equipped.quality}`}
href={getItemUrl(gear.equipped, character, tierPieces)}
>
<WowthingImage name="item/{gear.equipped.itemId}" size={40} border={2} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import CharacterTable from '@/components/character-table/CharacterTable.svelte';
import Row from './TableRow.svelte';
import Sidebar from './Sidebar.svelte';
import { settingsState } from '@/shared/state/settings.svelte';

let { slug }: { slug: string } = $props();

Expand All @@ -15,6 +16,10 @@
const filterFunc = (char: Character): boolean => {
if (slug === 'all') {
return true;
} else if (slug === 'collectors') {
return Object.values(settingsState.value.professions.collectingCharactersV2 || {}).some(
(characterIds) => characterIds.includes(char.id)
);
} else if (slug === 'some') {
return someProfessions.some((id) => !!char.professions?.[id]);
} else {
Expand All @@ -27,7 +32,7 @@

<Sidebar />

{#if slug === 'all' || slug === 'some' || professionId}
{#if slug === 'all' || slug === 'collectors' || slug === 'some' || professionId}
<CharacterTable {filterFunc} skipIgnored={true}>
<svelte:fragment slot="rowExtra" let:character>
<Row {character} {professionId} {slug} />
Expand Down
10 changes: 8 additions & 2 deletions apps/frontend/components/professions/equipment/Sidebar.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
slug: 'all',
},
{
name: 'Some',
slug: 'some',
name: 'Collectors',
slug: 'collectors',
},
null,
];
Expand Down Expand Up @@ -42,6 +42,12 @@
});
}

ret.push(null);
ret.push({
name: 'Some',
slug: 'some',
});

return ret;
});
</script>
Expand Down
20 changes: 15 additions & 5 deletions apps/frontend/components/professions/equipment/TableRow.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<script lang="ts">
import orderBy from 'lodash/orderBy';

import { Constants } from '@/data/constants';
import { imageStrings } from '@/data/icons';
import { uiIcons } from '@/shared/icons';
import { professionIdToSlug } from '@/data/professions';
Expand All @@ -13,11 +14,11 @@

import { someProfessions } from './some';

import CurrenciesCell from '@/user-home/components/currencies/TableRow.svelte';
import Empty from '../../items/ItemsEmpty.svelte';
import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte';
import Item from '../../items/ItemsItem.svelte';
import WowthingImage from '@/shared/components/images/sources/WowthingImage.svelte';
import { settingsState } from '@/shared/state/settings.svelte';

let { character, professionId, slug }: CharacterProps & { professionId: number; slug: string } =
$props();
Expand All @@ -33,6 +34,14 @@
continue;
}

if (
slug === 'collectors' &&
!settingsState.value.professions.collectingCharactersV2[profession.id]?.includes(
character.id
)
) {
continue;
}
if (slug === 'some' && !someProfessions.includes(profession.id)) {
continue;
}
Expand Down Expand Up @@ -106,9 +115,6 @@
}
</style>

<td class="spacer"></td>
<CurrenciesCell {character} itemId={210814} sortingBy={false} />

{#each professions as [profession, userHas, slots] (profession)}
<td class="spacer"></td>

Expand All @@ -130,7 +136,11 @@
{#each { length: profession?.slug === 'fishing' ? 1 : profession.type === 0 ? 3 : 2 }, slot}
{@const gear = slots[slot]}
{#if gear?.equipped}
<Item forceCrafted={true} {gear} />
<Item
failStateFunc={(item) => item.expansion !== Constants.expansion}
forceCrafted={true}
{gear}
/>
{:else if !userHas}
<Empty opacity="0.3" />
{:else}
Expand Down
16 changes: 15 additions & 1 deletion apps/frontend/components/tooltips/task/TooltipTaskRow.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import { settingsState } from '@/shared/state/settings.svelte';
import { DbResetType } from '@/shared/stores/db/enums';
import { userState } from '@/user-home/state/user';
import { getPercentStatusClass } from '@/utils/get-percent-class';
import type { CharacterChore } from '@/user-home/state/user/types/tasks.svelte';

import IconifyWrapper from '@/shared/components/images/IconifyWrapper.svelte';
Expand Down Expand Up @@ -112,7 +113,7 @@
.error-text {
font-size: 0.95rem;
text-align: left;
width: 7rem;
max-width: 7rem;
}
.status-text {
color: #afffff;
Expand Down Expand Up @@ -194,6 +195,19 @@
{charTaskChore.statusTexts[0]}
{/if}
</td>
{:else if chore.questCount > 1}
{@const cls = getPercentStatusClass(
((chore.alwaysStarted
? Math.max(1, charTaskChore.progressCurrent)
: charTaskChore.progressCurrent) /
charTaskChore.progressTotal) *
100
)}
<td class="error-text">
<ParsedText
text={`[|${cls}|${charTaskChore.progressCurrent}/${charTaskChore.progressTotal}]`}
/>
</td>
{/if}
</tr>

Expand Down
13 changes: 11 additions & 2 deletions apps/frontend/data/tasks/11-midnight/12-0-0.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,13 +231,22 @@ export const midChores12_0_0: Task = {
93758, // Nexus-Point Xenas
],
},
{
key: 'midWorldBossFirst',
name: 'World Boss (First)',
icon: iconLibrary.emojiZzz,
minimumLevel: 90,
accountWide: true,
questReset: DbResetType.Weekly,
questIds: [
92127, // Tracking quest?
],
},
{
key: 'midWorldBoss',
name: 'World Boss',
icon: iconLibrary.emojiZzz,
minimumLevel: 90,
accountWide: true,
showQuestName: true,
questReset: DbResetType.Weekly,
questIds: [
// TODO from AreaPOI.db2, verify
Expand Down
41 changes: 41 additions & 0 deletions apps/frontend/data/tasks/11-midnight/delves.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { iconLibrary } from '@/shared/icons';
import { DbResetType } from '@/shared/stores/db/enums';
import type { Task } from '@/types/tasks';

export const midDelves: Task = {
key: 'midDelves',
name: '[Mid] Delves',
shortName: 'Delve',
minimumLevel: 80,
showSeparate: true,
chores: [
// {
// key: 'map',
// name: '{item:252415}',
// icon: iconLibrary.GameTreasureMap,
// minimumLevel: 80,
// alwaysStarted: true,
// questReset: DbResetType.Weekly,
// questIds: [],
// },
// null,
{
key: 'arcaneRemnant',
name: '{item:262586}',
icon: iconLibrary.gameUnstableOrb,
minimumLevel: 80,
accountWide: true,
alwaysStarted: true,
questReset: DbResetType.Weekly,
questIds: [93784],
},
// {
// key: 'nullaeus',
// name: "Nullaeus Invasion",
// minimumLevel: 90,
// alwaysStarted: true,
// questIds: [], // ??
// questReset: DbResetType.Weekly,
// },
],
};
3 changes: 2 additions & 1 deletion apps/frontend/data/tasks/11-midnight/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { midChores12_0_0 } from './12-0-0';
import { midDelves } from './delves';
import { midPrey } from './prey';
import { midProfessions } from './professions';

export const midTasks = [midChores12_0_0, midPrey, midProfessions];
export const midTasks = [midChores12_0_0, midDelves, midPrey, midProfessions];
Loading
Loading