コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
                        }
                    }
                }
            }
        }