using System;
|
using System.Collections.Generic;
|
using LitJson;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//合成界面
|
public class ComposeWin : UIBase
|
{
|
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Text nameText;
|
[SerializeField] Text descText;
|
[SerializeField] ItemCell needItemCell;
|
[SerializeField] Text haveCntText;
|
[SerializeField] SliderPanel sliderPanel;
|
[SerializeField] Button composeButton;
|
|
|
int useCnt;
|
int materialCnt;
|
int materialID;
|
int makeID;
|
protected override void InitComponent()
|
{
|
composeButton.AddListener(() =>
|
{
|
if (!ItemLogicUtility.CheckItemCount(PackType.Item, materialID, useCnt * materialCnt, 2))
|
{
|
return;
|
}
|
|
CloseWindow();
|
|
var pack = new CA303_tagCMItemCompound();
|
pack.ID = (uint)ItemCompoundConfig.GetItemCompoundConfig(makeID).id;
|
pack.CompoundCnt = (ushort)useCnt;
|
|
var items = PackManager.Instance.GetItemsById(PackType.Item, materialID);
|
pack.FixedItemIndexCnt = (byte)items.Count;
|
pack.FixedItemIndex = new byte[items.Count];
|
for (int i = 0; i < items.Count; i++)
|
{
|
pack.FixedItemIndex[i] = (byte)items[i].gridIndex;
|
}
|
GameNetSystem.Instance.SendInfo(pack);
|
|
});
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
makeID = functionOrder;
|
var makeItem = ItemConfig.Get(makeID);
|
var config = ItemCompoundConfig.GetItemCompoundConfig(makeID);
|
materialID = config.itemID;
|
materialCnt = config.itemCount;
|
|
itemCell.Init(new ItemCellModel(makeID, false, PackManager.Instance.GetItemCountByID(PackType.Item, makeID)));
|
nameText.text = makeItem.ItemName;
|
descText.text = makeItem.Description;
|
|
needItemCell.Init(new ItemCellModel(materialID, false, 0));
|
needItemCell.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(materialID);
|
});
|
|
var haveCnt = PackManager.Instance.GetItemCountByID(PackType.Item, materialID);
|
var haveStr = Language.Get("storename12", haveCnt + "/" + materialCnt);
|
haveCntText.text = haveCnt < materialCnt ? UIHelper.AppendColor(TextColType.Red, haveStr) : haveStr;
|
|
useCnt = 1;
|
sliderPanel.Init((value) => {
|
useCnt = value;
|
var haveStr = Language.Get("storename12", haveCnt + "/" + materialCnt * value);
|
haveCntText.text = haveCnt < materialCnt * value ? UIHelper.AppendColor(TextColType.Red, haveStr) : haveStr;
|
|
}, Math.Max(1, (int)haveCnt/materialCnt));
|
|
|
}
|
|
|
|
|
|
}
|