UNPKG

@jeremyckahn/farmhand

Version:
87 lines (70 loc) 2.22 kB
// Must be invoked with babel: https://stackoverflow.com/a/51532127/470685 import markdownTable from 'markdown-table' import { levels } from '../data/levels.js' import { itemsMap } from '../data/maps.js' import { moneyString } from '../utils/moneyString.js' const getDaysToMature = (seedItem: farmhand.item) => { return seedItem.cropTimeline ? seedItem.cropTimeline.reduce((days: number, acc: number) => days + acc, 0) : 0 } function getCropImage( seedItem: farmhand.item, cropItem: farmhand.item | farmhand.cropVariety ) { if (Array.isArray(seedItem.growsInto)) { return `![${ cropItem.name }](https://raw.githubusercontent.com/jeremyckahn/farmhand/main/src/img/items/${(cropItem as any) .imageId || cropItem.id}.png)` } else { return `![${cropItem.name}](https://raw.githubusercontent.com/jeremyckahn/farmhand/main/src/img/items/${cropItem.id}.png)` } } function getSeedImage(seedItem: farmhand.item) { return `![${seedItem.name}](https://raw.githubusercontent.com/jeremyckahn/farmhand/main/src/img/items/${seedItem.id}.png)` } const headers = [ 'Crop', 'Seed', 'Unlocked at level', 'Base value', 'Days to mature', 'Tier', ] const rows: (string | number)[][] = [] const getCropRow = ( level: number, seedItem: farmhand.item, cropItem: farmhand.item ) => { return [ `${getCropImage(seedItem, cropItem)} ${cropItem.name}`, `${getSeedImage(seedItem)} ${seedItem.name}`, level, moneyString(seedItem.value), getDaysToMature(seedItem), seedItem.tier ?? '', ] } for (const level of levels) { const { id, unlocksShopItem } = level if (unlocksShopItem) { const item = itemsMap[unlocksShopItem] const { growsInto } = item if (growsInto) { const seedItem = item if (Array.isArray(growsInto)) { for (const cropItemId of growsInto) { const cropItem = itemsMap[cropItemId] rows.push(getCropRow(id!, seedItem!, cropItem!)) } } else { const cropItem = itemsMap[growsInto] rows.push(getCropRow(id!, seedItem!, cropItem!)) } } } } const table = markdownTable([headers, ...rows.map(row => row.map(String))]) console.log(table)