public void ChangeRoundStatus(RoundStatus nextRoundStatus) { switch (nextRoundStatus) { case RoundStatus.RoundEnd: roundStatus = RoundStatus.RoundEnd; if (roundTurn == RoundTurn.EnemyRound) { enemy.BuffReduce(); roundTurn = RoundTurn.PlayerRound; roundNum++; } else { player.BuffReduce(); roundTurn = RoundTurn.EnemyRound; } ChangeRoundStatus(RoundStatus.RoundBegin); break; case RoundStatus.RoundBegin: roundStatus = RoundStatus.RoundBegin; RoundBegin(); break; case RoundStatus.Rounding: roundStatus = RoundStatus.Rounding; break; } }
public void BattleStart() { player.GetCardsFromLibrary(6); View.GetInstance().ShowPlayerCards(); enemy.GetCardsFromLibrary(6); roundTurn = RoundTurn.PlayerRound; battleStatus = BattleStatus.Batttling; RoundBegin(); }
/// <summary> /// 当玩家行动完毕后,检查是否需要切换双方主动权 /// </summary> void CheckChangeTurnToEnemy() { bool isAllActioned = true; foreach (KeyValuePair <int, FightHero> pair in _heros) { if (!pair.Value.IsActioned && pair.Value.CreatureData.Hp.Value > 0) { isAllActioned = false; _nowHeroId = pair.Value.Id; FightHero fh = _heros[_nowHeroId]; EventSys.Instance.AddEvent(ViewEvent.SetSelectedHero, fh); break; } } if (isAllActioned) { _nowTurn = RoundTurn.Enemy; EventSys.Instance.AddEvent(ViewEvent.FightChangeTurn, false); EventSys.Instance.AddEvent(LogicEvent.FightStartAi, _heros, _enemies); } }
/// <summary> /// 进入下一个回合 /// </summary> void NextRound() { bool isFirst = true; foreach (KeyValuePair <int, FightHero> pair in _heros) { if (isFirst) { _nowHeroId = pair.Value.Id; isFirst = false; } pair.Value.IsActioned = false; } foreach (Enemy e in _enemies) { e.IsActioned = false; } _round++; _nowTurn = RoundTurn.Hero; EventSys.Instance.AddEvent(ViewEvent.FightUpdateRound, _round, _heros[_nowHeroId]); EventSys.Instance.AddEvent(ViewEvent.FightChangeTurn, true); }
void Update() { InputControl(); switch (battleStatus) { case BattleStatus.BattleBegin: battleStatus = BattleStatus.BattleBegin; player.CardManager.ExpenseReset(); player.CardManager.SelectCard(); player.GetCardsFromLibrary(6); enemy.GetCardsFromLibrary(6); roundStatus = RoundStatus.RoundBegin; roundTurn = RoundTurn.PlayerRound; battleStatus = BattleStatus.Batttling; break; case BattleStatus.Batttling: battleStatus = enemy.HP <= 0 ? BattleStatus.PlayerWin : battleStatus; battleStatus = player.HP <= 0 ? BattleStatus.PlayerLose : battleStatus; switch (roundStatus) { case RoundStatus.RoundBegin: Debug.Log("轮到" + roundTurn.ToString() + "的回合"); switch (roundTurn) { case RoundTurn.PlayerRound: player.CardManager.ExpenseReset(); player.GetCardsFromLibrary(3); break; case RoundTurn.EnemyRound: enemy.CardManager.ExpenseReset(); enemy.GetCardsFromLibrary(3); break; } roundStatus = RoundStatus.Rounding; break; case RoundStatus.Rounding: switch (roundTurn) { case RoundTurn.PlayerRound: break; case RoundTurn.EnemyRound: if (enemy.isRound == false) { StartCoroutine("EnemyPutCard"); enemy.isRound = true; } break; } break; case RoundStatus.RoundEnd: switch (roundTurn) { case RoundTurn.PlayerRound: player.BuffReduce(); roundTurn = RoundTurn.EnemyRound; break; case RoundTurn.EnemyRound: enemy.BuffReduce(); roundTurn = RoundTurn.PlayerRound; break; } roundStatus = RoundStatus.RoundBegin; break; } break; case BattleStatus.PlayerLose: GameManager.Instance.ReturnToMenu(false); battleStatus = BattleStatus.PlayerPause; break; case BattleStatus.PlayerWin: battleStatus = BattleStatus.PlayerPause; PlayerWin(); break; case BattleStatus.PlayerPause: default: break; } }