docs: Skill Mastery & Fusion System Konzept dokumentiert + RMB Target-Fix

- PROJEKTDOKU: Vollständiges Konzept für organisches Skill-System
  (Skill Memory, Mutationen, Sockel, Verheiratungs-Phasen, Ressourcen)
- player.gd: RMB auf leere Fläche entfernt Target nicht mehr (clear_on_miss=false)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Andre 2026-03-18 21:56:20 +01:00
parent 3766be4017
commit 70c2ea7188
2 changed files with 75 additions and 4 deletions

View file

@ -478,7 +478,78 @@ Charaktermodelle stammen von Mixamo (castle_guard_01.fbx) und werden mit separat
---
## Skill Mastery & Fusion System (Konzept)
Ein organisches Skill-System bei dem Skills sich wie Lebewesen verhalten — sie erinnern sich, wachsen und können Beziehungen eingehen.
### Kern-Konzept: Skill Memory
Jeder Skill speichert Kontext-Schnappschüsse jeder Nutzung:
- `hp_percent` — Wie viel HP der Spieler bei Nutzung hatte
- `was_opener` — War es der erste Treffer im Kampf
- `target_hp_percent` — HP des Ziels bei Nutzung
- `was_moving` — Ob der Spieler sich bewegte
- `time_since_last_skill` — Zeit seit dem letzten Skill
- `last_skill_used` — Welcher Skill davor benutzt wurde
Nach genug Nutzungen erkennt das System **dominante Muster** und der Skill bekommt eine **Mutation** (eigenständig, ohne Spielereingriff):
| Muster (60%+ der Nutzungen) | Mutation |
|---|---|
| Bei <30% HP | "Verzweiflung" Schaden skaliert mit fehlendem HP |
| Als erster Treffer im Kampf | "Hinterhalt" — Bonus nur beim Opener |
| Im Stehen | "Standoff" — Channeling-Effekt, mehr Schaden |
| Direkt nach demselben Skill | "Rhythmus" — Combo-Bonus bei Wiederholung |
| Selten genutzt | "Verblasst" — schwächer, irgendwann weg |
### Sockel-System
Spieler können Edelsteine mit Elementen in Sockel-Slots eines Skills einsetzen:
- **Elemente:** Feuer, Eis, Blitz, Dunkel, Licht
- Nach X Nutzungen **verschmilzt** der Edelstein mit dem Skill — der Skill trägt das Element dauerhaft
- **Neuer Sockel** entsteht automatisch bei hoher Resonanz (Element passte zur Spielweise), sonst per Soul Dust erzwingbar
- **Rarity** bestimmt maximale Sockel-Slots: Common=1, Rare=2, Epic=3, Legendary=4
**Hybrid-Elemente** durch Verschmelzung zweier Skills:
| Kombination | Ergebnis |
|---|---|
| Feuer + Eis | Dampf / Schmelze |
| Dunkel + Licht | Gleichgewicht |
| Blitz + Erde | Magnetismus |
| Feuer + Blitz | Plasma |
### Verheiratungs-Phasen (Skill Linking)
Zwei Skills können verlinkt werden und entwickeln sich gemeinsam weiter:
```
VERLOBT → VERBUNDEN → FUSIONIERT ★
```
| Phase | Beschreibung |
|---|---|
| **Verlobt** | Beide Skills bleiben einzeln spielbar. Teilen Kontext-Erinnerungen. Zusammen gespielt = mehr Resonanz. Jederzeit kostenlos trennbar. |
| **Verbunden** | Nach ausreichend gemeinsamer Nutzung verschmelzen beide zu EINEM neuen Skill. Trennbar gegen Kosten (Erinnerungssplitter, nicht beide Skills zurück). |
| **Fusioniert ★** | Spieler markiert bewusst als untrennbar. Kein Zurück. Kleiner permanenter Bonus als Belohnung fürs Commitment (z.B. extra Sockel-Slot, CD-Reduktion). |
**Scheidung** (nur für verheiratete/verbundene Skills, nicht für eigenständig mutierte):
- Verbundene Skills trennen kostet **Soul Dust** + Verlust der während der Ehe entwickelten Elemente
- Organische Mutationen beider Skills bleiben erhalten
- Fusioniert ★ = endgültig, keine Scheidung möglich
### Ressourcen
| Ressource | Herkunft | Verwendung |
|---|---|---|
| **Soul Dust** | Auflösen ungenutzter Skills | Neuen Sockel erzwingen, Scheidungskosten |
| **Edelsteine** | Gefunden / Gegner-Drops | In Sockel einsetzen für Elemente |
| **Erinnerungssplitter** | Scheidung verbundener Skills | In anderen Skill "einpflanzen" um Kontext-Geschichte zu übertragen |
### Rarity-System
Rarity steigt durch Skill-Generationen (Verbindung/Fusion) — nicht durch Grinding:
- Kind-Skills aus Verbindungen starten automatisch mit höherer Rarity als ihre Eltern
- Mehr Rarity = mehr Sockel-Slots = mehr Potential für Elementar-Kombinationen
---
## Geplante Features
- [ ] Skill Mastery & Fusion System (siehe Konzept oben)
- [ ] Wut-Ressource für Krieger
- [ ] Spell-System (Feuerbälle etc.)
- [ ] Schadenstypen (Physical, Fire, Ice, Lightning, Poison)

View file

@ -717,7 +717,7 @@ func clear_target():
autoattack_active = false
print("Ziel aufgehoben")
func _try_select_target(start_attack: bool = false):
func _try_select_target(start_attack: bool = false, clear_on_miss: bool = true):
var space_state = get_world_3d().direct_space_state
var viewport = get_viewport()
var mouse_pos = viewport.get_mouse_position()
@ -728,8 +728,8 @@ func _try_select_target(start_attack: bool = false):
var result = space_state.intersect_ray(query)
if result and result.collider.has_method("take_damage"):
set_target(result.collider, start_attack)
else:
# Klick auf freie Fläche → Target entfernen
elif clear_on_miss:
# Klick auf freie Fläche → Target entfernen (nur bei LMB)
clear_target()
# ═══════════════════════════════════════════════════════════════
@ -1008,7 +1008,7 @@ func _physics_process(delta):
if _lmb_press_pos.distance_to(release_pos) < 5.0:
_try_select_target(false)
if Input.is_action_just_pressed("ui_right_mouse"):
_try_select_target(true)
_try_select_target(true, false)
# ── Aktionsleiste (Tasten 1-9) ────────────────────────────
for i in range(9):