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()); }
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()); }