Projektdokumentation vollständig aktualisiert
- Klassen-System, Level-System, Equipment-System dokumentiert - GCD/Haste-Formel, Schadensberechnung, DPS erklärt - Inventar-System, Loot-System, Gold-Anzeige dokumentiert - Gegner-Stats, KI-Verhalten, Respawn beschrieben - Geplante Features und Projektstruktur aktualisiert Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b01059de50
commit
0d371c9f68
1 changed files with 255 additions and 173 deletions
428
PROJEKTDOKU.md
428
PROJEKTDOKU.md
|
|
@ -26,6 +26,8 @@ Gegner bekämpfen und ihre Charaktere mit verschiedenen Klassen und Ausrüstunge
|
||||||
| 1 | Autoattack manuell starten |
|
| 1 | Autoattack manuell starten |
|
||||||
| 2 | Heavy Strike (starke Attacke) |
|
| 2 | Heavy Strike (starke Attacke) |
|
||||||
| 3 – 9 | Aktionsleiste Slots (noch frei) |
|
| 3 – 9 | Aktionsleiste Slots (noch frei) |
|
||||||
|
| C | Charakter-Panel (Stats + Equipment) |
|
||||||
|
| I | Inventar öffnen/schließen |
|
||||||
| Leertaste | Springen |
|
| Leertaste | Springen |
|
||||||
| T | (Test) 10 Schaden am Spieler |
|
| T | (Test) 10 Schaden am Spieler |
|
||||||
|
|
||||||
|
|
@ -34,7 +36,7 @@ Gegner bekämpfen und ihre Charaktere mit verschiedenen Klassen und Ausrüstunge
|
||||||
## Szenen-Struktur
|
## Szenen-Struktur
|
||||||
|
|
||||||
### world.tscn
|
### world.tscn
|
||||||
Hauptszene der Spielwelt.
|
Hauptszene der Spielwelt. Zeigt bei Start das Klassenauswahl-Menü.
|
||||||
```
|
```
|
||||||
World (Node3D)
|
World (Node3D)
|
||||||
├── Player (player.tscn)
|
├── Player (player.tscn)
|
||||||
|
|
@ -47,18 +49,21 @@ World (Node3D)
|
||||||
```
|
```
|
||||||
|
|
||||||
### player.tscn
|
### player.tscn
|
||||||
Der Spielercharakter.
|
Der Spielercharakter mit allen UI-Panels.
|
||||||
```
|
```
|
||||||
Player (CharacterBody3D)
|
Player (CharacterBody3D)
|
||||||
├── [Kenney GLB Modell]
|
├── [Kenney GLB Modell]
|
||||||
├── CollisionShape3D
|
├── CollisionShape3D
|
||||||
├── CameraPivot (Node3D)
|
├── CameraPivot (Node3D)
|
||||||
│ └── Camera3D
|
│ └── Camera3D
|
||||||
└── HUD (hud.tscn)
|
├── HUD (hud.tscn)
|
||||||
|
├── CharacterPanel (character_panel.tscn)
|
||||||
|
├── InventoryPanel (inventory_panel.tscn)
|
||||||
|
└── LootWindow (loot_window.tscn)
|
||||||
```
|
```
|
||||||
|
|
||||||
### enemy.tscn
|
### enemy.tscn
|
||||||
Ein Gegner.
|
Ein Gegner mit Level-basiertem Stats-System.
|
||||||
```
|
```
|
||||||
Enemy (CharacterBody3D)
|
Enemy (CharacterBody3D)
|
||||||
├── [Kenney GLB Modell]
|
├── [Kenney GLB Modell]
|
||||||
|
|
@ -69,213 +74,290 @@ Enemy (CharacterBody3D)
|
||||||
└── HealthLabel (Label3D)
|
└── HealthLabel (Label3D)
|
||||||
```
|
```
|
||||||
|
|
||||||
### hud.tscn
|
|
||||||
Die Spieler-UI.
|
|
||||||
```
|
|
||||||
HUD (CanvasLayer)
|
|
||||||
└── Control
|
|
||||||
├── HealthBar (ProgressBar)
|
|
||||||
│ └── HealthLabel (Label)
|
|
||||||
└── ActionBar (HBoxContainer)
|
|
||||||
└── A1 – A9 (Panel)
|
|
||||||
└── Label (1–9)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Scripts
|
## Klassen-System
|
||||||
|
|
||||||
### player.gd
|
### CharacterClass (character_class.gd)
|
||||||
Steuert den Spielercharakter.
|
Resource-Klasse die eine spielbare Klasse definiert.
|
||||||
|
|
||||||
**Variablen:**
|
|
||||||
| Variable | Typ | Beschreibung |
|
|
||||||
|---|---|---|
|
|
||||||
| SPEED | const float | Bewegungsgeschwindigkeit (5.0) |
|
|
||||||
| JUMP_VELOCITY | const float | Sprungkraft (4.5) |
|
|
||||||
| GRAVITY | const float | Schwerkraft (9.8) |
|
|
||||||
| max_hp | int | Maximale HP (100) |
|
|
||||||
| current_hp | int | Aktuelle HP |
|
|
||||||
| can_attack | bool | Angriff möglich (Cooldown-Flag) |
|
|
||||||
| target | Node | Aktuell markierter Gegner |
|
|
||||||
| equipped_weapon | Weapon | Ausgerüstete Waffe (null = unbewaffnet) |
|
|
||||||
|
|
||||||
**Funktionen:**
|
|
||||||
| Funktion | Beschreibung |
|
|
||||||
|---|---|
|
|
||||||
| take_damage(amount) | Schaden abziehen, HP-Leiste aktualisieren |
|
|
||||||
| heal(amount) | HP heilen |
|
|
||||||
| die() | Spieler gestorben |
|
|
||||||
| get_attack_damage() | Schaden berechnen (Waffe oder 1) |
|
|
||||||
| get_attack_range() | Reichweite (Waffe oder 1.5) |
|
|
||||||
| get_attack_cooldown() | Cooldown (Waffe oder 1.5s) |
|
|
||||||
| set_target(target, start_attack) | Ziel markieren, optional Autoattack starten |
|
|
||||||
| autoattack() | Wiederholt angreifen solange Ziel gültig |
|
|
||||||
| _try_select_target(start_attack) | Raycast von Kamera auf Mausposition |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### enemy.gd
|
|
||||||
Steuert den Gegner.
|
|
||||||
|
|
||||||
**Variablen:**
|
|
||||||
| Variable | Typ | Beschreibung |
|
|
||||||
|---|---|---|
|
|
||||||
| SPEED | const float | Bewegungsgeschwindigkeit (3.0) |
|
|
||||||
| ATTACK_DAMAGE | const int | Schaden pro Angriff (5) |
|
|
||||||
| ATTACK_RANGE | const float | Angriffsreichweite (1.5) |
|
|
||||||
| ATTACK_COOLDOWN | const float | Angriffspause (2.0s) |
|
|
||||||
| max_hp | int | Maximale HP (50) |
|
|
||||||
| target | Node | Ziel des Gegners (Spieler) |
|
|
||||||
|
|
||||||
**Funktionen:**
|
|
||||||
| Funktion | Beschreibung |
|
|
||||||
|---|---|
|
|
||||||
| take_damage(amount) | Schaden nehmen, bei 0 HP sterben |
|
|
||||||
| die() | Gegner aus Szene entfernen |
|
|
||||||
| show_health() | HP-Label einblenden |
|
|
||||||
| hide_health() | HP-Label ausblenden |
|
|
||||||
| _attack() | Angriff mit Cooldown |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### camera_pivot.gd
|
|
||||||
Steuert die Third-Person-Kamera.
|
|
||||||
|
|
||||||
**Einstellbare Parameter (Export):**
|
|
||||||
| Parameter | Standard | Beschreibung |
|
|
||||||
|---|---|---|
|
|
||||||
| sensitivity | 0.3 | Mausempfindlichkeit |
|
|
||||||
| min_pitch | -40° | Maximale Neigung nach unten |
|
|
||||||
| max_pitch | 20° | Maximale Neigung nach oben |
|
|
||||||
| min_zoom | 5.0 | Minimale Kameraentfernung |
|
|
||||||
| max_zoom | 20.0 | Maximale Kameraentfernung |
|
|
||||||
| zoom_speed | 1.0 | Zoom pro Mausrad-Schritt |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### hud.gd
|
|
||||||
Verwaltet die Spieler-UI.
|
|
||||||
|
|
||||||
**Funktionen:**
|
|
||||||
| Funktion | Beschreibung |
|
|
||||||
|---|---|
|
|
||||||
| update_health(current, max) | HP-Leiste und Text aktualisieren |
|
|
||||||
| set_active_slot(index) | Aktions-Slot 0.1s golden hervorheben |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Ressourcen-Klassen
|
|
||||||
|
|
||||||
### Weapon (resources/weapon.gd)
|
|
||||||
Definiert eine Waffe als Godot-Ressource (.tres).
|
|
||||||
|
|
||||||
| Property | Typ | Beschreibung |
|
| Property | Typ | Beschreibung |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| name | String | Waffenname |
|
| class_name_de | String | Deutscher Klassenname |
|
||||||
| weapon_type | WeaponType | UNARMED, SWORD, AXE, MACE, DAGGER, STAFF, BOW |
|
| main_stat | MainStat | STRENGTH, AGILITY oder INTELLIGENCE |
|
||||||
| min_damage | int | Minimaler Schaden |
|
| base_strength/agility/intelligence/stamina | int | Basis-Stats auf Level 1 |
|
||||||
| max_damage | int | Maximaler Schaden |
|
| strength/agility/intelligence/stamina_per_level | float | Stat-Zuwachs pro Level |
|
||||||
| attack_speed | float | Angriffsgeschwindigkeit (Cooldown) |
|
| unarmed_min_damage | int | Unbewaffneter Mindestschaden |
|
||||||
| range | float | Angriffsreichweite |
|
| unarmed_max_damage | int | Unbewaffneter Maximalschaden |
|
||||||
| icon | Texture2D | Icon für die Aktionsleiste |
|
| unarmed_attack_speed | float | Unbewaffnete Angriffsgeschwindigkeit |
|
||||||
|
|
||||||
### Attack (resources/attack.gd)
|
**Konstanten:**
|
||||||
Definiert einen Angriff — Schaden kommt von der ausgerüsteten Waffe.
|
- `HP_PER_STAMINA = 10` — HP pro Stamina-Punkt
|
||||||
|
- `DAMAGE_PER_MAIN_STAT = 0.5` — Zusatzschaden pro Main-Stat-Punkt
|
||||||
|
|
||||||
|
### Verfügbare Klassen (classes/)
|
||||||
|
|
||||||
|
| Klasse | Main-Stat | STR | AGI | INT | STA | Unbewaffnet |
|
||||||
|
|---|---|---|---|---|---|---|
|
||||||
|
| Krieger | Stärke | 15 | 8 | 5 | 12 | 2-4 Schaden, 1.8s |
|
||||||
|
| Schurke | Beweglichkeit | 8 | 15 | 7 | 10 | 1-3 Schaden, 1.5s |
|
||||||
|
| Magier | Intelligenz | 5 | 8 | 15 | 8 | 1-2 Schaden, 2.0s |
|
||||||
|
|
||||||
|
### Klassenauswahl (class_selection_menu.gd)
|
||||||
|
Wird bei Spielstart angezeigt. Spieler wählt eine Klasse, danach wird Startausrüstung angelegt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Level-System
|
||||||
|
|
||||||
|
- **XP-Kurve:** Level N benötigt `100 * N` XP (Level 2: 100, Level 3: 200, ...)
|
||||||
|
- **Stats pro Level:** Basierend auf Klassen-Zuwachsraten
|
||||||
|
- **HP bei Level-Up:** Werden vollständig aufgefüllt
|
||||||
|
- **Character Panel:** Aktualisiert sich automatisch bei Level-Up
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Equipment-System
|
||||||
|
|
||||||
|
### Equipment (equipment.gd)
|
||||||
|
Resource-Klasse für alle Ausrüstungsgegenstände.
|
||||||
|
|
||||||
|
**Slots:** HEAD, CHEST, HANDS, LEGS, FEET, WEAPON, OFFHAND
|
||||||
|
|
||||||
|
**Seltenheiten:**
|
||||||
|
| Seltenheit | Farbe |
|
||||||
|
|---|---|
|
||||||
|
| COMMON | Weiß |
|
||||||
|
| UNCOMMON | Grün |
|
||||||
|
| RARE | Blau |
|
||||||
|
| EPIC | Lila |
|
||||||
|
|
||||||
|
**Stats auf Equipment:**
|
||||||
|
| Property | Typ | Beschreibung |
|
||||||
|
|---|---|---|
|
||||||
|
| item_name | String | Name des Items |
|
||||||
|
| slot | Slot | Equipment-Slot |
|
||||||
|
| rarity | Rarity | Seltenheitsstufe |
|
||||||
|
| armor | int | Rüstungswert |
|
||||||
|
| strength/agility/intelligence/stamina | int | Stat-Boni |
|
||||||
|
| haste | float | Angriffsgeschwindigkeits-Bonus (0.1 = 10%) |
|
||||||
|
| min_damage / max_damage | int | Waffenschaden (nur Waffen) |
|
||||||
|
| attack_speed | float | Angriffsgeschwindigkeit (nur Waffen) |
|
||||||
|
| weapon_range | float | Reichweite (nur Waffen) |
|
||||||
|
|
||||||
|
### Vorhandene Equipment-Items (equipment/)
|
||||||
|
- **iron_sword.tres** — Eisenschwert (Waffe)
|
||||||
|
- **steel_sword.tres** — Stahlschwert (Waffe, besser)
|
||||||
|
- **leather_chest.tres** — Lederrüstung (Brust)
|
||||||
|
- **iron_helm.tres** — Eisenhelm (Kopf)
|
||||||
|
- **wooden_shield.tres** — Holzschild (Nebenhand)
|
||||||
|
|
||||||
|
### Character Panel (character_panel.gd, C-Taste)
|
||||||
|
Zeigt zwei Spalten:
|
||||||
|
- **Stats-Spalte:** Stärke, Beweglichkeit, Intelligenz, Ausdauer, Rüstung, HP
|
||||||
|
- **Equipment-Spalte:** Alle 7 Slots mit ausgerüsteten Items, Waffenschaden + DPS
|
||||||
|
|
||||||
|
Unbewaffnet: Zeigt klassenabhängige Schadenswerte.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Inventar-System
|
||||||
|
|
||||||
|
### Inventory (inventory.gd)
|
||||||
|
Resource-Klasse für das Spieler-Inventar.
|
||||||
|
|
||||||
|
- **MAX_SLOTS:** 20 Inventarplätze
|
||||||
|
- **Gold:** Währung, wird im HUD angezeigt
|
||||||
|
- **Signals:** `inventory_changed`, `gold_changed`
|
||||||
|
|
||||||
|
**Funktionen:**
|
||||||
|
| Funktion | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| add_item(item) | Item hinzufügen (false wenn voll) |
|
||||||
|
| remove_item(item) | Item entfernen |
|
||||||
|
| add_gold(amount) | Gold hinzufügen |
|
||||||
|
| spend_gold(amount) | Gold ausgeben (false wenn nicht genug) |
|
||||||
|
| is_full() | Prüfen ob Inventar voll |
|
||||||
|
|
||||||
|
### Inventory Panel (inventory_panel.gd, I-Taste)
|
||||||
|
- 5x4 Grid mit Item-Slots
|
||||||
|
- Gold-Anzeige im Header
|
||||||
|
- Items in Seltenheitsfarbe
|
||||||
|
- Tooltips mit vollständigen Item-Stats
|
||||||
|
- **Rechtsklick** auf Item: Direkt anlegen (tauscht mit aktuellem Equipment)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Loot-System
|
||||||
|
|
||||||
|
### LootTable (loot_table.gd)
|
||||||
|
Resource die mögliche Drops eines Gegners definiert.
|
||||||
|
|
||||||
| Property | Typ | Beschreibung |
|
| Property | Typ | Beschreibung |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| name | String | Angriffsname |
|
| min_gold | int | Minimaler Gold-Drop |
|
||||||
| damage_type | DamageType | PHYSICAL, FIRE, ICE, LIGHTNING, POISON |
|
| max_gold | int | Maximaler Gold-Drop |
|
||||||
| icon | Texture2D | Icon für die Aktionsleiste |
|
| possible_drops | Array[LootEntry] | Mögliche Item-Drops |
|
||||||
|
|
||||||
|
### LootEntry (loot_entry.gd)
|
||||||
|
Ein einzelner Drop-Eintrag.
|
||||||
|
|
||||||
|
| Property | Typ | Beschreibung |
|
||||||
|
|---|---|---|
|
||||||
|
| item | Equipment | Das droppbare Item |
|
||||||
|
| drop_chance | float | Wahrscheinlichkeit (0.0 - 1.0) |
|
||||||
|
|
||||||
|
### Vorhandene LootTables (loot_tables/)
|
||||||
|
- **goblin_loot.tres** — 2-8 Gold, Eisenschwert (15%), Lederrüstung (10%), Eisenhelm (10%)
|
||||||
|
- **skeleton_loot.tres** — 5-15 Gold, Stahlschwert (10%), Holzschild (12%), Eisenhelm (15%)
|
||||||
|
|
||||||
|
### LootWindow (loot_window.gd)
|
||||||
|
- Erscheint automatisch wenn ein Gegner stirbt
|
||||||
|
- Zeigt Gold und gedropte Items
|
||||||
|
- Einzelne Items per Klick aufheben
|
||||||
|
- "Alles aufheben" Button
|
||||||
|
- Gold skaliert mit Gegner-Level
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Kampfsystem
|
## Kampfsystem
|
||||||
|
|
||||||
### Autoattack
|
### Global Cooldown (GCD)
|
||||||
- Rechtsklick auf Gegner → Ziel markieren + Autoattack startet
|
Alle Aktionen (Autoattack + Skills) teilen sich einen GCD.
|
||||||
- Linksklick auf Gegner → nur Ziel markieren
|
|
||||||
- Autoattack läuft automatisch im Takt der Waffen-Angriffsgeschwindigkeit
|
**Formel:** `GCD = Waffen-Attackspeed / (1 + Haste)`
|
||||||
- Ohne Waffe: 1 Schaden, 1.5s Cooldown, 1.5 Reichweite
|
|
||||||
- Mit Waffe: Schaden = zufällig zwischen min/max, Speed und Range von der Waffe
|
Beispiel: Waffe mit 1.5s + 50% Haste → `1.5 / 1.5 = 1.0s`
|
||||||
|
|
||||||
|
### Schadensberechnung
|
||||||
|
1. **Basisschaden:** Zufällig zwischen Waffen min/max (oder unbewaffnet klassenabhängig)
|
||||||
|
2. **Stat-Bonus:** `Main-Stat * 0.5`
|
||||||
|
3. **Rüstungsreduktion (Nahkampf):** `Reduktion = Rüstung / (Rüstung + 50)`
|
||||||
|
4. **Level-Differenz:** `±10% pro Level, max ±50%`
|
||||||
|
5. **Mindestschaden:** Immer mindestens 1
|
||||||
|
|
||||||
|
### DPS-Berechnung
|
||||||
|
`DPS = (Durchschnittsschaden + Stat-Bonus) / GCD`
|
||||||
|
|
||||||
### Skills
|
### Skills
|
||||||
|
|
||||||
#### Autoattack (Taste 1)
|
#### Autoattack (Taste 1)
|
||||||
- **Schaden**: 1 (unbewaffnet) oder Waffenschaden
|
- **Schaden:** Waffenschaden oder klassenabhängig unbewaffnet + Main-Stat Bonus
|
||||||
- **Cooldown**: 1.5s (unbewaffnet) oder Waffengeschwindigkeit
|
- **Cooldown:** GCD (Waffen-Attackspeed / Haste)
|
||||||
- **Reichweite**: 1.5 (unbewaffnet) oder Waffenreichweite
|
- **Reichweite:** Waffen-Reichweite oder 3.0 (unbewaffnet)
|
||||||
- **Icon**: Faust mit grünem Kreispfeil
|
- Automatisch per Rechtsklick oder manuell per Taste 1
|
||||||
- Manuell per Taste 1 starten oder automatisch per Rechtsklick
|
|
||||||
|
|
||||||
#### Heavy Strike (Taste 2)
|
#### Heavy Strike (Taste 2)
|
||||||
- **Schaden**: 10-15 (zufällig)
|
- **Schaden:** 10-15 + Main-Stat Bonus
|
||||||
- **Cooldown**: 3 Sekunden
|
- **Cooldown:** 3 Sekunden (eigener Cooldown, löst auch GCD aus)
|
||||||
- **Reichweite**: 2.0
|
- **Reichweite:** 4.0
|
||||||
- **Icon**: Schwert mit roten Schlaglinien
|
- Aktiviert automatisch Autoattack danach
|
||||||
- Manuell aktivierbare starke Attacke für höheren Schaden
|
|
||||||
|
|
||||||
### UI & Icons
|
### UI & Icons
|
||||||
- Aktionsleiste zeigt Icons für Skills an
|
- Aktionsleiste mit 9 Slots (Taste 1-9)
|
||||||
- Icons werden dynamisch beim Spielstart geladen
|
- Icons werden beim Spielstart geladen
|
||||||
- Slot 1: Autoattack Icon (Faust)
|
- Cooldown-Anzeige: Dunkle Überlagerung + verbleibende Zeit
|
||||||
- Slot 2: Heavy Strike Icon (Schwert)
|
- Alle Slots per Maus klickbar
|
||||||
- Slots 3-9: Verfügbar für weitere Skills
|
|
||||||
- **Mausklick**: Alle Slots sind per Maus klickbar
|
|
||||||
- **Cooldown-Anzeige**: Dunkle Überlagerung mit verbleibender Zeit in Sekunden
|
|
||||||
|
|
||||||
### Schadenstypen (geplant)
|
---
|
||||||
- **PHYSICAL** – normaler Schaden
|
|
||||||
- **FIRE** – Feuerschaden (z.B. Magier)
|
## Gegner-System (enemy.gd)
|
||||||
- **ICE** – Eisschaden
|
|
||||||
- **LIGHTNING** – Blitzschaden
|
### Stats
|
||||||
- **POISON** – Giftschaden (Schaden über Zeit geplant)
|
Level-basiert mit automatischer Skalierung:
|
||||||
|
|
||||||
|
| Stat | Formel |
|
||||||
|
|---|---|
|
||||||
|
| Stärke | base_strength + (level-1) * 2 |
|
||||||
|
| Ausdauer | base_stamina + (level-1) * 3 |
|
||||||
|
| Rüstung | base_armor + (level-1) * 2 |
|
||||||
|
| HP | Ausdauer * 10 |
|
||||||
|
| Schaden | Stärke * 0.5 + 2 |
|
||||||
|
| XP-Belohnung | 25 * Level |
|
||||||
|
|
||||||
|
### KI-Verhalten (State Machine)
|
||||||
|
| State | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| PATROL | Zufällig im Radius um Spawn-Position herumlaufen |
|
||||||
|
| CHASE | Spieler verfolgen (Aggro-Range: 8.0) |
|
||||||
|
| ATTACK | Angreifen wenn in Reichweite (1.5) |
|
||||||
|
|
||||||
|
### Respawn
|
||||||
|
- Gegner spawnen nach 5 Sekunden am Ursprungsort neu
|
||||||
|
- Verwaltet durch world.gd
|
||||||
|
|
||||||
|
### Loot-Drops
|
||||||
|
- Jeder Gegner hat eine optionale `loot_table` (LootTable Resource)
|
||||||
|
- Gold skaliert mit Gegner-Level
|
||||||
|
- Ohne LootTable: Standard-Gold-Drop (1-3 * Level)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## HUD (hud.gd)
|
||||||
|
|
||||||
|
| Element | Beschreibung |
|
||||||
|
|---|---|
|
||||||
|
| HealthBar | Rote HP-Leiste mit Text "aktuell / max" |
|
||||||
|
| LevelLabel | "Lv X" Anzeige |
|
||||||
|
| XPBar | Blaue XP-Leiste |
|
||||||
|
| GoldLabel | Gold-Anzeige in Goldfarbe |
|
||||||
|
| ActionBar | 9 Slots mit Icons, Cooldowns, Klick-Support |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Geplante Features
|
## Geplante Features
|
||||||
|
|
||||||
### Klassen-System
|
|
||||||
Jede Klasse hat unterschiedliche Basis-Stats und verfügbare Skills:
|
|
||||||
|
|
||||||
| Klasse | Stärken | Waffen |
|
|
||||||
|---|---|---|
|
|
||||||
| Krieger | Hohe HP, hoher physischer Schaden | Schwert, Axt, Streitkolben |
|
|
||||||
| Magier | Hoher Magieschaden, niedrige HP | Stab |
|
|
||||||
| Bogenschütze | Hohe Reichweite, schnelle Angriffe | Bogen, Dolch |
|
|
||||||
|
|
||||||
### Weitere geplante Features
|
|
||||||
- [ ] Klassen-System mit unterschiedlichen Stats
|
|
||||||
- [ ] Mana-System für Magier
|
- [ ] Mana-System für Magier
|
||||||
- [ ] Spell-System (Feuerbälle etc.)
|
- [ ] Spell-System (Feuerbälle etc.)
|
||||||
- [ ] Inventar und Ausrüstungssystem
|
- [ ] Schadenstypen (Physical, Fire, Ice, Lightning, Poison)
|
||||||
- [ ] Waffen aufheben und ausrüsten
|
|
||||||
- [ ] Erfahrungspunkte und Level-Up
|
|
||||||
- [ ] Mehrere Gegnertypen
|
- [ ] Mehrere Gegnertypen
|
||||||
- [ ] Dungeon-Level mit Wänden und Räumen
|
- [ ] Dungeon-Level mit Wänden und Räumen
|
||||||
- [ ] Multiplayer (bis zu 6 Spieler)
|
- [ ] Multiplayer (bis zu 6 Spieler)
|
||||||
- [ ] Gegner-Respawn
|
|
||||||
- [ ] Boss-Gegner
|
- [ ] Boss-Gegner
|
||||||
|
- [ ] Item-Shop / Händler
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
```
|
```
|
||||||
DungeonCrawler/
|
DungeonCrawler/
|
||||||
├── assets/ # 3D-Modelle (Kenney GLB)
|
├── assets/ # 3D-Modelle (Kenney GLB)
|
||||||
├── resources/
|
├── classes/ # Klassen-Definitionen (.tres)
|
||||||
│ ├── attack.gd # Attack-Ressourcen-Klasse
|
│ ├── warrior.tres
|
||||||
│ └── weapon.gd # Weapon-Ressourcen-Klasse
|
│ ├── rogue.tres
|
||||||
├── basic_attack.tres # Autoattack-Ressource
|
│ └── mage.tres
|
||||||
├── camera_pivot.gd # Kamera-Script
|
├── equipment/ # Equipment-Items (.tres)
|
||||||
├── enemy.gd # Gegner-Script
|
│ ├── iron_sword.tres
|
||||||
├── enemy.tscn # Gegner-Scene
|
│ ├── steel_sword.tres
|
||||||
├── hud.gd # HUD-Script
|
│ ├── leather_chest.tres
|
||||||
├── hud.tscn # HUD-Scene
|
│ ├── iron_helm.tres
|
||||||
├── player.gd # Spieler-Script
|
│ └── wooden_shield.tres
|
||||||
├── player.tscn # Spieler-Scene
|
├── loot_tables/ # Loot-Tabellen (.tres)
|
||||||
├── world.gd # Welt-Script
|
│ ├── goblin_loot.tres
|
||||||
├── world.tscn # Hauptszene
|
│ └── skeleton_loot.tres
|
||||||
└── PROJEKTDOKU.md # Diese Dokumentation
|
├── icons/ # Skill-Icons (SVG)
|
||||||
|
│ ├── autoattack_icon.svg
|
||||||
|
│ └── heavy_strike_icon.svg
|
||||||
|
├── camera_pivot.gd # Kamera-Script
|
||||||
|
├── character_class.gd # CharacterClass Resource
|
||||||
|
├── character_panel.gd # Charakter-Panel Script
|
||||||
|
├── character_panel.tscn # Charakter-Panel Scene
|
||||||
|
├── class_selection_menu.gd # Klassenauswahl Script
|
||||||
|
├── class_selection_menu.tscn # Klassenauswahl Scene
|
||||||
|
├── enemy.gd # Gegner-Script
|
||||||
|
├── enemy.tscn # Gegner-Scene
|
||||||
|
├── equipment.gd # Equipment Resource
|
||||||
|
├── hud.gd # HUD-Script
|
||||||
|
├── hud.tscn # HUD-Scene
|
||||||
|
├── inventory.gd # Inventar Resource
|
||||||
|
├── inventory_panel.gd # Inventar-Panel Script
|
||||||
|
├── inventory_panel.tscn # Inventar-Panel Scene
|
||||||
|
├── loot_entry.gd # LootEntry Resource
|
||||||
|
├── loot_table.gd # LootTable Resource
|
||||||
|
├── loot_window.gd # Loot-Fenster Script
|
||||||
|
├── loot_window.tscn # Loot-Fenster Scene
|
||||||
|
├── player.gd # Spieler-Script
|
||||||
|
├── player.tscn # Spieler-Scene
|
||||||
|
├── world.gd # Welt-Script
|
||||||
|
├── world.tscn # Hauptszene
|
||||||
|
└── PROJEKTDOKU.md # Diese Dokumentation
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue