public IEnumerator turnEndTest() { THHGame game = TestGameflow.initStandardGame(); game.run(); game.players[0].cmdInitReplace(game); game.players[1].cmdInitReplace(game); game.sortedPlayers[0].cmdTurnEnd(game); THHGame.TurnEndEventArg turnEnd = game.triggers.getRecordedEvents().LastOrDefault(e => e is THHGame.TurnEndEventArg) as THHGame.TurnEndEventArg; Assert.NotNull(turnEnd); Assert.AreEqual(game.sortedPlayers[0], turnEnd.player); THHGame.TurnStartEventArg turnStart = game.triggers.getRecordedEvents().LastOrDefault(e => e is THHGame.TurnStartEventArg) as THHGame.TurnStartEventArg; Assert.NotNull(turnStart); Assert.AreEqual(game.sortedPlayers[1], turnStart.player); game.Dispose(); yield break; }
public IEnumerator initReplaceTest() { THHGame game = TestGameflow.initStandardGame(); _ = game.run(); yield return(new WaitForSeconds(.1f)); game.players[0].cmdInitReplace(game, game.players[0].init[0]); game.players[1].cmdInitReplace(game, game.players[1].init[0, 1]); yield return(new WaitForSeconds(.1f)); //替换手牌 Assert.AreEqual(8, game.triggers.getRecordedEvents().Length); THHPlayer.InitReplaceEventArg initReplace = game.triggers.getRecordedEvents()[1] as THHPlayer.InitReplaceEventArg; Assert.NotNull(initReplace); Assert.AreEqual(game.players[0], initReplace.player); Assert.AreEqual(1, initReplace.replacedCards.Length); initReplace = game.triggers.getRecordedEvents()[2] as THHPlayer.InitReplaceEventArg; Assert.NotNull(initReplace); Assert.AreEqual(game.players[1], initReplace.player); Assert.AreEqual(2, initReplace.replacedCards.Length); //游戏开始 THHGame.StartEventArg start = game.triggers.getRecordedEvents()[3] as THHGame.StartEventArg; Assert.NotNull(start); //玩家回合开始 THHGame.TurnStartEventArg turnStart = game.triggers.getRecordedEvents()[4] as THHGame.TurnStartEventArg; Assert.NotNull(turnStart); Assert.AreEqual(game.sortedPlayers[0], turnStart.player); //增加法力水晶并充满 THHPlayer.SetMaxGemEventArg setMaxGem = game.triggers.getRecordedEvents()[5] as THHPlayer.SetMaxGemEventArg; Assert.NotNull(setMaxGem); Assert.AreEqual(1, setMaxGem.value); THHPlayer.SetGemEventArg setGem = game.triggers.getRecordedEvents()[6] as THHPlayer.SetGemEventArg; Assert.NotNull(setGem); Assert.AreEqual(1, setGem.value); //抽一张卡 THHPlayer.DrawEventArg draw = game.triggers.getRecordedEvents()[7] as THHPlayer.DrawEventArg; Assert.NotNull(draw); Assert.AreEqual(game.sortedPlayers[0], draw.player); game.Dispose(); }
public IEnumerator initReplaceTest() { THHGame game = TestGameflow.initStandardGame(); _ = game.run(); yield return(game.players[0].cmdInitReplace(game, game.players[0].init[0]).wait()); yield return(game.players[1].cmdInitReplace(game, game.players[1].init[0, 1]).wait()); //替换手牌 IEventArg[] events = game.triggers.getRecordedEvents(); THHPlayer.InitReplaceEventArg initReplace = events.OfType <THHPlayer.InitReplaceEventArg>().First(); Assert.NotNull(initReplace); Assert.AreEqual(game.players[0], initReplace.player); Assert.AreEqual(1, initReplace.replacedCards.Length); initReplace = events.OfType <THHPlayer.InitReplaceEventArg>().Skip(1).First(); Assert.NotNull(initReplace); Assert.AreEqual(game.players[1], initReplace.player); Assert.AreEqual(2, initReplace.replacedCards.Length); //游戏开始 THHGame.StartEventArg start = events.OfType <THHGame.StartEventArg>().First(); Assert.NotNull(start); //玩家回合开始 THHGame.TurnStartEventArg turnStart = events.OfType <THHGame.TurnStartEventArg>().First(); Assert.NotNull(turnStart); Assert.AreEqual(game.sortedPlayers[0], turnStart.player); //增加法力水晶并充满 THHPlayer.SetMaxGemEventArg setMaxGem = events.skipUntil(e => e is THHGame.TurnStartEventArg).OfType <THHPlayer.SetMaxGemEventArg>().First(); Assert.NotNull(setMaxGem); Assert.AreEqual(1, setMaxGem.value); THHPlayer.SetGemEventArg setGem = events.OfType <THHPlayer.SetGemEventArg>().First(); Assert.NotNull(setGem); Assert.AreEqual(1, setGem.value); //抽一张卡 THHPlayer.DrawEventArg draw = events.OfType <THHPlayer.DrawEventArg>().First(); Assert.NotNull(draw); Assert.AreEqual(game.sortedPlayers[0], draw.player); game.Dispose(); }