using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class DungeonSlayerVictoryWin : DungeonVictoryWin { List items = new List(); protected override void Display() { m_ContainerPoivt.SetActive(true); base.RequireDungeonExit(); base.DrawPassTime(); m_ContainerExp.SetActive(false); var result = dungeonModel.dungeonResult; items.Clear(); if (result.totalExp > 0) { items.Add(new Item() { itemId = GeneralDefine.expDisplayId, count = result.totalExp, }); } if (result.money != null && result.money.Length > 0) { for (int i = 0; i < result.money.Length; i++) { var moneyType = result.money[i].moneyType; if (GeneralDefine.moneyDisplayIds.ContainsKey(moneyType)) { items.Add(new Item() { itemId = GeneralDefine.moneyDisplayIds[moneyType], count = result.money[i].moneyValue, }); } } } if (result.itemInfo != null) { for (int i = 0; i < result.itemInfo.Length; i++) { items.Add(new Item() { itemId = result.itemInfo[i].ItemID, count = result.itemInfo[i].Count, }); } } DrawItemRewards(); } protected override void DrawItemRewards() { var merged = false; var hasReward = items.Count > 0; m_ContainerReward.SetActive(hasReward); m_RewardIndexs.Clear(); if (m_RewardTweens != null && m_RewardTweens.Length > 0) { for (int i = 0; i < m_RewardTweens.Length; i++) { m_RewardTweens[i].SetEndState(); } } if (items.Count > 0) { var itemModels = new List(); for (int i = 0; i < items.Count; i++) { if (!merged && items[i].itemId == dungeonModel.specialItemCollectRecord.id) { itemModels.Add(new ItemCellModel(items[i].itemId, true, (ulong)items[i].count + (ulong)dungeonModel.specialItemCollectRecord.count)); merged = true; } else { itemModels.Add(new ItemCellModel(items[i].itemId, true, (ulong)items[i].count)); } } for (int i = 0; i < passRewardBehaviours.Length; i++) { var behaviour = passRewardBehaviours[i]; if (i < itemModels.Count) { behaviour.transform.parent.SetActive(true); behaviour.SetActive(false); behaviour.Init(itemModels[i]); m_RewardIndexs.Add(m_SpecialItemCollect == null ? i : i + 1); } else { behaviour.transform.parent.SetActive(false); behaviour.SetActive(false); } } if (m_SpecialItemCollect != null) { if (!merged && dungeonModel.specialItemCollectRecord.count > 0) { m_SpecialItemCollect.transform.parent.SetActive(true); m_SpecialItemCollect.SetActive(false); m_SpecialItemCollect.SetItem(dungeonModel.specialItemCollectRecord); m_RewardIndexs.Insert(0, 0); } else { m_SpecialItemCollect.transform.parent.SetActive(false); m_SpecialItemCollect.SetActive(false); } } } if (m_RewardIndexs.Count > 0 && m_RewardTweens != null && m_RewardTweens.Length > 0) { PlayRewardTween(0); } } public struct Item { public int itemId; public long count; } } }