Esempio n. 1
0
    /// <summary>
    /// 创建命令
    /// </summary>
    /// <param name="type">命令类型</param>
    public static ICmd Create(E_CmdType type)
    {
        ICmd cmd = null;

        if (UnusedCmds[type] != null && UnusedCmds[type].Count > 0)
        {
            cmd = UnusedCmds[type].Dequeue();
        }
        else
        {
            switch (type)
            {
            case E_CmdType.Idle:
                cmd = new CmdIdle();
                break;

            case E_CmdType.Move:
                cmd = new CmdMove();
                break;

            case E_CmdType.Attack:
                cmd = new CmdAttack();
                break;

            case E_CmdType.Death:
                cmd = new CmdDeath();
                break;

            case E_CmdType.WeaponShow:
                cmd = new CmdWeaponShow();
                break;

            default:
                Debug.LogError("No Cmd to Create!!! ICmd Type: " + type);
                break;
            }
        }
        if (cmd != null)
        {
            cmd.Reset();
            cmd.SetActive();
#if DEBUG
            UsedCmds.Add(cmd);
#endif
        }

        return(cmd);
    }
Esempio n. 2
0
    private void CreateWeaponShow()
    {
        CmdWeaponShow cmd = CmdFactory.Create(CmdFactory.E_CmdType.WeaponShow) as CmdWeaponShow;

        if (IsShow)
        {
            Owner.BlackBoard.WeaponState = E_WeaponState.Attacking;
        }
        else
        {
            Owner.BlackBoard.WeaponState = E_WeaponState.NotInHands;
        }

        cmd.IsShow = IsShow;
        Owner.BlackBoard.AddCmd(cmd);
    }