예제 #1
0
파일: UIGameEnd.cs 프로젝트: vcan/CapsUnity
    private void OnPlayOnClicked()
    {
        if ((GameLogic.Singleton.GetGameFlow() == TGameFlow.EGameState_Playing && GlobalVars.CurStageData.StepLimit > 0 && GameLogic.Singleton.PlayingStageData.StepLimit > 0) || //若是限制步数的关卡,还有步数
            (GameLogic.Singleton.GetGameFlow() == TGameFlow.EGameState_Playing && GlobalVars.CurStageData.TimeLimit > 0 && GameLogic.Singleton.GetTimeRemain() > 0) ||            //若是限制时间的关卡,还有时间
            (GameLogic.Singleton.GetGameFlow() != TGameFlow.EGameState_End && GameLogic.Singleton.GetGameFlow() != TGameFlow.EGameState_Playing)                                  //若不是在Playing状态
            )
        {
            //直接关闭窗口恢复游戏
            HideWindow(delegate()
            {
                GameLogic.Singleton.ResumeGame();
            });
            UIWindowManager.Singleton.GetUIWindow <UIMainMenu>().ShowWindow();
        }
        else                                            //若没步数或时间了,就要购买和使用道具
        {
            HideWindow(delegate()
            {
                if (GlobalVars.CurStageData.StepLimit > 0)
                {
                    GlobalVars.UsingItem = PurchasedItem.ItemAfterGame_PlusStep;
                }
                if (GlobalVars.CurStageData.TimeLimit > 0)
                {
                    GlobalVars.UsingItem = PurchasedItem.ItemAfterGame_PlusTime;
                }

                if ((int)Unibiller.GetCurrencyBalance("gold") >= 70)            //是否有足够的钱购买道具
                {
                    UIWindowManager.Singleton.GetUIWindow <UIPurchaseNoTarget>().ShowWindow();
                }
                else
                {
                    UIPurchaseNotEnoughMoney uiWindow = UIWindowManager.Singleton.GetUIWindow <UIPurchaseNotEnoughMoney>();
                    uiWindow.ShowWindow();
                    GlobalVars.OnCancelFunc = delegate()                  //若取消,还显示GameEnd窗口
                    {
                        ShowWindow();
                        GlobalVars.UsingItem = PurchasedItem.None;
                    };
                    GlobalVars.OnPurchaseFunc = delegate()                //若成功,显示使用道具窗口
                    {
                        UIWindowManager.Singleton.GetUIWindow <UIPurchaseNoTarget>().ShowWindow();
                    };
                }
            });
        }
    }
예제 #2
0
    void UserOrBuyItem(PurchasedItem item)
    {
        if (GameLogic.Singleton.GetGameFlow() != TGameFlow.EGameState_Playing || !GameLogic.Singleton.IsMoveAble())
        {
            return;
        }

        GlobalVars.UsingItem = item;

        //先判断是否够钱
        if (Unibiller.GetCurrencyBalance("gold") < CapsConfig.GetItemPrice(item))       //若钱不够,购买窗口
        {
            UIPurchaseNotEnoughMoney uiWindow = UIWindowManager.Singleton.GetUIWindow <UIPurchaseNotEnoughMoney>();
            uiWindow.ShowWindow();
            GlobalVars.OnPurchaseFunc = delegate()
            {
                UserOrBuyItem(item);
            };
            GlobalVars.OnCancelFunc = delegate()
            {
                GlobalVars.UsingItem = PurchasedItem.None;
            };
            return;
        }

        if (item == PurchasedItem.ItemInGame_Hammer)
        {
            UIWindow uiWindow = UIWindowManager.Singleton.GetUIWindow <UIPurchaseTarget>();
            uiWindow.ShowWindow();
        }
        else
        {
            UIWindow uiWindow = UIWindowManager.Singleton.GetUIWindow <UIPurchaseNoTarget>();
            uiWindow.ShowWindow();
        }
    }