Files
MobileShooter/Assets/Darkmatter/Code/Domain/Player/AirboneState.cs
2025-12-30 12:43:44 -08:00

61 lines
1.4 KiB
C#

using Darkmatter.Core;
using System;
using UnityEngine;
namespace Darkmatter.Domain
{
public class AirboneState : State<PlayerStateMachine>
{
public AirboneState(PlayerStateMachine runner) : base(runner) { }
private IInputReader inputReader => runner.inputReader;
private PlayerConfigSO playerConfig => runner.playerConfig;
public override void Enter()
{
Debug.Log("Entering Player AirboneState ");
}
public override void Update()
{
HandlePlayerMovement();
HandleShoooting();
CheckForStateBreak();
}
private void HandleShoooting()
{
runner.Shoot(inputReader.isShooting);
}
public override void LateUpdate()
{
HandlePlayerRotation();
}
public override void Exit()
{
Debug.Log("Exiting Player AriboneState");
}
//Airbone Functions
private void HandlePlayerMovement()
{
runner.Move(inputReader.moveInput, playerConfig.moveSpeed);
}
private void HandlePlayerRotation()
{
runner.RotateCamera(inputReader.lookInput);
}
private void CheckForStateBreak()
{
if (runner.playerPawn.isGrounded)
{
runner.ChangeState(new LocomotionState(runner));
}
}
}
}