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