68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# GEMINI.md - Context & Instructions for "Super Mentor" (最强导师)
|
|
|
|
## 1. Project Overview
|
|
|
|
**Project Name:** Super Mentor (最强导师 / Supervisor Simulator)
|
|
**Type:** Simulation / Strategy / Roguelite Game
|
|
**Engine:** Godot 4.x (C# / .NET)
|
|
**Platform:** Windows (Win32), likely cross-platform capable.
|
|
|
|
**Core Concept:**
|
|
A "survival horror" simulation of academic life. Players manage a lab, recruit students, publish papers, secure funding, and navigate academic politics ("publish or perish").
|
|
|
|
## 2. Architecture & Directory Structure
|
|
|
|
### 2.1 Game Engine (Godot/C#)
|
|
* **Root:** Contains `project.godot`, `.sln`, `.csproj`.
|
|
* **`scripts/`**: The core C# source code.
|
|
* `Core/`: Game systems (TurnSystem, TaskSystem, EconomySystem, SynergySystem) and Interfaces.
|
|
* `Models/`: Data models (StudentModel, TaskModel, etc.) and Definitions.
|
|
* `[Node classes]`: `Player.cs`, `Student.cs` (Godot Node behaviors).
|
|
* **`resources/definitions/`**: Data-driven design files.
|
|
* `.json`: Archetypes, Roles, Traits.
|
|
* `.tres`: Discipline specific resources (Godot Text Resource).
|
|
* **`scenes/`**: Godot `.tscn` scene files.
|
|
* **`docs/`**: Detailed game design documents (GDD).
|
|
|
|
### 2.2 Tooling: Numerical Design & Balancing System (NDBS)
|
|
Located in `tools/ndbs/`, this is a web-based tool for designers to edit game data and write scripts.
|
|
* **Backend:** Python 3.14 (FastAPI), managed by `uv`.
|
|
* **Frontend:** Vue.js (Vite, Naive UI/Element Plus).
|
|
* **Spec:** `specs/numerical_design_system.md`.
|
|
|
|
## 3. Building & Development
|
|
|
|
### 3.1 Game (Godot)
|
|
* **Prerequisites:** Godot Engine (Mono version), .NET SDK.
|
|
* **Build:** Standard Godot build process or via IDE (Visual Studio / JetBrains Rider / VS Code).
|
|
* **Run:** Open `project.godot` in Godot Editor or run via CLI.
|
|
|
|
### 3.2 NDBS Tool (`tools/ndbs`)
|
|
* **Backend (`tools/ndbs/server`):**
|
|
* Manager: `uv`
|
|
* Run: `uv run main.py` (or `uvicorn main:app --reload`)
|
|
* **Frontend (`tools/ndbs/client`):**
|
|
* Manager: `npm` / `yarn`
|
|
* Build: `npm run build` (Output consumed by Python server).
|
|
|
|
## 4. Key Conventions
|
|
|
|
### 4.1 C# / Godot
|
|
* **Systems Pattern:** Core logic is decoupled from Godot Nodes where possible, residing in `scripts/Core` implementing `IGameSystem`.
|
|
* **Rule System:** Game logic "rules" (Buffs/Debuffs) are referenced by string IDs (`RuleIds`) and executed via a `RuleManager` (using Reflection).
|
|
* **Data Driven:** Heavy reliance on JSON/TRES definitions for content.
|
|
|
|
### 4.2 Code Style
|
|
* **C#:** Standard .NET conventions (PascalCase for public, camelCase for private/locals).
|
|
* **Python:** Type hints required (Python 3.14+). Pydantic for data validation.
|
|
* **Frontend:** Vue Composition API (`<script setup lang="ts">`).
|
|
|
|
## 5. Current Task Context (As of Jan 2026)
|
|
The project is actively implementing the **NDBS Tool** defined in `specs/numerical_design_system.md`.
|
|
**Goal:** Create a unified service where a Python backend serves a Vue frontend to allow editing of `resources/definitions` and generation of `scripts/Rules/Generated/*.cs` files.
|
|
|
|
**Immediate Next Steps:**
|
|
1. Initialize the Python backend using `uv`.
|
|
2. Set up the Vue frontend.
|
|
3. Implement the File System API for JSON/TRES handling.
|