Example #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");
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }