public void SetUp() { _fighter = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); _output = new MockOutput(); _printer = new EventHandlerPrinter(_output); _printer.Subscribe(_fighter); }
static void Main() { FighterFactory.SetGodRelationshipManager(Globals.GodRelationshipManager); EventHandlerPrinter printer = new EventHandlerPrinter(Globals.Output); const string testBattleOptionText = "Test Battle ('test')"; const string campaignOptionText = "Play the \"Campaign\" mode ('campaign')"; //const string demoOptionText = "Play the \"Demo\" mode (fewer battles per region)"; List <MenuAction> menuActions = new List <MenuAction> { new MenuAction(testBattleOptionText, "test"), new MenuAction(campaignOptionText, "campaign"), new MenuAction("exit") }; Menu selectGameplayModeMenu = new Menu(false, false, false, "What mode would you like to play?", null, null, menuActions, Globals.Input, Globals.Output); bool continuer = true; RegionManager regionManager; while (continuer) { Globals.Output.ClearScreen(); regionManager = Globals.RegionManager; selectGameplayModeMenu.Build(null, null, null, null); MenuSelection gameplayModeSelection = selectGameplayModeMenu.GetInput(); switch (gameplayModeSelection.Description) { case testBattleOptionText: Foo(); break; case campaignOptionText: TutorialScreens(); SetupPlayers(out var playerOne, out var playerTwo, printer); MenuManager menuManager = new MenuManager(Globals.Input, Globals.Output, Globals.MenuFactory); var playerTeam = new Team(menuManager, playerOne, playerTwo); BattleManager manager = new BattleManager(Globals.ChanceService, Globals.Input, Globals.Output); Globals.RegionManager.Battle(manager, playerTeam); break; case "exit": continuer = false; break; } } }
public void CorrectlySubscribesToMultipleFighters() { _output = new MockOutput(); EventHandlerPrinter printer = new EventHandlerPrinter(_output); HumanFighter fighter2 = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); HumanFighter fighter3 = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); printer.Subscribe(_fighter, fighter2, fighter3); StatBonusAppliedEventArgs e = new StatBonusAppliedEventArgs(StatType.Defense, 2, false); _fighter.OnStatBonusApplied(e); fighter2.OnStatBonusApplied(e); fighter3.OnStatBonusApplied(e); MockOutputMessage[] outputs = _output.GetOutputs(); Assert.AreEqual(3, outputs.Length); }
/// <summary> /// Handles player names and personality quiz stuff /// </summary> /// <param name="playerOne"></param> /// <param name="playerTwo"></param> /// <param name="printer"></param> private static void SetupPlayers(out HumanFighter playerOne, out HumanFighter playerTwo, EventHandlerPrinter printer) { string playerOneName = GetName(1); string playerTwoName = GetName(2, playerOneName); playerOne = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, playerOneName); playerTwo = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, playerTwoName); Globals.Output.ClearScreen(); printer.Subscribe(playerOne, playerTwo); Globals.DecisionManager.AssignNameBonuses(playerOne, playerTwo); ConfirmationMenu takePersonalityQuizConfirmationMenu = new ConfirmationMenu(false, "To better get to know your characters, would you like to fill out a short personality questionaire?\n(if you decline, the answers will be asigned randomly)\n", Globals.Input, Globals.Output); MenuSelection takePersonalityQuizSelection = takePersonalityQuizConfirmationMenu.GetInput(); Globals.DecisionManager.PersonalityQuiz(playerOne, playerTwo, takePersonalityQuizSelection.Description == "no", Globals.ChanceService); }
public void TearDown() { _fighter = null; _output = null; _printer = null; }