/// <summary> /// Creates a command that lets your character attack another character /// </summary> /// <param name="client_ID_From_Enemy">The ClientID of the opponent</param> public void AttackEnemy(string client_ID_From_Enemy) { if (_isConnected) { if (_gameSession_ID != null && _currentStatus == Status.Busy) { CommandGameAttack command = new CommandGameAttack(_client_ID, client_ID_From_Enemy); SendCommandToServer(command); CommandFeedback feedback = EvaluateFeedback(); if (feedback is CommandFeedbackOK) { } else if (feedback is CommandFeedbackEndOfTurn) { Thread updateThread = new Thread(new ThreadStart(() => WaitForNextTurn())); updateThread.Start(); } else if (feedback is CommandFeedbackGameException) { throw ((CommandFeedbackGameException)feedback).GameException; } else { throw new CommandNotRecognizedException(); } } } }
public void AttackATeammember() { Monster player5 = new Monster("monster", new Archer(), 10, 7); Monster player6 = new Monster("monster", new Archer(), 10, 7); CommandManager cm2 = new CommandManager(); CommandGameAttack cattack2 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "2242342342343"); cattack2.SourcePlayer = player5; cattack2.TargetPlayer = player6; cm2.AddCommand(cattack2); cm2.ProcessPendingTransactions(); }
public void CantAttackOutOfRange() { CommandManager cm5 = new CommandManager(); Hero player21 = new Hero("hero", new Archer(), 11, 9); Monster player22 = new Monster("monster", new Knight(), 19, 12); CommandGameAttack cattack12 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "8582252885"); cattack12.SourcePlayer = player21; cattack12.TargetPlayer = player22; cm5.AddCommand(cattack12); cm5.ProcessPendingTransactions(); }
public void ObstacleInRange2() { //need number of max. clients Hero player7 = new Hero("hero", new Knight(), 1, 5); Monster player8 = new Monster("monster", new Archer(), 4, 5); Monster player9 = new Monster("monster", new Knight(), 13, 1); Monster player10 = new Monster("monster", new Archer(), 2, 2); Field field1 = new Field(2, 5, new Wall()); Field field2 = new Field(3, 4, new Floor()); CommandManager cm2 = new CommandManager(); CommandGameAttack cattack1 = new CommandGameAttack("adua5as7da5sd5", "6a6sd465a4s9"); cattack1.SourcePlayer = player7; cattack1.TargetPlayer = player8; cm2.AddCommand(cattack1); cm2.ProcessPendingTransactions(); }
public void CantAttackObstacle() { CommandManager cm4 = new CommandManager(); //test obstacle in range on the left side Field field6 = new Field(2, 5, new Wall()); Hero player19 = new Hero("hero", new Knight(), 4, 5); Monster player20 = new Monster("monster", new Knight(), 1, 5); CommandGameAttack cattack11 = new CommandGameAttack("2f2de19a291c41b5ae950faa111662e07", "1sda1672423124sdf2885"); cattack11.SourcePlayer = player19; cattack11.TargetPlayer = player20; cm4.AddCommand(cattack11); cm4.ProcessPendingTransactions(); }
public void ObstacleInRange3() { //need number of max. clients Hero player11 = new Hero("hero", new Archer(), 3, 13); Monster player12 = new Monster("monster", new Archer(), 4, 13); Monster player13 = new Monster("monster", new Knight(), 13, 1); Monster player14 = new Monster("monster", new Archer(), 15, 2); Field field1 = new Field(4, 13, new Floor()); Field field2 = new Field(3, 12, new Wall()); Field field3 = new Field(2, 13, new Wall()); Field field4 = new Field(3, 14, new Wall()); CommandManager cm3 = new CommandManager(); CommandGameAttack cattack2 = new CommandGameAttack("adua5as7da5sd5", "6a6sd465a4s9"); cattack2.SourcePlayer = player11; cattack2.TargetPlayer = player12; cm3.AddCommand(cattack2); cm3.ProcessPendingTransactions(); }
public void EnemyInRange() { CommandManager cm3 = new CommandManager(); //test enemy in range on the right side Hero player7 = new Hero("hero", new Archer(), 11, 9); Monster player8 = new Monster("monster", new Knight(), 14, 9); CommandGameAttack cattack3 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "8582252885"); cattack3.SourcePlayer = player7; cattack3.TargetPlayer = player8; Assert.IsTrue(cattack3.VerifyAttackRange()); //test out of range on the right side Monster player9 = new Monster("monster", new Knight(), 16, 9); CommandGameAttack cattack4 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "zut85822asd52885"); cattack4.SourcePlayer = player7; cattack4.TargetPlayer = player9; Assert.IsFalse(cattack4.VerifyAttackRange()); //test enemy in range on the bottom side Monster player10 = new Monster("monster", new Knight(), 11, 11); CommandGameAttack cattack5 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "123124sdf2885"); cattack5.SourcePlayer = player7; cattack5.TargetPlayer = player10; Assert.IsTrue(cattack5.VerifyAttackRange()); //test out of range on the bottom side Monster player11 = new Monster("monster", new Knight(), 12, 5); CommandGameAttack cattack6 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "1sda12423124sdf2885"); cattack6.SourcePlayer = player7; cattack6.TargetPlayer = player11; Assert.IsFalse(cattack6.VerifyAttackRange()); }
public void AttackWithoutRemainingMoves() { //need number of max. clients Level level1 = new Level(MAX_PLAYER); Hero player3 = new Hero("hero", new Knight(), 10, 18); Monster player4 = new Monster("monster", new Archer(), 8, 14); Monster player5 = new Monster("monster", new Knight(), 13, 1); Monster player6 = new Monster("monster", new Archer(), 2, 2); Field field1 = new Field(10, 17, new Floor()); Field field2 = new Field(9, 17, new SpikeField()); Field field3 = new Field(8, 17, new Floor()); Field field4 = new Field(8, 16, new Floor()); Field field5 = new Field(8, 15, new Floor()); field3.Item = new AttackBoost(3); level1.AddPlayerToLevel(player3); level1.AddPlayerToLevel(player4); level1.AddPlayerToLevel(player5); level1.AddPlayerToLevel(player6); level1.AddFieldToLevel(field1); level1.AddFieldToLevel(field2); level1.AddFieldToLevel(field3); level1.AddFieldToLevel(field4); level1.AddFieldToLevel(field5); CommandManager cm1 = new CommandManager(); //move to field (10, 17) CommandGameMove cmove1 = new CommandGameMove("adua5as7da5sd5", 10, 17); cmove1.SourcePlayer = player3; cmove1.Level = level1; cm1.AddCommand(cmove1); cm1.ProcessPendingTransactions(); //move to field with trap (9, 17) CommandGameMove cmove2 = new CommandGameMove("adua5as7da5sd5", 9, 17); cmove2.SourcePlayer = player3; cmove2.Level = level1; cm1.AddCommand(cmove2); cm1.ProcessPendingTransactions(); //move to field with item (8, 17) CommandGameMove cmove3 = new CommandGameMove("adua5as7da5sd5", 8, 17); cmove3.SourcePlayer = player3; cmove3.Level = level1; cm1.AddCommand(cmove3); cm1.ProcessPendingTransactions(); //move to field with item (8, 16) CommandGameMove cmove4 = new CommandGameMove("adua5as7da5sd5", 8, 16); cmove4.SourcePlayer = player3; cmove4.Level = level1; cm1.AddCommand(cmove4); cm1.ProcessPendingTransactions(); //move to field with item (8, 15) CommandGameMove cmove5 = new CommandGameMove("adua5as7da5sd5", 8, 15); cmove5.SourcePlayer = player3; cmove5.Level = level1; cm1.AddCommand(cmove5); cm1.ProcessPendingTransactions(); //attack monster (8, 14) CommandGameAttack cattack1 = new CommandGameAttack("adua5as7da5sd5", "6a6sd465a4s9"); cattack1.SourcePlayer = player3; cattack1.TargetPlayer = player4; cattack1.Level = level1; cm1.AddCommand(cattack1); cm1.ProcessPendingTransactions(); }
public void ObstacleInRange1() { Level level2 = new Level(MAX_PLAYER); //test obstacle in range on the bottom side Field field2 = new Field(11, 11, new Wall()); Field field7 = new Field(11, 10, new Floor()); Hero player12 = new Hero("hero", new Knight(), 11, 9); Monster player13 = new Monster("monster", new Knight(), 11, 12); level2.AddPlayerToLevel(player12); level2.AddPlayerToLevel(player13); level2.AddFieldToLevel(field2); level2.AddFieldToLevel(field7); CommandGameAttack cattack7 = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "1sda12423124sdf2885"); cattack7.SourcePlayer = player12; cattack7.TargetPlayer = player13; cattack7.Level = level2; Assert.IsTrue(cattack7.VerifyObstacleInRange()); //test obstacle in range on the upper side Field field3 = new Field(11, 10, new Wall()); Hero player14 = new Hero("hero", new Knight(), 11, 12); Monster player15 = new Monster("monster", new Knight(), 11, 9); Level level3 = new Level(MAX_PLAYER); level3.AddPlayerToLevel(player14); level3.AddPlayerToLevel(player15); level3.AddFieldToLevel(field3); CommandGameAttack cattack8 = new CommandGameAttack("2f2de19a291c41b5ae950faa111662e07", "1sda1672423124sdf2885"); cattack8.SourcePlayer = player14; cattack8.TargetPlayer = player15; cattack8.Level = level3; Assert.IsTrue(cattack8.VerifyObstacleInRange()); //test obstacle in range on the right side Field field4 = new Field(3, 5, new Wall()); Hero player16 = new Hero("hero", new Knight(), 1, 5); Monster player17 = new Monster("monster", new Knight(), 4, 5); Level level4 = new Level(MAX_PLAYER); level4.AddPlayerToLevel(player16); level4.AddPlayerToLevel(player17); level4.AddFieldToLevel(field4); CommandGameAttack cattack9 = new CommandGameAttack("2f2de19a291c41b5ae950faa111662e07", "1sda1672423124sdf2885"); cattack9.SourcePlayer = player16; cattack9.TargetPlayer = player17; cattack9.Level = level4; Assert.IsTrue(cattack9.VerifyObstacleInRange()); //test obstacle in range on the left side Field field5 = new Field(2, 5, new Wall()); Hero player18 = new Hero("hero", new Knight(), 4, 5); Monster player19 = new Monster("monster", new Knight(), 1, 5); Level level5 = new Level(MAX_PLAYER); level5.AddPlayerToLevel(player18); level5.AddPlayerToLevel(player19); level5.AddFieldToLevel(field5); CommandGameAttack cattack10 = new CommandGameAttack("2f2de19a291c41b5ae950faa111662e07", "1sda1672423124sdf2885"); cattack10.SourcePlayer = player18; cattack10.TargetPlayer = player19; cattack10.Level = level5; Assert.IsTrue(cattack10.VerifyObstacleInRange()); }
public void AttackMyself() { CommandManager cm = new CommandManager(); CommandGameAttack cattack = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "2f2de19a291c41b5ae950faa11162e07"); }
public void GameSzenario1() { //need number of max. clients Level level1 = new Level(MAX_PLAYER); Hero player3 = new Hero("hero", new Knight(), 10, 18); Monster player4 = new Monster("monster", new Archer(), 8, 16); Monster player5 = new Monster("monster", new Knight(), 13, 1); Monster player6 = new Monster("monster", new Archer(), 2, 2); Field field1 = new Field(10, 17, new Floor()); Field field2 = new Field(9, 17, new SpikeField()); Field field3 = new Field(8, 17, new Floor()); field3.Item = new AttackBoost(3); CommandManager cm1 = new CommandManager(); level1.AddPlayerToLevel(player3); level1.AddPlayerToLevel(player4); level1.AddPlayerToLevel(player5); level1.AddPlayerToLevel(player6); level1.AddFieldToLevel(field1); level1.AddFieldToLevel(field2); level1.AddFieldToLevel(field3); //move to field (10, 17) CommandGameMove cmove1 = new CommandGameMove("adua5as7da5sd5", 10, 17); cmove1.SourcePlayer = player3; cmove1.Level = level1; cm1.AddCommand(cmove1); cm1.ProcessPendingTransactions(); Assert.AreEqual(4, player3.PlayerRemainingMoves); Assert.IsTrue(10 == player3.XPosition && 17 == player3.YPosition); //move to field with trap (9, 17) CommandGameMove cmove2 = new CommandGameMove("adua5as7da5sd5", 9, 17); cmove2.SourcePlayer = player3; cmove2.Level = level1; cm1.AddCommand(cmove2); cm1.ProcessPendingTransactions(); Assert.AreEqual(3, player3.PlayerRemainingMoves); Assert.IsTrue(9 == player3.XPosition && 17 == player3.YPosition); Assert.AreEqual(4.25, player3.Life); //move to field with item (8, 17) CommandGameMove cmove3 = new CommandGameMove("adua5as7da5sd5", 8, 17); cmove3.SourcePlayer = player3; cmove3.Level = level1; cm1.AddCommand(cmove3); cm1.ProcessPendingTransactions(); Assert.AreEqual(2, player3.PlayerRemainingMoves); Assert.IsTrue(8 == player3.XPosition && 17 == player3.YPosition); Assert.AreEqual(0.75, player3.AttackBoost); //attack monster (8, 16) CommandGameAttack cattack1 = new CommandGameAttack("adua5as7da5sd5", "6a6sd465a4s9"); cattack1.SourcePlayer = player3; cattack1.TargetPlayer = player4; cattack1.Level = level1; cm1.AddCommand(cattack1); cm1.ProcessPendingTransactions(); Assert.AreEqual(0, player3.PlayerRemainingMoves); Assert.IsTrue(8 == player3.XPosition && 17 == player3.YPosition); Assert.IsTrue(8 == player4.XPosition && 16 == player4.YPosition); Assert.AreEqual(1.25, player4.Life); }