Example #1
0
        private void GenerateVillage(Point position, VillageTemplate village)
        {
            var template = village.Template.Clone();

            AddTemplateToMap(template, position);
            villagePositions.Add(position);

            if (village.HasSmallFlag)
            {
                AddResource(smallFlag, template);
            }
            if (village.HasLargeFlag)
            {
                AddResource(largeFlag, template);
            }
            if (village.HasSmallFuelDepot)
            {
                AddResource(smallFuelDepot, template);
            }
            if (village.HasLargeFuelDepot)
            {
                AddResource(largeFuelDepot, template);
            }

            village.IsInstantiated = true;
        }
Example #2
0
        private VillageTemplate CreateVillageTemplate(ObjectTemplate template)
        {
            VillageTemplate village = new VillageTemplate(template);

            village.SmallFlag      = smallFlag.GetResource(template, "Small");
            village.LargeFlag      = largeFlag.GetResource(template, "Large");
            village.SmallFuelDepot = smallFuelDepot.GetResource(template, "Small") ?? smallFuelDepot.GetResource(template, "Medium");
            village.LargeFuelDepot = largeFuelDepot.GetResource(template, "Large");

            return(village);
        }
Example #3
0
        private int GetProbability(VillageTemplate template)
        {
            var villagesOfSameType = from v in villages
                                     where v.Template.Map.GetPropertyValue <string>("mapName") ==
                                     template.Template.Map.GetPropertyValue <string>("mapName")
                                     select v;

            if (template.IsInstantiated || villagesOfSameType.Any(v => v.IsInstantiated))
            {
                return(int.MaxValue);
            }
            else
            {
                return(random.Next());
            }
        }
Example #4
0
        private void GenerateVillages(Point[] positions)
        {
            VillageTemplate village      = GetVillageTemplate(this.villages);
            var             villageClass = from v in villages
                                           where v.HasSmallFlag == village.HasSmallFlag &&
                                           v.HasLargeFlag == village.HasLargeFlag &&
                                           v.HasSmallFuelDepot == village.HasSmallFuelDepot &&
                                           v.HasLargeFuelDepot == village.HasLargeFuelDepot
                                           select v;

            foreach (var position in positions)
            {
                village = GetVillageTemplate(villageClass);
                GenerateVillage(position, village);
            }
        }