private void BoostImmuneSystem(ImmuneSystem immuneSystem, int damageIncrease)
 {
     foreach (var immunityGroup in immuneSystem.AliveImmunities)
     {
         immunityGroup.ChangeUnitDamageBy(damageIncrease);
     }
 }
        public UnitAttack[] SelectTargets(ImmuneSystem immuneSystem)
        {
            var immunitiesAttacks = SelectTargets(immuneSystem.AliveImmunities, immuneSystem.AliveInfections);
            var infectionsAttacks = SelectTargets(immuneSystem.AliveInfections, immuneSystem.AliveImmunities);

            return(immunitiesAttacks
                   .Concat(infectionsAttacks)
                   .ToArray());
        }
Esempio n. 3
0
 public void PrintInfo(ImmuneSystem immuneSystem, int damageIncrease)
 {
     AppendContent(
         $"Damage increase: {damageIncrease}" +
         Environment.NewLine +
         $"{CreateGroupsInfo("Immunes: ", immuneSystem.AliveImmunities)}" +
         Environment.NewLine +
         $"{CreateGroupsInfo("Infections: ", immuneSystem.AliveInfections)}" +
         Environment.NewLine +
         Environment.NewLine);
 }
        public void Simulate(ImmuneSystem immuneSystem)
        {
            do
            {
                var unitAttacks = targetSelect.SelectTargets(immuneSystem);

                var isSimulationStuck = IsAttacksStuck(unitAttacks);

                if (isSimulationStuck)
                {
                    return;
                }

                attackExecuter.ExecuteAttacks(unitAttacks);
            } while (immuneSystem.IsBothGroupsAlive());
        }