UNPKG

@jeremyckahn/farmhand

Version:
43 lines (35 loc) 1.19 kB
import { randomNumberService } from '../../common/services/randomNumber.js' import { itemsMap } from '../../data/maps.js' import { wineService } from '../../services/wine.js' import { KEG_SPOILED_MESSAGE } from '../../templates.js' import { getKegSpoilageRate } from '../../utils/getKegSpoilageRate.js' import { removeKegFromCellar } from './removeKegFromCellar.js' export const processCellarSpoilage = ( state: farmhand.state ): farmhand.state => { const { cellarInventory } = state const newCellarInventory = [...cellarInventory] for (let i = newCellarInventory.length - 1; i > -1; i--) { const keg = newCellarInventory[i] const kegItem = itemsMap[keg.itemId] const spoilageRate = getKegSpoilageRate(keg) if ( !wineService.isWineRecipe(kegItem) && randomNumberService.isRandomNumberLessThan(spoilageRate) ) { state = removeKegFromCellar(state, keg.id) state = { ...state, newDayNotifications: [ ...state.newDayNotifications, { message: KEG_SPOILED_MESSAGE`${keg}`, severity: 'error', }, ], } } } state = { ...state } return state }