예제 #1
0
        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");
        }