コード例 #1
0
        public void WorkerDeleteBaggage()
        {
            var robot = CreateWorkerRobot();

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new PoisonedStone(5, stone);
            var res = robot.AddStone(stone);

            res = robot.AddStone(stone);

            Assert.AreEqual(robot.Baggage.Count, 2);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 180);

            res = robot.DropStone();
            Assert.AreEqual(res, "Succesfully droped: " + stone.GetInfo());
            Assert.AreEqual(robot.Baggage.Count, 1);

            res = robot.DropStone();
            Assert.AreEqual(res, "Succesfully droped: " + stone.GetInfo());
            Assert.AreEqual(robot.Baggage.Count, 0);

            res = robot.DropStone();
            Assert.AreEqual(res, "Baggage already empty");
            Assert.AreEqual(robot.Baggage.Count, 0);
        }
コード例 #2
0
ファイル: Map.cs プロジェクト: JokerFunny/SMTRPZ-2
        private Stone StoneGenerator()
        {
            Stone stone;

            if (rand.Next(3) > 0)
            {
                stone = new OrdinaryStone();
            }
            else
            {
                stone = new ValuableStone(Convert.ToDouble(rand.Next(1, 100)) / 10);

                if (rand.Next(5) == 0)
                {
                    stone = new DecryptionStone(stone);
                }

                if (rand.Next(6) == 0)
                {
                    stone = new CollapseStone(rand.Next(1, 15), stone);
                }

                if (rand.Next(8) == 0)
                {
                    stone = new PoisonedStone(rand.Next(1, 10), stone);
                }
            }

            return(stone);
        }
コード例 #3
0
        public void CyborgDeadByPoison()
        {
            var robot = CreateCyborgRobot();

            Stone stone = new ValuableStone(Convert.ToDouble(110));

            stone = new PoisonedStone(110, stone);
            var res = robot.AddStone(stone);

            Assert.AreEqual(res, "You are dead (9((9");
        }
コード例 #4
0
        public void ValuableStoneTest()
        {
            Stone stone = new ValuableStone(5);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 5 + ", weight: " + 5 + ", description: Valuable stone");
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 0);
            Assert.AreEqual(stone.Collapses, false);
            Assert.AreEqual(stone.Decryption, false);
            Assert.AreEqual(stone.GetCost(), stone.Weight);
            Assert.AreEqual(stone.Damage, 0);
            Assert.AreEqual(stone.Description, "Valuable stone");
        }
コード例 #5
0
        public void PoisonedStoneTest()
        {
            Stone stone = new ValuableStone(5);

            stone = new PoisonedStone(5, stone);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 10 + ", weight: " + 5 + ", description: Valuable stone, will harm on every turn (ciborgs only), damage: " + 5);
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 0);
            Assert.AreEqual(stone.Collapses, false);
            Assert.AreEqual(stone.Decryption, false);
            Assert.AreEqual(stone.GetCost(), stone.Weight * 2);
            Assert.AreEqual(stone.Damage, 5);
            Assert.AreEqual(stone.Description, "Valuable stone, will harm on every turn (ciborgs only)");
        }
コード例 #6
0
        public void DecryptionStoneTest()
        {
            Stone stone = new ValuableStone(5);

            stone = new DecryptionStone(stone);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 12.5 + ", weight: " + 5 + ", description: Valuable stone, need to be decrypted");
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 0);
            Assert.AreEqual(stone.Collapses, false);
            Assert.AreEqual(stone.Decryption, true);
            Assert.AreEqual(stone.GetCost(), stone.Weight * 2.5);
            Assert.AreEqual(stone.Damage, 0);
            Assert.AreEqual(stone.Description, "Valuable stone, need to be decrypted");
        }
コード例 #7
0
        public void ScientistDecryptedStoneComplete()
        {
            var robot = CreateScientistRobot();

            List <Stone> stones = new List <Stone>();

            for (int i = 0; i < 100; i++)
            {
                Stone stone = new ValuableStone(Convert.ToDouble(0.1));
                stone = new DecryptionStone(stone);
                stones.Add(stone);
                var res = robot.AddStone(stone);
            }

            Assert.IsTrue(robot.Baggage.Count == 100);
        }
コード例 #8
0
        public void WorkerDecryptedStoneFails()
        {
            var robot = CreateWorkerRobot();

            List <Stone> stones = new List <Stone>();

            for (int i = 0; i < 100; i++)
            {
                Stone stone = new ValuableStone(Convert.ToDouble(1));
                stone = new DecryptionStone(stone);
                stones.Add(stone);
                var res = robot.AddStone(stone);
            }

            Assert.IsTrue(robot.Baggage.Count < 100);
        }
コード例 #9
0
        public void ScientistTurnCheck()
        {
            var robot = CreateScientistRobot();

            Assert.AreEqual(robot.BatteryCharge, 50);

            var res = robot.Turn();

            Assert.AreEqual(res, "Battery charge: " + 49 + ", battery lost: " + 1 + ", ");

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new PoisonedStone(5, stone);
            res   = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
        }
