283 lines
8.9 KiB
C#
283 lines
8.9 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2021-06-16
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "EquipmentRecastBox.View" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
namespace G.UI
|
|
{
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
partial class EquipmentRecastBox
|
|
{
|
|
#region Auto Generate
|
|
|
|
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
[KUIFlag]
|
|
Button _btnClose;
|
|
[KUIFlag]
|
|
Button _btnUpgrade;
|
|
[KUIFlag]
|
|
GameObject __goUpgradeCost;
|
|
[KUIFlag]
|
|
GameObject _goSelect1;
|
|
[KUIFlag]
|
|
GameObject _goSelect2;
|
|
[KUIFlag]
|
|
GameObject __goEquipment1;
|
|
[KUIFlag]
|
|
GameObject __goEquipment2;
|
|
[KUIFlag]
|
|
KUIList __listEquipments;
|
|
[KUIFlag]
|
|
Button _btnTips;
|
|
[KUIFlag]
|
|
Image _imgProgress;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpProgress;
|
|
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
#endregion
|
|
|
|
#region Field
|
|
|
|
private CostWidget _upgradeCostWidget;
|
|
private Item.ItemInfo _upgradeCost;
|
|
|
|
private EquipmentWidget _equipment1;
|
|
private EquipmentWidget _equipment2;
|
|
|
|
private EquipmentSelectWidget _selectWidget1;
|
|
private EquipmentSelectWidget _selectWidget2;
|
|
|
|
private bool _changed = false;
|
|
|
|
#endregion
|
|
|
|
#region Method
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void InitView()
|
|
{
|
|
SetViewData();
|
|
__listEquipments.AddTemplate<EquipmentSelectWidget>(true);
|
|
_upgradeCostWidget = __goUpgradeCost.AddComponent<CostWidget>();
|
|
|
|
_equipment1 = __goEquipment1.AddComponent<EquipmentWidget>();
|
|
_equipment2 = __goEquipment2.AddComponent<EquipmentWidget>();
|
|
|
|
//gameObject.GetComponent<Button>().onClick.AddListener(this.OnCloseBtnClick);
|
|
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
|
|
_btnUpgrade.onClick.AddListener(this.OnUpgradeBtnClick);
|
|
_btnTips.onClick.AddListener(this.OnTipsBtnClick);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void RefreshView()
|
|
{
|
|
_changed = false;
|
|
_selectWidget1 = null;
|
|
_selectWidget2 = null;
|
|
_equipment1.SetData(null);
|
|
_equipment2.SetData(null);
|
|
RefreshSelect();
|
|
|
|
RefreshEquipments();
|
|
//RefreshProgress();
|
|
}
|
|
|
|
public void RefreshEquipments()
|
|
{
|
|
var equipments = BagProxy.Instance.GetRecastEquipments();
|
|
__listEquipments.Clear();
|
|
foreach (var equipment in equipments)
|
|
{
|
|
var widget = __listEquipments.GetItem();
|
|
widget.SetData(equipment);
|
|
}
|
|
}
|
|
|
|
void RefreshSelect()
|
|
{
|
|
_equipment1.SetData(_selectWidget1?.data);
|
|
_equipment2.SetData(_selectWidget2?.data);
|
|
if (_selectWidget1 != null && _selectWidget2 != null)
|
|
{
|
|
var a = _selectWidget1.data as EntityItemEquipment;
|
|
_upgradeCost = new Item.ItemInfo
|
|
{
|
|
id = Item.Id.kChip,
|
|
count = 50 * a.propLevel,
|
|
};
|
|
RefreshCost();
|
|
RefreshProgress(a.propLevel);
|
|
}
|
|
else
|
|
{
|
|
if (_selectWidget1 != null)
|
|
{
|
|
var a = _selectWidget1.data as EntityItemEquipment;
|
|
RefreshProgress(a.propLevel);
|
|
}
|
|
else if (_selectWidget2 != null)
|
|
{
|
|
var a = _selectWidget2.data as EntityItemEquipment;
|
|
RefreshProgress(a.propLevel);
|
|
}
|
|
else
|
|
{
|
|
RefreshProgress(0);
|
|
}
|
|
|
|
_upgradeCostWidget.SetPrice(Item.Id.kChip, 0, true);
|
|
_btnUpgrade.interactable = false;
|
|
}
|
|
}
|
|
|
|
void RefreshCost()
|
|
{
|
|
bool enough = MoneyProxy.Instance.CheckMoney(_upgradeCost);
|
|
_upgradeCostWidget.SetPrice(_upgradeCost.id, _upgradeCost.count, enough);
|
|
//if (enough && _upgradeCost.id > 0 && _upgradeCost.count > 0)
|
|
_btnUpgrade.interactable = true;
|
|
//else
|
|
// _btnUpgrade.interactable = false;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void RefreshProgress(int propLevel)
|
|
{
|
|
if (propLevel > 0)
|
|
{
|
|
var info = RandomProxy.Instance.GetRandomInfo(RandomProxy.RACAST_RATE_ID + propLevel);
|
|
int cur = (info.x % info.y) + 1;
|
|
_tmpProgress.text = $"{cur}/{info.y}";
|
|
_imgProgress.fillAmount = cur / (float)info.y;
|
|
}
|
|
else
|
|
{
|
|
_tmpProgress.text = $"0/0";
|
|
_imgProgress.fillAmount = 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void SelectEquipment(EquipmentSelectWidget widget)
|
|
{
|
|
if (_selectWidget1 == widget || _selectWidget2 == widget)
|
|
{
|
|
if (_selectWidget1 == widget)
|
|
{
|
|
_selectWidget1 = null;
|
|
}
|
|
else
|
|
{
|
|
_selectWidget2 = null;
|
|
}
|
|
|
|
widget.SetSelect(false);
|
|
//SelectEquipment((EntityItemEquipment)widget.data, false);
|
|
}
|
|
else
|
|
{
|
|
if (_selectWidget1 != null && _selectWidget2 != null)
|
|
{
|
|
ToastBox.ShowText("只能选择两件");
|
|
}
|
|
else if (_selectWidget1 != null)
|
|
{
|
|
var a = (EntityItemEquipment)_selectWidget1.data;
|
|
var b = (EntityItemEquipment)widget.data;
|
|
if (a.propLevel == b.propLevel && a.propQuality == b.propQuality)
|
|
{
|
|
_selectWidget2 = widget;
|
|
widget.SetSelect(true);
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("只能同等级同品质装备才能重铸");
|
|
}
|
|
}
|
|
else if (_selectWidget2 != null)
|
|
{
|
|
var a = (EntityItemEquipment)_selectWidget2.data;
|
|
var b = (EntityItemEquipment)widget.data;
|
|
if (a.propLevel == b.propLevel && a.propQuality == b.propQuality)
|
|
{
|
|
_selectWidget1 = widget;
|
|
widget.SetSelect(true);
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("只能同等级同品质装备才能重铸");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_selectWidget1 = widget;
|
|
widget.SetSelect(true);
|
|
}
|
|
}
|
|
RefreshSelect();
|
|
}
|
|
|
|
private void OnUpgradeBtnClick()
|
|
{
|
|
if (_equipment1.data != null && _equipment2.data != null)
|
|
{
|
|
if (!MoneyProxy.Instance.CheckAndCostMoney(_upgradeCost, GlobalDefine.COST_MONEY_EQUIPMENT_RECAST))
|
|
{
|
|
AdMoneyBox.ShowAdMoney(Item.Id.kChip, true);
|
|
|
|
return;
|
|
}
|
|
|
|
var newEquipment = BagProxy.Instance.RacastEquipments((EntityItemEquipment)_equipment1.data, (EntityItemEquipment)_equipment2.data);
|
|
if (newEquipment != null)
|
|
{
|
|
RewardWindow.ShowReward(new Item.ItemInfo
|
|
{
|
|
id = newEquipment.itemId,
|
|
count = 1,
|
|
}, null);
|
|
RefreshView();
|
|
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED, _upgradeCost.id, "racast");
|
|
_changed = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnTipsBtnClick()
|
|
{
|
|
MessageBox.ShowMessage(KLocalization.GetLocalString(66), KLocalization.GetLocalString(67));
|
|
}
|
|
|
|
private void OnCloseBtnClick()
|
|
{
|
|
CloseWindow(this);
|
|
if (_changed)
|
|
GlobalNotifier.PostNotification(GlobalDefine.EVENT_EQUIPMENT_GET);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|