51 lines
825 B
TypeScript
51 lines
825 B
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 interface GameState {
|
|
cash: number
|
|
inventory: Record<string, number>
|
|
fieldSize: number
|
|
maxFieldSize: number
|
|
fieldUpgradeCosts: number[]
|
|
plots: PlotState[][]
|
|
gameSpeed: number
|
|
actionCooldown: number
|
|
}
|
|
|
|
export interface MarketTransaction {
|
|
itemId: string
|
|
amount: number
|
|
type: 'buy' | 'sell'
|
|
position: {
|
|
x: number
|
|
y: number
|
|
}
|
|
}
|