// Copyright (C) 2023 Nicholas Maltbie
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
// associated documentation files (the "Software"), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge, publish, distribute,
// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
using nickmaltbie.StateMachineUnity.Event;
namespace nickmaltbie.OpenKCC.Character.Events
{
///
/// Event when player steps on the ground when falling/sliding.
///
public class GroundedEvent : IEvent
{
public static readonly GroundedEvent Instance = new GroundedEvent();
private GroundedEvent() { }
}
///
/// Event when the player starts sprinting.
///
public class StartSprintEvent : IEvent
{
public static readonly StartSprintEvent Instance = new StartSprintEvent();
private StartSprintEvent() { }
}
///
/// Event when the player stops sprinting.
///
public class StopSprintEvent : IEvent
{
public static readonly StopSprintEvent Instance = new StopSprintEvent();
private StopSprintEvent() { }
}
///
/// Event when the player steps off the ground.
///
public class LeaveGroundEvent : IEvent
{
public static readonly LeaveGroundEvent Instance = new LeaveGroundEvent();
private LeaveGroundEvent() { }
}
///
/// Event when the player jumps off the ground.
///
public class JumpEvent : IEvent
{
public static readonly JumpEvent Instance = new JumpEvent();
private JumpEvent() { }
}
///
/// Event when the player steps on a slope too steep to stand on.
///
public class SteepSlopeEvent : IEvent
{
public static readonly SteepSlopeEvent Instance = new SteepSlopeEvent();
private SteepSlopeEvent() { }
}
///
/// Event when player starts movement input.
///
public class StartMoveInput : IEvent
{
public static readonly StartMoveInput Instance = new StartMoveInput();
private StartMoveInput() { }
}
///
/// Event when player stops movement input.
///
public class StopMoveInput : IEvent
{
public static readonly StopMoveInput Instance = new StopMoveInput();
private StopMoveInput() { }
}
}