private void LoadCategoryPageResponses() { Model model = GetDialogCustomData <Model>(); ClearPageResponses("BlueprintCategoryPage"); PCTerritoryFlag flag = _structure.GetPCTerritoryFlagByID(model.FlagID); TerritoryStructureCount counts = _structure.GetNumberOfStructuresInTerritory(model.FlagID); List <StructureCategory> categories = _structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, false, false).ToList(); if (flag != null && counts.VanityCount < flag.StructureBlueprint.VanityCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, true, false, false, false)); } if (flag != null && counts.SpecialCount < flag.StructureBlueprint.SpecialCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, true, false, false)); } if (flag != null && counts.ResourceCount < flag.StructureBlueprint.ResourceCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, true, false)); } if (flag != null && counts.BuildingCount < flag.StructureBlueprint.BuildingCount) { categories.AddRange(_structure.GetStructureCategoriesByType(GetPC().GlobalID, model.IsTerritoryFlag, false, false, false, true)); } foreach (StructureCategory category in categories) { AddResponseToPage("BlueprintCategoryPage", category.Name, category.IsActive, new Tuple <string, dynamic>(string.Empty, category.StructureCategoryID)); } AddResponseToPage("BlueprintCategoryPage", "Back"); }
private void LoadBlueprintListPageResponses() { Model model = GetDialogCustomData <Model>(); ClearPageResponses("BlueprintListPage"); Location location = GetDialogTarget().Location; PCSkill pcSkill = _skill.GetPCSkill(GetPC(), SkillType.Construction); if (pcSkill == null) { return; } PCTerritoryFlag flag = _structure.GetPCTerritoryFlagByID(model.FlagID); TerritoryStructureCount counts = _structure.GetNumberOfStructuresInTerritory(model.FlagID); List <StructureBlueprint> blueprints = _structure.GetStructuresByCategoryAndType(GetPC().GlobalID, model.CategoryID, false, false, false, false); // Territory markers if (flag != null && counts.VanityCount < flag.StructureBlueprint.VanityCount) { blueprints.AddRange(_structure.GetStructuresByCategoryAndType(GetPC().GlobalID, model.CategoryID, true, false, false, false)); // Vanity } if (flag != null && counts.SpecialCount < flag.StructureBlueprint.SpecialCount) { blueprints.AddRange(_structure.GetStructuresByCategoryAndType(GetPC().GlobalID, model.CategoryID, false, true, false, false)); // Special } if (flag != null && counts.ResourceCount < flag.StructureBlueprint.ResourceCount) { blueprints.AddRange(_structure.GetStructuresByCategoryAndType(GetPC().GlobalID, model.CategoryID, false, false, true, false)); // Resource } if (flag != null && counts.BuildingCount < flag.StructureBlueprint.BuildingCount) { blueprints.AddRange(_structure.GetStructuresByCategoryAndType(GetPC().GlobalID, model.CategoryID, false, false, false, true)); // Building } foreach (StructureBlueprint entity in blueprints) { string entityName = entity.Name + " (Lvl. " + entity.Level + ")"; if (model.IsTerritoryFlag) { if (_structure.WillBlueprintOverlapWithExistingFlags(location, entity.StructureBlueprintID)) { entityName = _color.Red(entityName + " [OVERLAPS]"); } } AddResponseToPage("BlueprintListPage", entityName, entity.IsActive, new Tuple <string, dynamic>(string.Empty, entity.StructureBlueprintID)); } AddResponseToPage("BlueprintListPage", "Back"); }
private void BuildMainPageHeader() { Model model = GetDialogCustomData <Model>(); int flagID = model.FlagID; PCTerritoryFlag flag = _structure.GetPCTerritoryFlagByID(flagID); TerritoryStructureCount counts = _structure.GetNumberOfStructuresInTerritory(flagID); var blueprint = flag.StructureBlueprint; string header = _color.Green("Territory Management Menu") + "\n\n" + _color.Green("Vanity Slots: ") + counts.VanityCount + " / " + blueprint.VanityCount + "\n" + _color.Green("Special Slots: ") + counts.SpecialCount + " / " + blueprint.SpecialCount + "\n" + _color.Green("Resource Slots: ") + counts.ResourceCount + " / " + blueprint.ResourceCount + "\n" + _color.Green("Building Slots: ") + counts.BuildingCount + " / " + blueprint.BuildingCount + "\n" + "Please select an option."; SetPageHeader("MainPage", header); }