Files
bozoclicker/src/types.ts
2025-08-04 00:10:03 +05:30

51 lines
1.4 KiB
TypeScript

export interface GameState {
totalClicks: number;
users: Record<string, { name: string; clicks: number; lastSeen: number; bonusMultiplier: number }>; // Added bonusMultiplier
upgrades: Record<string, { owned: number; cost: number }>;
milestones: Record<string, boolean>;
clickMultiplier: number;
autoClickRate: number;
currentBackground: string;
currentClickImage: string;
}
export interface Upgrade {
id: string;
name: string;
description: string;
baseCost: number;
multiplier: number;
clickBonus?: number;
autoClickRate?: number;
clickMultiplierBonus?: number; // New: for compounding click boosts from mascots
icon: string;
mascotTiers?: MascotTier[]; // New: for defining mascot tiers for friendBoost
oneTime?: boolean; // New: Indicates if the upgrade is a one-time purchase
newsTitles?: string[]; // New: Array of news titles for the news upgrade
}
export interface MascotTier {
level: number;
imageSrc: string;
multiplier: number;
rarity: number; // 0 to 1, 1 being most common
}
export interface ClickableMascot { // Renamed from Shoominion
id: string;
x: number;
y: number;
multiplierBonus: number; // The multiplier this specific mascot provides
imageSrc: string; // New: Source for the mascot image
}
export interface Milestone {
threshold: number;
id: string;
name: string;
description: string;
background: string;
image: string;
reward: string;
}