improve the bill of production

This commit is contained in:
2026-03-05 02:48:33 -05:00
parent 4214eeb659
commit d8386dccf4
8 changed files with 279 additions and 105 deletions

View File

@@ -4,7 +4,7 @@ import type { CraftingRecipe, ProfitResult, IngredientBreakdown, SortState } fro
import type { FilterState, VariantType } from '../types/filters'
import { useAlbionPrices } from './useAlbionPrices'
import { formatItemId } from '../utils/formatting'
import { cityRrr, isRrrExempt } from '../data/cityBonuses'
import { localProductionBonus, rrrFromBonus, isRrrExempt, FOCUS_LPB } from '../data/cityBonuses'
function variantOf(outputItemId: string): VariantType {
const id = outputItemId.replace(/@\d$/, '') // strip enchantment suffix
@@ -84,15 +84,20 @@ export function useCraftingProfit(
}
const materialCost = basicCost + artefactCost
const rrr = cityRrr(city, recipe.outputItemId)
const lpb = localProductionBonus(city, recipe.outputItemId)
const rrr = rrrFromBonus(lpb)
const rrrFocus = rrrFromBonus(lpb + FOCUS_LPB)
const effectiveMaterialCost = basicCost * (1 - rrr / 100) + artefactCost
const effectiveMaterialCostFocus = basicCost * (1 - rrrFocus / 100) + artefactCost
const priceAgeMs = missingPrices ? null : (oldestDate ? Date.now() - new Date(oldestDate).getTime() : null)
results.push({
recipe,
materialCost,
effectiveMaterialCost,
effectiveMaterialCostFocus,
rrr,
rrrFocus,
priceAgeMs,
missingPrices,
ingredientBreakdown,