Exemplo n.º 1
0
 void instance_KeyEvent(JoystickManager.PLAYER_INDEX player, JoystickManager.JOYSTICK_KEY key, JoystickManager.JOYSTICK_KEY_STATE state, JoystickManager.JOYSTICK_TYPE joysickType)
 {
     if (state == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
     {
         if (key == JoystickManager.JOYSTICK_KEY.KEY_BACK)
         {
             Load();
         }
     }
 }
Exemplo n.º 2
0
    public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        Sounder.instance.Play("返回按键");
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }

        if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }


        Sounder.instance.Play("返回按键");
        if (downloading)
        {
            confirm.Show(() =>
            {
                if (info != null)
                {
                    JLoader.instance.Remove(info);
                    info = null;
                    CharacterCard card = cards[characterIndex];
                    card.UpdateProgress(-1);
                    downloading = false;
                }
            }, "正在下载,要取消吗?");
        }
        else
        {
            BackToSongList();
        }
    }
Exemplo n.º 3
0
    void login_KeyEvent(JoystickManager.PLAYER_INDEX player, JoystickManager.JOYSTICK_KEY key, JoystickManager.JOYSTICK_KEY_STATE state, JoystickManager.JOYSTICK_TYPE joysickType)
    {
        if (loginUI.activeSelf == false)
        {
            return;
        }
        if (state != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }
        if (keyboard.gameObject.activeSelf || numKeyboard.gameObject.activeSelf)
        {
            Keyboard k = keyboard.gameObject.activeSelf ? keyboard : numKeyboard;
            switch (key)
            {
            case JoystickManager.JOYSTICK_KEY.KEY_LEFT:
                k.Move(-1, 0);
                break;

            case JoystickManager.JOYSTICK_KEY.KEY_RIGHT:
                k.Move(1, 0);
                break;

            case JoystickManager.JOYSTICK_KEY.KEY_UP:
                k.Move(0, -1);
                break;

            case JoystickManager.JOYSTICK_KEY.KEY_DOWN:
                k.Move(0, 1);
                break;

            case JoystickManager.JOYSTICK_KEY.KEY_OK:
                k.Enter();
                break;

            case JoystickManager.JOYSTICK_KEY.KEY_BACK:
                k.Cancel();
                break;
            }
            return;
        }


        switch (key)
        {
        case JoystickManager.JOYSTICK_KEY.KEY_LEFT:
            SwitchPanel(-1);
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_RIGHT:
            SwitchPanel(1);
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_UP:
            curPanel.Move(0, -1);
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_DOWN:
            curPanel.Move(0, 1);
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_OK:
            curPanel.Enter();
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_BACK:
            Invoke("Hide", 0.1f);
            break;
        }
    }
Exemplo n.º 4
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (!canCancle)
     {
         return;
     }
     if (WXLoginInfoPanel.instance != null && WXLoginInfoPanel.instance.loginUI != null && WXLoginInfoPanel.instance.loginUI.activeSelf)
     {
         return;
     }
     if ((Time.time - keyTime) < 0.3f)
     {
         return;
     }
     keyTime = Time.time;
     if (model.activeSelf)
     {
         model.SetActive(false);
         Sounder.instance.Play("返回按键");
     }
     else
     {
         if (!exit.gameObject.activeSelf)
         {
             exit.Show(() =>
             {
                 if (Application.platform == RuntimePlatform.Android)
                 {
                     (new AndroidJavaObject("java.lang.System")).CallStatic("exit", 0);
                 }
                 else
                 {
                     Application.Quit();
                 }
             });
         }
         else
         {
             exit.gameObject.SetActive(false);
         }
     }
 }
Exemplo n.º 5
0
    public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        //if (type == INPUT_TYPE.BLANKET && Application.platform== RuntimePlatform.Android) return;

        OnButtonBack();
    }
Exemplo n.º 6
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN && pauseUI.gameObject.activeSelf)
        {
            if ((Time.time - keyTime) < 0.3f)
            {
                return;
            }
            keyTime = Time.time;
            pauseUI.Move(x);
            Sounder.instance.Play("按键音效");
            if (pauseUI.gameObject.activeSelf == false)
            {
                SwitchPause();
            }
            return;
        }

        //测试版本
        if (type == INPUT_TYPE.JOYSTICK)
        {
            return;
        }

        SongInfo.DIRECTION d = SongInfo.DIRECTION.NONE;
        if (x > 0)
        {
            d = SongInfo.DIRECTION.RIGHT;
        }
        else if (x < 0)
        {
            d = SongInfo.DIRECTION.LEFT;
        }
        else if (y < 0)
        {
            d = SongInfo.DIRECTION.UP;
        }
        else if (y > 0)
        {
            d = SongInfo.DIRECTION.DOWN;
        }
        if (d == SongInfo.DIRECTION.NONE)
        {
            return;
        }
        int index = (int)player;

        if (playState == PLAY_STATE.PLAYING)
        {
            players[index].PressKey(d, keyState);
        }
    }
