예제 #1
0
    public void IsPerformingMission()
    {
        IMission mission = new Easy(10);

        army.AddSoldier(new Corporal("Delyan", 42, 30, 80));

        mc.PerformMission(mission);

        Assert.IsTrue(mc.SuccessMissionCounter != 0);
    }
예제 #2
0
    public void GiveInputToGameController(string input)
    {
        var data = input.Split();

        if (data[0].Equals("Soldier"))
        {
            var soldier = soldierFactory.CreateSoldier(data[1], data[2], int.Parse(data[3]), double.Parse(data[4]),
                                                       double.Parse(data[5]));
            if (wareHouse.TryEquipSoldier(soldier))
            {
                army.AddSoldier(soldier);
            }
            else
            {
                throw new ArgumentException(string.Format(OutputMessages.SoldierCannotBeEquiped, data[1], data[2]));
            }
        }
        else if (data[1] == "Regenerate")
        {
            army.RegenerateTeam(data[2]);
        }

        else if (data[0] == "WareHouse")
        {
            string name   = data[1];
            int    number = int.Parse(data[2]);

            this.wareHouse.AddAmmunition(name, number);
        }
        else if (data[0] == "Mission")
        {
            var mission = missionFactory.CreateMission(data[1], double.Parse(data[2]));
            writer.AppendLine(missionController.PerformMission(mission).TrimEnd());
        }
    }
    public void GiveInputToGameController(string input)
    {
        var data = input.Split();

        if (data[0].Equals("Soldier"))
        {
            if (data[1] == "Regenerate")
            {
                army.RegenerateTeam(data[2]);
            }
            else
            {
                string soldierType = data[1];
                string soldierName = data[2];
                int    age         = int.Parse(data[3]);
                double experience  = double.Parse(data[4]);
                double endurance   = double.Parse(data[5]);

                ISoldier soldier = this.soldierFactory
                                   .CreateSoldier(soldierType, soldierName, age, experience, endurance);
                if (!this.wareHouse.TryEquipSoldier(soldier))
                {
                    string message = string.Format(OutputMessages.SoldierCannotBeEquiped, soldierType, soldierName);
                    throw new ArgumentException(message);
                }
                army.AddSoldier(soldier);
            }
        }
        else if (data[0].Equals("WareHouse"))
        {
            string name   = data[1];
            int    number = int.Parse(data[2]);

            this.wareHouse.AddAmmunition(name, number);
        }
        else if (data[0].Equals("Mission"))
        {
            string   missionType     = data[1];
            double   scoreToComplete = double.Parse(data[2]);
            IMission mission         = this.missionFactory.CreateMission(missionType, scoreToComplete);

            writer.AppendLine(this.missionController.PerformMission(mission).Trim());
        }
    }
예제 #4
0
 private void AddSoldiers()
 {
     army.AddSoldier(new Ranker("Ranker", 20, 30, 40));
     army.AddSoldier(new Corporal("Corporal", 25, 35, 45));
     army.AddSoldier(new SpecialForce("Sepcial", 40, 100, 80));
 }
예제 #5
0
 private void AddSoldierToArmy(ISoldier soldier)
 {
     army.AddSoldier(soldier);
 }
예제 #6
0
    public void GiveInputToGameController(string input)
    {
        var data = input.Split();

        if (data[0].Equals("Soldier"))
        {
            string type       = string.Empty;
            string name       = string.Empty;
            int    age        = 0;
            double experience = 0;
            double endurance  = 0d;

            if (data.Length == 3)
            {
                type = data[1];
                name = data[2];
            }
            else
            {
                type       = data[1];
                name       = data[2];
                age        = int.Parse(data[3]);
                experience = double.Parse(data[4]);
                endurance  = double.Parse(data[5]);
            }

            switch (type)
            {
            case "Ranker":
            case "Corporal":
            case "SpecialForce":
                try
                {
                    var soldier = soldierFactory.CreateSoldier(type, name, age, experience, endurance);
                    army.AddSoldier(soldier);
                }
                catch (InvalidOperationException e)
                {
                    writer.WriteLine(e.Message);
                }
                break;

            case "Regenerate":
                this.army.RegenerateTeam(name);
                break;
            }
        }
        else if (data[0].Equals("WareHouse"))
        {
            string name   = data[1];
            int    number = int.Parse(data[2]);

            while (number-- > 0)
            {
                wareHouse.AddAmmunitions(ammunitionFactory.CreateAmmunition(name));
            }
        }
        else if (data[0].Equals("Mission"))
        {
            var missionDifficulty = data[1];
            var scoresToComplete  = double.Parse(data[2]);

            var missionInstance = missionFactory.CreateMission(missionDifficulty, scoresToComplete);

            writer.WriteLine(this.missionControllerField.PerformMission(missionInstance).TrimEnd());
        }
    }