public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = this.machines.FirstOrDefault(m => m.Name == attackingMachineName);

            if (attackingMachine == null)
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }
            IMachine defendingMachine = this.machines.FirstOrDefault(m => m.Name == defendingMachineName);

            if (defendingMachine == null)
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }
            //TODO: Check if it can be below zero- keep in mind that there is no checking in the property
            if (attackingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachine.Name));
            }
            if (defendingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachine.Name));
            }
            attackingMachine.Attack(defendingMachine);
            return(string.Format(OutputMessages.AttackSuccessful, defendingMachine.Name, attackingMachine.Name, defendingMachine.HealthPoints));
        }
Example #2
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = null;
            IMachine defendingMachine = null;

            for (int i = 0; i < machines.Count; i++)
            {
                if (machines[i].Name == attackingMachineName)
                {
                    attackingMachine = machines[i];
                }
                if (machines[i].Name == defendingMachineName)
                {
                    defendingMachine = machines[i];
                }
            }
            if (attackingMachine == null)
            {
                return($"Machine { attackingMachineName} could not be found");
            }
            else if (defendingMachine == null)
            {
                return($"Machine {defendingMachineName} could not be found");
            }
            else if (attackingMachine.HealthPoints == 0)
            {
                return($"Dead machine {attackingMachineName} cannot attack or be attacked");
            }
            else if (defendingMachine.HealthPoints == 0)
            {
                return($"Dead machine {defendingMachineName} cannot attack or be attacked");
            }
            attackingMachine.Attack(defendingMachine);
            return($"Machine {defendingMachine.Name} was attacked by machine {attackingMachine.Name} - current health: {defendingMachine.HealthPoints:F2}");
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = machines.FirstOrDefault(m => m.Name == attackingMachineName);

            if (attackingMachine is null)
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            if (attackingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName));
            }

            IMachine defendingMachine = machines.FirstOrDefault(m => m.Name == defendingMachineName);

            if (defendingMachine is null)
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            if (defendingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName));
            }

            attackingMachine.Attack(defendingMachine);

            return(string.Format(OutputMessages.AttackSuccessful, defendingMachineName, attackingMachineName, defendingMachine.HealthPoints));
        }
Example #4
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = this.machines.FirstOrDefault(x => x.Name == attackingMachineName);
            IMachine defendingMachine = this.machines.FirstOrDefault(x => x.Name == defendingMachineName);

            if (attackingMachine == null)
            {
                return($"Machine {attackingMachineName} could not be found");
            }
            else if (defendingMachine == null)
            {
                return($"Machine {defendingMachineName} could not be found");
            }
            else if (attackingMachine.HealthPoints == 0)
            {
                return($"Dead machine {attackingMachineName} cannot attack or be attacked");
            }
            else if (defendingMachine.HealthPoints == 0)
            {
                return($"Dead machine {defendingMachineName} cannot attack or be attacked");
            }
            else
            {
                attackingMachine.Attack(defendingMachine);
                return($"Machine {defendingMachineName} was attacked by machine {attackingMachineName} - current health: {defendingMachine.HealthPoints:F2}");
            }
        }
