public void ConstructorInitializesExpGiven([Values(FighterType.Fairy, FighterType.Goblin, FighterType.Golem, FighterType.Ogre)] FighterType type, [Values(1, 2, 3)] int level) { var fighter = (EnemyFighter)FighterFactory.GetFighter(type, level); Assert.AreEqual(level * 5, fighter.ExpGivenOnDefeat); }
public void Team_TestAddRange_CorrectlyUpdatesDisplayNames() { Goblin goblin1 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); Goblin goblin2 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); Goblin goblin3 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); Goblin goblin4 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); Team testTeam = new Team(TestMenuManager.GetTestMenuManager(), goblin1 ); List <Goblin> goblinsToAdd = new List <Goblin> { goblin2, goblin3, goblin4 }; testTeam.AddRange(goblinsToAdd); for (var i = 0; i < 4; ++i) { EnemyFighter enemy = testTeam.Fighters[i] as EnemyFighter; char expectedAppendedChar = (char)('A' + i); string expectedAppendStr = $"{expectedAppendedChar}"; Assert.AreEqual(expectedAppendStr, enemy?.AppendText); } }
public void Constructor_CorrectlySetsDisplayNames_TeamEntirelyComprisedOfNormalEnemies() { IFighter enemy1 = FighterFactory.GetFighter(FighterType.Goblin, 1); IFighter enemy2 = FighterFactory.GetFighter(FighterType.Goblin, 1); IFighter enemy3 = FighterFactory.GetFighter(FighterType.Fairy, 1); IFighter enemy4 = FighterFactory.GetFighter(FighterType.Fairy, 1); List <IFighter> fighters = new List <IFighter> { enemy1, enemy2, enemy3, enemy4, }; Team team = new Team(_menuManager, fighters); for (var i = 0; i < 4; ++i) { IFighter fighter = team.Fighters[i]; char expectedChar = (char)('A' + (i % 2)); Assert.AreEqual($"{expectedChar}", fighter.AppendText); } }
public void SetupMove_PrintsCorrectPrompts() { Fairy fairy = (Fairy)FighterFactory.GetFighter(FighterType.Fairy, 1); _fighter.SetEnemy(fairy); _input.Push("1", "1"); _fighter.SetupMove(_ownTeam, _enemyTeam); MockOutputMessage[] outputs = _output.GetOutputs(); int expectedOutputLength = 5; //menu prompt for both menus, plus "back," "help," and "status" option from target menu expectedOutputLength += fairy.AvailableMoves.Count + _enemyTeam.Fighters.Count; Assert.AreEqual(expectedOutputLength, outputs.Length); int i = 0; MockOutputMessage output = outputs[i++]; Assert.AreEqual($"You are currently selecting a move for {fairy.DisplayName}. What move will you use?\n", output.Message); Assert.AreEqual(ConsoleColor.Cyan, output.Color); for (int j = 0; j < fairy.AvailableMoves.Count; ++j) { BattleMove move = fairy.AvailableMoves[j]; output = outputs[i++]; Assert.AreEqual($"{j + 1}. {move.Description}\n", output.Message); } }
public void AssignNameBonuses_IgnoresCaseOfFighterName([Values("upper", "lower")] string nameCase) { string danteName = "Dante"; string arrokohName = "Arrokoh"; danteName = nameCase == "upper" ? danteName.ToUpperInvariant() : danteName.ToLowerInvariant(); arrokohName = nameCase == "upper" ? arrokohName.ToUpperInvariant() : arrokohName.ToLowerInvariant(); HumanFighter dante = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, danteName); HumanFighter arrokoh = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, arrokohName); int arrokohPreBonusStrength = arrokoh.Strength; int dantePreBonusSpeed = dante.Speed; _decisionManager.AssignNameBonuses(dante, arrokoh); int arrokohPostBonusStrength = arrokoh.Strength; int dantePostBonusSpeed = dante.Speed; int arrokohStrengthBonus = arrokohPostBonusStrength - arrokohPreBonusStrength; Assert.Greater(arrokohStrengthBonus, 0); int danteSpeedBonus = dantePostBonusSpeed - dantePreBonusSpeed; Assert.Greater(danteSpeedBonus, 0); }
public void FighterFactory_AutoInitializesHumanFighters_GodRelationshipManagerSet() { FighterFactory.SetGodRelationshipManager(_relationshipManager); _fighter = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); Assert.DoesNotThrow(() => _relationshipManager.GetFighterRelationshipValue(_fighter, GodEnum.MachineGod)); }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _menuFactory = new MenuFactory(); _manager = new MenuManager(_input, _output, _menuFactory); _logger = new EventLogger(); _playerOne = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "swordsman"); Spell fireSpell = SpellFactory.GetSpell(MagicType.Fire, 1); _playerOne.AddSpell(fireSpell); _playerOne.SetMana(fireSpell.Cost); _playerTwo = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "mage"); _playerThree = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "alchemist"); _playerTeam = new Team(_manager, _playerOne, _playerTwo, _playerThree); _enemyTeam = new Team(_manager, new List <IFighter> { FighterFactory.GetFighter(FighterType.Goblin, 1), FighterFactory.GetFighter(FighterType.Goblin, 1), FighterFactory.GetFighter(FighterType.Goblin, 1) }); _manager.InitializeForBattle(_playerTeam, _enemyTeam); }
public void FighterFactoryCorrectlyReturnsShade() { Shade returnedFighter = null; Assert.DoesNotThrow(() => returnedFighter = (Shade)FighterFactory.GetFighter(FighterType.Shade, 1)); Assert.NotNull(returnedFighter); }
public void SetUp() { _relationshipManager = new GodRelationshipManager(); _allGodValues = EnumHelperMethods.GetAllValuesForEnum <GodEnum>(); FighterFactory.SetGodRelationshipManager(_relationshipManager); _fighter = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); }
public void FighterFactory_CorrectlyRandomizesEggType_IfNoneSpecified() { TestFighterFactory.SetChanceService(_chanceService); _chanceService.PushWhichEventOccurs(0); Egg egg = (Egg)FighterFactory.GetFighter(FighterType.Egg, 1); Assert.AreEqual(Globals.EggMagicTypes[0], egg.MagicType); }
public void SetUp() { _fighter = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); _output = new MockOutput(); _printer = new EventHandlerPrinter(_output); _printer.Subscribe(_fighter); }
public void SetUp() { _menuInput = new MockInput(); _menuOutput = new MockOutput(); _menuManager = new TestMenuManager(_menuInput, _menuOutput); _player = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); Spell fireball = SpellFactory.GetSpell(MagicType.Fire, 1); Spell earthSpell = SpellFactory.GetSpell(MagicType.Earth, 1); _player.AddSpell(fireball); _player.AddSpell(earthSpell); _player.SetMana(fireball.Cost); _playerTeam = new Team(_menuManager, _player); _enemyTeam = new Team(_menuManager, (EnemyFighter)FighterFactory.GetFighter(FighterType.Goblin, 1)); _menu = (Menu)Globals.MenuFactory.GetMenu(MenuType.ChooseAttackTypeMenu, _menuInput, _menuOutput); _menu.Build(_player, _playerTeam, _enemyTeam, null); _fullSpellMenuPrompt = new List <string> { $"Which spell would you like to cast?\n{_player.DisplayName} currently has {_player.CurrentMana} / {_player.MaxMana} Mana\n", }; var spellMenu = (SpellSelectionMenu)Globals.MenuFactory.GetMenu(MenuType.ChooseSpellMenu); spellMenu.Build(_player, _playerTeam, _enemyTeam, null); var spellMenuActions = spellMenu.MenuActions; for (var i = 0; i < spellMenuActions.Count; ++i) { _fullSpellMenuPrompt.Add((i + 1) + ". " + spellMenuActions[i].DisplayText + "\n"); } _fullSpellMenuPrompt.Add(StatusPrompt); _fullSpellMenuPrompt.Add(HelpPrompt); _fullMenuPrompt = new List <string> { "How would you like to fight?\n", "1. attack\n", "2. magic\n", StatusPrompt, HelpPrompt }; _fullTargetMenuPrompt = new List <string> { "Who will you target for this action?\n", "1. " + _enemyTeam.Fighters[0].DisplayName + "\n", StatusPrompt, BackPrompt, HelpPrompt }; }
public void AssignNameBonuses_CorrectlySetsPersonalityFlag() { HumanFighter poopyCarrots = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "PoopyCarrots"); HumanFighter chesterton = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Chesterton"); _decisionManager.AssignNameBonuses(poopyCarrots, chesterton); Assert.Contains(PersonalityFlag.Heroic, poopyCarrots.PersonalityFlags); Assert.Contains(PersonalityFlag.MorallyFlexible, chesterton.PersonalityFlags); }
public void AssignNameBonuses_CorrectlySetsGodRelationship() { HumanFighter poopyCarrots = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "PoopyCarrots"); HumanFighter chesterton = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Chesterton"); _decisionManager.AssignNameBonuses(poopyCarrots, chesterton); Assert.AreEqual(1, _relationshipManager.GetFighterRelationshipValue(poopyCarrots, GodEnum.MercyGod)); Assert.AreEqual(1, _relationshipManager.GetFighterRelationshipValue(chesterton, GodEnum.MalevolentGod)); }
private void BuildMenu(IMenu menu, List <TerrainInteractable> terrainInteractables = null) { _player = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1); var playerTeam = new Team(_menuManager, _player); _enemy = (EnemyFighter)FighterFactory.GetFighter(FighterType.Goblin, 1); var enemyTeam = new Team(_menuManager, _enemy); menu.Build(_player, playerTeam, enemyTeam, terrainInteractables ?? new List <TerrainInteractable>()); }
private static Team CreateEnemyTeam() { var list = new List <IFighter> { FighterFactory.GetFighter(FighterType.Goblin, 1), FighterFactory.GetFighter(FighterType.Goblin, 1) }; return(new Team(TestMenuManager.GetTestMenuManager(), list)); }
private static Team CreateEnemyTeam() { List <IFighter> list = new List <IFighter> { FighterFactory.GetFighter(FighterType.Goblin, 1), FighterFactory.GetFighter(FighterType.Goblin, 1) }; return(new Team(_menuManager, list)); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _mockChanceService = new MockChanceService(); TestFighterFactory.SetChanceService(_mockChanceService); FighterFactory.SetInput(_input); FighterFactory.SetOutput(_output); _fighter = (HumanControlledEnemyFighter)FighterFactory.GetFighter(FighterType.HumanControlledEnemy, 1, "hero"); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "enemy"); }
public void Constructor_CorrectlyAllowsGroupingInput_AndSetsDisplayNames() { Goblin goblin1 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); Goblin goblin2 = (Goblin)FighterFactory.GetFighter(FighterType.Goblin, 1); FighterGrouping grouping = new FighterGrouping(goblin1, goblin2); Team team = new Team(TestMenuManager.GetTestMenuManager(), grouping); Assert.AreEqual(2, team.Fighters.Count); Assert.True(team.Fighters.Contains(goblin1)); Assert.True(team.Fighters.Contains(goblin2)); }
public void SetUp() { _menuInput = new MockInput(); _menuOutput = new MockOutput(); _menuManager = new TestMenuManager(_menuInput, _menuOutput); _enemyTeam = new Team(_menuManager, FighterFactory.GetFighter(FighterType.Goblin, 1)); _player = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _playerTeam = new Team(_menuManager, _player); _menu = (SpecialMoveSelectionMenu)Globals.MenuFactory.GetMenu(MenuType.ChooseSpecialAttackMenu, _menuInput, _menuOutput); _menu.Build(_player, _playerTeam, _enemyTeam, null); }
private static IEnumerable <IFighterStats> GetTeamFighters(int teamSize, int teamCount, int powerlevel) { Guid team = Guid.Empty; for (int i = 0; i < teamSize * teamCount; i++) { if (i % teamSize == 0) { team = Guid.NewGuid(); } yield return(FighterFactory.GetFighter(powerlevel, team)); } }
public void CorrectlyPrintsCurscenes() { //Arrange ColorString[] firstSceneLines = { new ColorString("There once was a man named Gold Roger"), new ColorString("He had fame, wealth, and power beyond your wildest dreams"), new ColorString("Before they hung him from the gallows,"), new ColorString("These were the words he said:") }; SingleScene firstScene = new SingleScene(firstSceneLines); ColorString[] secondSceneLines = { new ColorString("If you want my treasure, you can have it!"), new ColorString("I left everything I had in that place") }; SingleScene secondScene = new SingleScene(secondSceneLines); SingleScene[] scenes = { firstScene, secondScene }; Cutscene cutscene = new Cutscene(scenes); //Act cutscene.ExecuteCutscene(_input, _output, (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1), (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1)); //Assert MockOutputMessage[] outputs = _output.GetOutputs(); int expectedNumberOfLines = firstSceneLines.Length + secondSceneLines.Length; Assert.AreEqual(expectedNumberOfLines, outputs.Length); int[] clearIndices = _output.GetClearIndices(); Assert.AreEqual(scenes.Length, clearIndices.Length); int nextClearIndex = firstSceneLines.Length; Assert.AreEqual(nextClearIndex, clearIndices[0]); nextClearIndex += secondSceneLines.Length; Assert.AreEqual(nextClearIndex, clearIndices[1]); }
private EnemyFighter GetEnemy(SubRegion region) { //FighterType[] types = regionFighterTypesDictionary[region.AreaId]; //var length = types.Length; //var odds = new double[length]; //for (var i = 0; i < length; ++i) //{ // odds[i] = (1.0/length); //} FighterType selectedFighterType = _chanceService.WhichEventOccurs(region.EnemyTypes); return((EnemyFighter)FighterFactory.GetFighter(selectedFighterType, 1)); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _chanceService = new MockChanceService(); _menuManager = new TestMenuManager(_input, _output); TestFighterFactory.SetChanceService(_chanceService); _humanFighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanTeam = new Team(_menuManager, _humanFighter); _level1Warrior = (Warrior)FighterFactory.GetFighter(FighterType.Warrior, 1); _level3Warrior = (Warrior)FighterFactory.GetFighter(FighterType.Warrior, 3); _warriorTeam = new Team(_menuManager, _level1Warrior); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _mockChanceService = new MockChanceService(); TestFighterFactory.SetChanceService(_mockChanceService); _fighter = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "hero"); _enemy1 = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "enemy"); _enemy2 = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "enemy"); _ownTeam = new Team(_menuManager, _fighter); _singleEnemyTeam = new Team(_menuManager, _enemy1); _doubleEnemyTeam = new Team(_menuManager, _enemy1, _enemy2); }
public void Setup() { _logger = new EventLogger(); _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); TestFighterFactory.SetChanceService(_chanceService); _shade1 = (Shade)FighterFactory.GetFighter(FighterType.Shade, 1); _shade2 = (Shade)FighterFactory.GetFighter(FighterType.Shade, 1); _shade3 = (Shade)FighterFactory.GetFighter(FighterType.Shade, 1); _shades = new List <Shade> { _shade1, _shade2, _shade3 }; _shadeGrouping = new ShadeFighterGrouping(_chanceService, _shades.ToArray()); _shadeTeam = new Team(TestMenuManager.GetTestMenuManager(), _shadeGrouping); _humanFighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanFighter.SetSpeed(_shade1.Speed + 1); _humanTeam = new Team(_menuManager, _humanFighter); List <BattleMove> executableMoves = _shade1.GetExecutableMoves(_humanTeam); _absorptionMoveIndex = executableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.AbsorbShade); _malevolenceChargeIndex = executableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Special); _malevolenceAttackIndex = executableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.ConditionalPowerAttack); _darkFogIndex = executableMoves.FindIndex(bm => bm is StatusMove); _malevolenceChargeMove = executableMoves[_malevolenceChargeIndex]; _malevolenceAttackMove = executableMoves[_malevolenceAttackIndex]; _shadeAbsorbingMove = executableMoves[_absorptionMoveIndex]; Shade fooShade = new Shade(1, _chanceService, 1); Team fooTeam = new Team(TestMenuManager.GetTestMenuManager(), fooShade); fooShade.SetTeam(fooTeam); List <BattleMove> fooExecutableAttacks = fooShade.GetExecutableMoves(_humanTeam); _malevolenceAttackNoAbsorptionMoveIndex = fooExecutableAttacks.FindIndex(bm => bm.MoveType == BattleMoveType.ConditionalPowerAttack); _malevolenceChargeNoAbsorptionMoveIndex = fooExecutableAttacks.FindIndex(bm => bm.MoveType == BattleMoveType.Special); _battleManager = new TestBattleManager(_chanceService, _input, _output); }
public void AssignNameBonuses_CorrectlyAssignsBonuses() { HumanFighter dante = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Dante"); HumanFighter arrokoh = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Arrokoh"); int dantePreBonusSpeed = dante.Speed; int dantePreBonusFirePower = dante.MagicStrengthBonuses[MagicType.Fire]; int dantePreBonusFireResistance = dante.MagicResistanceBonuses[MagicType.Fire]; int arrokohPreBonusStrength = arrokoh.Strength; int arrokohPreBonusLightningPower = dante.MagicStrengthBonuses[MagicType.Lightning]; int arrokohPreBonusLightningResistance = dante.MagicResistanceBonuses[MagicType.Lightning]; _decisionManager.AssignNameBonuses(dante, arrokoh); int dantePostBonusSpeed = dante.Speed; int dantePostBonusFirePower = dante.MagicStrengthBonuses[MagicType.Fire]; int dantePostBonusFireResistance = dante.MagicResistanceBonuses[MagicType.Fire]; int danteSpeedBonus = dantePostBonusSpeed - dantePreBonusSpeed; Assert.Greater(danteSpeedBonus, 0); int danteFireStrengthBonus = dantePostBonusFirePower - dantePreBonusFirePower; Assert.Greater(danteFireStrengthBonus, 0); int danteFireResistanceBonus = dantePostBonusFireResistance - dantePreBonusFireResistance; Assert.Greater(danteFireResistanceBonus, 0); int arrokohPostBonusStrength = arrokoh.Strength; int arrokohPostBonusLightningPower = arrokoh.MagicStrengthBonuses[MagicType.Lightning]; int arrokohPostBonusLightningResistance = arrokoh.MagicResistanceBonuses[MagicType.Lightning]; int arrokohStrengthBonus = arrokohPostBonusStrength - arrokohPreBonusStrength; Assert.Greater(arrokohStrengthBonus, 0); int arrokohLightningStrengthBonus = arrokohPostBonusLightningPower - arrokohPreBonusLightningPower; Assert.Greater(arrokohLightningStrengthBonus, 0); int arrokohLightningResistanceBonus = arrokohPostBonusLightningResistance - arrokohPreBonusLightningResistance; Assert.Greater(arrokohLightningResistanceBonus, 0); }
public void PersonalityQuiz_ManualEntry_CorrectlyHandlesNeitherOption() { HumanFighter dante = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Dante"); HumanFighter arrokoh = (HumanFighter)FighterFactory.GetFighter(FighterType.HumanControlledPlayer, 1, "Arrokoh"); for (var i = 0; i < 8; ++i) { _input.Push(i == 5 ? "neither" : "1"); } _decisionManager.PersonalityQuiz(dante, arrokoh); Assert.AreEqual(0, _relationshipManager.GetFighterRelationshipValue(dante, GodEnum.MalevolentGod), "sixth question should not raise malevolent god relationship for either fighters for 'neither' result"); Assert.AreEqual(0, _relationshipManager.GetFighterRelationshipValue(arrokoh, GodEnum.MalevolentGod), "sixth question should not raise malevolent god relationship for either fighters for 'neither' result"); Assert.AreEqual(1, _relationshipManager.GetFighterRelationshipValue(dante, GodEnum.MercyGod), "sixth question should raise mercy god relationship for both fighters for 'neither' result"); Assert.AreEqual(1, _relationshipManager.GetFighterRelationshipValue(arrokoh, GodEnum.MercyGod), "sixth question should raise mercy god relationship for both fighters for 'neither' result"); }
/// <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 Setup() { _input = new MockInput(); _output = new MockOutput(); _chanceService = new MockChanceService(); _menuManager = new TestMenuManager(_input, _output); _battleManager = new TestBattleManager(_chanceService, _input, _output); TestFighterFactory.SetChanceService(_chanceService); _humanFighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanTeam = new Team(_menuManager, _humanFighter); _level1ShieldGuy = (ShieldGuy)FighterFactory.GetFighter(FighterType.ShieldGuy, 1); _ally1 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _ally2 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _shieldGuyTeam = new Team(_menuManager, _level1ShieldGuy, _ally1, _ally2); }