- Game Target: Kill Auto Hero
- Auto Hero
    - Automatically runs to next enemy and bashes away
    - Stats increase with every lost battle
- Mana
    - Player has limited mana available
    - Used to spawn enemies
    - Used to upgrade enemies
    - Gain mana by dealing Damage to Auto Hero or defeating him
    - Can be spent on permanent upgrades
    - Persists after battle rounds
- Enemies
    - Multiple Types
    - Close combat, weak
    - Tank
    - Far Archer / Mage
    - Drag-n-drop enemies into game
    - Enemies stay at their spawned position
- Upgrades
    - HP
    - Deal more damage
    - Take less damage
    - Reduced Mana Costs
    - 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