Exemplo n.º 7
0
    public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (!canOperate)
        {
            return;
        }
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }
        Sounder.instance.Play("项目分数弹出音效");
        switch (index)
        {
        case 0:
        case 1:
        case 2:
        case 5:
        case 6:
        case 8:
        case 9:
            ShowNextStep();
            break;

        case 4:
        case 7:
            Hide();
            break;

        case 3:
            Vector3 p = startBtn.position;
            p.z = 0;
            startBtn.transform.position = p;

            Hide();
            bg.SetActive(false);
            Show(0.5f);
            break;
        }
    }
Exemplo n.º 8
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (!GetCanPress())
        {
            return;
        }

        if (SongCard.IsDownloading())
        {
            if (buyConfirm.gameObject.activeSelf)
            {
                buyConfirm.Move(x);
            }
            return;
        }


        if (buyConfirm.gameObject.activeSelf)
        {
            buyConfirm.Move(x);
        }
        else if (alert.gameObject.activeSelf)
        {
            return;
        }
        else
        {
            Sounder.instance.Play("歌曲切换音效");
            if (list.downloading)
            {
                return;
            }
            if (x != 0)
            {
                difficult.Move(x);
            }
            else if (y != 0)
            {
                list.Move(y);
            }
        }
    }
Exemplo n.º 9
0
 public abstract void Move(int x, int y, INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player);
Exemplo n.º 10
0
    void instance_KeyEvent(JoystickManager.PLAYER_INDEX player, JoystickManager.JOYSTICK_KEY key, JoystickManager.JOYSTICK_KEY_STATE state, JoystickManager.JOYSTICK_TYPE joysickType)
    {
        if (DataUtils.runingAutoMode)
        {
            Global.CancelAutoMode();
            return;
        }
        pressTime = Time.time;
        switch (key)
        {
        case JoystickManager.JOYSTICK_KEY.KEY_UP:
            //if (Version.currentPlatform.ToString().IndexOf("WX_XRDS")!=-1) return;
            if (canPressUp)
            {
                Move(0, -1, INPUT_TYPE.JOYSTICK, state, player);
            }
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_DOWN:
            //if (Version.currentPlatform.ToString().IndexOf("WX_XRDS") != -1) return;
            if (canPressDown)
            {
                Move(0, 1, INPUT_TYPE.JOYSTICK, state, player);
            }
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_LEFT:
            //if (Version.currentPlatform.ToString().IndexOf("WX_XRDS") != -1) return;
            if (canPressLeft)
            {
                Move(-1, 0, INPUT_TYPE.JOYSTICK, state, player);
            }
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_RIGHT:
            //if (Version.currentPlatform.ToString().IndexOf("WX_XRDS") != -1) return;
            if (canPressRight)
            {
                Move(1, 0, INPUT_TYPE.JOYSTICK, state, player);
            }
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_OK:
            if (state == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN && (Time.time - enterPressTime) > 0.3f)
            {
                if (canPressEnter)
                {
                    PressEnter(INPUT_TYPE.JOYSTICK, state, player);
                }
                //enterPressTime = Time.time;
            }
            break;

        case JoystickManager.JOYSTICK_KEY.KEY_BACK:
            if (canPressCancel)
            {
                if (state == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
                {
                    Cancel(INPUT_TYPE.JOYSTICK, state, player);
                }
            }
            break;
        }

        //if (Version.currentPlatform == Version.PLAFTFORM_ENUM.OS_SHOW || Version.currentPlatform == Version.PLAFTFORM_ENUM.WX_SHOW)
        //{
        //    if (state == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN &&
        //    key == JoystickManager.JOYSTICK_KEY.KEY_Y)
        //    {
        //        /*
        //        if (JoystickManager.instance.GetKey(JoystickManager.PLAYER_INDEX.P1, JoystickManager.JOYSTICK_KEY.KEY_A, true) &&
        //            JoystickManager.instance.GetKey(JoystickManager.PLAYER_INDEX.P1, JoystickManager.JOYSTICK_KEY.KEY_B, true) &&
        //            JoystickManager.instance.GetKey(JoystickManager.PLAYER_INDEX.P1, JoystickManager.JOYSTICK_KEY.KEY_X, true))
        //        {
        //            DataUtils.AddMoney(1000);
        //            Global.CallAndroidStatic("StaticAlert", "加金钱1000");
        //        }*/
        //    }
        //}
    }
Exemplo n.º 11
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     Debug.Log("press cancel");
     if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN && type == INPUT_TYPE.JOYSTICK)
     {
         Check(type, false, true);
     }
 }
