private void UpdatePieceCoinDisplay() { List <int> allSceneType = mapModel.GetAllSceneType(); Dictionary <int, Config.sceneCell> sceneCellOfType = new Dictionary <int, Config.sceneCell>(); foreach (int t in allSceneType) { if (pieceGroupDict.ContainsKey(t)) { sceneCellOfType.Clear(); mapModel.FilterSceneCell(t, sceneCellOfType); Dictionary <int, MapPiece> pieceDict = pieceGroupDict[t].pieceDict; foreach (var sceneId in sceneCellOfType.Keys) { if (pieceDict.ContainsKey(sceneId)) { ScenePlayerDataMSS.SceneStateMSS sceneState = mapModel.GetSceneState(sceneId); bool unlocked = sceneState != null ? sceneState.unlocked > 0 : false; bool broswed = sceneState != null ? sceneState.browsed > 0 : false; if (unlocked && broswed) { pieceDict[sceneId].requiredStarText.text = MinerBigInt.ToDisplay(mapModel.GetSceneEarningsPerMinute(sceneId)) + GetL10NString("Ui_Text_67"); } } } } } }
private void OnSceneUnlockPageClose(int detail) { ScenePlayerDataMSS.SceneStateMSS sceneState = mapModel.GetSceneState(selectedPieceId); bool unlocked = sceneState != null ? sceneState.unlocked > 0 : false; bool broswed = sceneState != null ? sceneState.browsed > 0 : false; enterSceneButton.gameObject.SetActive(unlocked && broswed && mapModel.currSceneId != selectedPieceId); OnEnterSceneButtonClick(null); }
private void OnEnterSceneButtonClick(string str) { ScenePlayerDataMSS.SceneStateMSS sceneState = mapModel.GetSceneState(selectedPieceId); bool unlocked = sceneState != null ? sceneState.unlocked > 0 : false; if (unlocked && mapModel.currSceneId != selectedPieceId) { enterSceneButton.gameObject.SetActive(false); PageMgr.ClosePage(this); ZooGameLoader.GetInstance().ChangeScene(selectedPieceId); } }
/// <summary> /// 是否有一个场景被解锁,按指定类型 /// </summary> /// <param name="sceneType"></param> /// <returns></returns> public bool HasUnlockedSceneByType(int sceneType) { ScenePlayerDataMSS.SceneStateMSS sceneState = null; IDictionary <string, Config.sceneCell> allSceneCell = GetAllSceneCell(); foreach (var k in allSceneCell.Keys) { if (allSceneCell[k].scenetype == sceneType) { sceneState = GetSceneState(int.Parse(k)); if (sceneState != null && sceneState.unlocked > 0) { return(true); } } } return(false); }
/// <summary> /// 浏览场景 /// </summary> /// <param name="sceneId"></param> public void BrowseScene(int sceneId) { Config.sceneCell sceneCell = configInst.getCell(sceneId); if (sceneCell.israwopen < 1) { return; } ScenePlayerDataMSS.SceneStateMSS sceneState = GetSceneState(sceneId); if (sceneState == null) { sceneState = new ScenePlayerDataMSS.SceneStateMSS(); scenePlayerData.sceneStates.Add(sceneState); } if (sceneState.browsed < 1) { sceneState.browsed = 1; } }
private void SetSceneStateData(int pieceId) { ScenePlayerDataMSS.SceneStateMSS sceneState = mapModel.GetSceneState(pieceId); bool unlocked = sceneState != null ? sceneState.unlocked > 0 : false; bool broswed = sceneState != null ? sceneState.browsed > 0 : false; if (unlocked && !broswed) { //mapModel.BrowseScene(pieceId); //UpdatePieceStatesDisplay(); //var mainPage = PageMgr.GetPage<UIMainPage>(); //if (mainPage != null) // mainPage.UpdateDisplayForSceneStates(); PageMgr.ShowPage <UISceneUnlockPage>(pieceId); PageMgr.GetPage <UISceneUnlockPage>().onClose.AddListener(OnSceneUnlockPageClose); } else { enterSceneButton.gameObject.SetActive(false); //pieceInfoHint.gameObject.SetActive(false); if (pieceInfoHintAnimCoroutine != null) { GameManager.GetInstance().StopCoroutine(pieceInfoHintAnimCoroutine); pieceInfoHintAnimCoroutine = null; } var playerData = GlobalDataManager.GetInstance().playerData; int idx = PlayerData.GetcurrSceneIDByStar(playerData); ///回退 老场景不可点击 //if (sceneState != null && sceneState.sceneId == idx) //{ // enterSceneButton.gameObject.SetActive(unlocked && broswed && mapModel.currSceneId != selectedPieceId); //} enterSceneButton.gameObject.SetActive(unlocked && broswed && mapModel.currSceneId != selectedPieceId); pieceInfoHintAnimCoroutine = GameManager.GetInstance().StartCoroutine(FinishShowPieceInfoHint(pieceId)); } }
private void UpdatePieceStateDisplayOfType(int sceneType, bool hasOneUnlocked, Dictionary <int, Config.sceneCell> sceneCellOfType) { if (!pieceGroupDict.ContainsKey(sceneType)) { return; } Dictionary <int, MapPiece> pieceDict = pieceGroupDict[sceneType].pieceDict; foreach (int k in sceneCellOfType.Keys) { if (!pieceDict.ContainsKey(k)) { continue; } ScenePlayerDataMSS.SceneStateMSS sceneState = mapModel.GetSceneState(k); bool unlocked = sceneState != null ? sceneState.unlocked > 0 : false; bool broswed = sceneState != null ? sceneState.browsed > 0 : false; pieceDict[k].requiredStar.gameObject.SetActive(hasOneUnlocked); if (unlocked) { if (broswed) { if (pieceDict[k].unbrowseTween != null) { pieceDict[k].unbrowseTween.Kill(); pieceDict[k].unbrowseTween = null; } if (pieceDict[k].tipsBubble != null) { pieceDict[k].tipsBubble.gameObject.SetActive(false); Object.Destroy(pieceDict[k].tipsBubble.gameObject); } pieceDict[k].lockedSymbol.gameObject.SetActive(false); } else { pieceDict[k].lockedSymbol.gameObject.SetActive(true); if (pieceDict[k].unbrowseTween == null) { pieceDict[k].unbrowseTween = pieceDict[k].lockedSymbol.transform.DOLocalMoveX( pieceDict[k].lockedSymbolOrigPos.x + mapConfig.unbrowseSymbolAnimRange * 0.5f, mapConfig.unbrowseSymbolAnimDuration) .SetEase(mapConfig.unbrowseSymbolAnimCurve).SetLoops(int.MaxValue); } if (pieceDict[k].tipsBubble == null) { GameObject go = Object.Instantiate(tipsBubbleTmpl.gameObject); go.SetActive(true); go.transform.SetParent(/*pieceDict[k].pieceImage.transform*/ transform); go.transform.localScale = Vector3.one; go.transform.localRotation = Quaternion.identity; go.transform.position = pieceDict[k].tipsBubbleAnchor.position; go.transform.localPosition = go.transform.localPosition + (Vector3)mapConfig.unbrowseBubbleOffset; pieceDict[k].tipsBubble = go.transform; } } pieceDict[k].pieceImage.material = null; } else { pieceDict[k].lockedSymbol.gameObject.SetActive(hasOneUnlocked); pieceDict[k].pieceImage.material = mapConfig.pieceDarkMaterial; } if (unlocked && broswed) { pieceDict[k].nameText.gameObject.SetActive(true); int scenetype = Config.sceneConfig.getInstace().getCell(sceneState.sceneId).moneyid; string iconPath = Config.moneyConfig.getInstace().getCell(scenetype).moneyicon; int idx = PlayerData.GetcurrSceneIDByStar(GlobalDataManager.GetInstance().playerData); // 回退 修改完美经营 //if (sceneState.sceneId == GlobalDataManager.GetInstance().playerData.playerZoo.currSceneID || sceneState.sceneId == idx) if (sceneState.sceneId == idx) { pieceDict[k].requiredStarText.text = MinerBigInt.ToDisplay(mapModel.GetSceneEarningsPerMinute(k)) + GetL10NString("Ui_Text_67"); pieceDict[k].requiredIcon.sprite = ResourceManager.LoadSpriteFromPrefab(iconPath); pieceDict[k].requiredIcon.SetNativeSize(); pieceDict[k].requiredStarText.gameObject.SetActive(true); pieceDict[k].requiredIcon.gameObject.SetActive(true); pieceDict[k].perfecttext.gameObject.SetActive(false); } else { pieceDict[k].requiredStarText.gameObject.SetActive(false); pieceDict[k].requiredIcon.gameObject.SetActive(false); pieceDict[k].perfecttext.gameObject.SetActive(true); //pieceDict[k].perfecttext.text = GetL10NString("Ui_Text_120"); } } else { pieceDict[k].nameText.gameObject.SetActive(false); pieceDict[k].requiredIcon.sprite = mapConfig.starSprite; pieceDict[k].requiredIcon.SetNativeSize(); pieceDict[k].requiredStarText.text = sceneCellOfType[k].openstar.ToString(); } } }