| | |
| | | private void ResetPendingState() |
| | | { |
| | | isPendingOpen = false; |
| | | viewNPCAttr = null; |
| | | pendingData.isMySide = false; |
| | | pendingData.funcLineID = 0; |
| | | pendingData.mapID = 0; |
| | |
| | | // 自己的数据直接读背包 |
| | | if (data.isMySide) |
| | | { |
| | | OpenNPCDetailWin(pendingData, null); |
| | | OtherPlayerDetailManager.Instance.OpenOtherHeroDetailWin(new ViewHeroDetailData() |
| | | { |
| | | viewHeroType = 0, |
| | | clickHeroData = data, |
| | | }); |
| | | return; |
| | | } |
| | | |
| | |
| | | // 尝试直接从缓存获取数据 |
| | | if (TryGetNPCAttr((uint)data.mapID, (uint)data.funcLineID, (uint)data.npcID, out ViewNPCAttr attr)) |
| | | { |
| | | OpenNPCDetailWin(pendingData, attr); |
| | | OpenNPCDetailWin(attr); |
| | | } |
| | | else |
| | | { |
| | |
| | | int posNum = pendingData.posNum + 1; |
| | | if (!heroData.ContainsKey(posNum)) |
| | | return; |
| | | OtherPlayerDetailManager.Instance.viewHeroType = 0; |
| | | OtherPlayerDetailManager.Instance.clickHeroData = pendingData; |
| | | OtherPlayerDetailManager.Instance.heroData = heroData[posNum]; |
| | | OtherPlayerDetailManager.Instance.heroDatas = heroList; |
| | | |
| | | if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>()) |
| | | OtherPlayerDetailManager.Instance.OpenOtherHeroDetailWin(new ViewHeroDetailData() |
| | | { |
| | | UIManager.Instance.OpenWindow<OtherHeroDetailWin>(); |
| | | } |
| | | viewHeroType = 0, |
| | | clickHeroData = pendingData, |
| | | heroData = heroData[posNum], |
| | | heroDatas = heroList, |
| | | }); |
| | | } |
| | | |
| | | |
| | | private void OpenNPCDetailWin(BattleClickHeroData data, ViewNPCAttr npcAttr) |
| | | public ViewNPCAttr viewNPCAttr; |
| | | private void OpenNPCDetailWin(ViewNPCAttr viewNPCAttr) |
| | | { |
| | | OtherPlayerDetailManager.Instance.viewHeroType = 0; |
| | | OtherPlayerDetailManager.Instance.clickHeroData = data; |
| | | OtherPlayerDetailManager.Instance.viewNPCAttr = npcAttr; |
| | | |
| | | if (data.isMySide) |
| | | this.viewNPCAttr = viewNPCAttr; |
| | | if (!UIManager.Instance.IsOpened<OtherNPCDetailWin>()) |
| | | { |
| | | if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>()) |
| | | { |
| | | UIManager.Instance.OpenWindow<OtherHeroDetailWin>(); |
| | | } |
| | | UIManager.Instance.OpenWindow<OtherNPCDetailWin>(); |
| | | } |
| | | else |
| | | { |
| | | if (!UIManager.Instance.IsOpened<OtherNPCDetailWin>()) |
| | | { |
| | | UIManager.Instance.OpenWindow<OtherNPCDetailWin>(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | // --- 解析属性字典 --- |
| | |
| | | { |
| | | if (TryGetNPCAttr((uint)pendingData.mapID, (uint)pendingData.funcLineID, (uint)pendingData.npcID, out ViewNPCAttr targetAttr)) |
| | | { |
| | | OpenNPCDetailWin(pendingData, targetAttr); |
| | | OpenNPCDetailWin(targetAttr); |
| | | } |
| | | // 处理完毕,重置状态 |
| | | ResetPendingState(); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | public class ViewNPCAttr |
| | | { |
| | | public byte PosNum; // 在本阵容中的站位,从1开始 |