using System; using System.Collections.Generic; using FairyGUI; using UI.Arena; using UnityEngine; namespace GFGGame { public class ArenaViewManager : SingletonBase { public void Clear() { } /// /// 更新段位图标 /// /// /// public void UpdateDanIcon(GLoader loader, int danLv) { } /// /// 更新每一轮战斗结果 /// /// /// /// /// /// /// public void UpdateFightRoundResult(GObject obj, int index, List myScores, List targetScores, ArenaTargetData targetData, out bool isWin) { int scoreType = ArenaDataManager.Instance.ThemeList[index]; long myScore = myScores[index]; int myCardId = ArenaDataManager.Instance.DressupList[index].cardId; int myHeadId = ArenaDataManager.Instance.DressupList[index].headId; long targetScore = targetScores[index]; // ArenaTargetData targetData = ArenaDataManager.Instance.Targets[index]; int targetCardId = targetData.FightDatas[index].cardId; int targetHeadId = 0; string res = ""; if (targetData.Type == FightTargetType.PLAYER) { targetHeadId = targetData.FightDatas[index].headId; } else { res = targetData.FightDatas[index].res; } UI_ListResultItem item = UI_ListResultItem.Proxy(obj); if (item.target.GetChild("txtRound") != null) { item.m_txtRound.SetVar("value", (index + 1).ToString()).FlushVars(); } item.m_loaScore.url = ResPathUtil.GetScorePath(scoreType); item.m_txtMyScore.text = myScore.ToString(); item.m_txtTargetScore.text = targetScore.ToString(); ItemCfg cardCfg = ItemCfgArray.Instance.GetCfg(myCardId); item.m_loaMyCard.m_comCardmask.m_loaCard.url = cardCfg == null ? "" : ResPathUtil.GetCardSmallPath(cardCfg.res); ItemCfg targetCardCfg = ItemCfgArray.Instance.GetCfg(targetCardId); item.m_loaTargetCard.m_comCardmask.m_loaCard.url = targetCardCfg == null ? "" : ResPathUtil.GetCardSmallPath(targetCardCfg.res); RoleInfoManager.Instance.UpdateHead(item.m_comMyHead, myHeadId, 0); if (targetHeadId > 0) { RoleInfoManager.Instance.UpdateHead(item.m_comTargetHead, targetHeadId, 0); } else { RoleInfoManager.Instance.UpdateNpcHead(item.m_comTargetHead, res); } isWin = myScore > targetScore; UI_ListResultItem.ProxyEnd(); } /// /// 更新战斗结算总分,含胜负 /// /// /// /// public void UpdateAllScoreResult(GObject obj, List myScores, List targetScore) { UI_ComAllScoreResult com = UI_ComAllScoreResult.Proxy(obj); bool isWin = UpdateAllScore(com.m_comResult.target, myScores, targetScore); com.m_loaResule.url = isWin ? "ui://Arena/kstzjj_slsl" : "ui://Arena/kstzjj_shib"; UI_ComAllScoreResult.ProxyEnd(); } /// /// 更新战斗结算总分 /// /// /// /// /// public bool UpdateAllScore(GObject obj, List myScores, List targetScore) { int winCount = 0; long myAllScore = 0; long targetAllScore = 0; for (int i = 0; i < myScores.Count; i++) { myAllScore += myScores[i]; targetAllScore += targetScore[i]; if (myScores[i] > targetScore[i]) winCount++; } UI_ComAllScore com = UI_ComAllScore.Proxy(obj); com.m_txtMyFightScore.text = myAllScore.ToString(); com.m_txtTargetFightScore.text = targetAllScore.ToString(); UI_ComAllScore.ProxyEnd(); bool isWin = winCount >= 2; return isWin; } /// /// 更新标签、战力、属性分数值 /// public void UpdateValue(GObject obj, int index, List roleDatas) { UI_ComValueInfo com = UI_ComValueInfo.Proxy(obj); com.m_scoreType.url = ResPathUtil.GetScorePath(ArenaDataManager.Instance.ThemeList[index]); com.m_txtScore.text = FightDataManager.Instance.GetScore(roleDatas[index].itemScoreList).ToString(); long fightScore = ArenaDataManager.Instance.GetAllFightScore(roleDatas); com.m_txtFightScore.SetVar("value", fightScore.ToString()).FlushVars(); ; com.m_txtTagScore.text = FightDataManager.Instance.GetTagsScore(roleDatas[index].itemList, roleDatas[index].tags).ToString(); int count = ArenaDataManager.Instance.GetTagsCount(roleDatas[index].itemList, roleDatas[index].tags); com.m_c1.selectedIndex = Math.Min(count, ArenaTagCfgArray.Instance.dataArray.Length); UpdateFightScore(com.m_comFightScore.target, roleDatas); if (index == 0) { ItemUtil.UpdateTag(com.m_comTag, roleDatas[index].tags[0]); } if (com.m_btnTagRule.data == null) { com.m_btnTagRule.onClick.Add(OnBtnRuleClick); } com.m_btnTagRule.data = 300002; UI_ComValueInfo.ProxyEnd(); } private void OnBtnRuleClick() { ViewManager.Show(300002); } /// /// 更新战力值 /// public void UpdateFightScore(GObject obj, List roleDatas) { List fightScore = ArenaDataManager.Instance.GetFightScoreList(roleDatas); UI_ComFightScore com = UI_ComFightScore.Proxy(obj); com.m_txtSuitScore.SetVar("value", fightScore[0].ToString()).FlushVars(); ; com.m_txtClickScore.SetVar("value", fightScore[1].ToString()).FlushVars(); ; com.m_txtCardScore.SetVar("value", fightScore[2].ToString()).FlushVars(); ; UI_ComFightScore.ProxyEnd(); } } }