Example #5
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            if (this.machines.ContainsKey(attackingMachineName) == false)
            {
                return($"Machine {attackingMachineName} could not be found");
            }

            if (this.machines.ContainsKey(defendingMachineName) == false)
            {
                return($"Machine {defendingMachineName} could not be found");
            }

            IMachine attackingMachine = this.machines[attackingMachineName];
            IMachine defendingMachine = this.machines[defendingMachineName];

            if (attackingMachine.HealthPoints <= 0)
            {
                return($"Dead machine {attackingMachineName} cannot attack or be attacked");
            }

            if (defendingMachine.HealthPoints <= 0)
            {
                return($"Dead machine {defendingMachine} cannot attack or be attacked");
            }

            attackingMachine.Attack(defendingMachine);

            return($"Machine {defendingMachine.Name} was attacked by machine {attackingMachine.Name} - current health: {defendingMachine.HealthPoints:F2}");
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            if (this.machines.FirstOrDefault(n => n.Name == attackingMachineName) == null)
            {
                return($"Machine {attackingMachineName} could not be found");
            }
            if (this.machines.FirstOrDefault(n => n.Name == defendingMachineName) == null)
            {
                return($"Machine {defendingMachineName} could not be found");
            }
            if (this.machines.FirstOrDefault(n => n.Name == attackingMachineName).HealthPoints <= 0)
            {
                return($"Dead machine {attackingMachineName} cannot attack or be attacked");
            }
            if (this.machines.FirstOrDefault(n => n.Name == defendingMachineName).HealthPoints <= 0)
            {
                return($"Dead machine {defendingMachineName} cannot attack or be attacked");
            }

            IMachine attaackingMachine = this.machines.FirstOrDefault(n => n.Name == attackingMachineName);
            IMachine defendingMachine  = this.machines.FirstOrDefault(n => n.Name == defendingMachineName);

            attaackingMachine.Attack(defendingMachine);

            return($"Machine {defendingMachineName} was attacked by machine {attackingMachineName} - current health: {defendingMachine.HealthPoints:f2}");
        }
Example #7
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attacker = this.machines.FirstOrDefault(x => x.Name == attackingMachineName);
            IMachine defender = this.machines.FirstOrDefault(x => x.Name == defendingMachineName);

            if (!CheckIfMachineExists(attackingMachineName))
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            if (!CheckIfMachineExists(defendingMachineName))
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            if (CheckIfDead(attacker))
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attacker.Name));
            }

            if (CheckIfDead(defender))
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defender.Name));
            }

            attacker.Attack(defender);

            return(string.Format(OutputMessages.AttackSuccessful, defender.Name, attacker.Name, defender.HealthPoints));
        }
Example #8
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = (IMachine)this.machineRepository.GetByName(attackingMachineName);
            IMachine defendingMachine = (IMachine)this.machineRepository.GetByName(defendingMachineName);

            if (attackingMachine == null)
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            if (defendingMachine == null)
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            if (attackingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName));
            }

            if (defendingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName));
            }

            attackingMachine.Attack(defendingMachine);

            return(string.Format(OutputMessages.AttackSuccessful,
                                 defendingMachine.Name, attackingMachine.Name, defendingMachine.HealthPoints));
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            if (this.machines.Any(m => m.Name == attackingMachineName) == false)
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            if (this.machines.Any(m => m.Name == defendingMachineName) == false)
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            IMachine attacker  = this.machines.First(m => m.Name == attackingMachineName);
            IMachine deffender = this.machines.First(m => m.Name == defendingMachineName);

            if (attacker.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName));
            }

            if (deffender.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName));
            }

            attacker.Attack(deffender);

            return(string.Format(OutputMessages.AttackSuccessful, deffender.Name, attacker.Name, deffender.HealthPoints));
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = null;
            IMachine defendingMachine = null;

            if (!machines.ContainsKey(attackingMachineName))
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            attackingMachine = machines[attackingMachineName];

            if (!machines.ContainsKey(defendingMachineName))
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            defendingMachine = machines[defendingMachineName];

            if (attackingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName));
            }

            if (defendingMachine.HealthPoints == 0)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName));
            }

            attackingMachine.Attack(defendingMachine);

            return(string.Format(OutputMessages.AttackSuccessful, defendingMachineName, attackingMachineName, defendingMachine.HealthPoints));
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine attackingMachine = this.machines.FirstOrDefault(x => x.Name == attackingMachineName);
            IMachine defendingMachine = this.machines.FirstOrDefault(x => x.Name == defendingMachineName);

            string result = string.Empty;

            if (attackingMachine == null)
            {
                result = $"Machine {attackingMachineName} could not be found";
            }
            else if (defendingMachine == null)
            {
                result = $"Machine {defendingMachineName} could not be found";
            }
            else if (attackingMachine.HealthPoints <= 0)
            {
                result = $"Dead machine {attackingMachineName} cannot attack or be attacked";
            }
            else if (defendingMachine.HealthPoints <= 0)
            {
                result = $"Dead machine {defendingMachineName} cannot attack or be attacked";
            }
            else
            {
                attackingMachine.Attack(defendingMachine);
                attackingMachine.Targets.Add(defendingMachine.Name);
                result = $"Machine {defendingMachineName} was attacked by machine {attackingMachineName} - current health: {defendingMachine.HealthPoints:F2}";
            }

            return(result);
        }
