47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
public enum NPC_EnumState
|
|
{
|
|
InCover,
|
|
InDirectPoint,
|
|
InRunning,
|
|
}
|
|
|
|
public interface NPC_BaseState
|
|
{
|
|
NPC_EnumState State { get; }
|
|
bool InCover { get; }
|
|
bool IsRunning { get; }
|
|
bool InDirectPoint { get; }
|
|
float HitChance { get; }
|
|
float DoDamageChance { get; }
|
|
}
|
|
|
|
public class NPC_DirectPointState : NPC_BaseState
|
|
{
|
|
public bool InCover => false;
|
|
public bool IsRunning => false;
|
|
public bool InDirectPoint => false;
|
|
public float HitChance => SettingsReader.Instance.GetSettings.GetHitChanceInDirectPoint;
|
|
public float DoDamageChance => SettingsReader.Instance.GetSettings.DoDamageChanceInDirectPoint;
|
|
public NPC_EnumState State => NPC_EnumState.InDirectPoint;
|
|
}
|
|
|
|
public class NPC_RunningState : NPC_BaseState
|
|
{
|
|
public bool InCover => false;
|
|
public bool IsRunning => true;
|
|
public bool InDirectPoint => false;
|
|
public float HitChance => SettingsReader.Instance.GetSettings.GetHitChanceInRunning;
|
|
public float DoDamageChance => SettingsReader.Instance.GetSettings.DoDamageChanceInRunning;
|
|
public NPC_EnumState State => NPC_EnumState.InRunning;
|
|
}
|
|
|
|
public class NPC_InCoverState : NPC_BaseState
|
|
{
|
|
public bool InCover => true;
|
|
public bool IsRunning => false;
|
|
public bool InDirectPoint => false;
|
|
public float HitChance => SettingsReader.Instance.GetSettings.GetHitChanceInCover;
|
|
public float DoDamageChance => SettingsReader.Instance.GetSettings.DoDamageChanceInCover;
|
|
public NPC_EnumState State => NPC_EnumState.InCover;
|
|
}
|