コード例 #10
0
        public void RobotCollapsedStoneDrop()
        {
            var robot = CreateWorkerRobot();

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new CollapseStone(1, stone);
            var res = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
            Assert.AreEqual(robot.Baggage.Count, 1);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 15 + ", free space: " + 190);

            res = robot.Turn();
            Assert.AreEqual(res, "Battery charge: " + 98 + ", battery lost: " + 2 + ", " + "Was droped(collapse destroy it). " + stone.GetInfo());
            Assert.AreEqual(robot.Baggage.Count, 0);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 0 + ", total cost: " + 0 + ", free space: " + 200);
        }
コード例 #11
0
        public void CollapseStoneTest()
        {
            Stone stone = new ValuableStone(5);

            stone = new CollapseStone(5, stone);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 7.5 + ", weight: " + 5 + ", description: Valuable stone, will destroy on every turn, stone health: " + 5);
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 5);
            Assert.AreEqual(stone.Collapses, true);
            Assert.AreEqual(stone.Decryption, false);
            Assert.AreEqual(stone.GetCost(), stone.Weight * 1.5);
            Assert.AreEqual(stone.Damage, 0);
            Assert.AreEqual(stone.Description, "Valuable stone, will destroy on every turn");

            stone.DecreaseHealth();

            Assert.AreEqual(stone.StoneHealth, 4);
        }
コード例 #12
0
        public void WorkerAddBaggage()
        {
            var robot = CreateWorkerRobot();

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new PoisonedStone(5, stone);
            var res = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
            Assert.AreEqual(robot.Baggage.Count, 1);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 20 + ", free space: " + 190);

            res = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
            Assert.AreEqual(robot.Baggage.Count, 2);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 180);
        }
コード例 #13
0
        public void CyborgTurnCheck()
        {
            var robot = CreateCyborgRobot();

            Assert.AreEqual(robot.BatteryCharge, 70);

            var res = robot.Turn();

            Assert.AreEqual(res, "Turns harm: " + 0 + ", battery charge: " + 69 + ", battery lost: " + 1 + ", ");

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new PoisonedStone(5, stone);
            res   = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");

            res = robot.Turn();
            Assert.AreEqual(res, "Turns harm: " + 5 + ", battery charge: " + 67 + ", battery lost: " + 2 + ", ");
        }
コード例 #14
0
        public void PoisonedCollapsedStoneTest()
        {
            Stone stone = new ValuableStone(5);

            stone = new PoisonedStone(5, stone);
            stone = new CollapseStone(5, stone);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 15 + ", weight: " + 5 + ", description: Valuable stone" +
                            ", will harm on every turn (ciborgs only), will destroy on every turn, stone health: " + 5 + ", damage: " + 5);
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 5);
            Assert.AreEqual(stone.Collapses, true);
            Assert.AreEqual(stone.Decryption, false);
            Assert.AreEqual(stone.GetCost(), stone.Weight * 3);
            Assert.AreEqual(stone.Damage, 5);
            Assert.AreEqual(stone.Description, "Valuable stone, will harm on every turn (ciborgs only), will destroy on every turn");

            stone.DecreaseHealth();

            Assert.AreEqual(stone.StoneHealth, 4);
        }
コード例 #15
0
        public void DecryptionCollapsedStoneTest()
        {
            Stone stone = new ValuableStone(5);

            stone = new CollapseStone(5, stone);
            stone = new DecryptionStone(stone);

            Assert.AreEqual(stone.GetInfo(), "Cost: " + 18.75 + ", weight: " + 5 + ", description: Valuable stone" +
                            ", will destroy on every turn, need to be decrypted, stone health: " + 5);
            Assert.AreEqual(stone.Weight, 5);
            Assert.AreEqual(stone.StoneHealth, 5);
            Assert.AreEqual(stone.Collapses, true);
            Assert.AreEqual(stone.Decryption, true);
            Assert.AreEqual(stone.GetCost(), stone.Weight * 3.75);
            Assert.AreEqual(stone.Damage, 0);
            Assert.AreEqual(stone.Description, "Valuable stone, will destroy on every turn, need to be decrypted");

            stone.DecreaseHealth();

            Assert.AreEqual(stone.StoneHealth, 4);
        }
コード例 #16
0
        public void CyborgAddBaggage()
        {
            var robot = CreateCyborgRobot();

            Stone stone = new ValuableStone(Convert.ToDouble(10));

            stone = new PoisonedStone(5, stone);
            var res = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
            Assert.AreEqual(robot.Baggage.Count, 1);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 20 + ", free space: " + 125 +
                            ", damage per turn: " + 5 + ", current hp: " + 100);

            res = robot.AddStone(stone);

            Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added");
            Assert.AreEqual(robot.Baggage.Count, 2);
            Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 115 +
                            ", damage per turn: " + 10 + ", current hp: " + 100);
        }