Пример #1
0
 void OnClickChoiceSuit02(GameObject go)
 {
     if (LTHeroBattleEvent.ChoiceSuitIndex != null)
     {
         LTHeroBattleEvent.ChoiceSuitIndex(1);
     }
 }
Пример #2
0
        /// <summary>
        /// 每回合选英雄前 收到数据添加使用英雄后调用
        /// </summary>
        public void RefreshChoiceState()
        {
            choiceData.choiceSuitIndex = 0; //默认选择英雄第一套

            if (choiceData.openUid == choiceData.selfInfo.uid)
            {
                if (choiceData.choiceType == 0)
                {
                    choiceData.choiceType = Hotfix_LT.Data.eRoleAttr.Shui;
                }
                //HeroBattleChoiceCellData choice = GetFirstChoiceHero(choiceData.choiceType);

                //if (choice == null)
                {
                    choiceData.choiceHeroCellData = null;
                    choiceData.choiceHeroTplID    = -1;
                }
                //else
                //{
                //    choiceData.choiceHeroCellData = choice;
                //    choiceData.choiceHeroTplID = choice.heroTplID;
                //}
            }
            else
            {
                //回合结束仍然需要展示使用的模型
                HeroBattleChoiceCellData lastUsed = null;
                if (choiceData.selfChoices.Count > 0) //优先显示最近选用的
                {
                    lastUsed = choiceData.selfChoices[choiceData.selfChoices.Count - 1];
                }
                else if (choiceData.selfBans.Count > 0) //次级显示最近禁用的
                {
                    lastUsed = choiceData.selfBans[choiceData.selfBans.Count - 1];
                }

                if (lastUsed == null)
                {
                    choiceData.choiceHeroCellData = null;
                    choiceData.choiceHeroTplID    = -1;
                }
                else
                {
                    choiceData.choiceHeroCellData = lastUsed;
                    choiceData.choiceHeroTplID    = lastUsed.heroTplID;
                }
            }

            choiceData.Refresh();

            if (LTHeroBattleEvent.NotifyRefreshChoiceState != null)
            {
                LTHeroBattleEvent.NotifyRefreshChoiceState(choiceData);
            }
        }
Пример #3
0
        public override void SetMenuData(object param)
        {
            base.SetMenuData(param);
            HeroBattleChoiceData data = param as HeroBattleChoiceData;

            if (data != null)
            {
                SetChoiceData(data);
            }
            else if ((bool)param)
            {
                LTHeroBattleEvent.GetReloadData();
            }
        }
Пример #4
0
 /// <summary>
 /// 点击按钮
 /// </summary>
 /// <param name="go"></param>
 private void OnClickCard(GameObject go)
 {
     //判断当前的操作执行是否可以点击
     if (LTHeroBattleModel.GetInstance().choiceData.choiceState == 1 &&
         LTHeroBattleModel.GetInstance().choiceData.openUid == LTHeroBattleModel.GetInstance().choiceData.selfInfo.uid &&
         !m_Data.isUsed)
     {
         FusionAudio.PostEvent("UI/General/ButtonClick", true);
         if (m_Data != null)
         {
             LTHeroBattleEvent.ChoiceHero(m_Data.heroTplID);
         }
     }
 }
Пример #5
0
        protected override void UpdateTimeLabelContent(ref float time)
        {
            float buff = Time.unscaledTime - time;

            if (Mathf.RoundToInt(buff) >= 1)
            {
                time       = time + 1;
                _lessTime -= 1;
                //等功能完成后在此后加入放大缩小的动画
                LTUIUtil.SetText(timeLabel, _lessTime.ToString());
                if (m_ConfirmBtn.activeSelf)
                {
                    if (LadderManager.Instance.IsTrusteeship && _lessTime < 7 && LadderManager.Instance.IsTrusteeship && _lessTime > 0)//托管
                    {
                        switch (m_HeroBattleChoiceData.choiceState)
                        {
                        case 0:
                            if (LTHeroBattleEvent.ConfirmBanHero != null)
                            {
                                FusionAudio.PostEvent("UI/New/JinRen", true);
                                int heroTplID = m_TeamPlane[1].GetAutoSelectHero();
                                LTHeroBattleModel.GetInstance().SetChoiceHero(heroTplID);
                                LTHeroBattleEvent.ConfirmBanHero();
                            }
                            break;

                        case 1:
                            if (LTHeroBattleEvent.ConfirmChoiceHero != null)
                            {
                                int heroTplID = m_TeamPlane[0].GetAutoSelectHero();
                                LTHeroBattleModel.GetInstance().SetChoiceHero(heroTplID);
                                LTHeroBattleEvent.ConfirmChoiceHero();
                            }
                            break;

                        default:
                            EB.Debug.LogError("不应该存在其他情况下的,点击确认按钮情况存在的");
                            break;
                        }
                    }
                }
                if (_lessTime < 10)
                {
                    FusionAudio.PostEvent("UI/New/DaoShu", true);
                }
            }
        }
