using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { [XLua.Hotfix] public class GatherSoulComposeBehaviour : MonoBehaviour { [SerializeField] GatherSoulMatItem[] m_MatItems; [SerializeField] GatherSoulItemBehaviour[] m_RequireItems; GatherSoulComposeModel model { get { return ModelCenter.Instance.GetModel(); } } GatheringSoulModel soulModel { get { return ModelCenter.Instance.GetModel(); } } public void Display(int itemId) { GatherSoulComposeModel.Compose compose; if (!model.TryGetCompose(itemId, out compose)) { return; } for (int i = 0; i < m_RequireItems.Length; i++) { if (compose.requireItems != null && i < compose.requireItems.Count) { if (compose.requireItems[i] == model.jumpGatherSoulItem.itemId) { m_RequireItems[i].Display(model.jumpGatherSoulItem.itemId, model.jumpGatherSoulItem.level); m_RequireItems[i].DisplayCount(1, 1); } else { GatherSoulItem item; bool exist = soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item); m_RequireItems[i].Display(compose.requireItems[i], exist ? item.level : 1); m_RequireItems[i].DisplayCount(exist ? 1 : 0, 1); } } else { m_RequireItems[i].Display(0, 0); } } var index = 0; if (compose.requireSoulSplinters != 0) { if (index < m_MatItems.Length) { m_MatItems[index].Display(GatheringSoulModel.SOULSPLINTERS_MONEYTYPE, compose.requireSoulSplinters); } index++; } if (compose.requireSoulCore != 0) { if (index < m_MatItems.Length) { m_MatItems[index].Display(GatheringSoulModel.SOULCORE_MONEYTYPE, compose.requireSoulCore); } index++; } for (int i = index; i < m_MatItems.Length; i++) { m_MatItems[i].DisplayEmpty(); } } } }