/// <summary> /// 进入下一个状态 /// </summary> public void ToActionState() { //设置下一个阶段的状态 switch (_SystemState) { case Global.CombatSystemType.InitSystem: _SystemState = Global.CombatSystemType.BeforeAction; break; case Global.CombatSystemType.BeforeAction: _SystemState = Global.CombatSystemType.Actioning; break; case Global.CombatSystemType.Actioning: _SystemState = Global.CombatSystemType.AfterAction; break; case Global.CombatSystemType.AfterAction: if (CheckPlayerFailed() || CheckEnemyFailed()) { _SystemState = Global.CombatSystemType.CombatEnd; } else { _SystemState = Global.CombatSystemType.BeforeAction; } break; case Global.CombatSystemType.CombatEnd: _SystemState = Global.CombatSystemType.ExitSystem; break; } //表示这个阶段执行完毕可以进行下一阶段了 _IsExcuteAction = false; }
/// <summary> /// 开始一场战斗 /// </summary> /// <param name="player">参与战斗的玩家英雄数据</param> /// <param name="enemy">参与战斗的敌人英雄数据</param> public void StartBattle(List <Hero> player, List <Hero> enemy) { //初始化BattleUI CurrentBattleUI.Init(); //创建所有的参与战斗的英雄UI CurrentBattleUI.CreateHeros(player, enemy); //进入到战斗系统初始化阶段 _SystemState = Global.CombatSystemType.InitSystem; _IsExcuteAction = false; _IsBattling = true; }
/// <summary> /// 初始化系统数据 /// </summary> void Init() { if (CurrentBattleUI == null) { CurrentBattleUI = GetComponent <BaseBattleUI>(); if (CurrentBattleUI == null) { CurrentBattleUI = this.gameObject.AddComponent <BaseBattleUI>(); } DebugLog(LogType.ERROR, "Not found Battle UI,Use BaseBattleUI instead!"); } _SystemState = Global.CombatSystemType.ExitSystem; _PlayerTeam = new List <HeroMono>(); _EnemyTeam = new List <HeroMono>(); _AttackList = new List <HeroMono>(); _CurTurnHero = null; _IsBattling = false; _IsExcuteAction = true; }
/// <summary> /// 强制结束状态到什么状态 /// </summary> public void AbortAction(Global.CombatSystemType state) { _SystemState = state; //表示这个阶段执行完毕可以进行下一阶段了 _IsExcuteAction = false; }