Exemplo n.º 12
0
 public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     Debug.Log("press Enter");
     if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
     {
         Check(type, true, false);
     }
 }
Exemplo n.º 13
0
 public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     Debug.Log("press " + x + "," + y);
     if (keyState == JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
     {
         Check(type, false, false);
     }
     return;
 }
Exemplo n.º 14
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     BackToSceneSongList();
 }
Exemplo n.º 15
0
 public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
 }
Exemplo n.º 16
0
    public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (SongCard.IsDownloading())
        {
            if (buyConfirm.gameObject.activeSelf)
            {
                buyConfirm.Press();
            }
            return;
        }

        if (buyConfirm.gameObject.activeSelf)
        {
            buyConfirm.Press();
        }
        else if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }
        else
        {
            if (list.Press())
            {
                GoNext();
            }
        }
    }
Exemplo n.º 17
0
    public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (SongCard.IsDownloading())
        {
            if (!buyConfirm.gameObject.activeSelf)
            {
                buyConfirm.Show(() =>
                {
                    list.CancelDownload();
                }, "正在下载,是否取消?");
            }
            else
            {
                buyConfirm.gameObject.SetActive(false);
            }
            return;
        }

        Sounder.instance.Play("返回按键");
        if (buyConfirm.gameObject.activeSelf)
        {
            buyConfirm.gameObject.SetActive(false);
        }
        else if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }
        else
        {
            LoadLevel("Title", false);
        }
    }
Exemplo n.º 18
0
 public abstract void Cancel(INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player);
Exemplo n.º 19
0
 public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (!canOperate)
     {
         return;
     }
     switch (index)
     {
     case 0:
     case 1:
     case 2:
         ShowNextStep();
         break;
     }
 }
Exemplo n.º 20
0
    public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (hasSelect)
        {
            return;
        }
        if (downloading)
        {
            if (confirm.gameObject.activeSelf)
            {
                confirm.Press();
                return;
            }
            return;
        }
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }
        if (confirm.gameObject.activeSelf)
        {
            confirm.Press();
            return;
        }
        else if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }

        if (Global.isAllResLocal)
        {
            SelectCharacter(index, true);
            return;
        }

        switch (index)
        {
        case 2:
        case 3:
        case 6:
        case 7:
            //直接进入游戏
            SelectCharacter(index, true);
            return;
        }

        CharacterCard card  = cards[index - 1];
        int           money = DataUtils.GetMoney();

        bool moneyEnough = money >= card.data.price;

        if (card.isLock)
        {
            confirm.Show(() =>
            {
                if (moneyEnough)
                {
                    Sounder.instance.Play("消费音效");
                    DataUtils.SetCharacterIsUnLock(card.data.id);
                    DataUtils.AddMoney(-card.data.price);
                    card.isLock = false;
                    card.RefreshLock();
                    lockSprite.SetActive(cards[index - 1].isLock);
                    DownloadVideo();
                }
                else
                {
                    Sounder.instance.Play("BAD音效");
                    alert.Show("您的音乐币不足");
                }
            }, "花费" + card.data.price + "音乐币解锁");
        }
        else
        {
            DownloadVideo();
        }
    }
Exemplo n.º 21
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (!canOperate)
     {
         return;
     }
     if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
     {
         return;
     }
     switch (index)
     {
     case 0:
     case 1:
     case 2:
     case 3:
         ShowNextStep();
         break;
     }
 }
Exemplo n.º 22
0
 public override void Cancel(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (hasSelect)
     {
         return;
     }
     Sounder.instance.Play("返回按键");
     if (downloading)
     {
         confirm.Show(() => {
             if (info != null)
             {
                 JLoader.instance.Remove(info);
                 info = null;
                 CharacterCard card = cards[index - 1];
                 card.UpdateProgress(-1);
                 downloading = false;
             }
         }, "正在下载,要取消吗?");
     }
     else
     {
         LoadLevel("Prop", false);
     }
 }
