From 7de7020335ea3761a3e25848d4922d113dfc2772 Mon Sep 17 00:00:00 2001
From: Adrian Paschkowski <git@wasdennnoch.me>
Date: Mon, 12 Apr 2021 20:17:48 +0200
Subject: [PATCH] Update concept notes

---
 concept.txt | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/concept.txt b/concept.txt
index 162c995..5373549 100644
--- a/concept.txt
+++ b/concept.txt
@@ -21,4 +21,39 @@
     - Deal more damage
     - Take less damage
     - Reduced Mana Costs
-    - One-time use extreme buffs to put on a specific enemy
\ No newline at end of file
+    - One-time use extreme buffs to put on a specific enemy
+
+----------------------------------------------
+
+- Weitere Sprites für bestimmte Klassen suchen
+- Oberklasse Enemy mit HP, Stats etc
+- Enemies haben (permanente) Upgrades
+- Unterklassen für spezifische Behaviors, z.B. für movement, attacks etc
+- Enemies bleiben tot sobald tot
+- AntiPlayer
+
+-> StatsManager singleton mit dontDestroyOnLoad
+    - hat Methoden, um spezifische Upgrades zu exposen
+    - speichert Mana und wie viele Upgrades wovon man schon hat
+    - Mana wird immer generiert, sobald man etwas damage dealt
+    - Mana bleibt immer erhalten und wird nie resetted
+    - Upgrades kann man erst kaufen, sobald mindestens ein Enemy auf dem Feld ist
+    - public EnemyStats GetEnemyStats()
+    - AntiPlayer stats bleiben auch im StatsManager, stats sind aber fixed pro Szene
+        - public AntiPlayerStats GetAntiPlayerStats(int stage)
+    - Enemy Stats bleiben über Szenen erhalten
+-> Enemy Basisklasse
+    - zieht sich Upgrades aus StatsManager
+    - macht jeden Frame StatsManager.GetEnemyStats() oder so
+    - ruft darauf basierend abstrakte Methoden in Unterklasse auf
+        - abstract void Attack(), called on Timer
+    - managed selber HP
+    - TakeDamage(int dmg)
+        - aufgerufen vom AntiPlayer
+            - Dessen Schwert hat OnTriggerEnter2D() und berechnet dann seinen Damage und damaged den Enemy
+    - anders herum, wenn Enemy den AntiPlayer damaged:
+        - Enemy hat OnTriggerEnter2D(), berechnet eigenes Damage, damaged Player
+        - Oder ein Projektil macht das
+-> Enemy-spezifische Unterklassen
+    - Implementeren abstrakte Methoden wie Attack()
+        - Schießen Pfeile, Schwertattacke etc
\ No newline at end of file
-- 
GitLab