Files
project_vollidioten_website/types.ts
Lars Behrends d1b797a320 feat: Initialize project with Vite, React, and TypeScript
Sets up the foundational structure for the Obsidian | RP Plattform. This includes configuring Vite as the build tool, integrating React for the UI, and establishing TypeScript for type safety. Also includes initial styling and placeholder data to define the application's core interfaces.
2025-12-28 02:15:09 +01:00

77 lines
1.8 KiB
TypeScript

export interface Item {
id: string;
name: string;
count: number;
type: 'tool' | 'block' | 'consumable' | 'misc';
rarity?: 'common' | 'uncommon' | 'rare' | 'epic';
nbtSummary?: string;
}
export interface PlayerStats {
playtimeHours: number;
level: number;
role: string;
organizationId?: string;
}
export interface Player {
uuid: string;
username: string;
skinUrl?: string; // Placeholder in a real app
inventory: (Item | null)[];
stats: PlayerStats;
storyMarkdown: string;
tags: string[];
isOnline: boolean;
}
export interface CityStats {
taxRate: number;
biome: string;
defenseRating: number; // 0-10
government: string;
specialty: string;
}
export interface Organization {
id: string;
name: string;
type: 'City' | 'Guild' | 'Company';
description: string;
memberCount: number;
status: 'active' | 'archived';
bannerUrl?: string;
gallery?: string[];
establishedYear?: string;
mayor?: string;
cityStats?: CityStats;
}
export interface ShopItem {
id: string;
name: string;
description?: string;
price: number;
currency: 'Gold' | 'Credits' | 'Barter' | 'Diamonds';
stock: number;
type: 'item' | 'service' | 'blueprint';
imageUrl?: string;
materialsRequired?: string; // e.g. "Customer provides Stone"
}
export interface Project {
id: string;
title: string;
description: string;
category: 'Enterprise' | 'Service' | 'Story Arc' | 'Faction' | 'Black Market';
status: 'active' | 'recruiting' | 'private' | 'completed';
progress: number; // For story arcs completion or company reputation
owner: string;
employees: string[];
hiring: boolean;
foundedDate?: string;
associatedOrgId?: string; // Links this project to a city or guild
shopCatalog?: ShopItem[];
gallery?: string[];
bannerUrl?: string;
}