DionysianIdle/src/types/index.ts
2025-05-24 15:50:55 -05:00

74 lines
1.2 KiB
TypeScript

export interface Crop {
id: string
name: string
growthTicks: number
waterPerTick: number
yield: number
yieldType: string
fertilityDepletion: number
}
export interface CropDefinitions {
[key: string]: Crop
}
export interface PlotState {
intended?: string
current?: {
cropId: string
progress: number
mature: boolean
}
moisture: number
fertility: number
}
export interface InventoryItem {
id: string
count: number
}
export type FieldTool = 'mark' | 'plant' | 'water' | 'harvest' | 'inspect'
export interface ConsoleMessage {
id: string
text: string
timestamp: number
}
export interface UpgradeCost {
itemId: string
amount: number
}
export interface Upgrade {
id: string
name: string
description: string
cost: UpgradeCost[]
}
export interface GameState {
cash: number
inventory: Record<string, number>
fieldSize: number
maxFieldSize: number
fieldUpgradeCosts: number[]
plots: PlotState[][]
gameSpeed: number
actionCooldown: number
consoleMessages: ConsoleMessage[]
purchasedUpgrades: string[]
piety: number
}
export interface MarketTransaction {
itemId: string
amount: number
type: 'buy' | 'sell'
position: {
x: number
y: number
}
}