/// <summary>
/// 攻击结果.
/// </summary>
public enum UnitHitEventState
{
    Normal = 0, //普通攻击.
    Crit = 1, //暴击.
    Dodge = 2, //闪避.
    Parry = 3, //招架.
    Absorb = 4, //吸收.
    Immunity = 5, //免疫.
    IronMaiden = 6, //反伤.
    MP = 7, //法力.
    KillMonsterCrit = 8, //斩妖系统暴击

    //上面的值跟XmdsCommonServer.Plugin.XmdsVirtual.UnitHitEventState是一一对应的
    PoisonBuff = 100,   //奶妈毒BUFF
}

//暂时用byte, 子状态可能同时拥有多个是A + B + C的组合值
public enum UnitActionSubStatus : int
{
    None = 0,
    Stealth = 1 << 0,               // 隐身
    ChargeAtkIdle = 1 << 1,             // 蓄力空闲
    CanNotMove = 1 << 2,                // 不能移动
    Mocking = 1 << 3,               // 嘲讽状态
    ChargeAtkMove = 1 << 4,             // 蓄力移动
}

public enum SkillActiveState : byte
{
    Active = 0,
    Deactive = 1,
    DeactiveAndPause = 2,
    Hide = 3,
    ActiveAndHide = 4,
}

public enum XmdsSkillType : byte
{
    none = 0,        // 啥也不是,默认值         
    active = 1,        //主动攻击技能.
    petGiveAcitve = 2,        //宠物给人的主动技能
    normalAtk = 3,        //普通攻击.
    passive = 4,        //被动技能.
    petGivePassive = 5,        //宠物给玩家的被动技能
    cardSkill = 6,      //卡牌技能
}

//新增动作类型
public enum ActionEnum : byte
{
    None = 0,
    //蓄力, 后续动作会在前一个动作播放完成之后,自动播放下一段(跟IsSinleAction不同的是,这个可指定部分序列帧的连续性)
    chargeAtk = 1,          //这个客户端需要显示圈
    IsAutoNext = 2,         //这个客户端不需要显示圈
    forbidNext = 3,            //actionQueue在有多段的时候,禁止下一段(适用某个技能多种形态)
    forbidNext_lock = 4,            //同上,只不过next被锁定,不能自动释放,只能有代码控制(比如法师剑影)        
    showLeftTime = 5,            //使用当前动作时间作为CD
    forbidNext_showTime = 6,            //forbidNext + 显示倒计时圈
}