private IEnumerator LoadingBarAnimationQuitExplore() { loadingBar.changeDuration = 0.6f; loadingBar.value = 30; float timer = 0; //GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.homeCanvasBundleName, "HomeCanvas", () => { // TransformManager.FindTransform("HomeCanvas").GetComponent<HomeViewController>().SetUpHomeView(); //}, true, false); Transform exploreManager = TransformManager.FindTransform("HomeCanvas"); while (exploreManager == null || timer < 0.6f) { exploreManager = TransformManager.FindTransform("HomeCanvas"); timer += Time.unscaledDeltaTime; yield return(null); } loadingBar.changeDuration = 1.2f; loadingBar.value = 100; yield return(new WaitForSecondsRealtime(2.0f)); if (lampCoroutine != null) { StopCoroutine(lampCoroutine); } if (finishLoadingCallBack != null) { finishLoadingCallBack(); } GameManager.Instance.soundManager.PlayBgmAudioClip(CommonData.homeBgmName); GameManager.Instance.UIManager.RemoveCanvasCache("LoadingCanvas"); }
public static void GeneratePlayerJsonData() { Player p = TransformManager.FindTransform("Player").GetComponent <Player> (); // p.allEquipedEquipments = new Equipment[6]; p.physicalHurtScaler = 1.0f; p.magicalHurtScaler = 1.0f; p.critHurtScaler = 1.5f; PlayerData pd = new PlayerData(p); string originalPlayerDataPath = CommonData.originDataPath + "/PlayerData_ori.json"; DataHandler.SaveInstanceDataToFile <PlayerData> (pd, originalPlayerDataPath); string playerDataPath = CommonData.playerDataFilePath; DataHandler.SaveInstanceDataToFile <PlayerData>(pd, playerDataPath); }
public void OnConfirmButtonClick() { // int wordTypeIndex = settingView.GetCurrentWordType (index); // // if (wordTypeIndex == -1) { // return; // } settingView.QuitAlertHUD(); GameManager.Instance.persistDataManager.ResetPlayerDataToOriginal(); switch (currentSelectWordTypeIndex) { case 0: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.CET4; break; case 1: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.CET6; break; case 2: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.Daily; break; case 3: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.Bussiness; break; } ExploreManager exploreManager = TransformManager.FindTransform("ExploreManager").GetComponent <ExploreManager> (); if (exploreManager != null) { exploreManager.QuitExploreScene(false); } settingChanged = true; OnQuitSettingViewButtonClick(); }
public void QuitExploreScene(bool saveData) { SoundManager.Instance.StopBgm(); if (saveData) { GameManager.Instance.persistDataManager.SaveCompletePlayerData(); } PlayerData playerData = GameManager.Instance.persistDataManager.LoadPlayerData(); Player.mainPlayer.SetUpPlayerWithPlayerData(playerData); Camera.main.transform.Find("Background").gameObject.SetActive(false); Camera.main.transform.SetParent(null); battlePlayerCtr.QuitExplore(); mapGenerator.DestroyInstancePools(); TransformManager.DestroyTransfromWithName(CommonData.exploreScenePoolContainerName, TransformRoot.Plain); Destroy(this.gameObject); GameManager.Instance.gameDataCenter.ReleaseDataWithDataTypes(new GameDataCenter.GameDataType[] { GameDataCenter.GameDataType.MapSprites, GameDataCenter.GameDataType.SkillSprites, GameDataCenter.GameDataType.Monsters, GameDataCenter.GameDataType.NPCs, GameDataCenter.GameDataType.GameLevelDatas }); MyResourceManager.Instance.UnloadAssetBundle(CommonData.exploreSceneBundleName, true); TransformManager.FindTransform("ExploreCanvas").GetComponent <ExploreUICotroller> ().QuitExplore(); GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.homeCanvasBundleName, "HomeCanvas", () => { TransformManager.FindTransform("HomeCanvas").GetComponent <HomeViewController> ().SetUpHomeView(); }, false, false); }
// 退出背包界面 public void OnQuitBagPlaneButtonClick() { itemToAddWhenBagFull = null; bagView.QuitBagPlane(); Transform exploreCanvas = TransformManager.FindTransform("ExploreCanvas"); if (exploreCanvas == null) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.homeCanvasBundleName, "HomeCanvas", () => { TransformManager.FindTransform("HomeCanvas").GetComponent <HomeViewController> ().SetUpHomeView(); // GameManager.Instance.gameDataCenter.ReleaseDataWithNames(new string[]{"AllItemSprites","AllMaterialSprites","AllMaterials","AllItemModels"}); // TransformManager.DestroyTransfromWithName ("PoolContainerOfBagCanvas", TransformRoot.PoolContainer); }); } Time.timeScale = 1; }
public void QuitCraftingRecipesHUD() { if (quitCallBack != null) { quitCallBack(); } if (zoomInCoroutine != null) { StopCoroutine(zoomInCoroutine); } gameObject.SetActive(false); if (TransformManager.FindTransform("BagCanvas").GetComponent <Canvas> ().isActiveAndEnabled) { return; } Time.timeScale = 1f; }
/// <summary> /// 探索按钮点击响应 /// </summary> public void OnExploreButtonClick() { // 如果需要选择单词难度 if (Player.mainPlayer.needChooseDifficulty) { GameManager.Instance.soundManager.PlayAudioClip(CommonData.paperAudioName); // 显示难度选择界面 homeView.SetUpDifficultyChoosePlane(OnDifficultyChoose); } else { homeView.ShowMaskImage(); GameManager.Instance.soundManager.StopBgm(); // 初始化加载界面 GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.loadingCanvasBundleName, "LoadingCanvas", delegate { TransformManager.FindTransform("LoadingCanvas").GetComponent <LoadingViewController>().SetUpLoadingView(LoadingType.EnterExplore, LoadExplore, ShowExplore); }); } }
private void LoadAllSkills() { if (mAllSkills.Count > 0) { return; } GameObject[] skillCache = MyResourceManager.Instance.LoadAssets <GameObject> (CommonData.allSkillsBundleName); Transform skillsContainer = TransformManager.FindOrCreateTransform("AllSkills"); for (int i = 0; i < skillCache.Length; i++) { GameObject skill = GameObject.Instantiate(skillCache [i]); skill.name = skillCache [i].name; skill.transform.SetParent(skillsContainer); mAllSkills.Add(skill.GetComponent <Skill>()); } SortSkillsById(mAllSkills); }
/// <summary> /// 选择了一种工具后的响应方法 /// </summary> /// <param name="tool">Tool.</param> /// <param name="mapItem">Map item.</param> private void OnToolChoiceButtonClick(Consumables tool, MapItem mapItem) { QuitToolChoicePlane(); // 背包中的工具数量-1 player.RemoveItem(tool, 1); // 播放对应的音效 SoundManager.Instance.PlayAudioClip("MapEffects/" + mapItem.audioClipName); Vector3 mapItemPos = mapItem.transform.position; MapGenerator mapGenerator = TransformManager.FindTransform("ExploreManager").GetComponent <MapGenerator> (); int[,] mapWalkableInfoArray = mapGenerator.mapWalkableInfoArray; switch (mapItem.mapItemType) { case MapItemType.Stone: case MapItemType.Tree: (mapItem as Obstacle).DestroyObstacle(null); mapWalkableInfoArray [(int)mapItemPos.x, (int)mapItemPos.y] = 1; break; case MapItemType.TreasureBox: TreasureBox tb = mapItem as TreasureBox; tb.UnlockTreasureBox(null); mapWalkableInfoArray [(int)mapItemPos.x, (int)mapItemPos.y] = 1; mapGenerator.SetUpAwardInMap(tb.awardItem, mapItemPos); break; case MapItemType.Plant: Plant plant = mapItem as Plant; mapGenerator.AddMapItemInPool(mapItem.transform); mapWalkableInfoArray [(int)mapItemPos.x, (int)mapItemPos.y] = 1; mapGenerator.SetUpAwardInMap(plant.attachedItem, mapItemPos); break; } SetUpBottomConsumablesButtons(); }
/// <summary> /// 更改词库确认按钮点击响应 /// </summary> public void OnConfirmButtonClick() { settingView.QuitAlertHUD(); switch (currentSelectWordTypeIndex) { case 0: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.Simple; break; case 1: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.Medium; break; case 2: GameManager.Instance.gameDataCenter.gameSettings.wordType = WordType.Master; break; } Player.mainPlayer.needChooseDifficulty = false; GameManager.Instance.persistDataManager.ResetPlayerDataToOriginal(); GameManager.Instance.persistDataManager.ClearCurrentMapWordsRecordAndSave(); if (ExploreManager.Instance != null) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.loadingCanvasBundleName, "LoadingCanvas", delegate { TransformManager.FindTransform("LoadingCanvas").GetComponent <LoadingViewController>().SetUpLoadingView(LoadingType.QuitExplore, delegate { ExploreManager.Instance.QuitExploreScene(); }, null); }); } settingView.UpdateDifficultySelectedIcons(); settingChanged = true; }
public void QuitUnlockScrollDetailHUD() { if (quitCallBack != null) { quitCallBack(); } unlockButton.gameObject.SetActive(false); resolveButton.gameObject.SetActive(false); if (zoomInCoroutine != null) { StopCoroutine(zoomInCoroutine); } gameObject.SetActive(false); if (TransformManager.FindTransform("BagCanvas").GetComponent <Canvas> ().isActiveAndEnabled) { return; } Time.timeScale = 1f; }
/// <summary> /// 背包按钮点击响应 /// </summary> public void OnBagButtonClick() { if (ExploreManager.Instance.expUICtr.rejectNewUI) { return; } Time.timeScale = 0; if (ExploreManager.Instance.battlePlayerCtr.isInMoving) { ExploreManager.Instance.battlePlayerCtr.StopMoveAtEndOfCurrentStep(); } ExploreManager.Instance.expUICtr.rejectNewUI = true; // 初始化背包界面并显示 GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.bagCanvasBundleName, "BagCanvas", () => { Transform bagCanvas = TransformManager.FindTransform("BagCanvas"); bagCanvas.GetComponent <BagViewController>().SetUpBagView(true, delegate { ExploreManager.Instance.expUICtr.rejectNewUI = false; }); }, false, true); }
public void AddItemToBag() { if (Player.mainPlayer.CheckBagFull()) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.bagCanvasBundleName, "BagCanvas", () => { TransformManager.FindTransform("BagCanvas").GetComponent <BagViewController>().AddBagItemWhenBagFull(itemCreated); }, false, true); return; } // 更新玩家物品数据 Player.mainPlayer.AddItem(itemCreated); spellView.QuitCreateDetailHUD(); string tint = string.Format("获得{0} x {1}", itemCreated.itemName, itemCreated.itemCount); Sprite itemSprite = GameManager.Instance.gameDataCenter.allItemSprites.Find(delegate(Sprite obj) { return(obj.name == itemCreated.spriteName); }); spellView.SetUpTintHUD(tint, itemSprite); itemCreated = null; }
/// <summary> /// 退出探索场景 /// </summary> public void QuitExploreScene() { Time.timeScale = 1; this.gameObject.SetActive(false); GameManager.Instance.persistDataManager.SaveDataInExplore(null, true); // 停止播放探索背景音乐 GameManager.Instance.soundManager.StopBgm(); Camera.main.transform.SetParent(null); Transform exploreMask = Camera.main.transform.Find("ExploreMask"); exploreMask.GetComponent <UnityArmatureComponent> ().animation.Stop(); exploreMask.gameObject.SetActive(false); // 玩家退出探索场景 battlePlayerCtr.QuitExplore(); // 退出探索UI界面 expUICtr.QuitExplore(); // 释放无用资源 GameManager.Instance.gameDataCenter.ReleaseDataWithDataTypes(new GameDataCenter.GameDataType[] { GameDataCenter.GameDataType.GameLevelDatas, GameDataCenter.GameDataType.EquipmentModels, GameDataCenter.GameDataType.EquipmentSprites, GameDataCenter.GameDataType.ConsumablesModels, GameDataCenter.GameDataType.ConsumablesSprites, GameDataCenter.GameDataType.SpecialItemModels, GameDataCenter.GameDataType.SpecialItemSprites, GameDataCenter.GameDataType.SkillGemstoneModels, GameDataCenter.GameDataType.SkillGemstoneSprites, GameDataCenter.GameDataType.SpellItemModels, GameDataCenter.GameDataType.SkillScrollModels, GameDataCenter.GameDataType.SkillScrollSprites, GameDataCenter.GameDataType.CharacterSprites, GameDataCenter.GameDataType.ChatRecord, GameDataCenter.GameDataType.Diary, GameDataCenter.GameDataType.Monsters, GameDataCenter.GameDataType.MonstersUI, GameDataCenter.GameDataType.MonstersData, GameDataCenter.GameDataType.NPCs, GameDataCenter.GameDataType.Skills, GameDataCenter.GameDataType.SkillSprites, GameDataCenter.GameDataType.Effects, GameDataCenter.GameDataType.MapSprites, GameDataCenter.GameDataType.MapTileAtlas, GameDataCenter.GameDataType.MiniMapSprites, GameDataCenter.GameDataType.CurrentMapMiniMapRecord, GameDataCenter.GameDataType.MapEventsRecords, GameDataCenter.GameDataType.CurrentMapEventsRecord, GameDataCenter.GameDataType.CurrentMapWordsRecord, GameDataCenter.GameDataType.Proverbs, GameDataCenter.GameDataType.Puzzle, GameDataCenter.GameDataType.BagCanvas, GameDataCenter.GameDataType.ShareCanvas, GameDataCenter.GameDataType.NPCCanvas, GameDataCenter.GameDataType.ExploreScene, GameDataCenter.GameDataType.SettingCanvas, GameDataCenter.GameDataType.ShareCanvas, GameDataCenter.GameDataType.GuideCanvas }); GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.homeCanvasBundleName, "HomeCanvas", () => { TransformManager.FindTransform("HomeCanvas").GetComponent <HomeViewController> ().SetUpHomeView(); }, true, false); Destroy(this.gameObject, 0.3f); }
/// <summary> /// 显示探索场景 /// </summary> private void ShowExplore() { TransformManager.FindTransform("ExploreCanvas").GetComponent <ExploreUICotroller>().ShowExploreSceneSlowly(); }
/// <summary> /// 进入探索时加载进度条的加载显示逻辑 /// </summary> /// <returns>The bar animation enter explore.</returns> private IEnumerator LoadingBarAnimationEnterExplore() { // 0.6s的时间进度条加载30% loadingBar.changeDuration = 0.6f; loadingBar.value = 30; float timer = 0; // 等待探索场景从内存中加载出来 Transform exploreManager = TransformManager.FindTransform("ExploreManager"); while (exploreManager == null || timer < 0.6f) { exploreManager = TransformManager.FindTransform("ExploreManager"); timer += Time.unscaledDeltaTime; yield return(null); } // 0.8s的时间进度条加载到80% loadingBar.changeDuration = 0.8f; loadingBar.value = 80; // 等待1.6s yield return(new WaitForSecondsRealtime(1.6f)); // 0.4s的时间进度条加载到100% loadingBar.changeDuration = 0.4f; loadingBar.value = 100; timer = 0; // 等待探索场景初始化完成 while (!ExploreManager.Instance.exploreSceneReady || timer < 0.4f) { timer += Time.unscaledDeltaTime; yield return(null); } // 等待0.3s yield return(new WaitForSecondsRealtime(0.3f)); //Player.mainPlayer.canSave = true; // 停止灯光闪烁 if (lampCoroutine != null) { StopCoroutine(lampCoroutine); } // 加载完成回调 if (finishLoadingCallBack != null) { finishLoadingCallBack(); } // 如果时新用户,此时应该进入引导场景,不播放探索音乐 // 如果不是新用户,播放探索音乐 if (!Player.mainPlayer.isNewPlayer) { GameManager.Instance.soundManager.PlayBgmAudioClip(CommonData.exploreBgmName); } // 移除加载场景 GameManager.Instance.UIManager.RemoveCanvasCache("LoadingCanvas"); }
public void SetUpExploreCanvas() { rejectNewUI = false; wordRecords = GameManager.Instance.gameDataCenter.currentMapWordRecords; transitionMask.gameObject.SetActive(true); pauseHUD.InitPauseHUD(true, ConfirmQuitToHomeView, null, null); wordHUD.InitWordHUD(true, QuitWordHUDCallBack, ChooseAnswerInWordHUDCallBack, ConfirmCharacterFillInWordHUDCallBack); creationView.ClearCharacterFragments(); if (!GameManager.Instance.UIManager.UIDic.ContainsKey("BagCanvas")) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.bagCanvasBundleName, "BagCanvas", null, false, true, false); } if (!GameManager.Instance.UIManager.UIDic.ContainsKey("NPCCanvas")) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.npcCanvasBundleName, "NPCCanvas", null, false, true, false); } gameLevelLocationText.text = string.Format("第{0}层", Player.mainPlayer.currentLevelIndex + 1); wordRecordText.text = string.Empty; if (wordRecords.Count > 0) { wordRecordText.text = wordRecords[wordRecords.Count - 1].spell; } bpUICtr.InitExploreAgentView(); bpUICtr.SetUpExplorePlayerView(Player.mainPlayer); bmUICtr.InitExploreAgentView(); GetComponent <Canvas>().enabled = true; transitionMask.color = Color.black; if (!Player.mainPlayer.isNewPlayer) { bool playerDataExist = DataHandler.FileExist(CommonData.playerDataFilePath); if (!playerDataExist) { GameManager.Instance.persistDataManager.SaveCompletePlayerData(); } transitionMask.gameObject.SetActive(false); //if (hasResetGame) //{ // //GameManager.Instance.persistDataManager.ResetPlayerDataToOriginal(); // transitionView.PlayTransition(TransitionType.ResetGameHint, delegate // { // transitionMask.gameObject.SetActive(false); // }); //} } else { ExploreManager.Instance.MapWalkableEventsStopAction(); transitionMask.gameObject.SetActive(true); TransitionType transitionType = GameManager.Instance.persistDataManager.versionUpdateWhenLoad ? TransitionType.VersionUpdate : TransitionType.Introduce; transitionView.PlayTransition(transitionType, delegate { GameManager.Instance.persistDataManager.versionUpdateWhenLoad = false; GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.guideCanvasBundleName, "GuideCanvas", delegate { TransformManager.FindTransform("GuideCanvas").GetComponent <GuideViewController>().ShowNewPlayerGuide(delegate { ExploreManager.Instance.MapWalkableEventsStartAction(); }); }); transitionMask.gameObject.SetActive(false); }); } creationView.InitCharacterFragmentsHUD(SetUpSpellItemView); //wordRecords.Clear(); miniCameraSize = TransformManager.FindTransform("MiniMapCamera").GetComponent <Camera>().orthographicSize; LoadMiniMapTexture(); UpdateMiniMapDisplay(ExploreManager.Instance.battlePlayerCtr.transform.position); if (Player.mainPlayer.currentLevelIndex < CommonData.maxLevelIndex) { for (int i = 0; i < monstersInfoWithDisplayUI.Count; i++) { Transform monsterUI = monstersInfoWithDisplayUI[i].monsterUI; monsterUIPool.AddInstanceToPool(monsterUI.gameObject); } monstersInfoWithDisplayUI.Clear(); GetMonstersDataAndUI(); monstersDisplayView.InitMonsterDisplayView(monstersInfoWithDisplayUI); monsterUIPool.ClearInstancePool(); } }
private IEnumerator LoadingBarAnimation() { yield return(GameManager.Instance != null); GameManager.Instance.soundManager.PlayBgmAudioClip(CommonData.homeBgmName, true); loadingBar.changeDuration = 0.2f; loadingBar.value = 10; float timer = 0; GameLoader gameLoader = Camera.main.GetComponent <GameLoader>(); while (gameLoader == null || timer < 0.4f) { yield return(null); gameLoader = Camera.main.GetComponent <GameLoader>(); timer += Time.deltaTime; } yield return(new WaitUntil(() => gameLoader.dataReady)); loadingBar.changeDuration = 1f; loadingBar.value = 60; //GameManager.Instance.SaveAllData(); yield return(new WaitForSecondsRealtime(1.6f)); GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.homeCanvasBundleName, "HomeCanvas", () => { HomeViewController homeViewController = TransformManager.FindTransform("HomeCanvas").GetComponent <HomeViewController>(); homeViewController.SetUpHomeView(); if (Application.internetReachability == NetworkReachability.NotReachable) { homeViewController.homeView.ShowNoAvalableNetHintHUD(); } else { homeViewController.homeView.HideNoAvalableNetHintHUD(); } GameManager.Instance.soundManager.PlayBgmAudioClip(CommonData.homeBgmName); }); Transform homeCanvas = TransformManager.FindTransform("HomeCanvas"); while (homeCanvas == null || timer < 0.6f) { homeCanvas = TransformManager.FindTransform("HomeCanvas"); timer += Time.unscaledDeltaTime; yield return(null); } loadingBar.changeDuration = 0.6f; loadingBar.value = 100; yield return(new WaitForSecondsRealtime(1f)); //this.gameObject.SetActive(false); GameManager.Instance.UIManager.RemoveCanvasCache("UpdateDataCanvas"); }
/// <summary> /// 在地图上生成奖励物品 /// </summary> /// <param name="reward">Reward.</param> /// <param name="rewardPosition">Reward position.</param> /// <param name="rewardPool">Reward pool.</param> public void SetUpRewardInMap(Item reward, Vector3 rewardPosition, InstancePool rewardPool) { this.reward = reward; this.rewardPool = rewardPool; sr.sprite = GameManager.Instance.gameDataCenter.GetGameItemSprite(reward); transform.position = new Vector3(rewardPosition.x, rewardPosition.y, rewardPosition.z); sr.transform.position = new Vector3(rewardPosition.x, rewardPosition.y + 0.5f, rewardPosition.z); sr.sortingOrder = -Mathf.RoundToInt(rewardPosition.y); gameObject.SetActive(true); // 检查人物背包是否已经满了 bool bagFull = Player.mainPlayer.CheckBagFull(reward); bool npcCanvasOnTop = false; Canvas npcCanvas = TransformManager.FindTransform("NPCCanvas").GetComponent <Canvas>(); npcCanvasOnTop = npcCanvas.enabled; // 背包满了 if (bagFull) { // 提示背包已满 if (npcCanvasOnTop) { npcCanvas.GetComponent <NPCViewController>().tintHUD.SetUpSingleTextTintHUD("背包已满"); } else { ExploreManager.Instance.expUICtr.SetUpSingleTextTintHUD("背包已满"); } bc2d.enabled = true; // 奖励物品在地图上漂浮 if (rewardFloatCoroutine != null) { StopCoroutine(rewardFloatCoroutine); } rewardFloatCoroutine = RewardFloat(); StartCoroutine(rewardFloatCoroutine); ExploreManager.Instance.newMapGenerator.mapWalkableInfoArray[Mathf.RoundToInt(rewardPosition.x), Mathf.RoundToInt(rewardPosition.y)] = 2; } else { // 玩家获得物品 if (!npcCanvasOnTop) { ExploreManager.Instance.ObtainReward(reward); } bc2d.enabled = false; // 物品飞向玩家 RewardFlyToPlayer(delegate { AddToPool(rewardPool); ExploreManager.Instance.expUICtr.UpdateBottomBar(); }, true); } }
/// <summary> /// 在物品详细信息页点击了使用按钮(消耗品) /// </summary> public void OnUseButtonClick() { Debug.Log("使用了" + currentSelectItem.itemName); bool consumblesUsedInExploreScene = false; Consumables consumables = currentSelectItem as Consumables; Agent.PropertyChange propertyChange = new Agent.PropertyChange(); switch (consumables.itemName) { case "药剂": case "草药": case "蓝莓": case "菠菜": case "胡萝卜": case "樱桃": case "南瓜": case "蘑菇": case "辣椒": propertyChange = Player.mainPlayer.UseMedicines(consumables); bagView.SetUpPlayerStatusPlane(propertyChange); consumblesUsedInExploreScene = false; break; case "卷轴": Player.mainPlayer.RemoveItem(consumables, 1); Player.mainPlayer.ResetBattleAgentProperties(true); TransformManager.FindTransform("ExploreManager").GetComponent <ExploreManager> ().QuitExploreScene(true); consumblesUsedInExploreScene = false; break; case "锄头": case "锯子": case "镰刀": case "钥匙": case "树苗": case "火把": case "水": case "地板": case "土块": case "开关": consumblesUsedInExploreScene = true; break; } bagView.QuitItemDetailHUD(); if (consumblesUsedInExploreScene) { OnQuitBagPlaneButtonClick(); exploreManager.GetComponent <ExploreManager>().clickForConsumablesPos = true; exploreManager.GetComponent <ExploreManager>().ShowConsumablesValidPointTintAround(consumables); } if (!Player.mainPlayer.CheckBagFull()) { AddItemInWait(); } bagView.SetUpCurrentBagItemsPlane(); }
public void InitBattlePlayer() { Transform canvas = TransformManager.FindTransform("ExploreCanvas"); bpUICtr = canvas.GetComponent <BattlePlayerUIController> (); }
/// <summary> /// 移动到下一个节点 /// </summary> private void MoveToNextPosition() { Vector3 nextPos = Vector3.zero; boxCollider.enabled = true; if (pathPosList.Count > 0) { nextPos = pathPosList [0]; if (ArriveEndPoint() && armatureCom.animation.lastAnimationName != "wait") { PlayRoleAnim("wait", 0, null); return; } bool resetWalkAnim = false; if (Mathf.RoundToInt(nextPos.x) == Mathf.RoundToInt(transform.position.x)) { if (nextPos.y < transform.position.y) { if (modelActive != playerForward) { resetWalkAnim = true; } ActiveBattlePlayer(true, false, false); } else if (nextPos.y > transform.position.y) { if (modelActive != playerBackWard) { resetWalkAnim = true; } ActiveBattlePlayer(false, true, false); } } if (Mathf.RoundToInt(nextPos.y) == Mathf.RoundToInt(transform.position.y)) { if (modelActive != playerSide) { resetWalkAnim = true; } else if ((nextPos.x > transform.position.x && armatureCom.armature.flipX == true) || (nextPos.x < transform.position.x && armatureCom.armature.flipX == false)) { resetWalkAnim = true; } ActiveBattlePlayer(false, false, true); bool nextPosLeft = nextPos.x < transform.position.x; armatureCom.armature.flipX = nextPosLeft; towards = nextPosLeft ? MyTowards.Left : MyTowards.Right; } if (isIdle) { resetWalkAnim = true; } if (resetWalkAnim) { PlayRoleAnim("walk", 0, null); } } // 到达终点前的单步移动开始前进行碰撞检测 // 1.如果碰撞体存在,则根据碰撞体类型给exploreManager发送消息执行指定回调 // 2.如果未检测到碰撞体,则开始本次移动 if (pathPosList.Count == 1) { Vector3 rayStartPos = (transform.position + pathPosList [0]) / 2; RaycastHit2D r2d = Physics2D.Linecast(rayStartPos, pathPosList [0], collosionLayer); if (r2d.transform != null) { switch (r2d.transform.tag) { case "monster": StopWalkBeforeEvent(); if (modelActive != playerSide) { ActiveBattlePlayer(false, false, true); } enterMonster(r2d.transform); return; case "npc": StopWalkBeforeEvent(); enterNpc(r2d.transform); return; // case "workbench": // StopWalkBeforeEvent (); // enterWorkBench (r2d.transform); // return; case "crystal": StopWalkBeforeEvent(); enterCrystal(r2d.transform); return; case "billboard": StopWalkBeforeEvent(); enterBillboard(r2d.transform); return; case "movablefloor": break; case "firetrap": break; case "hole": StopWalkBeforeEvent(); enterHole(r2d.transform); return; case "movablebox": StopWalkBeforeEvent(); enterMovableBox(r2d.transform); return; case "obstacle": StopWalkBeforeEvent(); enterObstacle(r2d.transform); return; case "treasurebox": StopWalkBeforeEvent(); enterTreasureBox(r2d.transform); return; case "normalswitch": StopWalkBeforeEvent(); enterTrapSwitch(r2d.transform); return; case "normaltrap": break; case "transport": StopWalkBeforeEvent(); TransformManager.FindTransform("ExploreManager").GetComponent <ExploreManager> ().EnterNextLevel(); return; case "door": StopWalkBeforeEvent(); enterDoor(r2d.transform); return; case "launcher": StopWalkBeforeEvent(); return; case "plant": StopWalkBeforeEvent(); enterPlant(r2d.transform); return; case "pressswitch": break; case "docoration": StopWalkBeforeEvent(); return; } } } // 路径中没有节点 // 按照行动路径已经将所有的节点走完 if (pathPosList.Count == 0) { // 走到了终点 if (ArriveEndPoint()) { moveTweener.Kill(true); backgroundMoveTweener.Kill(true); PlayRoleAnim("wait", 0, null); // Debug.Log ("到达终点"); } else { Debug.Log(string.Format("actual pos:{0}/ntarget pos:{1},predicat pos{2}", transform.position, moveDestination, singleMoveEndPos)); throw new System.Exception("路径走完但是未到终点"); } return; } // 如果还没有走到终点 if (!ArriveEndPoint()) { SoundManager.Instance.PlayAudioClip("Other/sfx_Footstep"); // 记录下一节点位置 singleMoveEndPos = nextPos; // 向下一节点移动 MoveToPosition(nextPos); // 标记单步移动中 inSingleMoving = true; } else { moveTweener.Kill(true); backgroundMoveTweener.Kill(true); PlayRoleAnim("wait", 0, null); } }
public void OnBuyButtonClick() { if (currentSelectedItem == null) { return; } bool buySuccess = PlayerBuyGoods(currentSelectedItem); string tint = ""; if (!buySuccess) { tint = "水晶不足"; tintHUD.SetUpTintHUD(tint, null); return; } if (Player.mainPlayer.CheckBagFull()) { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.bagCanvasBundleName, "BagCanvas", () => { TransformManager.FindTransform("BagCanvas").GetComponent <BagViewController> ().AddBagItemWhenBagFull(currentSelectedItem); }, false, true); } else { switch (currentSelectedItem.itemType) { case ItemType.UnlockScroll: tint = string.Format("获得 解锁卷轴{0}{1}{2}", CommonData.diamond, currentSelectedItem.itemName, CommonData.diamond); break; case ItemType.CraftingRecipes: tint = string.Format("获得 合成卷轴{0}{1}{2}", CommonData.diamond, currentSelectedItem.itemName, CommonData.diamond); break; default: tint = string.Format("获得 {0} x1", currentSelectedItem.itemName); break; } Sprite goodsSprite = GameManager.Instance.gameDataCenter.allItemSprites.Find(delegate(Sprite obj) { return(obj.name == currentSelectedItem.spriteName); }); tintHUD.SetUpTintHUD(tint, goodsSprite); } bpUICtr.UpdateItemButtonsAndStatusPlane(); currentSelectedItem = null; ClearItemDetail(); if ((currentEnteredNpc as Trader).itemsAsGoodsOfCurrentLevel.Count == 0) { QuitTradePlane(); return; } SetUpTradePlane(); }
public static void InitBoss() { string monsterDataPath = "/Users/houlianghong/Desktop/MyGameData/boss.csv"; MonsterModel[] monsterModels = LoadMonsterModels(monsterDataPath); for (int i = 0; i < monsterModels.Length; i++) { MonsterModel mm = monsterModels[i]; string monsterName = mm.monsterSkeName; Transform monster = TransformManager.FindTransform(monsterName); if (monster == null) { Debug.LogFormat("未找到名为{0}的怪物", monsterName); continue; } Monster monsterScript = monster.gameObject.GetComponent <Monster>(); if (monsterScript == null) { monsterScript = monster.gameObject.AddComponent <Monster>(); } //BattleMonsterController bmcScript = monster.gameObject.GetComponent<BattleMonsterController>(); MapMonster mmScript = monster.gameObject.GetComponent <MapMonster>(); if (mmScript == null) { mmScript = monster.gameObject.AddComponent <MapMonster>(); } monsterScript.monsterId = mm.monsterId; monsterScript.agentName = mm.monsterName; monsterScript.agentLevel = 1; monsterScript.rewardGold = mm.gold; monsterScript.rewardExperience = mm.experience; monsterScript.originalMaxHealth = mm.maxHealth; monsterScript.health = mm.maxHealth; monsterScript.maxHealth = mm.maxHealth; monsterScript.health = mm.maxHealth; monsterScript.mAttackInterval = mm.attackInterval; monsterScript.originalAttack = mm.attack; monsterScript.attack = mm.attack; monsterScript.originalMagicAttack = mm.magicAttack; monsterScript.magicAttack = mm.magicAttack; monsterScript.originalArmor = mm.armor; monsterScript.armor = mm.armor; monsterScript.originalMagicResist = mm.magicResist; monsterScript.magicResist = mm.magicResist; monsterScript.originalArmorDecrease = mm.armorDecrease; monsterScript.armorDecrease = mm.armorDecrease; monsterScript.originalMagicResistDecrease = mm.magicResistDecrease; monsterScript.magicResistDecrease = mm.magicResistDecrease; monsterScript.originalDodge = mm.dodge; monsterScript.dodge = mm.dodge; monsterScript.originalCrit = mm.crit; monsterScript.crit = mm.crit; monsterScript.originalCritHurtScaler = mm.critHurtScaler; monsterScript.critHurtScaler = mm.critHurtScaler; monsterScript.originalPhysicalHurtScaler = 1f; monsterScript.physicalHurtScaler = 1f; monsterScript.originalMagicalHurtScaler = 1f; monsterScript.magicalHurtScaler = 1f; //monsterScript.extraPoisonHurt = 0; } Debug.Log("boss init finish"); }
private IEnumerator PlayTransition(string[] transitionStrings, CallBack finishTransitionCallBack) { if (transitionType != TransitionType.None && transitionType != TransitionType.VersionUpdate) { transitionPlaneMask.enabled = true; yield return(new WaitForSeconds(1.0f)); transitionPlaneMask.enabled = false; } Transform loadingCanvas = TransformManager.FindTransform("LoadingCanvas"); while (loadingCanvas != null) { yield return(null); } if (transitionType == TransitionType.ResetGameHint) { resetGameDataHintText.enabled = true; } else { resetGameDataHintText.enabled = false; } if (transitionStrings != null) { int totalSentenceCount = transitionStrings.Length; transitionTextContainer.localPosition = new Vector3(0, totalSentenceCount * heightBase / 2, 0); transitionPlaneMask.enabled = false; clickTintText.enabled = false; float alphaChangeSpeed = 1.0f / fadeInTime; float alpha = 0; for (int i = 0; i < totalSentenceCount; i++) { Text t = Instantiate(transitionTextModel.gameObject, transitionTextContainer).GetComponent <Text>(); t.text = transitionStrings[i]; alpha = 0; while (alpha < 1) { t.color = new Color(1, 1, 1, alpha); //alpha += alphaChangeSpeed * Time.unscaledDeltaTime; alpha += alphaChangeSpeed * Time.deltaTime; yield return(null); } //yield return new WaitForSecondsRealtime(sentenceInterval); yield return(new WaitForSeconds(sentenceInterval)); } bool clickContinue = false; switch (transitionType) { case TransitionType.Introduce: transitionPlaneMask.enabled = true; transitionPlaneMask.color = new Color(0, 0, 0, 0); transitionPlaneMask.raycastTarget = true; clickTintText.text = "点击屏幕继续"; clickTintText.enabled = true; alpha = 0.5f; clickContinue = true; break; case TransitionType.None: case TransitionType.VersionUpdate: case TransitionType.Death: break; case TransitionType.End: transitionPlaneMask.enabled = true; transitionPlaneMask.color = new Color(0, 0, 0, 0); transitionPlaneMask.raycastTarget = true; clickTintText.text = "点击屏幕重置进度"; clickTintText.enabled = true; alpha = 0.5f; clickContinue = true; break; case TransitionType.ResetGameHint: transitionPlaneMask.enabled = true; transitionPlaneMask.color = new Color(0, 0, 0, 0); transitionPlaneMask.raycastTarget = true; clickTintText.text = "点击屏幕继续"; clickTintText.enabled = true; alpha = 0.5f; clickContinue = true; break; } // 如果需要点击屏幕才可以继续的情况 if (clickContinue) { while (!hasUserClick) { while (alpha < 1f) { clickTintText.color = new Color(1, 1, 1, alpha); //alpha += alphaChangeSpeed * Time.unscaledDeltaTime / 2; alpha += alphaChangeSpeed * Time.deltaTime / 2; if (hasUserClick) { break; } yield return(null); } while (alpha > 0.5f) { clickTintText.color = new Color(1, 1, 1, alpha); alpha -= alphaChangeSpeed * Time.deltaTime / 2; if (hasUserClick) { break; } yield return(null); } } } alpha = 0; while (alpha < 1) { transitionPlaneMask.color = new Color(0, 0, 0, alpha); //alpha += alphaChangeSpeed * Time.unscaledDeltaTime; alpha += alphaChangeSpeed * Time.deltaTime; yield return(null); } } switch (transitionType) { case TransitionType.Introduce: case TransitionType.VersionUpdate: GameManager.Instance.soundManager.PlayBgmAudioClip(CommonData.exploreBgmName); Player.mainPlayer.isNewPlayer = false; GameManager.Instance.persistDataManager.SaveCompletePlayerData(); break; case TransitionType.None: case TransitionType.Death: break; case TransitionType.End: PlayRecord playRecord = new PlayRecord(); List <PlayRecord> playRecords = GameManager.Instance.gameDataCenter.allPlayRecords; playRecords.Add(playRecord); GameManager.Instance.persistDataManager.SavePlayRecords(playRecords); break; case TransitionType.ResetGameHint: break; } if (finishTransitionCallBack != null) { finishTransitionCallBack(); } this.gameObject.SetActive(false); for (int i = 0; i < transitionTextContainer.childCount; i++) { Destroy(transitionTextContainer.GetChild(i).gameObject, 0.3f); } }
public void OnUnlockedItemsButtonClick() { GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.unlockedItemsCanvasBundleName, "UnlockedItemsCanvas", () => { TransformManager.FindTransform("UnlockedItemsCanvas").GetComponent <UnlockedItemsViewController>().SetUpUnlockedItemsView(); }, false, true); }
/// <summary> /// 根据数据名称释放数据资源 /// </summary> /// <param name="type">Type.</param> private void ReleaseDataWithName(GameDataType type) { switch (type) { case GameDataType.GameSettings: mGameSettings = null; break; case GameDataType.GameLevelDatas: mGameLevelDatas.Clear(); break; case GameDataType.EquipmentModels: mAllEquipmentModels.Clear(); break; case GameDataType.ConsumablesModels: mAllConsumablesModels.Clear(); break; case GameDataType.SkillGemstoneModels: mAllPropertyGemstoneModels.Clear(); break; case GameDataType.SpecialItemModels: mAllSpecialItemModels.Clear(); break; case GameDataType.SpellItemModels: mAllSpellItemModels.Clear(); break; case GameDataType.SkillScrollModels: mAllSkillScrollModels.Clear(); break; case GameDataType.EquipmentSprites: mAllEquipmentSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allEquipmentSpritesBundleName, true); break; case GameDataType.ConsumablesSprites: mAllConsumablesSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allConsumablesSpritesBundleName, true); break; case GameDataType.SkillGemstoneSprites: mAllPropertyGemstoneSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allPropertyGemstoneSpritesBundleName, true); break; case GameDataType.SpecialItemSprites: mAllSpecialItemSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allSpecialItemSpritesBundleName, true); break; case GameDataType.SkillScrollSprites: mAllSkillScrollSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allSkillScrollSpritesBundleName, true); break; case GameDataType.MapSprites: mAllMapSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allMapSpritesBundleName, true); break; case GameDataType.MapTileAtlas: MyResourceManager.Instance.UnloadAssetBundle(CommonData.mapTileset_1_BundleName, true); MyResourceManager.Instance.UnloadAssetBundle(CommonData.mapTileset_2_BundleName, true); MyResourceManager.Instance.UnloadAssetBundle(CommonData.mapTileset_3_BundleName, true); MyResourceManager.Instance.UnloadAssetBundle(CommonData.mapTileset_4_BundleName, true); MyResourceManager.Instance.UnloadAssetBundle(CommonData.mapTileset_5_BundleName, true); break; case GameDataType.CharacterSprites: mAllCharacterSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allCharacterSpritesBundleName, true); break; case GameDataType.Skills: mAllSkills.Clear(); TransformManager.DestroyTransfromWithName("AllSkills"); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allSkillsBundleName, true); break; case GameDataType.SkillSprites: mAllSkillSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allSkillSpritesBundleName, true); break; case GameDataType.MiniMapSprites: mAllMinimapSprites.Clear(); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allMinimapSpritesBundleName, true); break; case GameDataType.Monsters: MyResourceManager.Instance.UnloadAssetBundle(CommonData.allMonstersBundleName, true); break; case GameDataType.MonstersUI: MyResourceManager.Instance.UnloadAssetBundle(CommonData.allMonstersUIBundleName, true); break; case GameDataType.MonstersData: mAllMonstersData.Clear(); break; case GameDataType.NPCs: MyResourceManager.Instance.UnloadAssetBundle(CommonData.allMapNpcBundleName, true); break; case GameDataType.Effects: mAllEffects.Clear(); TransformManager.DestroyTransfromWithName("AllEffects"); MyResourceManager.Instance.UnloadAssetBundle(CommonData.allEffectsBundleName, true); break; case GameDataType.Diary: mAllDiaryModels.Clear(); break; case GameDataType.Proverbs: mAllProverbs.Clear(); break; case GameDataType.Puzzle: mAllPuzzles.Clear(); break; case GameDataType.PlayRecord: mAllPlayRecords.Clear(); break; case GameDataType.ChatRecord: mChatRecords.Clear(); break; case GameDataType.CurrentMapMiniMapRecord: mCurrentMapMiniMapRecord = null; break; case GameDataType.MapEventsRecords: mMapEventsRecords.Clear(); break; case GameDataType.CurrentMapEventsRecord: mCurrentMapEventsRecord = null; break; case GameDataType.CurrentMapWordsRecord: mCurrentMapWordRecords.Clear(); break; case GameDataType.BagCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("BagCanvas"); break; case GameDataType.SettingCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("SettingCanvas"); break; case GameDataType.ShareCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("ShareCanvas"); break; case GameDataType.NPCCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("NPCCanvas"); break; case GameDataType.LoadingCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("LoadingCanvas"); break; case GameDataType.GuideCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("GuideCanvas"); break; case GameDataType.RecordCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("RecordCanvas"); break; case GameDataType.HomeCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("HomeCanvas"); break; case GameDataType.ExploreScene: GameManager.Instance.UIManager.RemoveCanvasCache("ExploreCanvas"); MyResourceManager.Instance.UnloadAssetBundle(CommonData.exploreSceneBundleName, true); break; case GameDataType.PlayRecordCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("PlayRecordCanvas"); break; case GameDataType.UpdateDataCanvas: GameManager.Instance.UIManager.RemoveCanvasCache("UpdateDataCanvas"); break; } }