private void SaveLineupPresetData(System.Action callback) { string teamName = FormationUtil.GetCurrentTeamName(_battleType); List <TeamMemberData> list = LTFormationDataManager.Instance.GetTeamMemList(teamName); if (list == null || list.Count < 1) { MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, EB.Localizer.GetString("ID_HONOR_ARENA_RAKN_BATTLE_TIP")); callback?.Invoke(); return; } var lineupInfo = new int[_maxMemberCount]; for (var i = 0; i < list.Count; i++) { var member = list[i]; // 阵容只允许保存非雇佣角色 if (!member.IsHire) { lineupInfo[member.Pos] = member.HeroID; } } var uid = LoginManager.Instance.LocalUser.Id.Value; LTFormationDataManager.Instance.API.SaveLineupPreset(uid, _lineupType, _lineupIndex, lineupInfo, (ht) => { RefreshLineupPresetDataCache(lineupInfo); SetData(lineupInfo); MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, EB.Localizer.GetString("ID_SAVE_SUCCESSFULLY")); callback?.Invoke(); }); }
//从伙伴列表中托人 public void OnModelDragStartByIcon(CombatPartnerCellController partnerCell) { var partnerData = partnerCell.ItemData; if (IsInTeam(partnerData.HeroId) || !FormationUtil.IsHave(partnerData)) { return; } partnerCell.OnSelect(true); OtherPlayerPartnerData data = new OtherPlayerPartnerData(); data.HeroID = partnerData.HeroId; data.Name = partnerData.HeroInfo.name; data.Attr = partnerData.HeroInfo.char_type; data.Icon = partnerData.HeroInfo.icon; data.QualityLevel = partnerData.HeroInfo.role_grade; data.Level = partnerData.Level; data.Star = partnerData.Star; data.UpGradeId = partnerData.UpGradeId; data.awakenLevel = partnerData.IsAwaken; CurDragItem.Fill(data); CurDragItem.mDMono.gameObject.SetActive(true); CurDragItem.mDMono.transform.position = new Vector3(UICamera.lastWorldPosition.x, UICamera.lastWorldPosition.y, DragZ); }
private void InitFormation() { string teamName = FormationUtil.GetCurrentTeamName(SceneLogic.BattleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList teamDatas; List <PlayerFormationData> heroData = new List <PlayerFormationData>(); DataLookupsCache.Instance.SearchDataByID(teamDataPath, out teamDatas); if (teamDatas != null) { for (var i = 0; i < teamDatas.Count; i++) { var td = teamDatas[i]; string heroid = EB.Dot.String("hero_id", td, ""); if (!string.IsNullOrEmpty(heroid)) { LTPartnerData data = LTPartnerDataManager.Instance.GetPartnerByHeroId(int.Parse(heroid)); if (data != null) { PlayerFormationData forData = new PlayerFormationData(); forData.templateId = data.StatId; forData.star = data.Star; forData.level = data.Level; forData.peak = data.AllRoundLevel; forData.awakeLevel = data.UpGradeId; forData.charType = (int)data.HeroInfo.char_type; forData.isAwaken = data.IsAwaken; forData.skin = data.CurSkin; heroData.Add(forData); } } } } for (int i = 0; i < items.Length; i++) { if (i < heroData.Count) { items[i].ShowUI(heroData[i]); } else { items[i].HideUI(); } } grid.Reposition(); }
private void ShowBuddyData() { string teamName = FormationUtil.GetCurrentTeamName(SceneLogic.BattleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList teamDatas; List <string> heroIDs = new List <string>(); if (!IsShowTempHp) { LTChallengeInstanceHpCtrl.UpdateInstanceHpFromCombat(); } DataLookupsCache.Instance.SearchDataByID <ArrayList>(teamDataPath, out teamDatas); if (teamDatas != null) { for (var i = 0; i < teamDatas.Count; i++) { var td = teamDatas[i]; string heroid = EB.Dot.String("hero_id", td, ""); if (!string.IsNullOrEmpty(heroid)) { heroIDs.Add(heroid); } } } for (int i = 0; i < m_HeroItems.Count; i++) { if (i < heroIDs.Count) { string heroid = heroIDs[i]; m_HeroItems[i].mDMono.gameObject.CustomSetActive(true); m_HeroItems[i].ShowUI(heroid, IsShowHp, IsShowTempHp); } else { m_HeroItems[i].mDMono.gameObject.CustomSetActive(false); } } if (LTFormationDataManager.Instance.CurTeamMemberData != null && BattleReadyHudController.ShowMercenary()) { m_HeroItems[heroIDs.Count].mDMono.gameObject.CustomSetActive(true); m_HeroItems[heroIDs.Count].ShowUI(LTFormationDataManager.Instance.CurTeamMemberData, false, false); } }
private void SetHeroInfo() { try { string teamName = FormationUtil.GetCurrentTeamName(SceneLogic.BattleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList teamDatas; List <string> heroIDs = new List <string>(); DataLookupsCache.Instance.SearchDataByID <ArrayList>(teamDataPath, out teamDatas); for (var i = 0; i < teamDatas.Count; i++) { string heroid = EB.Dot.String("hero_id", teamDatas[i], ""); if (!string.IsNullOrEmpty(heroid)) { heroIDs.Add(heroid); } } for (int i = 0; i < BuddyItemList.Count; i++) { if (i < heroIDs.Count) { string heroid = heroIDs[i]; BuddyItemList[i].mDMono.gameObject.CustomSetActive(true); BuddyItemList[i].ShowUI(heroid, false); } else { BuddyItemList[i].mDMono.gameObject.CustomSetActive(false); } } Grid.Reposition(); } catch (System.NullReferenceException e) { EB.Debug.LogError(e.ToString()); } }
private int SetData(int[] lineupInfo) { // 一组阵容中的出战人数 var battleCount = 0; for (var i = 0; i < lineupInfo.Length; i++) { var heroId = lineupInfo[i]; var item = _items[i]; if (heroId == 0) { item.mDMono.gameObject.SetActive(false); } else { item.mDMono.gameObject.SetActive(true); item.Fill(GetPartnerData(heroId)); var partnerData = LTPartnerDataManager.Instance.GetPartnerByHeroId(heroId); item.SetCharTypeFx((PartnerGrade)partnerData.HeroInfo.role_grade, partnerData.HeroInfo.char_type); battleCount += 1; _deathFlags[i].SetActive(false); _sleepFlags[i].SetActive(false); if (_battleType == eBattleType.ChallengeCampaign || _battleType == eBattleType.AlienMazeBattle) { _deathFlags[i].SetActive(!FormationUtil.IsAlive(heroId, false)); } if (_battleType == eBattleType.SleepTower && LTClimingTowerHudController.Instance != null) { _sleepFlags[i].SetActive(!LTClimingTowerHudController.Instance.CanUpTeam(heroId)); } } } return(battleCount); }
private void ShowBuddyData() { string teamName = FormationUtil.GetCurrentTeamName(SceneLogic.BattleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList teamDatas; List <string> heroIDs = new List <string>(); DataLookupsCache.Instance.SearchDataByID <ArrayList>(teamDataPath, out teamDatas); for (var i = 0; i < teamDatas.Count; i++) { var td = teamDatas[i]; string heroid = EB.Dot.String("hero_id", td, ""); if (!string.IsNullOrEmpty(heroid)) { heroIDs.Add(heroid); } } for (int i = 0; i < m_BuddyShowItems.Count; i++) { if (m_BuddyShowItems[i] == null) { continue; } if (i < heroIDs.Count) { string heroid = heroIDs[i]; m_BuddyShowItems[i].mDMono.gameObject.CustomSetActive(true); m_BuddyShowItems[i].ShowUI(heroid, IsShowHp); } else { m_BuddyShowItems[i].mDMono.gameObject.CustomSetActive(false); } } }
/// <summary> /// 设置选中数据 /// </summary> /// <param name="data">数据</param> public void SetChoiceData(LTHeroBattleAPI.HeroBattleData data) { /* * EB.Debug.LogError("[" + Time.frameCount + "]服务器已经下发数据:当前的操作行为:Status:" + data.Status + ",是否为玩家:" + (data.OpenUid == LoginManager.Instance.LocalUserId.Value)); */ choiceData.choiceState = data.Status.Equals("banhero") ? 0 : data.Status.Equals("selecthero") ? 1 : 2; choiceData.openUid = data.OpenUid; choiceData.lessTime = EB.Time.After(data.NextTS); for (int i = 0; i < data.Sides.Length; i++) { if (data.Sides[i].Uid == LoginManager.Instance.LocalUserId.Value) //若是玩家自己 { choiceData.selfInfo.name = data.Sides[i].Name; choiceData.selfInfo.uid = data.Sides[i].Uid; choiceData.selfInfo.level = data.Sides[i].Level; choiceData.selfInfo.portrait = data.Sides[i].Portrait; choiceData.selfInfo.frame = data.Sides[i].Frame; choiceData.selfInfo.isSelf = true; choiceData.selfBans.Clear(); for (int j = 0; j < data.Sides[i].BandTplIds.Length; j++) { int tplID = 0; if (!int.TryParse(data.Sides[i].BandTplIds[j], out tplID)) { continue; } HeroBattleChoiceCellData cell = choiceData.selfChoices.Find(p => p.heroTplID == tplID); if (cell != null) { choiceData.selfBans.Add(cell); } else { EB.Debug.LogError("choiceData.selfBans cell is null tplID={0}", tplID); } } choiceData.selfChoices.Clear(); for (int j = 0; j < data.Sides[i].SelectHeroIds.Count; j++) { if (data.Sides[i].SelectHeroIds[j] != null) { int id = EB.Dot.Integer("id", data.Sides[i].SelectHeroIds[j], 0); int tplID = EB.Dot.Integer("tplId", data.Sides[i].SelectHeroIds[j], 0); int star = EB.Dot.Integer("star", data.Sides[i].SelectHeroIds[j], 0); int level = EB.Dot.Integer("level", data.Sides[i].SelectHeroIds[j], 0); int peak = EB.Dot.Integer("proficiency.1.1", data.Sides[i].SelectHeroIds[j], 0); int upgrade = EB.Dot.Integer("upgrade", data.Sides[i].SelectHeroIds[j], 0); int charType = EB.Dot.Integer("charType", data.Sides[i].SelectHeroIds[j], -1); string roleGrade = EB.Dot.String("roleGrade", data.Sides[i].SelectHeroIds[j], ""); int awakenLevel = EB.Dot.Integer("awaken", data.Sides[i].SelectHeroIds[j], 0); int skin = EB.Dot.Integer("skin", data.Sides[i].SelectHeroIds[j], 0); int artifactLevel = EB.Dot.Integer("artifact_equip.enhancement_level", data.Sides[i].SelectHeroIds[j], -1); HeroBattleChoiceCellData cell = GetHeroCell(tplID); if (cell != null) { cell.star = star; cell.type = (Hotfix_LT.Data.eRoleAttr)charType; cell.upGrade = upgrade; cell.level = level; cell.peak = peak; cell.artifactLevel = artifactLevel; cell.skin = skin; cell.modelName = Hotfix_LT.Data.CharacterTemplateManager.Instance.GetHeroInfo(tplID - 1, skin).model_name; cell.isAwake = awakenLevel; choiceData.selfChoices.Add(cell); } else { EB.Debug.LogError("choiceData.SelectHero cell is null tplID={0}", tplID); } } } } else { choiceData.otherInfo.name = data.Sides[i].Name; choiceData.otherInfo.uid = data.Sides[i].Uid; //机器人情况下,强行修改和我的分段一样 //if (data.Sides[i].Uid == 0) //{ // choiceData.otherInfo.level = choiceData.selfInfo.level; // choiceData.otherInfo.score = LadderManager.Instance.Info.Point; //} //else { choiceData.otherInfo.level = data.Sides[i].Level; } choiceData.otherInfo.portrait = data.Sides[i].Portrait; choiceData.otherInfo.frame = data.Sides[i].Frame; choiceData.otherInfo.isSelf = false; choiceData.otherBans.Clear(); for (int j = 0; j < data.Sides[i].BandTplIds.Length; j++) { int tplID = 0; if (!int.TryParse(data.Sides[i].BandTplIds[j], out tplID)) { continue; } HeroBattleChoiceCellData cell = choiceData.otherChoices.Find(p => p.heroTplID == tplID); if (cell != null) { choiceData.otherBans.Add(cell); } else { EB.Debug.LogError("choiceData.otherBans cell is null tplID={0}", tplID); } } choiceData.otherChoices.Clear(); for (int j = 0; j < data.Sides[i].SelectHeroIds.Count; j++) { if (data.Sides[i].SelectHeroIds[j] != null) { int id = EB.Dot.Integer("id", data.Sides[i].SelectHeroIds[j], 0); int tplID = EB.Dot.Integer("tplId", data.Sides[i].SelectHeroIds[j], 0); int star = EB.Dot.Integer("star", data.Sides[i].SelectHeroIds[j], 0); int level = EB.Dot.Integer("level", data.Sides[i].SelectHeroIds[j], 0); int peak = EB.Dot.Integer("proficiency.1.1", data.Sides[i].SelectHeroIds[j], 0); int upgrade = EB.Dot.Integer("upgrade", data.Sides[i].SelectHeroIds[j], 0); int charType = EB.Dot.Integer("charType", data.Sides[i].SelectHeroIds[j], -1); string roleGrade = EB.Dot.String("roleGrade", data.Sides[i].SelectHeroIds[j], ""); int awakenLevel = EB.Dot.Integer("awaken", data.Sides[i].SelectHeroIds[j], 0); int skin = EB.Dot.Integer("skin", data.Sides[i].SelectHeroIds[j], 0); HeroBattleChoiceCellData cell = null; //判断当前对手是否为机器人 if (data.Sides[i].Uid == 0) { cell = GetMonsterInfo(tplID, skin); } else { cell = GetHeroCellCommon(tplID); } if (cell != null) { cell.star = star; cell.type = (Hotfix_LT.Data.eRoleAttr)charType; cell.upGrade = upgrade; cell.level = level; cell.peak = peak; cell.skin = skin; if (data.Sides[i].Uid != 0) { cell.modelName = Hotfix_LT.Data.CharacterTemplateManager.Instance.GetHeroInfo(cell.heroTplID - 1, skin).model_name; } cell.isAwake = awakenLevel; choiceData.otherChoices.Add(cell); } else { EB.Debug.LogError("choiceData.SelectHero cell is null tplID={0}", tplID); } } } } } if (data.Status.Equals("battle")) { //筛选出自己拥有的英雄 List <LTPartnerData> generalPL = LTPartnerDataManager.Instance.GetOwnPartnerList(); //开战前存储这次的上场的英雄,好给结算界面调用 string teamName = FormationUtil.GetCurrentTeamName(eBattleType.LadderBattle); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList heroIds = Johny.ArrayListPool.Claim(); for (int i = 0; i < choiceData.selfChoices.Count; i++) { if (choiceData.selfBans.Find(p => p.heroTplID == choiceData.selfChoices[i].heroTplID) == null) { LTPartnerData ltParnerData = generalPL.Find(p => p.HeroStat.id == choiceData.selfChoices[i].heroTplID); heroIds.Add(ltParnerData.HeroId); } } DataLookupsCache.Instance.CacheData(teamDataPath, heroIds); // if (LTHeroBattleEvent.NotifyHeroBattleHudFinish != null) { LTHeroBattleEvent.NotifyHeroBattleHudFinish(); } } else if (choiceData.selfChoices.Count > 0 || choiceData.otherChoices.Count > 0) //当有一边选人后延迟场景跳转 放置跳转前没有倒计时问题 { if (LTHeroBattleEvent.NotifyHeroBattleDelayToScene != null) { LTHeroBattleEvent.NotifyHeroBattleDelayToScene(); } } RefreshChoiceState(); }
private void RecordBattle(eCombatOutcome outcome)//上报友盟,是否通关 { bool tmpIsWon = outcome == eCombatOutcome.Win ? true : false; string tmpLevel = string.Empty; if (_battleType == eBattleType.MainCampaignBattle) { tmpLevel = LTMainInstanceCampaignCtrl.CampaignId.ToString(); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, "Main" + tmpLevel); if (tmpIsWon) { LTChargeManager.Instance.CheckLimitedTimeGiftTrigger(Hotfix_LT.Data.LTGTriggerType.Main, tmpLevel); } } } else if (_battleType == eBattleType.InfiniteChallenge) { DataLookupsCache.Instance.SearchDataByID <string>("infiniteChallenge.info.currentlayer", out tmpLevel); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); if (tmpIsWon) { LTChargeManager.Instance.CheckLimitedTimeGiftTrigger(Hotfix_LT.Data.LTGTriggerType.UltimateTrial, tmpLevel); } } Data.NewGameConfigTemplateManager.Instance.GetEnterVigor(eBattleType.InfiniteChallenge, out int dayDisCountTime, out int NewVigor, out int oldVigor); int curDisCountTime = dayDisCountTime - LTUltimateTrialDataManager.Instance.GetCurrencyTimes(); if (outcome == eCombatOutcome.Win && curDisCountTime >= 0) { LTDailyDataManager.Instance.SetDailyDataRefreshState(); } } else if (_battleType == eBattleType.TreasuryBattle) { ArrayList rewardData; DataLookupsCache.Instance.SearchDataByID <ArrayList>("combat.rewards", out rewardData); Hashtable rewardDataTable = Johny.HashtablePool.Claim(); if (rewardData != null) { rewardDataTable = rewardData[0] as Hashtable; } tmpLevel = EB.Dot.String("gold.currentDifficulty", rewardDataTable, null); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); } } else if (_battleType == eBattleType.ExpSpringBattle) { ArrayList rewardData; DataLookupsCache.Instance.SearchDataByID <ArrayList>("combat.rewards", out rewardData); Hashtable rewardDataTable = Johny.HashtablePool.Claim(); if (rewardData != null) { rewardDataTable = rewardData[0] as Hashtable; } tmpLevel = EB.Dot.String("currentDifficulty", rewardDataTable, null); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); } } else if (_battleType == eBattleType.ChallengeCampaign) { tmpLevel = LTInstanceMapModel.Instance.CurLevelNum.ToString(); } int chapterId = 0; int.TryParse(tmpLevel, out chapterId); string teamName = FormationUtil.GetCurrentTeamName(_battleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; List <int> heroInfos = new List <int>(); ArrayList teamDatas; DataLookupsCache.Instance.SearchDataByID(teamDataPath, out teamDatas); if (teamDatas != null) { for (var i = 0; i < teamDatas.Count; i++) { var td = teamDatas[i]; string heroid = EB.Dot.String("hero_id", td, ""); if (!string.IsNullOrEmpty(heroid)) { LTPartnerData data = LTPartnerDataManager.Instance.GetPartnerByHeroId(int.Parse(heroid)); if (data != null) { // IDictionary<string, int> hero = new Dictionary<string, int>(); // hero.Add(data.HeroInfo.name, data.Level); heroInfos.Add(data.InfoId); } } } } FusionTelemetry.PostCombat(_battleType.ToString(), chapterId, tmpIsWon ? 1 : 2, heroInfos, isCombatOut ? 2 : 1); }
public void InitItems() { List <BattleAnalyseData> heroIDs = new List <BattleAnalyseData>(); string teamName = FormationUtil.GetCurrentTeamName(SceneLogic.BattleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; ArrayList teamDatas; DataLookupsCache.Instance.SearchDataByID <ArrayList>(teamDataPath, out teamDatas); ArrayList metricList; DataLookupsCache.Instance.SearchDataByID <ArrayList>("battlerMetric", out metricList); BattleAnalyseData TotleData = new BattleAnalyseData(); Dictionary <string, BattleAnalyseData> MLDic = new Dictionary <string, BattleAnalyseData>(); if (metricList != null) { for (int i = 0; i < metricList.Count; ++i)// var ml in metricList) { BattleAnalyseData data = new BattleAnalyseData(); data.heroID = EB.Dot.String("heroId", metricList[i], string.Empty); data.totalDamage = EB.Dot.Integer("totalDamage", metricList[i], 0); data.totalDamaged = EB.Dot.Integer("totalDamaged", metricList[i], 0); data.totalHealth = EB.Dot.Integer("totalHealth", metricList[i], 0); if (!string.IsNullOrEmpty(data.heroID)) { MLDic.Add(data.heroID, data); } } } if (teamDatas != null) { for (int i = 0; i < teamDatas.Count; ++i) { string heroid = EB.Dot.String("hero_id", teamDatas[i], ""); if (!string.IsNullOrEmpty(heroid)) { BattleAnalyseData data; if (MLDic.ContainsKey(heroid)) { data = MLDic[heroid]; TotleData.totalDamage += data.totalDamage; TotleData.totalDamaged += data.totalDamaged; TotleData.totalHealth += data.totalHealth; heroIDs.Add(data); } } } } if (ItemList == null) { ItemList = new List <LTBattleAnalyseItem>(); for (int i = 0; i < 6; ++i) { LTBattleAnalyseItem bodyItem = InstantiateEx <LTBattleAnalyseItem>(ItemTemplate, mGrid != null ? mGrid.transform : null, i.ToString()); ItemList.Add(bodyItem); } if (mGrid != null) { mGrid.Reposition(); } } for (int i = 0; i < heroIDs.Count; ++i) { ItemList[i].InitData(heroIDs[i], TotleData); } for (int i = heroIDs.Count; i < ItemList.Count; ++i) { ItemList[i].InitData(null, null); } }
public void SetItem(LTPartnerData itemData) { //itemData为空的时候也把ItemData置空,其他地方使用ItemData需要判空 ItemData = itemData; if (itemData == null || (itemData.StatId == 0 && itemData.InfoId == 0)) { mDMono.gameObject.CustomSetActive(false); return; } RecommendSprite.CustomSetActive(false); SleepPS.CustomSetActive(false); if (BattleReadyHudController.sBattleType == eBattleType.SleepTower && LTClimingTowerHudController.Instance != null) { SleepPS.CustomSetActive(!LTClimingTowerHudController.Instance.CanUpTeam(ItemData.HeroId)); } IconSprite.spriteName = ItemData.HeroInfo.icon; if (ItemData.HeroId <= 0 && !ItemData.IsHeroBattle || ItemData.IsHeroBattle && LTNewHeroBattleManager.GetInstance().CurrentType == HeroBattleType.High && LTNewHeroBattleManager.GetInstance().HasChallengeHeroInfoID.Contains(ItemData.StatId)) { SetGrey(IconSprite); SetGrey(FrameSprite); SetDark(FrameBGSprite); HideObj.CustomSetActive(false); return; } else { SetNormal(IconSprite); SetNormal(FrameSprite); HideObj.CustomSetActive(true); } int quality = 0; int addLevel = 0; LTPartnerDataManager.GetPartnerQuality(ItemData.UpGradeId, out quality, out addLevel); FrameSprite.spriteName = LTPartnerConfig.OUT_LINE_SPRITE_NAME_DIC[quality]; GameItemUtil.SetColorfulPartnerCellFrame(quality, FrameBGSprite); HotfixCreateFX.ShowUpgradeQualityFX(upgradeFx, FrameSprite.transform, quality, upgradeefclip); //FrameBGSprite.color = LTPartnerConfig.QUANTITY_BG_COLOR_DIC[quality]; LTPartnerConfig.SetLevelSprite(LevelSprite, ItemData.HeroInfo.char_type, ItemData.ArtifactLevel >= 0); int index = QualitySettings.GetQualityLevel(); if (index < 1) { HotfixCreateFX.ShowCharTypeFX(charFx, efClip, LevelSprite.transform, (PartnerGrade)ItemData.HeroInfo.role_grade, ItemData.HeroInfo.char_type); } LTUIUtil.SetLevelText(LevelBGSprite, LevelLabel, ItemData); if (itemData.IsHeroBattle) { LevelBGSprite.spriteName = "Ty_Brand_Di1"; } //英雄交锋特殊处理 其他布阵需要考虑觉醒后星星颜色变化 if (BattleReadyHudController.sBattleType == eBattleType.HeroBattle) { StarController.SetSrarList(ItemData.Star, ItemData.HeroBattleAwakenLevel); } else { //天梯选人界面特殊处理 if (ItemData.IsHire) { StarController.SetSrarList(ItemData.Star, ItemData.HireAwakeLevel); } else { StarController.SetSrarList(ItemData.Star, ItemData.IsAwaken); } } if (addLevel > 0) { breakLebel.transform.parent.gameObject.CustomSetActive(true); breakLebel.text = "+" + addLevel.ToString(); } else { breakLebel.transform.parent.gameObject.CustomSetActive(false); } if (itemData.Level > 0 && LTResourceInstanceHudController.mChooseLevel != null) { for (int i = 0; i < LTResourceInstanceHudController.mChooseLevel.recommend_partners_id.Length; i++) { if (LTResourceInstanceHudController.mChooseLevel.recommend_partners_id[i] != 0 && ItemData.HeroInfo.id == LTResourceInstanceHudController.mChooseLevel.recommend_partners_id[i]) { RecommendSprite.CustomSetActive(true); break; } } } DeathSprite.gameObject.CustomSetActive(false); if ((BattleReadyHudController.sBattleType == eBattleType.ChallengeCampaign || BattleReadyHudController.sBattleType == eBattleType.AlienMazeBattle) && !FormationUtil.IsAlive(itemData.HeroId, itemData.IsHire) && itemData.uid <= 0) { DeathSprite.gameObject.CustomSetActive(true); } if (HireSprite) { HireSprite.CustomSetActive(itemData.IsHire && ItemData.uid <= 0); } MercenaryUseFlag.CustomSetActive(false); MercenaryUseFlag.CustomSetActive(ShowUseFlag()); mDMono.gameObject.CustomSetActive(true); }
private void OnBtnUseClicked() { if (!_canClickUseBtn) { return; } _canClickUseBtn = false; object data = GetLineupPresetData(); if (data == null) { EB.Debug.LogError("阵容信息为空"); GlobalMenuManager.Instance.CloseMenu("LTLineupPresetUI"); _canClickUseBtn = true; return; } ArrayList lineupInfo; if (data is int[]) { lineupInfo = new ArrayList(data as int[]); } else { lineupInfo = data as ArrayList; } string teamName = FormationUtil.GetCurrentTeamName(_battleType); List <TeamMemberData> originTeamMembers = new List <TeamMemberData>(LTFormationDataManager.Instance.GetTeamMemList(teamName)); int count = 0; bool hasAlivePartner = false; // 上阵英雄至少要保留一个,故先处理新英雄上阵再处理旧英雄下阵 for (var i = 0; i < lineupInfo.Count; i++) { int heroId = System.Convert.ToInt32(lineupInfo[i]); bool isAlive = true; bool isSleepTower = false; if (heroId != 0 && (_battleType == eBattleType.ChallengeCampaign || _battleType == eBattleType.AlienMazeBattle)) { isAlive = FormationUtil.IsAlive(heroId, false); } if (_battleType == eBattleType.SleepTower && LTClimingTowerHudController.Instance != null) { if (heroId != 0) { isAlive = LTClimingTowerHudController.Instance.CanUpTeam(heroId); } isSleepTower = true; } if (heroId != 0 && isAlive) { hasAlivePartner = true; var memberData = originTeamMembers.Find(member => member.HeroID == heroId); originTeamMembers.Remove(memberData); if (LTFormationDataManager.Instance.CurTeamMemberData != null) { TeamMemberData temp = LTFormationDataManager.Instance.CurTeamMemberData; if (temp.Pos == i) { LTFormationDataManager.Instance.UnUseAllianceMercenary(temp.HeroID, i, null); } } LTFormationDataManager.Instance.RequestDragHeroToFormationPos(heroId, i, teamName, () => { count += 1; if (count >= lineupInfo.Count) { RemoveFromLineup(originTeamMembers, teamName, () => _canClickUseBtn = true); } }); } else { count += 1; if (count >= lineupInfo.Count) { if (hasAlivePartner) { RemoveFromLineup(originTeamMembers, teamName, () => _canClickUseBtn = true); } else { _canClickUseBtn = true; var tips = isSleepTower ? EB.Localizer.GetString("ID_LINEUP_PRESET_ALL_SLEEPED") : EB.Localizer.GetString("ID_LINEUP_PRESET_ALL_KILLED"); MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, tips); } } } } }
public void LastEventPlayed(int combat_id, int logid) { var request = s_endpoint.Post("/combat/lastEventPlayed"); request.AddData("combat_id", combat_id); request.AddData("logid", logid); if (SceneLogic.BattleType == eBattleType.InfiniteChallenge || SceneLogic.BattleType == eBattleType.ChallengeCampaign) { int allPower = 0; List <TeamMemberData> temp = LTFormationDataManager.Instance.GetTeamMemList(FormationUtil.GetCurrentTeamName(SceneLogic.BattleType)); for (int j = 0; j < temp.Count; j++) { LTPartnerData data = LTPartnerDataManager.Instance.GetPartnerByHeroId(temp[j].HeroID); if (data != null) { allPower += data.powerData.curPower; } } request.AddData("br", allPower); EB.Debug.Log("LastEventPlayed set br = {0}", allPower); } request.numRetries = 1; request.suspendMethod = EB.Sparx.Request.eSuspendMethod.Finish; s_endpoint.Service(request, delegate(EB.Sparx.Response result) { if (!result.sucessful && result.fatal) { EB.Debug.LogError("CombatManager.lastEventPlayed - /combat/lastEventPlayed failed: {0}", result.error.ToString()); OnNetworkError(result); } else { //if (callback != null) //{ // callback(result); //} } }); }