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); }
private void SpecialAttackExecutedEvent_Setup(string executionText) { StatusMove moveToExecute = new StatusMove("foo", TargetType.Self, new AutoEvadeStatus(1, false), executionText); _logger.Subscribe(_humanPlayer1, EventType.StatusAdded, EventType.SpecialMoveExecuted); _humanPlayer1.SetMove(moveToExecute, 1); _mockChanceService.PushEventOccurs(true); //status move hits _humanPlayer1.SetMove(_runawayMove); _enemyPlayer1.SetMove(_doNothingMove); _humanTeam = new TestTeam(_humanPlayer1); _enemyTeam = new Team(TestMenuManager.GetTestMenuManager(), _enemyPlayer1); BattleManagerBattleConfiguration config = new BattleManagerBattleConfiguration { ShowIntroAndOutroMessages = false, ShowExpAndLevelUpMessages = false }; _battleManager.Battle(_humanTeam, _enemyTeam, config: config); }
public void AttackEvents_OccurInCorrectOrder() { _logger.Subscribe(_humanPlayer1, EventType.CriticalAttack, EventType.AttackSuccessful, EventType.EnemyKilled); _logger.Subscribe(_enemyPlayer1, EventType.DamageTaken, EventType.Killed); _humanTeam = new TestTeam(TestMenuManager.GetTestMenuManager(), _humanPlayer1); _enemyTeam = new Team(TestMenuManager.GetTestMenuManager(), _enemyPlayer1); _enemyPlayer1.SetMove(_doNothingMove); _humanPlayer1.SetMove(_basicAttackMove); _humanPlayer1.SetMoveTarget(_enemyPlayer1); _mockChanceService.PushEventsOccur(true, true); //attack hits, and is a crit _battleManager.Battle(_humanTeam, _enemyTeam); List <EventLog> logs = _logger.Logs; Assert.AreEqual(5, logs.Count); int i = 0; Assert.AreEqual(EventType.CriticalAttack, logs[i++].Type); Assert.AreEqual(EventType.DamageTaken, logs[i++].Type); Assert.AreEqual(EventType.Killed, logs[i++].Type); Assert.AreEqual(EventType.AttackSuccessful, logs[i++].Type); Assert.AreEqual(EventType.EnemyKilled, logs[i].Type); }
void ChildrenConnectionTest(ISerializeWrapper serializer) { var client = new TestClient(serializer); var team = new TestTeam(); foreach (var number in Enumerable.Range(1, 4).ToArray()) { var id = client.People.Create(new TestPerson() { Name = $"person{ number }" }); team.PersonIDs.Add(id); } team.PersonIDs.RemoveAt(3); client.Teams.Create(team); var updatedTeam = client.Teams.ReadAll().First(); updatedTeam.Fix(client.People); Assert.AreEqual(3, updatedTeam.People.Count); Assert.AreEqual("person2", updatedTeam.People[1].Name); }
public void TearDown() { _input = null; _output = null; _chanceService = null; _humanFighter = null; _humanTeam = null; _enemyTeam = null; }
public void TearDown() { _input = null; _output = null; _fighter = null; _fighterTeam = null; _enemy = null; _enemyTeam = null; }
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() { _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 async Task IsTeamNameInUseAsync_TeamNameInDb_ReturnsTrue() { //Arrange var sut = CreateSut(); var team = new TestTeam(); await DbHelper.TestConnection.InsertAsync(team); //Act var result = await sut.IsTeamNameInUseAsync(team.Name); //Assert Assert.IsTrue(result); }
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 async Task GetAsync_TeamId_GetsTeam() { //Arrange var sut = CreateSut(); var team = new TestTeam(); var teamId = await DbHelper.TestConnection.InsertAsync(team); //Act var got = await sut.GetAsync(teamId); //Assert Assert.AreEqual(teamId, got.Id); Assert.AreEqual(team.Name, got.Name); }
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() { _logger = new EventLogger(); _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); _evadeButDoNotCounterStatus = new AutoEvadeStatus(1, false); _evadeAndCounterStatus = new AutoEvadeStatus(1, true); _humanFighter = new TestHumanFighter("foo", 1); _humanTeam = new TestTeam(_humanFighter); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemyTeam = new Team(_menuManager, _enemy); _doNothing = new DoNothingMove(); }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _chanceService = new MockChanceService(); _menuManager = new TestMenuManager(_input, _output, new MenuFactory()); _battleManager = new BattleManager(_chanceService, _input, _output); _shadeGrouping = new ShadeFighterGrouping(_chanceService, new Shade(1, _chanceService, 1), new Shade(1, _chanceService, 1), new Shade(1, _chanceService, 1)); _shadeTeam = new Team(TestMenuManager.GetTestMenuManager(), _shadeGrouping); _humanFighter = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _humanFighter.SetHealth(5); _humanFighter.SetSpeed(_shadeTeam.Fighters[0].Speed + 1); _humanTeam = new TestTeam(_menuManager, _humanFighter); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemyTeam = new Team(TestMenuManager.GetTestMenuManager(), _enemy); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); TestFighterFactory.SetChanceService(_chanceService); _barbarian = (Barbarian)FighterFactory.GetFighter(FighterType.Barbarian, 1); _enemyTeam = new Team(_menuManager, _barbarian); _hero = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Hero"); _sidekick = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "SideKick"); _humanTeam = new TestTeam(new List <HumanFighter> { _hero, _sidekick }); }
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); _restoreHealthEffect = new RestorationBattleMoveEffect(RestorationType.Health, 5, BattleMoveEffectActivationType.OnAttackHit); _attackWithRestoreHealthEffect = new AttackBattleMove("foo", TargetType.SingleEnemy, 100, 10, effects: _restoreHealthEffect); _restoreManaEffect = new RestorationBattleMoveEffect(RestorationType.Mana, 5, BattleMoveEffectActivationType.OnAttackHit); _attackWithRestoreManaEffect = new AttackBattleMove("foo", TargetType.SingleEnemy, 100, 10, effects: _restoreManaEffect); }
public void SetUp() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); _combiner = new TestFieldEffectCombiner(); _logger = new EventLogger(); _enemy1 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemy1.SetDefense(OriginalDefense); _enemy2 = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _enemy2.SetDefense(OriginalDefense); _enemyTeam = new Team(_menuManager, _enemy1, _enemy2); _human1 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _human1.SetDefense(OriginalDefense); _human2 = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _human2.SetDefense(OriginalDefense); _humanTeam = new TestTeam(_human1, _human2); _testTechnique = (TestDanceMove)TestMoveFactory.Get(TargetType.Field, moveType: BattleMoveType.Dance); _testTechnique.AddEffect(_raiseTeamDefense50Percent); _testTechnique.AddEffect(_lowerEnemyDefense50Percent); _testTechnique.SetDuration(_testTechniqueDefaultDuration); _testTechnique.SetDanceEffect(DanceEffectType.Fire); var firstTurn = (TestDoNothingMove)TestMoveFactory.Get(moveType: BattleMoveType.DoNothing); firstTurn.SetMessage(FirstTurnMessage); _testTechnique.AddMove(firstTurn); var secondTurn = (TestDoNothingMove)TestMoveFactory.Get(moveType: BattleMoveType.DoNothing); secondTurn.SetMessage("Continue the Defense dance"); _testTechnique.AddMove(secondTurn); }
public void SetUp() { _output = new MockOutput(); _input = new MockInput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); _logger = new EventLogger(); _human = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1); _enemy = (TestEnemyFighter)TestFighterFactory.GetFighter(TestFighterType.TestEnemy, 1); _humanTeam = new TestTeam(_human); _enemyTeam = new Team(_menuManager, _enemy); _human.SetSpeed(10); _enemy.SetSpeed(0); doNothing = new DoNothingMove(); _enemy.SetMove(doNothing); _fireballSpell = SpellFactory.GetSpell(MagicType.Fire, 1); }
public void CloneObject_Work() { var team = new TestTeam { People = new List <TestPerson> { new TestPerson { Name = "Sara" }, new TestPerson { Name = "Cathrine" } } }; var team2 = team.Clone(); team2.People[1].Name = "Emil"; team.People[1].Name.Should().Be("Cathrine"); }
public void Setup() { _input = new MockInput(); _output = new MockOutput(); _menuManager = new TestMenuManager(_input, _output); _chanceService = new MockChanceService(); _battleManager = new TestBattleManager(_chanceService, _input, _output); TestFighterFactory.SetChanceService(_chanceService); _chicken = (MegaChicken)FighterFactory.GetFighter(FighterType.MegaChicken, 1); _enemyTeam = new Team(_menuManager, _chicken); _hero = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "Hero"); _sidekick = (TestHumanFighter)TestFighterFactory.GetFighter(TestFighterType.TestHuman, 1, "SideKick"); _humanTeam = new TestTeam(new List <HumanFighter> { _hero, _sidekick }); _castPrefix = $"{_chicken.DisplayName} draws in the power of its magic eggs, sacrificing them and casts "; }
public void SourceManipulation() { var teams = new SynchronizedRangeObservableCollection <TestTeam>(); using (var expr = teams.ActiveSelectMany(team => team.People)) { void checkMergedNames(string against) => Assert.AreEqual(against, string.Join(string.Empty, expr.Select(person => person.Name))); checkMergedNames(string.Empty); var management = new TestTeam(); management.People.Add(new TestPerson("Charles")); teams.Add(management); checkMergedNames("Charles"); management.People.Add(new TestPerson("Michael")); checkMergedNames("CharlesMichael"); management.People.RemoveAt(1); checkMergedNames("Charles"); var development = new TestTeam(); teams.Add(development); checkMergedNames("Charles"); development.People.AddRange(new TestPerson[] { new TestPerson("John"), new TestPerson("Emily"), new TestPerson("Edward"), new TestPerson("Andrew") }); checkMergedNames("CharlesJohnEmilyEdwardAndrew"); development.People.RemoveRange(2, 2); checkMergedNames("CharlesJohnEmily"); var qa = new TestTeam(); qa.People.AddRange(new TestPerson[] { new TestPerson("Aaron"), new TestPerson("Cliff") }); teams.Add(qa); checkMergedNames("CharlesJohnEmilyAaronCliff"); qa.People[0].Name = "Erin"; checkMergedNames("CharlesJohnEmilyErinCliff"); var bryan = new TestPerson("Brian"); var it = new TestTeam(); it.People.AddRange(new TestPerson[] { bryan, bryan }); teams.Add(it); checkMergedNames("CharlesJohnEmilyErinCliffBrianBrian"); bryan.Name = "Bryan"; checkMergedNames("CharlesJohnEmilyErinCliffBryanBryan"); it.People.Clear(); checkMergedNames("CharlesJohnEmilyErinCliff"); it.People = null; checkMergedNames("CharlesJohnEmilyErinCliff"); it.People = new SynchronizedRangeObservableCollection <TestPerson>() { new TestPerson("Paul") }; checkMergedNames("CharlesJohnEmilyErinCliffPaul"); it.People[0] = new TestPerson("Alex"); checkMergedNames("CharlesJohnEmilyErinCliffAlex"); development.People.Move(1, 0); checkMergedNames("CharlesEmilyJohnErinCliffAlex"); development.People.ReplaceRange(0, 2, development.People.GetRange(0, 1)); checkMergedNames("CharlesEmilyErinCliffAlex"); it.People.Clear(); it.People.Reset(new TestPerson[] { new TestPerson("Daniel") }); checkMergedNames("CharlesEmilyErinCliffDaniel"); teams.Add(management); checkMergedNames("CharlesEmilyErinCliffDanielCharles"); management.People.Insert(0, new TestPerson("George")); checkMergedNames("GeorgeCharlesEmilyErinCliffDanielGeorgeCharles"); var currentManagers = management.People; var otherManagers = new SynchronizedRangeObservableCollection <TestPerson>() { new TestPerson("Josh"), new TestPerson("Jessica") }; management.People = otherManagers; checkMergedNames("JoshJessicaEmilyErinCliffDanielJoshJessica"); management.People = currentManagers; teams.RemoveAt(teams.Count - 1); checkMergedNames("GeorgeCharlesEmilyErinCliffDaniel"); teams.Insert(0, management); checkMergedNames("GeorgeCharlesGeorgeCharlesEmilyErinCliffDaniel"); teams.Move(2, 1); checkMergedNames("GeorgeCharlesEmilyGeorgeCharlesErinCliffDaniel"); teams.Move(1, 2); checkMergedNames("GeorgeCharlesGeorgeCharlesEmilyErinCliffDaniel"); teams.RemoveAt(1); checkMergedNames("GeorgeCharlesEmilyErinCliffDaniel"); teams.RemoveAt(0); checkMergedNames("EmilyErinCliffDaniel"); } }