Fight rework premature merge #22
Merged
Jonathan
merged 16 commits from feature/fight_rework into develop 2 months ago
Loading…
Reference in new issue
There is no content yet.
Delete Branch 'feature/fight_rework'
Deleting a branch is permanent. It CANNOT be undone. Continue?
A working but not finished version of the new fight system.
Includes:
Known bugs:
Fight rework premature mergeto WIP: Fight rework premature merge 2 months agoWIP: Fight rework premature mergeto Fight rework premature merge 2 months ago[Export] private bool _useSprite = true;[Export] private CanvasItem _spriteToOutline;//[Export] private bool _useSprite = true;[Export(PropertyHint.ArrayType)] private CanvasItem[] _spriteToOutline = [];Bitte in Plural umbenennen.
#endregion[Export] private AllFightersVisual _allFightersVisual = null!;Nur aus Neugier, weil ich das noch nie gesehen hab: Was macht diese "null!" Zuweisung hier?
using System.Collections.Generic;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 👀
using System.Collections.Generic;namespace Babushka.scripts.CSharp.Common.Fight.ActionDetails;Vielleicht macht es Sinn, das Fightsystem in einen eigenen Namespace-Bereich auszulagern und nicht einfach mit unter "Common" abzulegen?
public class MinigameActionDetail : FighterAction.FighterActionDetail{// settingsbrauchen wir den Kommentar noch?
{public enum VisualRange{SingleEin Enum mit nur einem Eintrag? Was soll da voraussichtlich noch kommen? Vielleicht
public FightWorld.Fighter GetTarget(){return target ?? throw new InvalidOperationException("No target selected");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?
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.
namespace Babushka.scripts.CSharp.Common.Fight.Actions;public class BlobAttackAction : FighterActionVerstehe 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?
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
namespace Babushka.scripts.CSharp.Common.Fight;public partial class AllFightersVisual : NodeDiese Klasse managed das Layout der Kampfszene, oder? Das Naming hatte mich etwas verwirrt.
please see comments and resolve merge conflicts.
1edbe7aeb7tof27f69c15f2 months agoe864c62a3ainto develop 2 months agoReviewers
e864c62a3a.