No craftable items found
} - {craftableItems - .filter(item => - item.name.toLowerCase().includes(craftFilter.toLowerCase()) && - (craftCategoryFilter === 'all' || item.category === craftCategoryFilter) - ) - .map((item: any) => ( -{item.description}
} - - {/* Level requirement */} - {item.craft_level && item.craft_level > 1 && ( -๐ง Required Tools:
- {item.tools.map((tool: any, i: number) => ( -๐ฆ Materials:
- {item.materials.map((mat: any, i: number) => ( -No repairable items found
} - {repairableItems - .filter(item => item.name.toLowerCase().includes(repairFilter.toLowerCase())) - .map((item: any, idx: number) => ( -โ At full durability
- )} - - {item.needs_repair && ( - <> - {/* Tool requirements */} - {item.tools && item.tools.length > 0 && ( -๐ง Required Tools:
- {item.tools.map((tool: any, i: number) => ( -Restores {item.repair_percentage}% durability
- {item.materials.map((mat: any, i: number) => ( -No uncraftable items found
} - {uncraftableItems - .filter((item: any) => item.name.toLowerCase().includes(uncraftFilter.toLowerCase())) - .map((item: any, idx: number) => { - // Calculate adjusted yield based on durability - const durabilityRatio = item.unique_item_data - ? item.unique_item_data.durability_percent / 100 - : 1.0 - const adjustedYield = item.base_yield.map((mat: any) => ({ - ...mat, - adjusted_quantity: Math.floor(mat.quantity * durabilityRatio) - })) - - return ( -โป๏ธ Expected yield:
- {adjustedYield.map((mat: any, i: number) => ( -- * Subject to {Math.round((item.loss_chance || 0.3) * 100)}% random loss per material -
- )} -{location.description}
-No items
- ) : ( - Object.entries( - playerState.inventory - .filter((item: any) => !item.is_equipped) - .reduce((acc: any, item: any) => { - const category = item.type || 'misc' - if (!acc[category]) acc[category] = [] - acc[category].push(item) - return acc - }, {}) - ).sort(([catA], [catB]) => catA.localeCompare(catB)) - .map(([category, items]: [string, any]) => { - const isCollapsed = collapsedCategories.has(category) - const sortedItems = (items as any[]).sort((a, b) => a.name.localeCompare(b.name)) - - return ( -{selectedItem.description}
- )} -Your character has been defeated in combat.
-All your items have been placed in a corpse at your death location.
-You can retrieve them with another character before they decay (24 hours).
- -