Skip to content
Draft
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
56 changes: 45 additions & 11 deletions src/app/item-popup/ItemDetails.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { DestinyTooltipText } from 'app/dim-ui/DestinyTooltipText';
import { PressTip } from 'app/dim-ui/PressTip';
import { t, tl } from 'app/i18next-t';
import { createItemContextSelector, storesSelector } from 'app/inventory/selectors';
import { getCraftedSocket } from 'app/inventory/store/crafted';
import { isTrialsPassage } from 'app/inventory/store/objectives';
import { applySocketOverrides, useSocketOverrides } from 'app/inventory/store/override-sockets';
import { getStore } from 'app/inventory/stores-helpers';
Expand All @@ -10,7 +12,7 @@ import { ActivityModifier } from 'app/progress/ActivityModifier';
import Objective from 'app/progress/Objective';
import { Reward } from 'app/progress/Reward';
import { RootState } from 'app/store/types';
import { getItemKillTrackerInfo, isD1Item } from 'app/utils/item-utils';
import { getItemCurrentKillTrackerInfo, getItemKillTrackers, isD1Item } from 'app/utils/item-utils';
import { SingleVendorSheetContext } from 'app/vendors/single-vendor/SingleVendorSheetContainer';
import clsx from 'clsx';
import { BucketHashes, ItemCategoryHashes } from 'data/d2/generated-enums';
Expand Down Expand Up @@ -55,7 +57,14 @@ export default function ItemDetails({

const ownerStore = useSelector((state: RootState) => getStore(storesSelector(state), item.owner));

const killTrackerInfo = getItemKillTrackerInfo(item);
const killTrackerInfo = getItemCurrentKillTrackerInfo(item);
const killTrackers = getItemKillTrackers(item);
const shapedDateObjective =
item.crafted &&
item.craftedInfo &&
getCraftedSocket(item)?.plugged?.plugObjectives.find(
(o) => o.progress === item.craftedInfo?.craftedDate,
);

const showVendor = use(SingleVendorSheetContext);

Expand Down Expand Up @@ -103,15 +112,40 @@ export default function ItemDetails({
</div>
)}

{defs.isDestiny2 && <WeaponCraftedInfo item={item} className="crafted-progress" />}

{defs.isDestiny2 && <WeaponDeepsightInfo item={item} />}

{defs.isDestiny2 && <WeaponCatalystInfo item={item} />}

{killTrackerInfo && defs.isDestiny2 && (
<KillTrackerInfo tracker={killTrackerInfo} showTextLabel className="masterwork-progress" />
)}
<PressTip
tooltip={
(shapedDateObjective || killTrackers.length > 1) && (
<>
{shapedDateObjective && <Objective objective={shapedDateObjective} />}
{shapedDateObjective && killTrackers.length > 1 && <hr />}
{killTrackers.length > 1 &&
killTrackers.map((kt) => (
<KillTrackerInfo
key={kt?.trackerDef.hash}
tracker={kt}
showTextLabel
className="masterwork-progress"
/>
))}
</>
)
}
placement="bottom"
>
{defs.isDestiny2 && <WeaponCraftedInfo item={item} className="crafted-progress" />}

{defs.isDestiny2 && <WeaponDeepsightInfo item={item} />}

{defs.isDestiny2 && <WeaponCatalystInfo item={item} />}

{killTrackerInfo && defs.isDestiny2 && (
<KillTrackerInfo
tracker={killTrackerInfo}
showTextLabel
className="masterwork-progress"
/>
)}
</PressTip>

{item.classified && <div className="item-details">{t('ItemService.Classified2')}</div>}

Expand Down
44 changes: 5 additions & 39 deletions src/app/item-popup/WeaponCraftedInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
import { PressTip } from 'app/dim-ui/PressTip';
import { t } from 'app/i18next-t';
import { DimItem } from 'app/inventory/item-types';
import { getCraftedSocket } from 'app/inventory/store/crafted';
import { KillTrackerInfo } from 'app/item-popup/KillTracker';
import Objective, {
import {
ObjectiveDescription,
ObjectiveProgress,
ObjectiveProgressBar,
ObjectiveText,
} from 'app/progress/Objective';
import { percentWithSingleDecimal } from 'app/shell/formatters';
import { AppIcon, enhancedIcon, shapedIcon } from 'app/shell/icons';
import { filterMap } from 'app/utils/collections';
import { isKillTrackerSocket, plugToKillTracker } from 'app/utils/item-utils';
import * as styles from './WeaponCraftedInfo.m.scss';

/**
Expand Down Expand Up @@ -42,39 +37,10 @@ export function WeaponCraftedInfo({ item, className }: { item: DimItem; classNam
}

function CraftedDataMedallion({ item }: { item: DimItem }) {
const killTrackers = filterMap(
item.sockets?.allSockets.find((s) => isKillTrackerSocket(s))?.plugOptions ?? [],
(p) => plugToKillTracker(p),
);
const shapedDateObjective = getCraftedSocket(item)?.plugged?.plugObjectives.find(
(o) => o.progress === item.craftedInfo?.craftedDate,
);

return (
<PressTip
tooltip={
<>
{shapedDateObjective && (
<>
<Objective objective={shapedDateObjective} />
<hr />
</>
)}
{killTrackers.map((kt) => (
<KillTrackerInfo
key={kt?.trackerDef.hash}
tracker={kt}
showTextLabel
className="masterwork-progress"
/>
))}
</>
}
>
<AppIcon
className={styles.patternIcon}
icon={item.crafted === 'enhanced' ? enhancedIcon : shapedIcon}
/>
</PressTip>
<AppIcon
className={styles.patternIcon}
icon={item.crafted === 'enhanced' ? enhancedIcon : shapedIcon}
/>
);
}
7 changes: 4 additions & 3 deletions src/app/organizer/Columns.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ import { Comparator, compareBy, primitiveComparator } from 'app/utils/comparator
import {
getArmor3StatFocus,
getArmor3TuningStat,
getItemCurrentKillTrackerInfo,
getItemDamageShortName,
getItemKillTrackerInfo,
getItemYear,
getMasterworkStatNames,
getSpecialtySocketMetadata,
Expand Down Expand Up @@ -841,11 +841,12 @@ export function getColumns(
id: 'killTracker',
header: t('Organizer.Columns.KillTracker'),
value: (item) => {
const killTrackerInfo = getItemKillTrackerInfo(item);
const killTrackerInfo = getItemCurrentKillTrackerInfo(item);
return killTrackerInfo?.count;
},
cell: (_val, item) => {
const killTrackerInfo = getItemKillTrackerInfo(item);
const killTrackerInfo = getItemCurrentKillTrackerInfo(item);
// TODO add additional kill trackers to display if present
return (
killTrackerInfo && (
<KillTrackerInfo tracker={killTrackerInfo} className={styles.locationCell} />
Expand Down
4 changes: 2 additions & 2 deletions src/app/search/items/search-filters/range-numeric.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { tl } from 'app/i18next-t';
import { getItemKillTrackerInfo, getItemYear } from 'app/utils/item-utils';
import { getItemCurrentKillTrackerInfo, getItemYear } from 'app/utils/item-utils';
import { ItemFilterDefinition } from '../item-filter-types';

const simpleRangeFilters: ItemFilterDefinition[] = [
Expand Down Expand Up @@ -41,7 +41,7 @@ const simpleRangeFilters: ItemFilterDefinition[] = [
filter:
({ filterValue, compare }) =>
(item) => {
const killTrackerInfo = getItemKillTrackerInfo(item);
const killTrackerInfo = getItemCurrentKillTrackerInfo(item);
return Boolean(
killTrackerInfo &&
(!filterValue.length || filterValue === killTrackerInfo.type) &&
Expand Down
9 changes: 7 additions & 2 deletions src/app/utils/item-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {
PlugCategoryHashes,
StatHashes,
} from 'data/d2/generated-enums';
import { objectifyArray } from './collections';
import { filterMap, objectifyArray } from './collections';
import { getArmor3TuningSocket } from './socket-utils';

// damage is a mess!
Expand Down Expand Up @@ -215,9 +215,14 @@ export function plugToKillTracker(killTrackerPlug: DimPlug) {
}

/** returns an item's kill tracker info */
export const getItemKillTrackerInfo = (item: DimItem): KillTracker | null | undefined =>
export const getItemCurrentKillTrackerInfo = (item: DimItem): KillTracker | null | undefined =>
getSocketKillTrackerInfo(getKillTrackerSocket(item));

export const getItemKillTrackers = (item: DimItem): KillTracker[] =>
filterMap(item.sockets?.allSockets.find((s) => isKillTrackerSocket(s))?.plugOptions ?? [], (p) =>
plugToKillTracker(p),
);

const d1YearSourceHashes = {
// tTK Variks CoE FoTL Kings Fall
year2: [2659839637, 512830513, 1537575125, 3475869915, 1662673928],
Expand Down