TargetLocator / Zielerfassung

Dokumentation über TargetLocator / Zielerfassung.

Ein wichtiger Punkt bei jedem Tower Defense Spiel ist das Erfassen, welches Ziel als nächstes angegriffen wird.

Das übernimmt in unserem Spiel ein TargetLocator-ScriptableObject. Ihn wird es in mehreren Ausführungen geben, aktuell ist jeweils ein TargetLocator für ballistische und direkte Waffen implementiert.

Im groben läuft das Herausfinden des nächsten Ziels so ab, sofern die Waffe noch kein Ziel hat:

  1. Finde alle Gegner im Umkreis des Turms (der durch die Waffe selbst bestimmt wird).
  2. Schaue, welche der Gegner, die gefunden wurden, auch im passenden Angriffswinkel der Waffe sind. Z.B. kann ein Katapult Gegner treffen, die in einem 90°-Winkel vor der Waffe sind, es kann also nicht seitlich oder nach hinten schießen.
  3. Falls Gegner im richtigen Angriffswinkel sind, suche je nach TargetType der Waffe einen Gegner aus.
  4. Gegner wurde gefunden und wird solange verfolgt, bis er entweder zerstört wurde oder außerhalb der Angriffsreichweite ist.

TargetType

Der TargetType bestimmt, welche Art von Gegner bevorzugt wird:

  • Closest: Der Gegner, der am nahesten ist.
  • Random: Irgendein Gegner.
  • Lowest HP: Gegner mit den wenigsten verbleibenden Lebenspunkten.
  • Highest HP: Gegner mit den meisten verbleibenden Lebenspunkten.
  • First: Gegner der am schnellsten sein Ziel erreichen wird.
  • Last: Gegner der am längsten braucht um sein Ziel zu erreichen.

Diese sind bereits implementiert und können später noch erweitert werden.

Zuletzt geändert February 24, 2024: docs(TargetLocator): Update TargetTypes (26c7cb7d)