public void OnBattleStart() { BattleState = State.BattleStart; GameManager.instance.gameInputMode = GameManager.InputMode.play; UIManager.instance.ActiveUI("BattleMode", true); UIManager.instance.ActiveUI("BattleStartButton", false); UIManager.instance.ActiveUI("UIArea", true); UIManager.instance.ActiveUI("TurnEnd", true); UIManager.instance.SetActorsUI(actorsInBattle_list); foreach (var actor in actorsInBattle_list) { if (actor.GetComponent <ActorMono>().group == ActorMono.Group.monster) { continue; } actor.SendMessage("OnBattle"); var actorMono = actor.GetComponent <ActorMono>(); actorMono.OnBattle(); actorMono.InitDeck(); actorMono.ShuffleDeck(); } // 确定对战队列 ActorSortByAdvantage sort = new ActorSortByAdvantage(); actorsQueue_list = new List <GameObject>(actorsInBattle_list); actorsQueue_list.Sort(sort); actor_curTurn = actorsQueue_list[0].GetComponent <ActorMono>(); }
public void OnTurnEnd() { if (BattleState == State.None) { return; } if (IfBattleEnd) { OnBattleEnd(); return; } BattleState = State.TurnEnd; if (actor_curTurn.group == ActorMono.Group.player) { actor_curTurn.DiscardEndCard(); actor_curTurn.ResumeActionPointToZero(); } // 选择下一个激活的对象 do { turnIndex += 1; if (turnIndex >= actorsQueue_list.Count) { // 一轮结束,下一轮重新根据优先级决定队列 ActorSortByAdvantage sort = new ActorSortByAdvantage(); actorsQueue_list = new List <GameObject>(actorsInBattle_list); actorsQueue_list.Sort(sort); turnIndex = 0; } actor_curTurn = actorsQueue_list[turnIndex].GetComponent <ActorMono>(); }while (actor_curTurn.battleState == ActorMono.BattleState.death); OnTurnStart(); }