Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GAME] Add Ai-System #128

Merged
merged 13 commits into from
Jan 23, 2023
Merged

[GAME] Add Ai-System #128

merged 13 commits into from
Jan 23, 2023

Conversation

AMatutat
Copy link
Contributor

@AMatutat AMatutat commented Jan 18, 2023

fixes #127, fixes #21, fixes #22, fixes #141

  • Einfügen eines AISystem, welches auf alle AIComponents agiert und den "nächsten Zug" einer AI gesteuerten Entität berechnet.

  • Einführen eines AIComponent, welches eine Entität als ai gesteuert markiert und jeweils ein Verhalten für idle und ein Verhalten für Kampf hat

  • Einführen der Funktionalen Interfaces IIdle und IFight, um das verhalten im Idle bzw. Kampfmodus per Strategy-Pattern zu implementieren

  • Einführen des funktionalen Interfaces ITransition welches bestimmen ob sich die Entität im Fight-Modus befinden soll

  • Bereitstellen von Funktionen in AITools

    • calculateNewPath(Entity entity, float radius) berechnet den Pfad von der Position der Entiät zu einem zufälligen Teil im übergebenen radius
    • calculateNewPath(Entity from, Entity to)berechnet den Pfad von der ersten Entität zur zweiten Entität.
    • move(Entity entity, GraphPath<Tile> path) setzt die Velocity der Entität so, dass diese den nächsten Schritt auf dem Pfad macht
    • boolean playerInRange(Entity entity, float range) prüft ob sich der Held im Radius der übergenen Entität befindet
  • Mit diesen Methoden wurden dann jeweils ein Idle und ein Fight Verhalten implementiert

    • Idle Verhalten: RadiusWalk Sucht sich eine Position im Radius, bewegt sich dorthin, wartet kurz, repeat
    • Kampf Verhalten: MeeleAI läuft auf den Spieler zu, wenn sich dieser in der angegeben Reichweite befindet, wird der übergeben Skill ausgeführt (aktuell nur ein Print, da wir noch keine Skills haben)
    • RangeTransition wechselt die Entität in den Kampfmodus, wenn sich der Held im angegeben Radius befindet

ToDo:

@AMatutat
Copy link
Contributor Author

AMatutat commented Jan 19, 2023

@Lena241, könnte es sein das unser Problem daran liegt, dass wir die velocity nie mehr auf 0 setzen?

Edit: Ja

@cagix
Copy link
Member

cagix commented Jan 20, 2023

@AMatutat @Lena241 Diese PR dienen auch der Projektdokumentation. Bitte den Titel so setzen, dass er etwas ändert "führt ein AI-System ein" o.ä. ... In der Beschreibung (erster Kommentar) bitte auch im Aktiv schreiben, was beim Merge dann eingeführt wird: "Füge Klasse AIComponent hinzu, die Wuppie ermöglicht ...". Statt "Bereitstellen vieler Funktionen in AITools" bitte die konkreten neuen Features aufführen. Da das Ding gegen ein Ticket verlinkt, sollte dort das UML als Konzeptskizze eingebaut sein und muss entsprechend nicht hier nochmal mit aufgeführt werden.

PS: Wobei ich diesen PR eigentlich bereits viel zu groß finde, sowas lässt sich nur schwer reviewen. Ich würde dringend empfehlen, kleinere Einheiten umzusetzen.

@AMatutat AMatutat changed the title [GAME] Ai-System [GAME] Add Ai-System Jan 20, 2023
@AMatutat AMatutat marked this pull request as ready for review January 23, 2023 09:10
@AMatutat
Copy link
Contributor Author

Um diesen PR zum Abschluss zu bringen, habe ich die Test nach #147 ausgelagert (kommen diese Woche).
Die Funktionalität haben wir am Freitag schon beobachten können.

@AMatutat AMatutat requested a review from malt-r January 23, 2023 09:11
@AMatutat AMatutat requested review from AHeinisch and Lena241 and removed request for AHeinisch January 23, 2023 10:26
Copy link
Contributor

@Lena241 Lena241 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@AMatutat AMatutat merged commit 4bd9f74 into master Jan 23, 2023
@AMatutat AMatutat deleted the am/ai branch January 23, 2023 12:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[GAME] iTransition: Range [GAME] KI-System [GAME] IFight: Nahkampf [GAME] IIdle: RadiusWalk
4 participants