135 lines
3.1 KiB
C#
135 lines
3.1 KiB
C#
// ***********************************************************************
|
|
// 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
|
|
}
|
|
}
|