// *********************************************************************** // 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 } }