コード例 #1
0
        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();
            });
        }
コード例 #2
0
        //从伙伴列表中托人
        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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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());
            }
        }
コード例 #6
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);
        }
コード例 #7
0
        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);
                }
            }
        }
コード例 #8
0
        /// <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();
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
            }
        }
コード例 #11
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);
        }
コード例 #12
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);
                        }
                    }
                }
            }
        }
コード例 #13
0
        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);
                    //}
                }
            });
        }