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)); } }