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