using System; using System.Linq; using Core.Language; using Excel2Json; using Fort23.UTool; using UnityEngine; using UnityEngine.UI; namespace Fort23.Mono { [UIBinding(prefab = "DialogueOptionWidget")] public partial class DialogueOptionWidget : UIComponent { public EventConditionConfig eventConditionConfig; private Action callback; public int type; private void Init() { } public override void AddEvent() { } public override void DelEvent() { } public override void AddButtonEvent() { OptionWidget.onClick.AddListener(() => { callback?.Invoke(this); }); } public void CustomInit(int id, int mainOpid, Action callback) { type = 1; eventConditionConfig = ConfigComponent.Instance.Get(id); var mainEventConditionConfig = ConfigComponent.Instance.Get(mainOpid); int index = mainEventConditionConfig.optionPara1.ToList().IndexOf(eventConditionConfig.ID); Text_desc.text = LanguageManager.Instance.Text(mainEventConditionConfig.optionPara2[index]); this.callback = callback; if (!EventSystemManager.Instance.CheckCondition(eventConditionConfig.ConditionType, eventConditionConfig.ConditionPara)) { transform.Gray(); } else { transform.RecoverColor(); } LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent()); LayoutRebuilder.ForceRebuildLayoutImmediate(transform); } public void CustomInit(Action callback) { type = 2; Text_desc.text = "取消事件"; this.callback = callback; transform.RecoverColor(); LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent()); LayoutRebuilder.ForceRebuildLayoutImmediate(transform); } } }