Пример #6
0
        /// <summary>
        /// 点击确认按钮
        /// </summary>
        /// <param name="btn">按钮对象</param>
        private void OnClickConformBtn(GameObject btn)
        {
            if (m_HeroBattleChoiceData == null)
            {
                EB.Debug.LogError("不应该这个时间没有数据,请检验");
                return;
            }

            if (LadderManager.Instance.IsTrusteeshiping())
            {
                return;
            }

            //判断当前的操作状态
            switch (m_HeroBattleChoiceData.choiceState)
            {
            case 0:
                if (LTHeroBattleModel.GetInstance().choiceData.choiceHeroCellData == null)
                {
                    MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, EB.Localizer.GetString("ID_codefont_in_LTHeroBattleHudController_Tips"));
                    return;
                }
                if (LTHeroBattleEvent.ConfirmBanHero != null)
                {
                    FusionAudio.PostEvent("UI/New/JinRen", true);
                    LTHeroBattleEvent.ConfirmBanHero();
                }
                break;

            case 1:
                if (LTHeroBattleModel.GetInstance().choiceData.choiceHeroCellData == null)
                {
                    MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, EB.Localizer.GetString("ID_codefont_in_LTHeroBattleHudController_14889"));
                    return;
                }
                if (LTHeroBattleEvent.ConfirmChoiceHero != null)
                {
                    LTHeroBattleEvent.ConfirmChoiceHero();
                }
                break;

            default:
                EB.Debug.LogError("不应该存在其他情况下的,点击确认按钮情况存在的");
                break;
            }
        }
Пример #7
0
        /// <summary>
        /// 点击阵型里的伙伴
        /// </summary>
        /// <param name="cardItem">点击的卡片item</param>
        private void OnClickPartnerItem(LTPVPTeamCardInfo cardItem)
        {
            HeroBattleChoiceCellData partnerData = cardItem.F_GetCurrentPartnerData();

            if (LTHeroBattleModel.GetInstance().choiceData.choiceState == 0 &&
                LTHeroBattleModel.GetInstance().choiceData.openUid == LTHeroBattleModel.GetInstance().choiceData.selfInfo.uid &&
                !m_IsSelfTeam &&
                partnerData != null)
            {
                //通知选中的人
                FusionAudio.PostEvent("UI/General/ButtonClick", true);
                LTHeroBattleEvent.ChoiceHero(partnerData.heroTplID);
                //
                for (int i = 0; i < m_TeamCard.Length; i++)
                {
                    m_TeamCard[i].F_SetLockState(m_TeamCard[i] == cardItem);
                }
            }
        }
Пример #8
0
        public void SetChoiceHero(int heroTplID)
        {
            choiceData.choiceHeroTplID = heroTplID;
            HeroBattleChoiceCellData data = null;

            //禁用情况的判断
            if (LTHeroBattleModel.GetInstance().choiceData.choiceState == 0 && LTHeroBattleModel.GetInstance().choiceData.otherInfo.uid == 0)
            {
                data = GetMonsterInfo(heroTplID, 0);
            }
            else if (LTHeroBattleModel.GetInstance().choiceData.choiceState == 0 && LTHeroBattleModel.GetInstance().choiceData.otherInfo.uid != 0)
            {
                List <HeroBattleChoiceCellData> templist = LTHeroBattleModel.GetInstance().choiceData.otherChoices;
                for (int i = 0; i < templist.Count; i++)
                {
                    if (templist[i].heroTplID == heroTplID)
                    {
                        data = templist[i];
                        break;
                    }
                }
                if (data == null)
                {
                    data = GetHeroCellCommon(heroTplID);
                }
            }
            else
            {
                data = GetHeroCellCommon(heroTplID);
            }
            choiceData.choiceHeroCellData = data;

            // if (LTHeroBattleEvent.NotifyChangeChoiceHeroTplID != null)
            // {
            //     LTHeroBattleEvent.NotifyChangeChoiceHeroTplID(heroTplID);
            // }
            if (LTHeroBattleEvent.NotifyChangeChoiceHero != null)
            {
                LTHeroBattleEvent.NotifyChangeChoiceHero(choiceData.choiceHeroCellData);
            }
        }
Пример #9
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();
        }