74 lines
1.2 KiB
TypeScript
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
|
|
}
|
|
}
|