135 lines
3.1 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-06-16
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "GemUpgradeBox.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class GemUpgradeBox
{
#region Auto Generate
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnClose;
[KUIFlag]
Button _btnUpgrade;
[KUIFlag]
KUIList __goGems;
[KUIFlag]
GameObject __goUpgradeCost;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Field
private bool[] _gemFilter = new bool[8];
private CostWidget _upgradeCostWidget;
private Item.ItemInfo _upgradeCost;
private Dictionary<int, GemSelectWidget> _gemSelectWidgets = new Dictionary<int, GemSelectWidget>();
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
SetViewData();
__goGems.AddTemplate<GemSelectWidget>(true);
_upgradeCostWidget = __goUpgradeCost.AddComponent<CostWidget>();
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
gameObject.GetComponent<Button>().onClick.AddListener(this.OnCloseBtnClick);
_btnUpgrade.onClick.AddListener(this.OnUpgradeBtnClick);
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
var gems = BagProxy.Instance.GetGemsBySlot();
__goGems.Clear();
_gemSelectWidgets.Clear();
foreach (var gemKV in gems)
{
if (gemKV.Value.Count > 0)
{
var widget = __goGems.GetItem<GemSelectWidget>();
widget.SetData(gemKV.Value[0]);
_gemSelectWidgets.Add(gemKV.Key, widget);
}
}
RefreshFilter();
}
/// <summary>
///
/// </summary>
public void RefreshFilter()
{
foreach (var item in _gemSelectWidgets)
{
_gemFilter[item.Key] = item.Value.IsSelect();
}
_upgradeCost = BagProxy.Instance.CalcOneKeyGemUpgradeCost(_gemFilter);
bool enough = MoneyProxy.Instance.CheckMoney(_upgradeCost);
_upgradeCostWidget.SetPrice(_upgradeCost.id, _upgradeCost.count, enough);
_btnUpgrade.interactable = true;
//if (enough && _upgradeCost.id > 0 && _upgradeCost.count > 0)
//else
// _btnUpgrade.interactable = false;
}
/// <summary>
///
/// </summary>
public void UpdateView()
{
}
private void OnUpgradeBtnClick()
{
if (!MoneyProxy.Instance.CheckMoney(_upgradeCost))
{
AdMoneyBox.ShowAdMoney(Item.Id.kChip, true);
return;
}
foreach (var item in _gemSelectWidgets)
{
_gemFilter[item.Key] = item.Value.IsSelect();
}
BagProxy.Instance.GemOneKeyUpgrade(_gemFilter);
CloseWindow(this);
}
private void OnCloseBtnClick()
{
CloseWindow(this);
}
#endregion
}
}