Exemplo n.º 23
0
 public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
 {
     if (playState == PLAY_STATE.GAME_OVER)
     {
         Sounder.instance.Play("按键音效");
         JumpNext();
     }
     else
     {
         if (pauseUI.gameObject.activeSelf)
         {
             pauseUI.Press();
             Sounder.instance.Play("返回按键");
         }
     }
 }
Exemplo n.º 24
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (hasSelect)
        {
            return;
        }
        if ((Time.time - pressTime) < 0.5f)
        {
            return;
        }
        pressTime = Time.time;
        if (downloading)
        {
            if (confirm.gameObject.activeSelf)
            {
                confirm.Move(x);
            }
            return;
        }

        if (confirm.gameObject.activeSelf)
        {
            confirm.Move(x);
            return;
        }

        if (okBtnSelectFrame.activeSelf)
        {
            okBtnSelectFrame.SetActive(false);
        }
        else if (alert.gameObject.activeSelf)
        {
            return;
        }


        if (x != 0)
        {
            index += x;
        }
        else if (y != 0)
        {
            index += y * 4;
        }

        if (index < 1)
        {
            index = 8;
        }
        else if (index > 8)
        {
            index = 1;
        }
        SelectCard(index);
    }
Exemplo n.º 25
0
    public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (!inited)
        {
            return;
        }
        if ((Time.time - keyTime) < 0.3f)
        {
            return;
        }
        keyTime = Time.time;
        if (WXLoginInfoPanel.instance != null && WXLoginInfoPanel.instance.loginUI != null && WXLoginInfoPanel.instance.loginUI.activeSelf)
        {
            return;
        }


        if (exit.gameObject.activeSelf)
        {
            exit.Press();
            return;
        }
        else if (model.activeSelf == false)
        {
            if (canEnter)
            {
                EnterSelectMode();
            }
            return;
        }

        RemoveKeyEvent();

        EnterNext();
    }
Exemplo n.º 26
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (Time.time - pressTime < 0.3f)
        {
            return;
        }

        pressTime = Time.time;

        if (downloading)
        {
            return;
        }
        Sounder.instance.Play("按键音效");
        if (alert.gameObject.activeSelf)
        {
            return;
        }

        if (confirm.gameObject.activeSelf)
        {
            confirm.Move(x);
            return;
        }

        if (curItem == null || curItem == okBtn)
        {
            okBtnFrame.SetActive(false);
            FocusOnItem(okBtn, x, y);
        }
        else
        {
            FocusOnItem(curItem, x, y);
        }
    }
Exemplo n.º 27
0
    public override void Move(int x, int y, BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }
        if ((Time.time - keyTime) < 0.3f)
        {
            return;
        }
        if (WXLoginInfoPanel.instance != null && WXLoginInfoPanel.instance.loginUI != null && WXLoginInfoPanel.instance.loginUI.activeSelf)
        {
            return;
        }
        if (!inited)
        {
            return;
        }
        if (canEnter == false)
        {
            return;
        }

        keyTime = Time.time;
        if (exit.gameObject.activeSelf)
        {
            if (x != 0)
            {
                exit.Move(x);
            }
            return;
        }
        else if (model.activeSelf)
        {
            Sounder.instance.Play("按键音效");
            pIndex++;
            if (pIndex > 2)
            {
                pIndex = 1;
            }
            else if (pIndex < 1)
            {
                pIndex = 2;
            }
            p1SelectEff.SetActive(pIndex == 1);
            p2SelectEff.SetActive(pIndex == 2);

            options.GetComponent <Animation>().Play("Select" + pIndex + "P");
            GetComponent <Animation>().Play("Select" + pIndex + "PCharacter");
        }
        else
        {
            if (!WXLoginInfoPanel.instance.loginUI.activeSelf)
            {
                if (y == -1)
                {
                    WXLoginInfoPanel.instance.ShowLogin();
                    Sounder.instance.Play("按键音效");
                }
            }
        }
    }
