2021-08-20 20:47:02 -05:00
|
|
|
enum ResourceType {
|
2021-09-05 14:45:37 -05:00
|
|
|
religion = 'religion',
|
|
|
|
job = 'job',
|
|
|
|
consumable = 'consumable',
|
|
|
|
infrastructure = 'infrastructure',
|
|
|
|
research = 'research',
|
|
|
|
passive = 'passive',
|
2021-08-20 20:47:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
interface IResource {
|
2021-08-22 11:51:16 -05:00
|
|
|
readonly resourceType: ResourceType;
|
2021-09-05 14:45:37 -05:00
|
|
|
readonly name: string;
|
|
|
|
readonly description: string;
|
2021-08-22 11:51:16 -05:00
|
|
|
readonly valueInWholeNumbers: boolean;
|
2021-09-05 14:45:37 -05:00
|
|
|
readonly clickText: string | null;
|
|
|
|
readonly clickDescription: string | null;
|
2021-09-05 08:04:02 -05:00
|
|
|
// readonly altClickText?: string;
|
|
|
|
// readonly altClickDescription?: string;
|
2021-08-22 11:51:16 -05:00
|
|
|
readonly value: number;
|
2021-09-05 14:45:37 -05:00
|
|
|
readonly cost: { [key: string]: number } | null;
|
2021-08-21 12:45:58 -05:00
|
|
|
|
2021-09-05 14:45:37 -05:00
|
|
|
max: ((state: GameState) => number) | null;
|
|
|
|
inc: ((state: GameState) => number) | null;
|
|
|
|
clickAction: ((state: GameState) => void) | null;
|
2021-09-05 08:04:02 -05:00
|
|
|
// altClickAction (state: GameState): void;
|
2021-09-05 14:45:37 -05:00
|
|
|
addValue: (amount: number, state: GameState) => void;
|
|
|
|
isUnlocked: (state: GameState) => boolean;
|
|
|
|
advanceAction: ((time: number, state: GameState) => void) | null;
|
2021-08-20 20:47:02 -05:00
|
|
|
}
|