private void ChainOutbreak(object sender, OutbreakEventArgs e)
        {
            IEnumerable<NodeDiseaseCounter> outbreakCounters = nodeCounters.Where(i => e.OriginCounter.Node.Connections.Contains(i.Node));
            foreach (NodeDiseaseCounter nodeCounter in outbreakCounters.Where(i => !e.OriginList.Contains(i)))
            {
                if (Count == 0)
                    return;

                if (outbreakCounter.Count == 7)
                    return;

                nodeCounter.OutbreakInfection(e);
            }
        }
 private void Outbreak(object sender, OutbreakEventArgs e)
 {
     Increase();
 }
        internal void OutbreakInfection(OutbreakEventArgs e)
        {
            foreach (Player player in Node.Players)
            {
                if (Disease.IsCured == true && player is Medic)
                    return;
                if (player is QuarantineSpecialist)
                    return;
            }

            foreach (Node node in Node.Connections)
            {
                foreach (Player player in node.Players)
                {
                    if (player is QuarantineSpecialist)
                        return;
                }
            }

            if (Count < 3)
            {
                Count++;
                if (ChainInfected != null) ChainInfected(this, new InfectionEventArgs(this, 1));
                e.AffectedCities.Add(this);
            }
            else
            {
                e.ChainCities.Add(this);
                e.OriginList.Add(this);
                if (ChainOutbreak != null) ChainOutbreak(this, e);
            }
        }