Spellcard test map

This commit is contained in:
Marco 2025-03-24 10:26:13 +01:00
commit dc8777c3d9
9 changed files with 163 additions and 43 deletions

View file

@ -12,7 +12,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost
{
[Export] public string BossName { get; private set; }
//[Export] private Array<BossPhase> Phases;
[Export] public BossScript BossScript { get; private set; }
[Export] public BossScript BossScript { get; set; }
//[Export] private PackedScene BossHudPrefab;
[Export] public Vector2 BossPhaseAnimationStartingPosition = new(180, 10);
@ -20,9 +20,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost
private bool _started = false;
private bool _waiting = false;
private GameManager _gameManager;
public GameManager GameManager => _gameManager;
private Vector2 _homePosition;
public Vector2 HomePosition => _homePosition;
private BossPhase CurrentPhase => BossScript.Phases[currentPhaseIndex];
@ -48,19 +46,17 @@ public partial class Boss : Enemy, IActivable, IScriptHost
GD.PrintErr($"No boss script defined in {this.Name}");
return;
}
_gameManager = this.GetGameManager();
_homePosition = this.GlobalPosition;
_cameraMarker = new Marker2D();
_gameManager.CallDeferred("add_child", _cameraMarker);
GameManager.Instance.CallDeferred("add_child", _cameraMarker);
_cameraMarker.GlobalPosition = _homePosition + CameraOffset;
if (BossScript.HudPrefab is not null)
{
_bossHud = BossScript.HudPrefab.Instantiate<BossHud>();
_gameManager.CallDeferred("add_child", _bossHud);
GameManager.Instance.CallDeferred("add_child", _bossHud);
_bossHud.Name = $"{BossName}_BossHud";
_bossHud.Visible = false;
@ -121,7 +117,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost
_bossHud.QueueFree();
}
_gameManager.CameraTargetPlayer();
GameManager.Instance.CameraTargetPlayer();
base.Explode();
}
@ -155,7 +151,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost
{
_bossHud.Visible = true;
}
_gameManager.CameraTargetObject(_cameraMarker);
GameManager.Instance.CameraTargetObject(_cameraMarker);
StartPhase(CurrentPhase);
return true;