mirror of
https://github.com/ceratic/project_vollidioten_website.git
synced 2026-05-14 00:16:47 +02:00
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.
This commit is contained in:
77
types.ts
Normal file
77
types.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user