/// <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());
        }
Esempio n. 10
0
 public void AttackMyself()
 {
     CommandManager    cm      = new CommandManager();
     CommandGameAttack cattack = new CommandGameAttack("2f2de19a291c41b5ae950faa11162e07", "2f2de19a291c41b5ae950faa11162e07");
 }
Esempio n. 11
0
        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);
        }