using Fort23.Core; using Fort23.UTool; using GameLogic.Combat; using GameLogic.Combat.CombatTool; using UnityEngine; using UnityEngine.UI; namespace Fort23.Mono.Phases { public class Phase5 : IGuideLogic { public PlayerGuideManager pgm; public BetterList dialogList = new BetterList(); private bool once = false; public Phase5(PlayerGuideManager guideManager) { this.pgm = guideManager; once = true; } public override void Active() { base.Active(); actionList.Add(OnStep501); actionList.Add(OnStepEnd); } public override void Begin() { guideID = 5; guideIdx = -1; pgm.isForceDone = false; pgm.isTriggerDone = false; } public override void End() { } public override async CTask Guide() { if (actionList.Count > guideIdx) { pgm.ResetPlayerGuide(); guideIdx++; SaveStep(guideIdx); await actionList[guideIdx](null); } else { LogTool.Error("没有引导了,强制结束。出错步骤,:" + pgm.curPhase + guideIdx); pgm.isForceDone = true; } } public override void LogicRelase() { actionList.Clear(); } public override void LogicUpdate() { } /// /// 点击功法 /// /// public async CTask OnStep501(UnityEngine.Object obj) { pgm.StepInit(); pgm.SetBlackAlpha(0.05f); pgm.SetOnClickMask(true); await TimerComponent.Instance.WaitAsync(1000); pgm.SetOnClickMask(false); CombatDrive.Instance.CombatController.ChangeState(CombatController.idle); await pgm.ConfigLogic(501, delegate() { pgm.NextGuide(); }); } public async CTask OnStepEnd(UnityEngine.Object obj) { pgm.StepInit(); CombatDrive.Instance.CombatController.ChangeState(CombatController.update); pgm.SetBlackBaseVisiable(false); ForceGuideOver(); } /// /// 引导完成 /// private void ForceGuideOver() { pgm.CloseForceGuide(); pgm.RestGuide(); } } }