import { World } from '../world' export function productionTick(w: World): void { const fam = w.state.family const inv = fam.inventory const parts: string[] = [] const lvl = (b: string) => fam.buildings[b] ?? 0 const lingtian = lvl('lingtian') const yaoyuan = lvl('yaoyuan') const lingkuang = lvl('lingkuang') const fangshi = lvl('fangshi') const lingshou = lvl('lingshou') if (lingtian > 0) { const v = 10 * lingtian inv.lingcao = (inv.lingcao ?? 0) + v parts.push(`灵田+${v}灵草`) } if (yaoyuan > 0) { const v = 5 * yaoyuan inv.lingcao = (inv.lingcao ?? 0) + v parts.push(`药园+${v}药草`) if (yaoyuan >= 3) { inv.beastcore = (inv.beastcore ?? 0) + 1 parts.push('药园+1兽核') } } if (lingkuang > 0) { const v = 8 * lingkuang inv.lingkuang = (inv.lingkuang ?? 0) + v parts.push(`灵矿+${v}灵矿`) } if (fangshi > 0) { const v = 55 * fangshi fam.stones += v parts.push(`坊市+${v}灵石`) } if (lingshou > 0 && w.rng.chance(0.35)) { inv.beastcore = (inv.beastcore ?? 0) + 1 parts.push('灵兽园+1兽核') } void parts if (w.state.month % 3 === 0) { const drift = w.rng.between(-0.04, 0.04) const cur = typeof fam.flag['priceMult'] === 'number' ? (fam.flag['priceMult'] as number) : 1 fam.flag['priceMult'] = Math.max(0.78, Math.min(1.25, cur + drift)) } }