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; public static string guid; int useCnt; int targetCnt; int targetID; int itemID; protected override void InitComponent() { composeButton.AddListener(() => { if (!ItemLogicUtility.CheckItemCount(PackType.Item, targetID, useCnt * targetCnt, 2)) { return; } CloseWindow(); var pack = new CA303_tagCMItemCompound(); pack.ID = (uint)ItemCompoundConfig.GetItemCompoundConfig(itemID).id; pack.CompoundCnt = (ushort)useCnt; GameNetSystem.Instance.SendInfo(pack); }); } protected override void OnPreOpen() { var item = PackManager.Instance.GetItemByGuid(guid); itemID = item.itemId; var config = ItemCompoundConfig.GetItemCompoundConfig(itemID); targetID = config.itemID; targetCnt = config.itemCount; itemCell.Init(new ItemCellModel(itemID, false, item.count)); nameText.text = item.config.ItemName; descText.text = item.config.Description; needItemCell.Init(new ItemCellModel(targetID, false, 0)); needItemCell.button.AddListener(() => { ItemTipUtility.Show(targetID); }); var haveCnt = PackManager.Instance.GetItemCountByID(PackType.Item, targetID); var haveStr = Language.Get("storename12", haveCnt + "/" + targetCnt); haveCntText.text = haveCnt < targetCnt ? UIHelper.AppendColor(TextColType.Red, haveStr) : haveStr; useCnt = 1; sliderPanel.Init((value) => { useCnt = value; var haveStr = Language.Get("storename12", haveCnt + "/" + targetCnt * value); haveCntText.text = haveCnt < targetCnt * value ? UIHelper.AppendColor(TextColType.Red, haveStr) : haveStr; }, Math.Max(1, (int)haveCnt/targetCnt)); } }