UNPKG

sandhill-road

Version:

A narrative-driven startup simulation game where you guide a founder from garage to exit

69 lines (68 loc) 2.02 kB
export type FounderStats = { health: number; morale: number; hustle: number; tech: number; luck: number; stamina: number; maxStamina: number; staminaRegen: number; personalCash: number; }; export type CompanyStats = { runway: number; burnRate: number; users: number; productProgress: number; companyCash: number; revenue: number; investorTrust: number; }; export declare enum GameStage { Garage = "Garage", DemoDay = "Demo Day", Fundraising = "Fundraising", PMF = "PMF", Scaling = "Scaling", Crisis = "Crisis", Exit = "Exit" } export type StageProgress = { currentStage: GameStage; week: number; completedEvents: string[]; availableEvents: string[]; completedExclusiveGroups: string[]; }; export type CompanyFlags = { hasCoFounder: boolean; coFounderEquity: number; inAccelerator: boolean; acceleratorName?: string; hasRaisedSeed: boolean; hasRaisedSeriesA: boolean; hasPMF: boolean; hasFirstEmployee: boolean; hasOffice: boolean; hasBoard: boolean; majorCrisisSurvived: boolean; exitOffersReceived: number; }; export type GameState = { founderName: string; companyName: string; founderStats: FounderStats; companyStats: CompanyStats; stageProgress: StageProgress; companyFlags: CompanyFlags; gameOver: boolean; gameOverReason?: string; }; export declare const createInitialGameState: (founderName: string, companyName: string, initialPersonalCash?: number) => GameState; export declare const initGame: (founderName: string, companyName: string, initialCash?: number) => GameState; export declare const getGameState: () => GameState; export declare const updateGameState: (updater: (state: GameState) => GameState) => GameState; export declare const saveGame: () => void; export declare const loadGame: () => GameState | null; export declare const endGame: (reason: string) => void; export declare const advanceWeek: () => void;