public void Setup() { _fighter = new TestHumanFighter("Hero", 1); _fighter.SetHealth(FighterHealth); _fighter.SetMana(FighterMana); _fighter.SetStrength(FighterAttack); _fighter.SetDefense(FighterDefense); _fighter.SetSpeed(FighterSpeed); _fighter.SetEvade(FighterEvade); _fighter.SetLuck(FighterLuck); _factoryFighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Ted"); _factoryFighter.AddSpell(SpellFactory.GetSpell(MagicType.Fire, 1)); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "enemy"); _armoredEnemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "armored"); _superArmoredEnemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "super armored"); _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); var humanTeam = new Team(_menuManager, _fighter); _battleManager.SetHumanTeam(humanTeam); var enemyTeam = new Team(_menuManager, _enemy); _battleManager.SetEnemyTeam(enemyTeam); _battleManager.SetConfig(new BattleManagerBattleConfiguration()); }
public void MalevolenceCharge_CorrectlyRaisesMalevolenceAttackPower() { TestHumanFighter fighter2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanFighter.SetHealth(100); fighter2.SetHealth(100); Team shadeTeam = new Team(TestMenuManager.GetTestMenuManager(), _shade1, _shade2); Team humanTeam = new Team(_menuManager, _humanFighter, fighter2); _humanFighter.SetMove(_doNothingMove, 3); _humanFighter.SetMove(_runawayMove); fighter2.SetMove(_doNothingMove); _chanceService.PushWhichEventsOccur(_malevolenceAttackIndex, 0, _malevolenceChargeIndex); //first round, _shade1 attacks HumanFighter1, _shade2 charges _chanceService.PushWhichEventsOccur(_malevolenceChargeIndex, _malevolenceChargeIndex); //second round, both shades charge _chanceService.PushWhichEventsOccur(_malevolenceChargeIndex, _malevolenceAttackIndex, 1); //third round, _shade1 charges again, _shade2 attacks _chanceService.PushAttackHitsNotCrit(2); _battleManager.Battle(humanTeam, shadeTeam); int fighter1Damage = _humanFighter.MaxHealth - _humanFighter.CurrentHealth; int fighter2Damage = fighter2.MaxHealth - fighter2.CurrentHealth; Assert.Greater(fighter2Damage, fighter1Damage); }
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 Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _logger = new EventLogger(); _mockChanceService = new MockChanceService(); TestFighterFactory.SetChanceService(_mockChanceService); _battleManager = new BattleManager(_mockChanceService, _input, _output); _humanPlayer1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Ted"); _humanPlayer2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Jed"); _humanPlayer2.AddSpell(_fireball); _humanPlayer2.SetMana(_fireball.Cost); _humanPlayer2.TurnEnded += TurnEndedEvents.RestoreManaOnTurnEnd; _enemyPlayer1 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "Enemy"); _enemyPlayer2 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "Enemy"); _humanTeam = new TestTeam(_menuManager, _humanPlayer1, _humanPlayer2); _enemyTeam = new Team(_menuManager, _enemyPlayer1, _enemyPlayer2); }
public void BattleMoveQueue_SortAndPopOperation_ReturnsCorrectMove() { TestHumanFighter fighter1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter3 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); //sorted order is 2, 3, 1 fighter1.SetSpeed(0); fighter2.SetSpeed(2); fighter3.SetSpeed(1); List <BattleMoveWithTarget> initializerList = new List <BattleMoveWithTarget> { new BattleMoveWithTarget(_testMove, fighter1, fighter1), new BattleMoveWithTarget(_testMove, fighter2, fighter2), new BattleMoveWithTarget(_testMove, fighter3, fighter3) }; BattleMoveQueue queue = new BattleMoveQueue(initializerList); BattleMoveWithTarget firstSortedMove = queue.SortAndPop(); IFighter owner = firstSortedMove.Owner; Assert.AreEqual(fighter2, owner); Assert.AreEqual(2, queue.Count); }
public void Setup() { _fighter = new TestHumanFighter("Hero", 1); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "enemy"); _logger = new EventLogger(); }
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 TearDown() { _menu = null; _menuInput = null; _menuOutput = null; _enemyTeam = null; _player = null; _playerTeam = null; }
public void BattleMoveQueue_SortOperation_DefaultsBySpeedAndPriority() { TestHumanFighter fighter1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter3 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter4 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter5 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter6 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter7 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter8 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter fighter9 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); TestHumanFighter[] expectedOrderedFighters = { fighter9, fighter6, fighter3, //the high priority fighter8, fighter5, fighter2, //the med priority fighter7, fighter4, fighter1 //the low priority }; fighter1.SetSpeed(0); fighter2.SetSpeed(0); fighter3.SetSpeed(0); fighter4.SetSpeed(1); fighter5.SetSpeed(1); fighter6.SetSpeed(1); fighter7.SetSpeed(2); fighter8.SetSpeed(2); fighter9.SetSpeed(2); BattleMove lowPriorityMove = new BattleMove("foo", BattleMoveType.DoNothing, TargetType.Self, -1); BattleMove medPriorityMove = new BattleMove("bar", BattleMoveType.DoNothing, TargetType.Self); BattleMove highPriorityMove = new BattleMove("baz", BattleMoveType.DoNothing, TargetType.Self, 1); List <BattleMoveWithTarget> initializerList = new List <BattleMoveWithTarget> { new BattleMoveWithTarget(lowPriorityMove, fighter1, fighter1), new BattleMoveWithTarget(lowPriorityMove, fighter4, fighter4), new BattleMoveWithTarget(lowPriorityMove, fighter7, fighter7), new BattleMoveWithTarget(medPriorityMove, fighter2, fighter2), new BattleMoveWithTarget(medPriorityMove, fighter5, fighter5), new BattleMoveWithTarget(medPriorityMove, fighter8, fighter8), new BattleMoveWithTarget(highPriorityMove, fighter3, fighter3), new BattleMoveWithTarget(highPriorityMove, fighter6, fighter6), new BattleMoveWithTarget(highPriorityMove, fighter9, fighter9) }; BattleMoveQueue queue = new BattleMoveQueue(initializerList); queue.Sort(); for (int i = 0; i < 9; ++i) { BattleMoveWithTarget move = queue.Pop(); IFighter owner = move.Owner; Assert.AreEqual(expectedOrderedFighters[i], owner, $"i: {i}"); } }
public void TearDown() { _input = null; _output = null; _fighter = null; _fighterTeam = null; _enemy = null; _enemyTeam = null; }
public void TearDown() { _input = null; _output = null; _chanceService = null; _humanFighter = null; _humanTeam = null; _enemyTeam = null; }
public void SetUp() { _chanceService = new MockChanceService(); _logger = new EventLogger(); TestFighterFactory.SetChanceService(_chanceService); _copperBell = new Bell(CopperBellDisplayName, BellType.Copper, new MenuFactory(), _chanceService); _silverBell = new Bell(SilverBellDisplayName, BellType.Silver, new MenuFactory(), _chanceService); _fighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); }
public void TearDown() { _input = null; _output = null; _playerOne = null; _playerTwo = null; _playerThree = null; _playerTeam = null; _enemyTeam = null; _manager = null; }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _menu = new KeysOffOwnerNumberInputMenu("foo", _input, _output); _owner = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _ownerTeam = new TestTeam(_owner); _enemyTeam = new TestTeam((TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1)); }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _fighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _fighterTeam = new TestTeam(_fighter); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemyTeam = new TestTeam(_enemy); }
public void Setup() { _fighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Ted"); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, "enemy"); _logger = new EventLogger(); _logger.SubscribeAll(_fighter); _logger.SubscribeAll(_enemy); _fireballSpell = SpellFactory.GetSpell(MagicType.Fire, 1); _fighter.AddSpell(_fireballSpell); _fighter.SetMana(_fireballSpell.Cost); _logger.ClearLogs(); }
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); }
public void TestUndoDebuffsEffect_IndividualEffect() { StatMultiplierStatus lowerAttackStatus = new StatMultiplierStatus(3, StatType.Strength, 1.0 / 3); StatusMove lowerEnemyAttackMove = new StatusMove("raise attack", TargetType.SingleEnemy, lowerAttackStatus); UndoDebuffsStatus undoDebuffStatus = new UndoDebuffsStatus(1); StatusMove undoDebuffMove = new StatusMove("reset stats", TargetType.SingleAlly, undoDebuffStatus); TestHumanFighter fighter2 = new TestHumanFighter("foo 2", 1); _humanTeam = new TestTeam(_humanFighter, fighter2); //enemy won't be killed if the status isn't assigned to _fighter2 _enemy.SetHealth(3); _enemy.SetSpeed(2); _enemy.SetMove(lowerEnemyAttackMove); _chanceService.PushEventOccurs(true); //status hits _enemy.SetMoveTarget(fighter2); _humanFighter.SetSpeed(1); _humanFighter.SetMove(undoDebuffMove); _chanceService.PushEventOccurs(true); //status hits _humanFighter.SetMoveTarget(fighter2); _logger.Subscribe(EventType.StatusAdded, fighter2); _logger.Subscribe(EventType.StatusRemoved, fighter2); BattleMove attack = MoveFactory.Get(BattleMoveType.Attack); fighter2.SetStrength(3); fighter2.SetMove(attack); fighter2.SetMoveTarget(_enemy); _chanceService.PushEventOccurs(true); //attack hits _chanceService.PushEventOccurs(false); //attack is not a crit //once Statuses are removed after battle, won't be able to _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(2, logs.Count); EventLog log = logs[1]; Assert.AreEqual(EventType.StatusRemoved, log.Type); StatusRemovedEventArgs e = log.E as StatusRemovedEventArgs; Assert.NotNull(e); Assert.IsTrue(lowerAttackStatus.AreEqual(e.Status)); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); _logger = new EventLogger(); _humanFighter = new TestHumanFighter("foo", 1); _humanTeam = new TestTeam(_humanFighter); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemyTeam = new Team(_menuManager, _enemy); }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new BattleManager(_chanceService, _input, _output); _human = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanTeam = new TestTeam(_menuManager, _human); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemyTeam = new Team(_menuManager, _enemy); _doNothingMove = (DoNothingMove)MoveFactory.Get(BattleMoveType.DoNothing); }
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() { _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 TearDown() { _logger = null; _input = null; _output = null; _menuManager = null; _chanceService = null; _shade1 = null; _shade2 = null; _shade3 = null; _shadeGrouping = null; _shadeTeam = null; _humanFighter = null; _humanTeam = null; }
private Team PickNextArea_TeamSetup_DesertGroupings(int numFighterForMazeFlag = 1, string name1 = null, string name2 = null) { TestHumanFighter fighter1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, name1); TestHumanFighter fighter2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, name2); switch (numFighterForMazeFlag) { case 1: fighter1.AddPersonalityFlag(PersonalityFlag.MazeSolver); break; case 2: fighter2.AddPersonalityFlag(PersonalityFlag.MazeSolver); break; } return(new TestTeam(fighter1, fighter2)); }
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); }
public void AttackMethod_AppropriatelyRaisesEvents_WhenEnemyDies() { _fighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Ted"); _logger.SubscribeAll(_fighter); _fighter.SetStrength(_enemy.MaxHealth + 1); _fighter.Attack(_enemy); var logs = _logger.Logs; Assert.AreEqual(4, logs.Count); //first event, damage taken Assert.AreEqual(EventType.DamageTaken, logs[0].Type); Assert.AreEqual(_enemy, logs[0].Sender); PhysicalDamageTakenEventArgs e1 = logs[0].E as PhysicalDamageTakenEventArgs; Assert.NotNull(e1); Assert.AreEqual(_fighter.Strength, e1.Damage); //second event, killed - fired by enemy Assert.AreEqual(EventType.Killed, logs[1].Type); Assert.AreEqual(_enemy, logs[1].Sender); KilledEventArgs e2 = logs[1].E as KilledEventArgs; Assert.That(e2, Is.Not.Null); //third event, damageDealt to enemy Assert.AreEqual(EventType.AttackSuccessful, logs[2].Type); Assert.AreEqual(_fighter, logs[2].Sender); AttackSuccessfulEventArgs e3 = logs[2].E as AttackSuccessfulEventArgs; Assert.NotNull(e3); Assert.AreEqual(_enemy.MaxHealth, e3.DamageDealt); //fourth event, killed enemy Assert.AreEqual(EventType.EnemyKilled, logs[3].Type); Assert.AreEqual(_fighter, logs[3].Sender); EnemyKilledEventArgs e4 = logs[3].E as EnemyKilledEventArgs; Assert.NotNull(e4); Assert.AreEqual(_enemy, e4.Enemy); }
public void FighterStatus_MultipleInstancesOfStatus_HaveSeparateCounters() { MagicMultiplierStatus status = new MagicMultiplierStatus(4, MagicType.All, 1.25); _humanFighter.AddStatus(status); for (var i = 0; i < 2; ++i) { _humanFighter.OnTurnEnded(new TurnEndedEventArgs(_humanFighter)); } TestHumanFighter fighter2 = new TestHumanFighter("Bob", 1); fighter2.AddStatus(status); Status returnedStatus = fighter2.Statuses[0]; Assert.AreEqual(4, returnedStatus.TurnCounter); }
public void StatusTechnique_AppropriatelyAssignsStatusToTarget() { StatMultiplierStatus status = new StatMultiplierStatus(3, StatType.Strength, 1.5); StatusMove statusMove = new StatusMove("raise attack", TargetType.SingleAlly, status); TestHumanFighter fighter2 = new TestHumanFighter("foo 2", 1); _humanTeam = new TestTeam(_humanFighter, fighter2); _humanFighter.SetSpeed(1); _humanFighter.SetMove(statusMove); _chanceService.PushEventOccurs(true); _humanFighter.SetMoveTarget(fighter2); _logger.Subscribe(EventType.StatusAdded, fighter2); BattleMove attack = MoveFactory.Get(BattleMoveType.Attack); fighter2.SetStrength(2); fighter2.SetMove(attack); fighter2.SetMoveTarget(_enemy); _chanceService.PushEventOccurs(true); //attack hits _chanceService.PushEventOccurs(false); //attack is not a crit //enemy won't be killed if the status isn't assigned to _fighter2 _enemy.SetHealth(3); _enemy.SetMove(_doNothing); _enemy.SetMoveTarget(_enemy); //once Statuses are removed after battle, won't be able to _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(1, logs.Count); EventLog log = logs[0]; Assert.AreEqual(EventType.StatusAdded, log.Type); StatusAddedEventArgs e = log.E as StatusAddedEventArgs; Assert.NotNull(e); Assert.IsTrue(status.AreEqual(e.Status)); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); TestFighterFactory.SetChanceService(_chanceService); _humanPlayer1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Ted"); _humanPlayer2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Jed"); _enemyPlayer1 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, DefaultEnemyName); _enemyPlayer2 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1, DefaultEnemyName); _humanTeam = new Team(_menuManager, _humanPlayer1, _humanPlayer2); _enemyTeam = new Team(_menuManager, _enemyPlayer1, _enemyPlayer2); _humanTeam.InitializeForBattle(_enemyTeam, _input, _output); }
public void Setup() { _output = new MockOutput(); _input = new MockInput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); TestFighterFactory.SetChanceService(_chanceService); _kiki = (DancerBoss)FighterFactory.GetFighter(FighterType.DancerBoss, 1, fighterClass: FighterClass.BossDancerKiki); _riki = (DancerBoss)FighterFactory.GetFighter(FighterType.DancerBoss, 1, fighterClass: FighterClass.BossDancerRiki); _enemyTeam = new Team(_menuManager, _kiki, _riki); _hero = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Hero"); _sidekick = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "SideKick"); _humanTeam = new Team(new TestMenuManager(new MockInput(), new MockOutput()), _hero, _sidekick); }