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