void OnClickChoiceSuit02(GameObject go) { if (LTHeroBattleEvent.ChoiceSuitIndex != null) { LTHeroBattleEvent.ChoiceSuitIndex(1); } }
/// <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); } }
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(); } }
/// <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); } } }
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); } } }
/// <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; } }
/// <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); } } }
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); } }
/// <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(); }