Isometric implementation

This commit is contained in:
Marco 2025-06-10 16:33:43 +02:00
commit ed656f00bb
92 changed files with 2834 additions and 223 deletions

View file

@ -13,5 +13,5 @@ public abstract partial class AttackPattern : Resource
//public abstract void Start(Node2D parent);
//public abstract void UpdatePattern(double delta);
//public abstract bool IsComplete();
public abstract IPatternMachine MakeMachine(Node2D parent);
public abstract IPatternMachine MakeMachine(Node parent);
}

View file

@ -19,7 +19,7 @@ public partial class BossPhase : Resource
private IPatternMachine _patternMachine;
public void Start(Node2D boss)
public void Start(Node boss)
{
currentPatternIndex = 0;
_patternMachine = Patterns[currentPatternIndex].MakeMachine(boss);

View file

@ -13,14 +13,14 @@ public partial class FSMMovementPattern : AttackPattern
[Export] private Tween.TransitionType transitionType = Tween.TransitionType.Linear;
[Export] private Tween.EaseType easeType = Tween.EaseType.InOut;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new FSMMovementPatternMachine(this, parent);
}
public class FSMMovementPatternMachine(FSMMovementPattern pattern, Node2D parent) : IPatternMachine
public class FSMMovementPatternMachine(FSMMovementPattern pattern, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
private Tween tween;
private bool isComplete = false;

View file

@ -19,11 +19,11 @@ public partial class SpiderbombEffectResource : ItemEffectResource
{
var bullet = PoolingManager.Instance.SpawnBullet(item.WeaponData.BulletData);
bullet.GlobalPosition = parent.GlobalPosition;
bullet.GlobalPosition = parent.Machine.MainObject.GlobalPosition;
//var bullet = parent.CreateChildOf<Bullet>(GameManager.Instance.BulletsContainer, item.WeaponData.BulletData.BulletScene, parent.GlobalPosition);
var bulletData = item.WeaponData.MakeBullet(parent.GlobalPosition);
var bulletData = item.WeaponData.MakeBullet(parent.Machine.MainObject.GlobalPosition);
bullet.Initialize(bulletData, GameManager.Instance);
bullet.SetDirection(parent.FacingDirection);

View file

@ -12,14 +12,14 @@ public partial class PatternGroup : AttackPattern
{
[Export] private Array<AttackPattern> patterns;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new PatternGroupMachine(this, parent);
}
public class PatternGroupMachine(PatternGroup patternGroup, Node2D parent) : IPatternMachine
public class PatternGroupMachine(PatternGroup patternGroup, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
private int _currentPatternIndex = 0;
private AttackPattern CurrentPattern => patternGroup.patterns[_currentPatternIndex];

View file

@ -12,14 +12,14 @@ public partial class ParallelPatternGroup : AttackPattern
[Export(PropertyHint.None, "suffix:s")] public float Duration { get; private set; } = 10f;
[Export] public Array<AttackPattern> Patterns { get; private set; } = [];
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new ParallelPatternGroupMachine(this, parent);
}
public class ParallelPatternGroupMachine(ParallelPatternGroup patternGroup, Node2D parent) : IPatternMachine
public class ParallelPatternGroupMachine(ParallelPatternGroup patternGroup, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
//private int _currentPatternIndex = 0;
//private AttackPattern CurrentPattern => patternGroup.Patterns[_currentPatternIndex];

View file

@ -13,14 +13,14 @@ public partial class SimpleMovementPattern : AttackPattern
[Export] private Tween.TransitionType transitionType = Tween.TransitionType.Linear;
[Export] private Tween.EaseType easeType = Tween.EaseType.InOut;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new SimpleMovementPatternMachine(this, parent);
}
public class SimpleMovementPatternMachine(SimpleMovementPattern pattern, Node2D parent) : IPatternMachine
public class SimpleMovementPatternMachine(SimpleMovementPattern pattern, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
private Tween tween;
private bool isComplete = false;