/// <summary> /// 数据显示 /// </summary> /// <param name="scrollGridCell"></param> public void OnCellForInfiniteTowers(ScrollGridCell scrollGridCell) { ItemMountainInfiniteTowersCpt itemCpt = scrollGridCell.GetComponent <ItemMountainInfiniteTowersCpt>(); UserInfiniteTowersBean userInfiniteTowers = listData[scrollGridCell.index]; itemCpt.SetData(userInfiniteTowers); }
public void SetData(UserInfiniteTowersBean infiniteTowersData) { this.infiniteTowersData = infiniteTowersData; SetLayer(infiniteTowersData.layer); SetIsSend(infiniteTowersData.isSend, infiniteTowersData.proForSend); SetMembers(infiniteTowersData.listMembers); }
public void SetData(List <UserInfiniteTowersBean> listData) { if (listInfiniteTowers == null) { listInfiniteTowers = new List <ItemGameMainHintForInfiniteTowersCpt>(); } for (int f = 0; f < listData.Count; f++) { UserInfiniteTowersBean itemData = listData[f]; bool hasData = false; for (int i = 0; i < listInfiniteTowers.Count; i++) { ItemGameMainHintForInfiniteTowersCpt itemCpt = listInfiniteTowers[i]; if (itemCpt.infiniteTowersData == itemData) { hasData = true; itemCpt.RefreshData(); if (itemCpt.infiniteTowersData.proForSend == -1) { listInfiniteTowers.Remove(itemCpt); Destroy(itemCpt.gameObject); i--; } } } if (!hasData) { CreateItemForInfiniteTowers(itemData); } } CheckHasData(); }
/// <summary> /// 创建爬塔数据 /// </summary> /// <param name="infiniteTowersData"></param> public void CreateItemForInfiniteTowers(UserInfiniteTowersBean infiniteTowersData) { GameObject objItem = Instantiate(objHintContainer, objInfiniteTowersModel); ItemGameMainHintForInfiniteTowersCpt itemCpt = objItem.GetComponent <ItemGameMainHintForInfiniteTowersCpt>(); itemCpt.SetData(infiniteTowersData); listInfiniteTowers.Add(itemCpt); }
public void Submit(DialogView dialogView, DialogBean dialogBean) { if (dialogView as PickForCharacterDialogView) { PickForCharacterDialogView pickForCharacterDialog = dialogView as PickForCharacterDialogView; UserInfiniteTowersBean infiniteTowersData = new UserInfiniteTowersBean(); List <CharacterBean> listMembers = pickForCharacterDialog.GetPickCharacter(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (dialogBean.dialogPosition == 0) { //亲自 infiniteTowersData.isSend = false; foreach (CharacterBean itemCharacter in listMembers) { infiniteTowersData.listMembers.Add(itemCharacter.baseInfo.characterId); } gameData.AddInfinteTowersData(infiniteTowersData); //跳转场景 GameCommonInfo.SetInfiniteTowersPrepareData(infiniteTowersData); GameScenesHandler.Instance.ChangeScene(ScenesEnum.GameInfiniteTowersScene); } else if (dialogBean.dialogPosition == 1) { //派遣 infiniteTowersData.isSend = true; //检测 foreach (CharacterBean itemCharacter in listMembers) { WorkerStatusEnum workerStatusEnum = itemCharacter.baseInfo.GetWorkerStatus(); if (workerStatusEnum != WorkerStatusEnum.Rest && workerStatusEnum != WorkerStatusEnum.Work) { ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1142)); return; } } //派遣 foreach (CharacterBean itemCharacter in listMembers) { infiniteTowersData.listMembers.Add(itemCharacter.baseInfo.characterId); itemCharacter.baseInfo.SetWorkerStatus(WorkerStatusEnum.InfiniteTowers); } //计算每层攀登几率 infiniteTowersData.InitSuccessRate(GameItemsHandler.Instance.manager, listMembers); gameData.AddInfinteTowersData(infiniteTowersData); RefreshUI(); } } else { if (dialogBean.dialogPosition == 1) { //重置所有爬塔记录 GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); gameData.CleanInfinteTowers(); RefreshUI(); } } }
public static void ClearData() { ArenaPrepareData = null; InfiniteTowersData = null; DailyLimitData = new UserDailyLimitBean(); CurrentDayData = new CurrentDayBean(); ScenesChangeData = new ScenesChangeBean(); GameTimeHandler.Instance.SetDayStatus(GameTimeHandler.DayEnum.None); }
public void StartCombat(MiniGameCombatBean combatData, UserInfiniteTowersBean infiniteTowersData) { MiniGameHandler.Instance.handlerForCombat.InitGame(combatData); UIMiniGameCountDown uiCountDown = UIHandler.Instance.manager.GetUI <UIMiniGameCountDown>(UIEnum.MiniGameCountDown); //设置标题 uiCountDown.SetTitle(infiniteTowersData.layer + TextHandler.Instance.manager.GetTextById(83)); }
public override void Start() { base.Start(); infiniteTowersData = GameCommonInfo.InfiniteTowersData; //测试 if (infiniteTowersData == null) { infiniteTowersData = new UserInfiniteTowersBean(); infiniteTowersData.layer = 10; infiniteTowersData.listMembers.Add(""); } SceneForInfiniteTowersHandler infiniteTowersHandler = GameScenesHandler.Instance.manager.GetSceneHandler <SceneForInfiniteTowersHandler>(); StartCoroutine(infiniteTowersHandler.NextLayer(infiniteTowersData)); }
public IEnumerator NextLayer(UserInfiniteTowersBean infiniteTowersData) { GameTimeHandler.Instance.SetTimeStop(); //延迟开始。 yield return(new WaitForSeconds(0.1f)); //清理一下系统 SystemUtil.GCCollect(); this.infiniteTowersData = infiniteTowersData; //添加通知 MiniGameHandler.Instance.handlerForCombat.RegisterNotifyForMiniGameStatus(NotifyForMiniGameStatus); //获取战斗数据 MiniGameCombatBean gameCombatData = InitCombat(infiniteTowersData); //开始战斗 StartCombat(gameCombatData, infiniteTowersData); }
public float speedForCombat = 1; //战斗加速 /// <summary> /// 增加无尽之塔数据 /// </summary> /// <param name="infiniteTowersData"></param> public void AddInfinteTowersData(UserInfiniteTowersBean infiniteTowersData) { listInfinteTowers.Add(infiniteTowersData); }
/// <summary> /// 移除无尽之塔数据 /// </summary> /// <param name="infiniteTowersData"></param> /// <returns></returns> public bool RemoveInfiniteTowersData(UserInfiniteTowersBean infiniteTowersData) { return(listInfinteTowers.Remove(infiniteTowersData)); }
/// <summary> /// 设置无尽之塔数据 /// </summary> /// <param name="data"></param> public static void SetInfiniteTowersPrepareData(UserInfiniteTowersBean data) { InfiniteTowersData = data; }
public MiniGameCombatBean InitCombat(UserInfiniteTowersBean infiniteTowersData) { SceneInfiniteTowersManager infiniteTowersManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInfiniteTowersManager>(); //设置标牌 infiniteTowersManager.SetSignForLayer(infiniteTowersData.layer); //设置战斗数据 MiniGameCombatBean miniGameCombat = (MiniGameCombatBean)MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat); //设置战斗地点 miniGameCombat.miniGamePosition = infiniteTowersManager.GetCombatPostionByLayer(infiniteTowersData.layer); //获取战斗成员数据 //获取友方数据 List <CharacterBean> listUserData = new List <CharacterBean>(); int totalLucky = 0; GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); foreach (string memberId in infiniteTowersData.listMembers) { CharacterBean itemCharacterData = gameData.GetCharacterDataById(memberId); if (itemCharacterData != null) { listUserData.Add(itemCharacterData); itemCharacterData.GetAttributes(out CharacterAttributesBean characterAttributes); totalLucky += characterAttributes.lucky; } } //如果没有就启动测试数据 if (listUserData.Count == 0) { CharacterBean itemCharacterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(10001); listUserData.Add(itemCharacterData); listUserData.Add(itemCharacterData); listUserData.Add(itemCharacterData); } //获取敌方数据 List <CharacterBean> listEnemyData = infiniteTowersManager.GetCharacterDataByInfiniteTowersLayer(infiniteTowersData.layer); //设置敌方能力 foreach (CharacterBean itemEnemyData in listEnemyData) { CharacterAttributesBean enemyAttributes = infiniteTowersManager.GetEnemyAttributesByLayer(itemEnemyData, infiniteTowersData.layer); if (enemyAttributes != null) { itemEnemyData.attributes.InitAttributes(enemyAttributes); } } //初始化战斗数据 miniGameCombat.gameReason = MiniGameReasonEnum.Fight; miniGameCombat.winSurvivalNumber = 1; miniGameCombat.winBringDownNumber = listEnemyData.Count; miniGameCombat.InitData(listUserData, listEnemyData); //添加奖励装备 List <RewardTypeBean> listRewardEquip = RewardTypeEnumTools.GetRewardEnemyEquipForInfiniteTowers(listEnemyData, infiniteTowersData.layer, totalLucky); if (!CheckUtil.ListIsNull(listRewardEquip)) { miniGameCombat.listReward.AddRange(listRewardEquip); } //添加奖励物品 List <RewardTypeBean> listRewardItems = RewardTypeEnumTools.GetRewardItemsForInfiniteTowers(listEnemyData, infiniteTowersData.layer, totalLucky, false); if (!CheckUtil.ListIsNull(listRewardItems)) { miniGameCombat.listReward.AddRange(listRewardItems); } return(miniGameCombat); }
public void SetData(UserInfiniteTowersBean infiniteTowersData) { this.infiniteTowersData = infiniteTowersData; RefreshData(); }
/// <summary> /// 增加爬塔进度 /// </summary> /// <param name="time"></param> public void AddInfiniteTowers(int time) { GameDataBean gameData = manager.GetGameData(); List <UserInfiniteTowersBean> listInfiniteTowersData = gameData.listInfinteTowers; if (CheckUtil.ListIsNull(listInfiniteTowersData)) { return; } float addTime = 0.01f * time; List <UserInfiniteTowersBean> listSendData = new List <UserInfiniteTowersBean>(); for (int i = 0; i < listInfiniteTowersData.Count; i++) { UserInfiniteTowersBean itemInfiniteTowerData = listInfiniteTowersData[i]; if (itemInfiniteTowerData.isSend == false) { //如果不是派遣数据则不处理 continue; } listSendData.Add(itemInfiniteTowerData); itemInfiniteTowerData.proForSend += addTime; if (itemInfiniteTowerData.proForSend >= 1) { //计算总计攀登层数 int addLayer = (int)Mathf.Floor(itemInfiniteTowerData.proForSend); List <CharacterBean> listCharacterData = gameData.GetCharacterDataByIds(itemInfiniteTowerData.listMembers); for (int f = 0; f < addLayer; f++) { itemInfiniteTowerData.proForSend = 0; bool isSuccessNextLayer = itemInfiniteTowerData.CheckIsSccessNextLayer(); if (isSuccessNextLayer) { //如果是成功攻略 //弹出提示 if (manager.gameConfig.isShowDetailsForTower) { AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward); ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(1331), itemInfiniteTowerData.layer + "")); } else { if (itemInfiniteTowerData.layer % 10 == 0) { AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward); ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(1331), itemInfiniteTowerData.layer + "")); } } //添加奖励物品 int totalLucky = 0; for (int c = 0; c < listCharacterData.Count; c++) { CharacterBean itemCharacterData = listCharacterData[c]; itemCharacterData.GetAttributes(out CharacterAttributesBean characterAttributes); totalLucky += characterAttributes.lucky; } List <RewardTypeBean> listRewardItems = RewardTypeEnumTools.GetRewardItemsForInfiniteTowers(null, itemInfiniteTowerData.layer, totalLucky, true); if (!CheckUtil.ListIsNull(listRewardItems)) { RewardTypeEnumTools.CompleteReward(listCharacterData, listRewardItems); } //增加层数 itemInfiniteTowerData.layer++; //达到最大层数 UserAchievementBean userAchievement = gameData.GetAchievementData(); if (itemInfiniteTowerData.layer > userAchievement.maxInfiniteTowersLayer - 1) { //弹出提示 AudioHandler.Instance.PlaySound(AudioSoundEnum.Reward); ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(1332), (itemInfiniteTowerData.layer - 1) + "")); itemInfiniteTowerData.proForSend = -1; //还原员工状态 for (int c = 0; c < listCharacterData.Count; c++) { CharacterBean itemCharacterData = listCharacterData[c]; itemCharacterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Rest); } //移除数据 listInfiniteTowersData.Remove(itemInfiniteTowerData); i--; break; } } else { //弹出提示 AudioHandler.Instance.PlaySound(AudioSoundEnum.Passive); ToastHandler.Instance.ToastHint(string.Format(TextHandler.Instance.manager.GetTextById(1333), itemInfiniteTowerData.layer + "")); //如果是失败攻略 itemInfiniteTowerData.proForSend = -1; //还原员工状态 for (int c = 0; c < listCharacterData.Count; c++) { CharacterBean itemCharacterData = listCharacterData[c]; itemCharacterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Rest); } //移除数据 listInfiniteTowersData.Remove(itemInfiniteTowerData); i--; break; } } } } notifyForData?.Invoke(NotifyTypeEnum.InfiniteTowerProChange, new object[] { listSendData }); }