Exemplo n.º 28
0
    public override void PressEnter(BaseScene.INPUT_TYPE type, JoystickManager.JOYSTICK_KEY_STATE keyState, JoystickManager.PLAYER_INDEX player)
    {
        if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
        {
            return;
        }


        if (alert.gameObject.activeSelf)
        {
            alert.gameObject.SetActive(false);
            return;
        }


        if (curItem == okBtn)
        {
            if (DataUtils.isAutoMode)
            {
                Global.GoAutoMode();
            }

            //加载下个场景
            EnterGame();
            return;
        }


        //=====================================CHARACTER===================
        if (inProp == false)
        {
            if (downloading)
            {
                if (confirm.gameObject.activeSelf)
                {
                    confirm.Press();
                    return;
                }
                return;
            }
            if (keyState != JoystickManager.JOYSTICK_KEY_STATE.KEY_DOWN)
            {
                return;
            }
            if (confirm.gameObject.activeSelf)
            {
                confirm.Press();
                return;
            }
            else if (alert.gameObject.activeSelf)
            {
                alert.gameObject.SetActive(false);
                return;
            }


            switch (characterIndex)
            {
            case 1:
            case 2:
            case 5:
            case 6:
                //直接进入游戏
                SetCharacter(characterIndex, true);
                return;
            }

            CharacterCard card  = cards[characterIndex];
            int           money = DataUtils.GetMoney();

            bool moneyEnough = money >= card.data.price;
            if (card.isLock)
            {
                confirm.Show(() =>
                {
                    if (moneyEnough)
                    {
                        Sounder.instance.Play("消费音效");
                        DataUtils.SetCharacterIsUnLock(card.data.id);
                        DataUtils.AddMoney(-card.data.price);
                        card.isLock = false;
                        card.RefreshLock();
                        lockSprite.SetActive(cards[characterIndex].isLock);
                        DownloadVideo();
                    }
                    else
                    {
                        Sounder.instance.Play("BAD音效");
                        alert.Show("您的音乐币不足");
                    }
                }, "花费" + card.data.price + "音乐币解锁");
            }
            else
            {
                DownloadVideo();
            }
        }
        else
        {
            PropData lastSelectData = null;

            PropCard c = curItem as PropCard;
            if (c == null)
            {
                return;
            }
            switch (c.data.id)
            {
            case 1:
            case 2:
            case 3:
                //纠正ID从1开始
                if (DataUtils.isAutoMode)
                {
                    return;
                }
                if (c.GetIsBuy())
                {
                    c.SetBuy(false);
                    DataUtils.AddMoney(c.data.price);
                    DataUtils.correntPropCount = 0;
                    Sounder.instance.Play("购买道具音效取消");
                    return;
                }

                if (DataUtils.correntPropCount > 0)
                {
                    lastSelectData = Global.PROP_TABLE[DataUtils.correntPropCount / 5];     //ID1,2,3就是纠正道具
                }

                if (TryBuyItem(c.data.price, lastSelectData == null ? 0 : lastSelectData.price))
                {
                    c.SetBuy(true);
                    DataUtils.correntPropCount = c.data.id * 5;
                    if (lastSelectData != null)
                    {
                        propCards[lastSelectData.id - 1].SetBuy(false);
                    }
                    Sounder.instance.Play("购买道具音效");
                }
                else
                {
                    alert.Show("您的音乐币不足");
                    Sounder.instance.Play("BAD音效");
                }
                break;

            case 4:
            case 5:
            case 6:
                //456
                if (DataUtils.isAutoMode)
                {
                    return;
                }
                if (c.GetIsBuy())
                {
                    c.SetBuy(false);
                    DataUtils.AddMoney(c.data.price);
                    DataUtils.lifeType = Global.LIFE_TYPE.LV1;
                    Sounder.instance.Play("购买道具音效取消");
                    return;
                }

                if (DataUtils.lifeType > Global.LIFE_TYPE.LV1)
                {
                    lastSelectData = Global.PROP_TABLE[(int)DataUtils.lifeType + 3];     //ID 4,5,6就是血量
                }

                if (TryBuyItem(c.data.price, lastSelectData == null?0:lastSelectData.price))
                {
                    DataUtils.lifeType = (Global.LIFE_TYPE)c.data.id - 3;
                    c.SetBuy(true);
                    if (lastSelectData != null)
                    {
                        propCards[lastSelectData.id - 1].SetBuy(false);
                    }
                    Sounder.instance.Play("购买道具音效");
                }
                else
                {
                    alert.Show("您的音乐币不足");
                    Sounder.instance.Play("BAD音效");
                }
                break;

            case 7:
                c.SetBuy(!c.GetIsBuy());
                DataUtils.isAutoMode = c.GetIsBuy();
                if (DataUtils.isAutoMode)
                {
                    Sounder.instance.Play("购买道具音效");
                    CancelBuy();
                }
                else
                {
                    Sounder.instance.Play("购买道具音效取消");
                }

                for (int i = 0; i < propCards.Length; i++)
                {
                    if (propCards[i] != c)
                    {
                        propCards[i].SetEnable(!DataUtils.isAutoMode);
                    }
                }
                break;
            }
        }
    }