Example #12
0
        public string AttackMachines(
            string attackingMachineName,
            string defendingMachineName)
        {
            IMachine attacker = this.machines
                                .FirstOrDefault(m => m.Name == attackingMachineName);
            IMachine defender = this.machines
                                .FirstOrDefault(m => m.Name == defendingMachineName);

            if (attacker == null || defender == null)
            {
                string searchName = attacker == null
                    ? attackingMachineName
                    : defendingMachineName;

                return(string.Format(
                           OutputMessages.MachineNotFound,
                           searchName));
            }

            if (attacker.HealthPoints <= 0 ||
                defender.HealthPoints <= 0)
            {
                string searchName = attacker == null
                    ? attackingMachineName
                    : defendingMachineName;

                return(string.Format(
                           OutputMessages.DeadMachineCannotAttack,
                           searchName));
            }

            attacker.Attack(defender);

            return(string.Format(
                       OutputMessages.AttackSuccessful,
                       defendingMachineName,
                       attackingMachineName,
                       defender.HealthPoints));
        }
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            if (!IsThatMachineExist(attackingMachineName))
            {
                return(String.Format(
                           OutputMessages.MachineNotFound,
                           attackingMachineName));
            }

            if (!IsThatMachineExist(defendingMachineName))
            {
                return(String.Format(
                           OutputMessages.MachineNotFound,
                           defendingMachineName));
            }

            IMachine attackingMachine = this.machines[attackingMachineName];
            IMachine defendingMachine = this.machines[defendingMachineName];

            if (attackingMachine.HealthPoints <= 0)
            {
                return(String.Format(
                           OutputMessages.DeadMachineCannotAttack,
                           attackingMachineName));
            }

            if (defendingMachine.HealthPoints <= 0)
            {
                return(String.Format(
                           OutputMessages.DeadMachineCannotAttack,
                           defendingMachineName));
            }

            attackingMachine.Attack(defendingMachine);

            return(String.Format(OutputMessages.AttackSuccessful, defendingMachineName, attackingMachineName, defendingMachine.HealthPoints));
        }
Example #14
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            string result = string.Empty;

            IMachine attackMachine = this.machines.FirstOrDefault(m => m.Name == attackingMachineName);

            if (attackMachine == null)
            {
                result = string.Format(OutputMessages.MachineNotFound, attackingMachineName);
                return(result);
            }

            IMachine defendingMachine = this.machines.FirstOrDefault(m => m.Name == defendingMachineName);

            if (defendingMachine == null)
            {
                result = string.Format(OutputMessages.MachineNotFound, defendingMachineName);
                return(result);
            }

            if (attackMachine.HealthPoints <= 0)
            {
                result = string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName);
                return(result);
            }

            if (defendingMachine.HealthPoints <= 0)
            {
                result = string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName);
                return(result);
            }

            attackMachine.Attack(defendingMachine);

            result = string.Format(OutputMessages.AttackSuccessful, defendingMachine.Name, attackMachine.Name, defendingMachine.HealthPoints);
            return(result);
        }
