From 087a5ec8ccc317574b8a719f2da2f67a6c2f5787 Mon Sep 17 00:00:00 2001 From: Marek Le Date: Sun, 19 Apr 2026 19:21:54 +0200 Subject: [PATCH] update --- doc/features.md | 6 ++++ doc/scenes/player/features.md | 12 ++++++++ doc/scenes/player/specs.md | 11 +++++++ doc/specs.md | 0 plan.md | 58 +++++++++++++++++------------------ 5 files changed, 58 insertions(+), 29 deletions(-) create mode 100644 doc/features.md create mode 100644 doc/scenes/player/features.md create mode 100644 doc/scenes/player/specs.md create mode 100644 doc/specs.md diff --git a/doc/features.md b/doc/features.md new file mode 100644 index 0000000..fb14055 --- /dev/null +++ b/doc/features.md @@ -0,0 +1,6 @@ +- tarverne verteidigen +- portale spawnen +- protale besiegen -> stärker werden +- rotes protal besigen -> welle geschafft +- rotes portal bricht nach timer aus -> greift tarverne an +- tarverne tod -> game over \ No newline at end of file diff --git a/doc/scenes/player/features.md b/doc/scenes/player/features.md new file mode 100644 index 0000000..5d87edd --- /dev/null +++ b/doc/scenes/player/features.md @@ -0,0 +1,12 @@ +- WASD bewegung +- Leertaste springen mit gravitation + +- gruppe "player" +- thirs-person camera +- RMB+Hold kamera bewegung, player ausrichtung +- leertaste springen +- listener + - player stirbt + - player wird gespawnt +- events + - fähigkeit verwenden \ No newline at end of file diff --git a/doc/scenes/player/specs.md b/doc/scenes/player/specs.md new file mode 100644 index 0000000..54e4e22 --- /dev/null +++ b/doc/scenes/player/specs.md @@ -0,0 +1,11 @@ +- CharacterBody3D + - CollisionShape3D - capsule + - + +- init.gd - daten initialisieren +- listener.gd - listener registrieren +- movement.gd - player bewegung +- camera.gd - kamera bewegung +- ability.gd - +- targeting.gd +- role.gd \ No newline at end of file diff --git a/doc/specs.md b/doc/specs.md new file mode 100644 index 0000000..e69de29 diff --git a/plan.md b/plan.md index 8157d15..1850867 100644 --- a/plan.md +++ b/plan.md @@ -22,12 +22,12 @@ scenes/ — Darstellung + Input healthbar_status.gd — Target-Border + Aggro-Farbwechsel healthbar_effects.gd — Effekt-Icons auf Healthbar player/ — Spieler + player_stats - role/ — Rollenwechsel + Ability/AbilitySet-Klassen - damage/ — set.tres + abilities/ - tank/ — set.tres + abilities/ - healer/ — set.tres + abilities/ + role/ — Rollenwechsel + Ability/AbilitySet-Klassen + damage/ — set.tres + abilities/ + tank/ — set.tres + abilities/ + healer/ — set.tres + abilities/ enemy/ — Gegner + enemy_stats - boss/ — Boss + boss_stats + boss/ — Boss + boss_stats portal/ — Portal + Gate + portal_stats dungeon/ — Dungeon + dungeon_manager hud/ — HUD (4 Skripte: vitals, respawn, abilities, effects) @@ -49,7 +49,7 @@ autoloads/ — Globaler Zustand - Taverne - Player - Portale (dynamisch) - - Gegner + - Gegner - HUD ## Architektur @@ -254,14 +254,14 @@ autoloads/ — Globaler Zustand - world.tscn — Hauptszene (100x100m) - Systems (alle Systeme als Child-Nodes, siehe Systeme-Sektion) - NavigationRegion3D - - Boden (MeshInstance3D, 100x100m PlaneMesh) + - Boden (MeshInstance3D, 100x100m PlaneMesh) - Kollision (StaticBody3D, WorldBoundaryShape3D) - Licht (DirectionalLight3D, 45°, Schatten) - Taverne (StaticBody3D, BoxMesh, Mitte der Karte) - - Gruppe (tavern) - - HitArea (Area3D) — nimmt Invasions-Schaden entgegen - - Healthbar (Sprite3D + SubViewport, groß, nur Health — kein Schild) - - Registriert bei Stats mit TavernStats Resource + - Gruppe (tavern) + - HitArea (Area3D) — nimmt Invasions-Schaden entgegen + - Healthbar (Sprite3D + SubViewport, groß, nur Health — kein Schild) + - Registriert bei Stats mit TavernStats Resource - Spieler (Instanz von player.tscn) - HUD (Instanz von hud.tscn) - PortalSpawner (Node, portal_spawner.gd) @@ -272,7 +272,7 @@ autoloads/ — Globaler Zustand - Kollision (CapsuleShape3D, 1.8m x 0.3m) - Mesh (CapsuleMesh) - CameraPivot (Node3D, camera.gd) - - Camera3D + - Camera3D - Movement (Node, movement.gd) — WASD + Springen, liest Werte von Stats - Ability (Node, ability.gd) — Input-Handler 1/2/3/4, emittiert ability_use_requested - Role (Node, role/role.gd) — Rollenwechsel ALT+1/2/3, emittiert role_changed (auch bei _ready) @@ -291,25 +291,25 @@ autoloads/ — Globaler Zustand - NavigationAgent3D - Bewegung wird vom AI-System (ai_system.gd) gesteuert — Enemy hat keinen eigenen Movement-Node - Healthbar (Sprite3D + SubViewport, healthbar.gd) — Health-Anzeige - - HealthbarShield (Node, healthbar_shield.gd) — Shield-Anzeige - - HealthbarStatus (Node, healthbar_status.gd) — Target-Border + Aggro-Farbe - - HealthbarEffects (Node, healthbar_effects.gd) — Effekt-Icons + - HealthbarShield (Node, healthbar_shield.gd) — Shield-Anzeige + - HealthbarStatus (Node, healthbar_status.gd) — Target-Border + Aggro-Farbe + - HealthbarEffects (Node, healthbar_effects.gd) — Effekt-Icons - init.gd — Registriert bei Stats mit EnemyStats Resource, Detection-Area Signal - Aggro-Regeln (Werte in AggroConfig Resource): - Aufbau: - - Schaden = Aggro (1:1), Tank 2x Multiplikator - - Heilung = 0.5x Aggro auf alle Gegner die Heiler kennen - - Aggro-Spread: 50% des Aggro an Gegner im alert_radius (10m) - - Detection-Area (10m): +1 Aggro, Alert an Nachbarn im alert_radius + - Schaden = Aggro (1:1), Tank 2x Multiplikator + - Heilung = 0.5x Aggro auf alle Gegner die Heiler kennen + - Aggro-Spread: 50% des Aggro an Gegner im alert_radius (10m) + - Detection-Area (10m): +1 Aggro, Alert an Nachbarn im alert_radius - Kampfstatus: - - Spieler in DetectionArea → immer im Kampf (kein Decay) - - Spieler verlässt DetectionArea → 5s Combat-Timeout, dann Decay - - Schaden verursachen setzt Combat-Timer zurück + - Spieler in DetectionArea → immer im Kampf (kein Decay) + - Spieler verlässt DetectionArea → 5s Combat-Timeout, dann Decay + - Schaden verursachen setzt Combat-Timer zurück - Abbau (nach Combat-Timeout): - - Basis: -aggro_decay/s (default 1.0) - - Exponentieller Decay basierend auf Zeit seit Kampfende (1%·2^sekunden) - - Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert - - Bei Spieler-Tod → Aggro auf 0 + - Basis: -aggro_decay/s (default 1.0) + - Exponentieller Decay basierend auf Zeit seit Kampfende (1%·2^sekunden) + - Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert + - Bei Spieler-Tod → Aggro auf 0 ## Boss (enemy/) - boss.tscn — wie enemy.tscn aber größer (Mesh lila, 1.5x) @@ -324,9 +324,9 @@ autoloads/ — Globaler Zustand - HitArea (Area3D) - DetectionArea (Area3D, Auto-Targeting bei Betreten) - Healthbar (Sprite3D + SubViewport, healthbar.gd) - - HealthbarShield (Node, healthbar_shield.gd) - - HealthbarStatus (Node, healthbar_status.gd) - - HealthbarEffects (Node, healthbar_effects.gd) + - HealthbarShield (Node, healthbar_shield.gd) + - HealthbarStatus (Node, healthbar_status.gd) + - HealthbarEffects (Node, healthbar_effects.gd) - init.gd — Registriert bei Stats mit PortalStats Resource - Spawnt Gegner bei HP-Schwellen (→ SpawnSystem)