Exemplo n.º 1
0
        public void Expand()
        {
            List <Case> freeTerritory = new List <Case>();
            int         distance      = 0;

            foreach (Case c in territory)
            {
                if (c.IsFree && (!c.HasUnits || c.Occupant == Player))
                {
                    if (distance == 0)
                    {
                        distance = c.DistanceTo(position);
                    }

                    // Use in priority the closest cases.
                    if (c.DistanceTo(position) == distance)
                    {
                        freeTerritory.Add(c);
                    }
                }
            }

            if (freeTerritory.Count > 0)
            {
                int  r     = Game.random.Next(freeTerritory.Count);
                Case field = freeTerritory[r];

                fields.Add(field);
                field.Use(this);

                Population++;
                Food          -= _requiredFood;
                _requiredFood += _requiredFood / 2;
            }
        }