UNPKG

@jeremyckahn/farmhand

Version:
38 lines (30 loc) 942 B
import { moneyTotal } from '../../utils/moneyTotal.js' import { nullArray } from '../../utils/nullArray.js' import { EXPERIENCE_VALUES, PURCHASEABLE_FIELD_SIZES } from '../../constants.js' import { addExperience } from './addExperience.js' export const purchaseField = ( state: farmhand.state, fieldId: number ): farmhand.state => { const { field, money, purchasedField } = state if (purchasedField >= fieldId) { return state } state = addExperience(state, EXPERIENCE_VALUES.FIELD_EXPANDED) const fieldSize = PURCHASEABLE_FIELD_SIZES.get(fieldId) if (!fieldSize) { return state } const { columns, price, rows } = fieldSize return { ...state, purchasedField: fieldId, field: nullArray(rows).map((_, rowIndex) => nullArray(columns).map( (__, columnIdx) => (field[rowIndex] && field[rowIndex][columnIdx]) || null ) ), money: moneyTotal(money, -price), } }