using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonAI.Zone.Helper
{
    public enum UnitActionStatus : byte
    {
        Pause = 0,
        Idle = 1,
        Move = 2,
        Skill = 3,
        Damage = 4,
        Dead = 5,
        Stun = 6,
        Pick = 7,
        Chaos = 8,
        Escape = 9,
		ChargeAtkMove = 10,			// client
        ChargeAtkIdle = 11,			// client
        CrossRobbery = 12,			// 新增渡劫状态      
        ServerSyncMove = 13,		// 服务器同步移动  
        ChuanGongA = 14,			// 传功A
        ChuanGongB = 15,			// 传功B
        DaZuo = 16,					// 打坐
        BuffLockStateAction = 17,   // GameEditor Buff中LockStateAction的动作状态
        HomeBack = 18,				// client-回城状态
        ClearYaoQi = 19,			// 仙盟净妖
        Jump = 20,                  // Jump状态
		Transport=21,				// 传送状态,不接受客户端move
        PetLock=22,                 // 随从锁定状态
		HitMove = 23,               // 受击后,进入强制移动状态
		BreakShield = 24,			// 破定状态
										
		
		//尽量往上面加
		Spawn = 100,
        Rebirth = 101,
        DaZuoRecoveryAttr = 102,   //打坐恢复玩家和宠物血量

        Max = DaZuoRecoveryAttr + 1,
    }  

    //暂时用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 + 显示倒计时圈
    }


    /// <summary>
    /// 客户端预演技能枚举
    /// </summary>
    public enum SimulationSkillEnum : byte
    {
        None = 0,
        Begin = 1,  //开始
        Doing = 2,  //预演中
        JumpEnd = 19,   //跳跃预演结束
        End = 20,   //结束
    }
    /// <summary>
    /// 客户端技能描述分类
    /// </summary>
    public enum SkillDescType : byte
    {
        None = 0,
        Displacement = 1, //位移技能
        //后续如果有在增加
    }
}