Пример #1
0
        internal void Merge(TabularDataQueryOptions qo)
        {
            foreach (var select in qo.Selects)
            {
                AddSelect(select);
            }

            foreach (var entry in qo.Expands)
            {
                if (Expands.ContainsKey(entry.Key))
                {
                    MergeQueryOptions((ExpandQueryOptions)Expands[entry.Key], (ExpandQueryOptions)entry.Value);
                }
                else
                {
                    AddExpand(entry.Key, (ExpandQueryOptions)entry.Value);
                }
            }
        }
        public bool Expand()
        {
            int     currentBases   = Expands.Count();
            Unit    worker         = GetAvailableWorker();
            Vector3?expandPosition = GetSortedExpandLocationsForMe()[currentBases].Value;

            if (expandPosition != null)
            {
                if (Controller.Construct(GetAvailableWorker(), Units.HATCHERY, expandPosition))
                {
                    Logger.Info("Expanding");
                    return(true);
                }
                return(false);
            }
            else
            {
                Logger.Error("All expands are already taken");
                return(false);
            }
        }