using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
namespace vnxbqy.UI
|
{
|
public class DungeonSlayerVictoryWin : DungeonVictoryWin
|
{
|
List<Item> items = new List<Item>();
|
|
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<ItemCellModel>();
|
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;
|
}
|
}
|
}
|
|