| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | 
							- using System;
 
- using Fort23.Core;
 
- using Fort23.Mono;
 
- using Fort23.UTool;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.CombatType;
 
- using GameLogic.CombatScenesTool;
 
- using GameUI.Combat;
 
- using UnityEngine;
 
- using Utility;
 
- namespace GameLogic.Combat
 
- {
 
-     public class CombatDrive : Singleton<CombatDrive>
 
-     {
 
-         public CombatController CombatController;
 
-         private CombatMonoBaisc combatMonoBaisc;
 
-         private System.Action<bool> caombatFinish;
 
-         public async CTask Init()
 
-         {
 
-             string name = "CombatRoot.prefab";
 
-             AssetHandle assetHandle = await AssetBundleLoadManager.Instance.LoadAssetAsyncTask<GameObject>(name);
 
-             assetHandle.AssetObject<GameObject>().SetActive(true);
 
-             EventManager.Instance.AddEventListener(CustomEventType.ShowLoadingUI, ShowLoadingUI);
 
-             EventManager.Instance.AddEventListener(CustomEventType.CloseLoadingUI, CloseLoadingUI);
 
-             // 
 
-         }
 
-         private void ShowLoadingUI(IEventData eventData)
 
-         {
 
-             LoadingPanel.OpenLodingPanel();
 
-         }
 
-         private void CloseLoadingUI(IEventData eventData)
 
-         {
 
-             UIManager.Instance.HideUIUIPanel<LoadingPanel>();
 
-         }
 
-         public void AddCombatController(CombatController combatController)
 
-         {
 
-             this.CombatController = combatController;
 
-         }
 
-         public async CTask StartCombat(StartCombatInfo startCombatInfo)
 
-         {
 
-             CombatController.Dispose();
 
-             combatMonoBaisc = new LevelBattleCombatMono();
 
-             CombatEquipFallManager.Instance.Dispose();
 
-             CombatEquipFallManager.Instance.Init();
 
-             CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
 
-             // CombatPanel.OpenCombatPanel(cTaskAwaitBuffer);
 
-             CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer);
 
-             cTaskAwaitBuffer.AddTask(combatMonoBaisc.Init(CombatController));
 
-             await cTaskAwaitBuffer.WaitAll();
 
-             await CombatHPPanel.OpenCombatHPPanel();
 
-             LogTool.Log("战斗逻辑自己写");
 
-             await CombatController.InitCombat(startCombatInfo);
 
-             if (startCombatInfo.CombatType == CombatType.CombatType.TestCombat)
 
-             {
 
-                 await CombatPanel.OpenCombatPanel();
 
-             }
 
-             StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
 
-         }
 
-         public async CTask LoadLevelBattleCombat(int levelBattleId, bool isCombatOverUi,int level, System.Action<bool> caombatFinish = null)
 
-         {
 
-             await MarskPanel.OpenPanel();
 
-             UIManager.Instance.HindCurrAllShowPanel();
 
-             // UIManager.Instance.HideUIUIPanel<DivineSenceInfoPanel>();
 
-             StartCombatInfo startCombatInfo = new StartCombatInfo();
 
-             startCombatInfo.CombatType = CombatType.CombatType.LevelBattle;
 
-             startCombatInfo.isCombatOverUi = isCombatOverUi;
 
-             startCombatInfo.monsterLevel = level;
 
-             startCombatInfo.levelBattleId= levelBattleId;
 
-             startCombatInfo.isAutoCombat = AccountFileInfo.Instance.playerData.isAutoCombat;
 
-             await StartCombat(startCombatInfo);
 
-             LevelBattleCombatType levelBattleCombatType = CombatController.CombatTypeBasic as LevelBattleCombatType;
 
-             if (levelBattleCombatType != null)
 
-             {
 
-                 this.caombatFinish = caombatFinish;
 
-                 CombatController.ChangeState(CombatController.idle);
 
-                 CombatController.combatFinish = CombatFinish;
 
-                 await levelBattleCombatType.LoadCombat(levelBattleId, caombatFinish);
 
-             }
 
-             else
 
-             {
 
-                 return;
 
-             }
 
-             // CTaskAwaitBuffer cTaskAwaitBuffer = new CTaskAwaitBuffer();
 
-             // // CombatPanel.OpenCombatPanel(cTaskAwaitBuffer);
 
-             // CombatShowTextPanel.OpenCombatShowTextPanel(cTaskAwaitBuffer);
 
-             //
 
-             // cTaskAwaitBuffer.AddTask(combatMonoBaisc.Init(CombatController));
 
-             // await cTaskAwaitBuffer.WaitAll();
 
-             // await CombatHPPanel.OpenCombatHPPanel();
 
-             await CombatPanel.OpenCombatPanel();
 
-             ///播放动画
 
-             // MainPanel mainPanel = UIManager.Instance.GetComponent<MainPanel>();
 
-             // mainPanel.transform.gameObject.SetActive(false);
 
-             CombatController.ChangeState(CombatController.fight);
 
-             await MarskPanel.ClosePanel();
 
-         }
 
-         protected async void CombatFinish(bool isWin)
 
-         {
 
-             UIManager.Instance.HideUIUIPanel<CombatHPPanel>();
 
-             await LoadCombatFinishUI(isWin);
 
-             // MainPanel mainPanel = UIManager.Instance.GetComponent<MainPanel>();
 
-             // mainPanel.transform.gameObject.SetActive(true);
 
-         }
 
-         private async CTask LoadCombatFinishUI(bool isWin)
 
-         {
 
-             UIManager.Instance.GetComponent<CombatPanel>().Hide();
 
-             await combatMonoBaisc.GameOver(isWin);
 
-         }
 
-         /// <summary>
 
-         /// 战斗到章节
 
-         /// </summary>
 
-         /// <param name="isWin"></param>
 
-         public void CombatToStage(bool isWin)
 
-         {
 
-             CombatController.CombatHeroController.CombatFinishDispose();
 
-             CombatController.DisposeOneCombatInfo();
 
-             if (isWin)
 
-             {
 
-                 LevelBattleCombatType levelBattleCombatType = CombatController.CombatTypeBasic as LevelBattleCombatType;
 
-                 EventSystemManager.Instance.CeekEventCompletes(5, new[] { levelBattleCombatType.levelbattleConfig.ID });
 
-             }
 
-             caombatFinish?.Invoke(isWin);
 
-             UIManager.Instance.ShowLastHindAllShowPanel();
 
-             foreach (var instancePopUIPanel in UIManager.Instance.popUIPanels)
 
-             {
 
-                 instancePopUIPanel.transform.SetAsLastSibling();
 
-             }
 
-         }
 
-         public void Update()
 
-         {
 
-             float t = Time.deltaTime;
 
-             CombatController.Update(t);
 
-             combatMonoBaisc.Update(t);
 
-         }
 
-         public void Dispose()
 
-         {
 
-             StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
 
-         }
 
-     }
 
- }
 
 
  |