123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- using System.Collections.Generic;
- using System.Linq;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Combat;
- using GameLogic.Combat.CombatTool;
- using UnityEngine;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "MainPanel")]
- public partial class MainPanel : UIPanel
- {
- private void Init()
- {
- }
- protected override void AddEvent()
- {
- EventManager.Instance.AddEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
- EventManager.Instance.AddEventListener(CustomEventType.CompleteEvent, CompleteEvent);
- EventManager.Instance.AddEventListener(CustomEventType.RemoveEvent, RemoveEvent);
- }
- private void RemoveEvent(IEventData e)
- {
-
- Text_EventNum.text = AccountFileInfo.Instance.playerData.eventList.Count.ToString();
- CreatShengShiEvent();
- ChagneShenshiBtnActive();
- }
- private void CompleteEvent(IEventData e)
- {
- Text_ExplorationProgress.text = $"火焰山 {AccountFileInfo.Instance.playerData.senceExplorationProgress}%";
- Text_EventNum.text = AccountFileInfo.Instance.playerData.eventList.Count.ToString();
- CreatShengShiEvent();
- ChagneShenshiBtnActive();
- }
- private void DivineSensePointChange(IEventData e)
- {
- Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
-
- }
- private void ChagneShenshiBtnActive()
- {
- Btn_Event.gameObject.SetActive(AccountFileInfo.Instance.playerData.eventList.Count > 0);
- }
- protected override void DelEvent()
- {
- EventManager.Instance.RemoveEventListener(CustomEventType.DivineSensePointChange, DivineSensePointChange);
- EventManager.Instance.RemoveEventListener(CustomEventType.CompleteEvent, CompleteEvent);
- EventManager.Instance.RemoveEventListener(CustomEventType.RemoveEvent, RemoveEvent);
- }
- public override void AddButtonEvent()
- {
- bnt_shengShi.onClick.AddListener(Bnt_shengShi_onClick);
- CameraSelect.onValueChanged.AddListener(CameraSelect_onValueChanged);
-
- Btn_Event.onClick.AddListener(() =>
- {
- EventSystemManager.Instance.isOpenUi = true;
- DivineSenceEventPreviewPanel.OpenPanel();
- });
-
-
- Btn_HeroInfomation.onClick.AddListener(() =>
- {
- HeroInformationPanel.OpenPanel();
- });
- }
- public override CTask<bool> AsyncInit(object[] uiData)
- {
- Text_divineSensePoint.text = $"{AccountFileInfo.Instance.playerData.divineSensePoint}/{PlayerManager.Instance.gameConstantConfig.DetectEventCount}";
- Text_ExplorationProgress.text = $"火焰山 {AccountFileInfo.Instance.playerData.senceExplorationProgress}%";
- Text_EventNum.text = AccountFileInfo.Instance.playerData.eventList.Count.ToString();
- ChagneShenshiBtnActive();
- CreatShengShiEvent();
- return base.AsyncInit(uiData);
- }
- public async override CTask Show()
- {
- await base.Show();
- SkillSelectPanel.OpenSkillSelectPanel();
- CameraSelect.value = 0.7f;
- }
- private void CameraSelect_onValueChanged(float value)
- {
- if (CombatController.currActiveCombat == null ||
- CombatController.currActiveCombat.CombatCameraControllder == null)
- {
- return;
- }
- CombatController.currActiveCombat.CombatCameraControllder.CameraSelect_onValueChanged(value);
- }
- private async void Bnt_shengShi_onClick()
- {
- // EventSystemManager.Instance.DetectRandomEvents();
- if (AccountFileInfo.Instance.playerData.divineSensePoint < PlayerManager.Instance.gameConstantConfig.DetectEventCount)
- {
- TipMessagePanel.OpenTipMessagePanel("神识值不够!");
- return;
- }
- if (EventSystemManager.Instance.isTriggerEvent)
- return;
- EventSystemManager.Instance.isTriggerEvent = true;
- CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
- CombatController.currActiveCombat.CombatSenceController.StartPayShengShi(CombatController.currActiveCombat
- .CombatHeroController.playerHeroEntity.GameObject.transform);
- List<AccountFileInfo.EventList> eventLists = EventSystemManager.Instance.UseDivinesense(1);
- await TimerComponent.Instance.WaitAsync(800);
- if (eventLists == null || eventLists.Count == 0)
- {
- EventSystemManager.Instance.isTriggerEvent = false;
- CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
- return;
- }
-
- List<AccountFileInfo.EventList> reeultEventLists = new List<AccountFileInfo.EventList>();
- reeultEventLists = eventLists.Where((el) =>
- {
- EventConfig eventConfig = ConfigComponent.Instance.Get<EventConfig>(el.eventID);
- return eventConfig.EventType == 2;
- }).ToList();
- int count = eventLists.Count;
- if (reeultEventLists != null && reeultEventLists.Count > 0)
- {
- foreach (var reeultEventList in reeultEventLists)
- {
- EventSystemManager.Instance.CompleteEvent(reeultEventList,true);
- eventLists.Remove(reeultEventList);
- }
- DivineSenceEventResultPanel divineSenceEventResultPanel = await DivineSenceEventResultPanel.OpenPanel(reeultEventLists,count);
- await divineSenceEventResultPanel.UIClosed();
- }
-
- EventSystemManager.Instance.isTriggerEvent = false;
- CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
- AccountFileInfo.Instance.playerData.eventList.AddRange(eventLists);
- AccountFileInfo.Instance.SavePlayerData();
- Text_EventNum.text = AccountFileInfo.Instance.playerData.eventList.Count.ToString();
- ChagneShenshiBtnActive();
- CreatShengShiEvent();
- }
- public async void CreatShengShiEvent()
- {
- UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
- int count = AccountFileInfo.Instance.playerData.eventList.Count >=1 ? 1 : AccountFileInfo.Instance.playerData.eventList.Count;
- for (var i = 0; i < count; i++)
- {
- ShengShiEventWidget shengShiEventWidget =
- await UIManager.Instance.CreateGComponent<ShengShiEventWidget>(null,DynamicEvent);
- shengShiEventWidget.InitShengShiEventWidget(AccountFileInfo.Instance.playerData.eventList[i]);
- }
- }
- [CustomMethod(CustomMethodType.Update)]
- public void Update()
- {
- if (Input.GetKeyDown(KeyCode.Y))
- {
- EventSystemManager.Instance.DetectRandomEvents();
- // CombatDrive.Instance.LoadLevelBattleCombat(100001, delegate(bool isWin)
- // {
- // LogTool.Log("战斗完成"+isWin);
- // });
- }
- }
- public async static CTask OpenPanel()
- {
- await UIManager.Instance.LoadAndOpenPanel<MainPanel>(null);
- }
- }
- }
|