// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-06-22
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
//
//
// ***********************************************************************
namespace G.UI
{
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
///
///
///
partial class OfflineWindow
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
KUIList __listReward;
[KUIFlag]
Button _btnCollect;
[KUIFlag]
TextMeshProUGUI _tmpTime;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
///
///
///
public void InitView()
{
SetViewData();
__listReward.AddTemplate(true);
_btnCollect.onClick.AddListener(this.OnCollectBtnClick);
}
public void RefreshView()
{
if (this.data is BattleResult result)
{
int count = Mathf.Clamp(result.duration, 1, 12);
result.coin = result.coin * count;
result.ApplyResult2();
//_tmpTime.text = $"溢出体力:{result.duration}";
__listReward.Clear();
//__listReward.GetItem().SetItem(Item.Id.kExp, result.exp);
__listReward.GetItem().SetItem(Item.Id.kCoin, result.coin);
int q3 = 0, q4 = 0, q5 = 0;
foreach (var equipment in result.equipments)
{
var quality = equipment.quality;
if (quality == 3)
{
q3++;
}
else if (quality == 4)
{
q4++;
}
else if (quality == 5)
{
q5++;
}
}
__listReward.GetItem().SetQualityCount($"随机{Item.GetQualityText(5)}装备", 5, q5);
__listReward.GetItem().SetQualityCount($"随机{Item.GetQualityText(4)}装备", 4, q4);
__listReward.GetItem().SetQualityCount($"随机{Item.GetQualityText(3)}装备", 3, q3);
}
SoundProxy.PlayFxAsync("Sounds/attack_ui_end.mp3");
}
private void OnCollectBtnClick()
{
PostNotification(GlobalDefine.EVENT_GRADE_CHANGED);
if (this.data is BattleResult result)
{
var rewards = F.ListPool.Get();
//rewards.Add(new Item.ItemInfo
//{
// id = Item.Id.kExp,
// count = result.exp,
//});
rewards.Add(new Item.ItemInfo
{
id = Item.Id.kCoin,
count = result.coin,
});
foreach (var equipment in result.equipments)
{
var quality = equipment.quality;
if (quality == 5 || quality == 4)
{
rewards.Add(new Item.ItemInfo
{
id = equipment.itemId,
count = 1,
});
}
}
RewardWindow.ShowRewards(rewards, result.callback);
F.ListPool.Release(rewards);
}
CloseWindow(this);
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
#endregion
}
}