2021-02-11 01:13:03 -08:00
|
|
|
|
using Content.Shared.GameObjects.EntitySystems.ActionBlocker;
|
|
|
|
|
|
using Robust.Shared.GameObjects;
|
|
|
|
|
|
using Robust.Shared.Serialization;
|
2020-08-29 13:20:37 +02:00
|
|
|
|
|
|
|
|
|
|
namespace Content.Shared.GameObjects.Components.Mobs.State
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Defines the blocking effects of an associated <see cref="DamageState"/>
|
|
|
|
|
|
/// (i.e. Normal, Critical, Dead) and what effects to apply upon entering or
|
|
|
|
|
|
/// exiting the state.
|
|
|
|
|
|
/// </summary>
|
2020-12-07 14:52:55 +01:00
|
|
|
|
public interface IMobState : IExposeData, IActionBlocker
|
2020-08-29 13:20:37 +02:00
|
|
|
|
{
|
2020-12-07 14:52:55 +01:00
|
|
|
|
bool IsAlive();
|
|
|
|
|
|
|
|
|
|
|
|
bool IsCritical();
|
|
|
|
|
|
|
|
|
|
|
|
bool IsDead();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Checks if the mob is in a critical or dead state.
|
|
|
|
|
|
/// See <see cref="IsCritical"/> and <see cref="IsDead"/>.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>true if it is, false otherwise.</returns>
|
|
|
|
|
|
bool IsIncapacitated();
|
|
|
|
|
|
|
2020-08-29 13:20:37 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Called when this state is entered.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
void EnterState(IEntity entity);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Called when this state is left for a different state.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
void ExitState(IEntity entity);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Called when this state is updated.
|
|
|
|
|
|
/// </summary>
|
2020-12-07 14:52:55 +01:00
|
|
|
|
void UpdateState(IEntity entity, int threshold);
|
2020-08-29 13:20:37 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|