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(); }; } }); } }
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(); } }