using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class AlchemyDrugBriefBehaviour : MonoBehaviour { [SerializeField] ItemBehaviour m_Item; [SerializeField] Transform m_ContainerProperty; [SerializeField] PropertyBehaviour[] m_Propertys; [SerializeField] Text m_Effect; static Dictionary s_Propertys = new Dictionary(); AlchemyModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display() { DisplayItem(); DisplayProperty(); DisplayEffect(); model.selectAlchemyRefresh -= SelectAlchemyRefresh; model.selectAlchemyRefresh += SelectAlchemyRefresh; } void DisplayItem() { var config = AlchemyConfig.Get(model.selectAlchemy); m_Item.SetItem(config.AlchemItemID, 0); } void DisplayProperty() { var config = AlchemyConfig.Get(model.selectAlchemy); m_ContainerProperty.SetActive(config.drugPromoteType == 1); if (config.drugPromoteType == 1) { var itemConfig = ItemConfig.Get(config.AlchemItemID); GetItemPromoteProperty(itemConfig,ref s_Propertys); var index = 0; foreach (var property in s_Propertys.Keys) { if (index < m_Propertys.Length) { m_Propertys[index].SetActive(true); m_Propertys[index].DisplayUpper(property, s_Propertys[property]); index++; } } for (int i = index; i < m_Propertys.Length; i++) { m_Propertys[i].SetActive(false); } } } void DisplayEffect() { var config = AlchemyConfig.Get(model.selectAlchemy); m_Effect.SetActive(config.drugPromoteType == 2); if (config.drugPromoteType == 2) { m_Effect.text = config.description; } } private void SelectAlchemyRefresh() { DisplayItem(); DisplayProperty(); DisplayEffect(); } public void Dispose() { model.selectAlchemyRefresh -= SelectAlchemyRefresh; } static void GetItemPromoteProperty(ItemConfig config, ref Dictionary dict) { dict.Clear(); if (config == null) { return; } if (config.Effect1 != 0) { dict.Add(config.Effect1, config.EffectValueA1); } if (config.Effect2 != 0) { dict.Add(config.Effect2, config.EffectValueA2); } if (config.Effect3 != 0) { dict.Add(config.Effect3, config.EffectValueA3); } if (config.Effect4 != 0) { dict.Add(config.Effect4, config.EffectValueA4); } if (config.Effect5 != 0) { dict.Add(config.Effect5, config.EffectValueA5); } } } }