SupaLidlGame/State/Weapon/RangedIdleState.cs

47 lines
958 B
C#
Raw Normal View History

2023-05-26 22:28:08 -07:00
using Godot;
2023-08-08 00:54:00 -07:00
using SupaLidlGame.Extensions;
2023-05-26 22:28:08 -07:00
2023-06-03 18:21:46 -07:00
namespace SupaLidlGame.State.Weapon;
public partial class RangedIdleState : WeaponState
2023-05-26 22:28:08 -07:00
{
2023-06-03 18:21:46 -07:00
[Export]
2023-09-10 17:08:14 -07:00
public WeaponState FireState { get; set; }
2023-05-26 22:28:08 -07:00
2024-08-25 23:57:15 -07:00
[Export]
public WeaponState AltFireState { get; set; }
2023-06-03 18:21:46 -07:00
[Export]
public Items.Weapons.Ranged Weapon { get; set; }
2023-05-28 10:57:23 -07:00
2023-08-08 00:54:00 -07:00
[Export]
public AnimationPlayer AnimationPlayer { get; set; }
[Export]
public string AnimationKey { get; set; }
2023-06-03 18:21:46 -07:00
public override IState<WeaponState> Enter(IState<WeaponState> prev)
{
Weapon.Visible = !Weapon.ShouldHideIdle;
2023-08-08 00:54:00 -07:00
AnimationPlayer?.TryPlay(AnimationKey);
2023-06-03 18:21:46 -07:00
return null;
}
2023-05-26 22:28:08 -07:00
2023-06-03 18:21:46 -07:00
public override WeaponState Use()
{
return FireState;
}
2023-05-26 22:28:08 -07:00
2024-08-25 23:57:15 -07:00
public override WeaponState UseAlt()
{
GD.Print("Alt fire");
return AltFireState;
}
2023-06-03 18:21:46 -07:00
public override void Exit(IState<WeaponState> nextState)
{
Weapon.Visible = true;
2023-05-26 22:28:08 -07:00
}
}