Example #15
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine machineOne = (IMachine)this.machines.FirstOrDefault(m => m.Name == attackingMachineName);
            IMachine machineTwo = (IMachine)this.machines.FirstOrDefault(m => m.Name == defendingMachineName);

            if (machineOne == null || machineTwo == null)
            {
                string name = machineOne == null ? attackingMachineName : defendingMachineName;
                return(string.Format(OutputMessages.MachineNotFound, name));
            }
            else if (machineOne.HealthPoints == 0 || machineTwo.HealthPoints == 0)
            {
                string name = machineOne.HealthPoints == 0 ? attackingMachineName : defendingMachineName;
                return(string.Format(OutputMessages.DeadMachineCannotAttack, name));
            }
            else
            {
                machineOne.Attack(machineTwo);
                return(string.Format(OutputMessages.AttackSuccessful,
                                     defendingMachineName,
                                     attackingMachineName,
                                     machineTwo.HealthPoints));
            }
        }
Example #16
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            IMachine machineToAttack          = this.machines.FirstOrDefault(m => m.Name == attackingMachineName);
            bool     isAttackingMachineExists = machineToAttack != null;

            IMachine machineToDefend          = this.machines.FirstOrDefault(m => m.Name == defendingMachineName);
            bool     isDefendingMachineExists = machineToDefend != null;

            bool isAttackingDead = machineToAttack?.HealthPoints == 0.0;

            bool isDefendingDead = machineToDefend?.HealthPoints == 0.0;

            if (!isAttackingMachineExists)
            {
                return(string.Format(OutputMessages.MachineNotFound, attackingMachineName));
            }

            if (!isDefendingMachineExists)
            {
                return(string.Format(OutputMessages.MachineNotFound, defendingMachineName));
            }

            if (isAttackingDead)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName));
            }

            if (isDefendingDead)
            {
                return(string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName));
            }

            machineToAttack.Attack(machineToDefend);

            return(string.Format(OutputMessages.AttackSuccessful, machineToDefend.Name, machineToAttack.Name, machineToDefend.HealthPoints));
        }
Example #17
0
        public string AttackMachines(string attackingMachineName, string defendingMachineName)
        {
            string result;

            IMachine attackingMachine = machines.FirstOrDefault(m => m.Name == attackingMachineName);
            IMachine defendingMachine = machines.FirstOrDefault(m => m.Name == defendingMachineName);

            if (attackingMachine == null)
            {
                result = string.Format(OutputMessages.MachineNotFound, attackingMachineName);
            }
            else if (defendingMachine == null)
            {
                result = string.Format(OutputMessages.MachineNotFound, defendingMachineName);
            }
            else if (attackingMachine.HealthPoints == 0)
            {
                result = string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachine.Name);
            }
            else if (defendingMachine.HealthPoints == 0)
            {
                result = string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachine.Name);
            }

            else
            {
                attackingMachine.Attack(defendingMachine);
                result = string.Format(OutputMessages.AttackSuccessful,
                                       defendingMachine.Name,
                                       attackingMachine.Name,
                                       defendingMachine.HealthPoints);
            }

            //if (attackingMachine != null && defendingMachine != null)
            //{
            //    if (attackingMachine.HealthPoints > 0 && defendingMachine.HealthPoints > 0)
            //    {
            //        attackingMachine.Attack(defendingMachine);
            //        result = string.Format(OutputMessages.AttackSuccessful, defendingMachine.Name, attackingMachine.Name, defendingMachine.HealthPoints);
            //    }
            //    else
            //    {
            //        if (attackingMachine.HealthPoints <= 0)
            //        {
            //            result = string.Format(OutputMessages.DeadMachineCannotAttack, attackingMachineName);
            //        }
            //        else
            //        {
            //            result = string.Format(OutputMessages.DeadMachineCannotAttack, defendingMachineName);
            //        }
            //    }
            //}
            //else
            //{
            //    if (attackingMachine == null)
            //    {
            //        result = string.Format(OutputMessages.MachineNotFound, attackingMachineName);
            //    }
            //    else
            //    {
            //        result = string.Format(OutputMessages.MachineNotFound, defendingMachineName);
            //    }
            //}

            return(result);
        }