| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using System.Collections.Generic;
- using System.Linq;
- using Core.Language;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Bag;
- using GameLogic.Player;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "TaskInfoPanel")]
- public partial class TaskInfoPanel : UIPanel
- {
- List<WidgetItem> widgetItems = new List<WidgetItem>();
- private int type;
- private void Init()
- {
- isAddStack = false;
- }
- protected override void AddEvent()
- {
- }
- protected override void DelEvent()
- {
- }
- public override void AddButtonEvent()
- {
- Btn_Close.onClick.AddListener(() =>
- {
- if (type == 2)
- {
- return;
- }
- UIManager.Instance.HideUIUIPanel(this);
- });
- Btn_Bag.onClick.AddListener(() => { TipMessagePanel.OpenTipMessagePanel("事件的选择会影响获得的道具!"); });
- Btn_Ok.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
- }
- public async void CustomInit(AccountFileInfo.EventList eventList, int type)
- {
- if (PlayerGuideManager.Instance.GuideIsCanDo(2, 6))
- {
- PlayerGuideManager.Instance.NextGuide();
- }
- this.type = type;
- Btn_Ok.gameObject.SetActive(type == 2);
- EventConfig taskConfig = ConfigComponent.Instance.Get<EventConfig>(eventList.eventID);
- Text_Name.text = LanguageManager.Instance.Text(taskConfig.EventName);
- Text_desc.text = LanguageManager.Instance.Text(taskConfig.Description);
- EventLinkConfig evenkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventList.curStep);
- AccountFileInfo.EventLinkData eventLinkData =
- eventList.eventLinks.FirstOrDefault(el => el.eventLinkId == eventList.curStep);
- if (eventLinkData == null || eventLinkData.eventConditions == null ||
- eventLinkData.eventConditions.Count == 0)
- {
- if (evenkConfig.EventConditionMessage != 0)
- {
- Text_Condition.text = LanguageManager.Instance.Text(evenkConfig.EventConditionMessage);
- }
- else
- {
- Text_Condition.text = "";
- }
- }
- else
- {
- string desc = "";
- foreach (var eventConditionData in eventLinkData.eventConditions)
- {
- desc += EventHelper.GetTaskMessage(eventConditionData) + "\n";
- }
- Text_Condition.text = desc;
- }
- Btn_Bag.gameObject.SetActive(false);
- foreach (var eventListEventLink in eventList.eventLinks)
- {
- EventLinkConfig eventLinkConfig =
- ConfigComponent.Instance.Get<EventLinkConfig>(eventListEventLink.eventLinkId);
- if (eventLinkConfig.optionType == 3)
- {
- Btn_Bag.gameObject.SetActive(true);
- break;
- }
- }
- using (CTaskAwaitBuffer<WidgetItem> cts = new CTaskAwaitBuffer<WidgetItem>())
- {
- for (var i = 0; i < eventList.itemInfos.Count; i++)
- {
- cts.AddTask(UIManager.Instance.CreateGComponent<WidgetItem>(null, ItemRoot));
- }
- widgetItems = await cts.WaitAll();
- }
- for (var i = 0; i < eventList.itemInfos.Count; i++)
- {
- widgetItems[i].InitWidget(new ItemInfo(eventList.itemInfos[i]));
- }
- }
- public async static CTask<TaskInfoPanel> OpenPanel(AccountFileInfo.EventList eventList, int type)
- {
- TaskInfoPanel taskInfoPanel =
- await UIManager.Instance.LoadAndOpenPanel<TaskInfoPanel>(null, UILayer.Top, isShowBG: true);
- taskInfoPanel.CustomInit(eventList, type);
- return taskInfoPanel;
- }
- public async override CTask Close()
- {
- foreach (var widgetItem in widgetItems)
- {
- UIManager.Instance.DormancyGComponent(widgetItem);
- }
- widgetItems.Clear();
- await base.Close();
- }
- }
- }
|