namespace FL.Battle
{
    public enum EEntityState : uint
    {
        /// <summary>
        /// 待机
        /// </summary>
        Idle = 0,
        /// <summary>
        /// 死亡
        /// </summary>
        Dead = 0x01,
        /// <summary>
        /// 移动中
        /// </summary>
        Moving = 0x02,
        ///// <summary>
        ///// 警戒
        ///// </summary>
        //Alert,
        /// <summary>
        /// 战斗
        /// </summary>
        Battle = 0x04,

        /// <summary>
        /// 眩晕，停止移动、攻击
        /// </summary>
        Dizzy = 0x10,
        /// <summary>
        /// 冰冻，冻结，停止移动、攻击
        /// </summary>
        Freeze = 0x20,
        /// <summary>
        /// 麻痹，打断当次攻击，冷却中的技能cd回退到80%
        /// remain += (cd - remain) * 0.2 或者 remain = cd - (cd - remain) * 0.8
        /// </summary>
        Palsy = 0x40,


        #region 以下状态集合，只用于状态判断
        /// <summary>
        /// 中断移动的状态集合
        /// </summary>
        MoveBroken = Dead | Dizzy | Freeze | Palsy,
        /// <summary>
        /// 打断技能施法的状态集合
        /// </summary>
        SkillBroken = Dead | Dizzy | Freeze | Palsy,

        All = uint.MaxValue
        #endregion
    }
}
