Fight rework premature merge #22

Merged
Jonathan merged 16 commits from feature/fight_rework into develop 2 months ago
Owner

A working but not finished version of the new fight system.

Includes:

  • The entire fight logic is based on a state machine outlined on Miro
  • Procedurally generated fight world. Currently only generating two rooms next to each other.
  • Basic fight attack

Known bugs:

  • Dead enemies still attack
  • No background in fight
  • Buttons other than attack do not work
  • Enemy groups do not disappear when beaten
  • probably more...
A working but not finished version of the new fight system. Includes: - The entire fight logic is based on a state machine outlined on [Miro](https://miro.com/app/board/uXjVK8YEprM=/?moveToWidget=3458764640805655262&cot=14) - Procedurally generated fight world. Currently only generating two rooms next to each other. - Basic fight attack Known bugs: - Dead enemies still attack - No background in fight - Buttons other than attack do not work - Enemy groups do not disappear when beaten - probably more...
Jonathan added 14 commits 2 months ago
Jonathan changed title from Fight rework premature merge to WIP: Fight rework premature merge 2 months ago
Jonathan changed title from WIP: Fight rework premature merge to Fight rework premature merge 2 months ago
Jonathan requested review from kziolkowski 2 months ago
kziolkowski was assigned by Jonathan 2 months ago
kziolkowski reviewed 2 months ago
[Export] private bool _useSprite = true;
[Export] private CanvasItem _spriteToOutline;
//[Export] private bool _useSprite = true;
[Export(PropertyHint.ArrayType)] private CanvasItem[] _spriteToOutline = [];
Owner

Bitte in Plural umbenennen.

Bitte in Plural umbenennen.
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
#endregion
[Export] private AllFightersVisual _allFightersVisual = null!;
Owner

Nur aus Neugier, weil ich das noch nie gesehen hab: Was macht diese "null!" Zuweisung hier?

Nur aus Neugier, weil ich das noch nie gesehen hab: Was macht diese "null!" Zuweisung hier?
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
using System.Collections.Generic;
Owner

Ich weiß nicht, was es mit diesem Unicode-Character hier auf sich hat, aber ich gehe einfach mal davon aus, dass er uns keine Ärger machen wird 👀

Ich weiß nicht, was es mit diesem Unicode-Character hier auf sich hat, aber ich gehe einfach mal davon aus, dass er uns keine Ärger machen wird 👀
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
using System.Collections.Generic;
namespace Babushka.scripts.CSharp.Common.Fight.ActionDetails;
Owner

Vielleicht macht es Sinn, das Fightsystem in einen eigenen Namespace-Bereich auszulagern und nicht einfach mit unter "Common" abzulegen?

Vielleicht macht es Sinn, das Fightsystem in einen eigenen Namespace-Bereich auszulagern und nicht einfach mit unter "Common" abzulegen?
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
public class MinigameActionDetail : FighterAction.FighterActionDetail
{
// settings
Owner

brauchen wir den Kommentar noch?

brauchen wir den Kommentar noch?
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
{
public enum VisualRange
{
Single
Owner

Ein Enum mit nur einem Eintrag? Was soll da voraussichtlich noch kommen? Vielleicht

  • Single und Multiple oder vielleicht
  • Single, Double, Triple usw.?
Ein Enum mit nur einem Eintrag? Was soll da voraussichtlich noch kommen? Vielleicht - Single und Multiple oder vielleicht - Single, Double, Triple usw.?
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
public FightWorld.Fighter GetTarget()
{
return target ?? throw new InvalidOperationException("No target selected");
Owner

Muss das immer ne Exception werfen? Also kann es keinen Fall geben, wo es keine Selection gibt? ISt es dann für die Praxis nicht vielleicht nicer, wenn man nen Default definiert? Oder passiert das auf den höheren Detailebenen?

Muss das immer ne Exception werfen? Also kann es keinen Fall geben, wo es keine Selection gibt? ISt es dann für die Praxis nicht vielleicht nicer, wenn man nen Default definiert? Oder passiert das auf den höheren Detailebenen?
Poster
Owner

GetTarget sollte nur im ActionExecute und ActionAnimate state aufgerufen werden. Die states werden nur erreicht, nach dem alle action details completed sind. Das heißt es muss ein target gesetzt worden sein.

GetTarget sollte nur im ActionExecute und ActionAnimate state aufgerufen werden. Die states werden nur erreicht, nach dem alle action details completed sind. Das heißt es muss ein target gesetzt worden sein.
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
namespace Babushka.scripts.CSharp.Common.Fight.Actions;
public class BlobAttackAction : FighterAction
Owner

Verstehe ich das richtig, dass wir für jeden Gegner(typ) ne neue Klasse anlegen müssen? Falls ja: Wäre es vielleicht auch möglich, das über Config-Ressourcen ganz oder teilwese konfigurierbar zu machen?

Verstehe ich das richtig, dass wir für jeden Gegner(typ) ne neue Klasse anlegen müssen? Falls ja: Wäre es vielleicht auch möglich, das über Config-Ressourcen ganz oder teilwese konfigurierbar zu machen?
Poster
Owner

Es braucht nicht jeder gegner type eine klasse, sondern jede action. Es können auch mehrere gegner typen die gleiche action haben.

Das irgendwie cool konfigurierbar zu machen fänd ich auch sinnvoll, aber erst später und nicht für den prototypen

Es braucht nicht jeder gegner type eine klasse, sondern jede action. Es können auch mehrere gegner typen die gleiche action haben. Das irgendwie cool konfigurierbar zu machen fänd ich auch sinnvoll, aber erst später und nicht für den prototypen
Jonathan marked this conversation as resolved
kziolkowski reviewed 2 months ago
namespace Babushka.scripts.CSharp.Common.Fight;
public partial class AllFightersVisual : Node
Owner

Diese Klasse managed das Layout der Kampfszene, oder? Das Naming hatte mich etwas verwirrt.

Diese Klasse managed das Layout der Kampfszene, oder? Das Naming hatte mich etwas verwirrt.
Jonathan marked this conversation as resolved
kziolkowski approved these changes 2 months ago
kziolkowski left a comment
Owner

please see comments and resolve merge conflicts.

please see comments and resolve merge conflicts.
Jonathan added 1 commit 2 months ago
Jonathan force-pushed feature/fight_rework from 1edbe7aeb7 to f27f69c15f 2 months ago
Jonathan merged commit e864c62a3a into develop 2 months ago

Reviewers

kziolkowski approved these changes 2 months ago
The pull request has been merged as e864c62a3a.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: Jonathan/Babushka#22
Loading…
There is no content yet.