Exemplo n.º 1
0
        /// <summary>
        /// Construct requirements for the specified package using the specified OS configuration
        /// </summary>
        /// <param name="packageTags"></param>
        /// <param name="osVersion"></param>
        /// <param name="spVersion"></param>
        /// <param name="type"></param>
        /// <param name="architecture"></param>
        internal Requirements(string packageTags, Version osVersion, Version spVersion, string type, string architecture)
        {
            // Save the system information for validation
            _osVersion    = osVersion;
            _spVersion    = spVersion;
            _type         = type;
            _architecture = architecture;

            if (!string.IsNullOrEmpty(packageTags))
            {
                // Split the package tags up
                // In NuGet the typical delimiter is space but we also support comma in the web matrix extension gallery.
                string[] tags = packageTags.Split(new char[] { ' ', '\t', '\r', '\n', ',' }, StringSplitOptions.RemoveEmptyEntries);

                // Parse each tag to see if it is a valid requirement and if so add it to our collection
                foreach (string tag in tags)
                {
                    Requirement systemRequirement = new Requirement(tag);
                    if (systemRequirement.Parse())
                    {
                        RequirementsList.Add(systemRequirement);
                    }
                }
            }
        }
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            var headEquipmentExceptCloth = Api.FindProtoEntities <IProtoItemEquipmentHead>()
                                           .Where(i => !(i is ItemClothHat))
                                           .ToList();

            var chestEquipmentExceptCloth = Api.FindProtoEntities <IProtoItemEquipmentChest>()
                                            .Where(i => !(i is ItemClothShirt))
                                            .ToList();

            var legsEquipmentExceptCloth = Api.FindProtoEntities <IProtoItemEquipmentLegs>()
                                           .Where(i => !(i is ItemClothPants))
                                           .ToList();

            requirements
            .Add(RequirementBuildStructure.Require <ObjectArmorerWorkbench>())
            // suggest wood helmet but require any head item except the cloth one
            .Add(RequirementHaveItemEquipped.Require(
                     headEquipmentExceptCloth,
                     string.Format(RequirementHaveItemEquipped.DescriptionFormat,
                                   Api.GetProtoEntity <ItemWoodHelmet>().Name)))
            // suggest wood chestplate but require any chest item except the cloth one
            .Add(RequirementHaveItemEquipped.Require(
                     chestEquipmentExceptCloth,
                     string.Format(RequirementHaveItemEquipped.DescriptionFormat,
                                   Api.GetProtoEntity <ItemWoodChestplate>().Name)))
            // suggest wood pants but require any legs item except the cloth one
            .Add(RequirementHaveItemEquipped.Require(
                     legsEquipmentExceptCloth,
                     string.Format(RequirementHaveItemEquipped.DescriptionFormat,
                                   Api.GetProtoEntity <ItemWoodPants>().Name)));

            prerequisites
            .Add <QuestExploreBiomes1>();
        }
Exemplo n.º 3
0
 protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
 {
     requirements
     .Add(RequirementHaveItem.Require <ItemFibers>(count: 10))
     .Add(RequirementHaveItem.Require <ItemTwigs>(count: 10))
     .Add(RequirementHaveItem.Require <ItemStone>(count: 10));
 }
Exemplo n.º 4
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipeToolboxT1>());

            prerequisites
            .Add <QuestPerformBasicActions>();
        }
Exemplo n.º 5
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementBuildStructure.Require <ObjectCampfire>());

            prerequisites
            .Add <QuestCraftAToolbox>();
        }
Exemplo n.º 6
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementDestroy.Require <IProtoObjectTree>(count: 3, description: this.Name));

            prerequisites
            .Add <QuestCraftAnAxe>();
        }
Exemplo n.º 7
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipePickaxeStone>());

            prerequisites
            .Add <QuestChopDownATree>();
        }
Exemplo n.º 8
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementVisitTile.Require <TileRuins>());

            prerequisites
            .Add <QuestCompleteTier1Technologies>();
        }
Exemplo n.º 9
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementBuildStructure.Require <ObjectBedroll>());

            prerequisites
            .Add <QuestLearnBasicBuilding>();
        }
Exemplo n.º 10
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementVisitTile.Require <TileSwamp>())
            .Add(RequirementVisitTile.Require <TileVolcanic>());

            prerequisites
            .Add <QuestAdvancedResourcesAcquisition>();
        }
Exemplo n.º 11
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementGather.Require <ObjectBushWaterbulb>(count: 5, TaskGatherWaterbulbFruit))
            .Add(RequirementUseItem.Require <ItemWaterbulb>());

            prerequisites
            .Add <QuestCookAnyFood>();
        }
Exemplo n.º 12
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveTechNode.Require <TechNodeBasicBuilding>());

            prerequisites
            .Add <QuestBuildACampfire>()
            .Add <QuestMineAnyMineral>();
        }
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveTechNode.Require <TechNodeFridgeEvaporator>())
            .Add(RequirementBuildStructure.Require <ObjectFridgeEvaporator>());

            prerequisites
            .Add <QuestBuildMulchboxAndCraftWateringCan>();
        }
Exemplo n.º 14
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementDestroy.Require <IProtoObjectMineral>(count: 5, description: this.Name))
            .Add(RequirementDestroy.Require <ObjectMineralStone>(count: 3, description: TaskMineStone));

            prerequisites
            .Add <QuestCraftAPickaxe>();
        }
Exemplo n.º 15
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementSortItemsContainer.Require)
            .Add(RequirementRun.Require);

            prerequisites
            .Add <QuestChopDownATree>();
        }
Exemplo n.º 16
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipeRope>())
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipeAxeStone>());

            prerequisites
            .Add <QuestGatherResources>();
        }
Exemplo n.º 17
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveItem.Require <ItemHerbGreen>(count: 1, isReversible: false))
            .Add(RequirementUseItem.Require <ItemHerbGreen>(count: 1));

            prerequisites
            .Add <QuestCraftAKnifeAndKillAnyCreature>();
        }
Exemplo n.º 18
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementBuildStructure.Require <ObjectGeneratorSteam>())
            .Add(RequirementBuildStructure.Require <ObjectPowerStorage>())
            .Add(RequirementBuildStructure.Require <ObjectLightFloorLampSmall>());

            prerequisites
            .Add <QuestBuildChemicalLab>();
        }
Exemplo n.º 19
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveSkills.RequireAny(count: 4,
                                                  minLevel: 1,
                                                  description: TaskUnlockAnyCharacterSkills));

            prerequisites
            .Add <QuestBuildAPermanentBase>();
        }
Exemplo n.º 20
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementKill.Require <MobChicken>(count: 1))
            .Add(RequirementKill.Require <MobCrab>(count: 1))
            .Add(RequirementKill.Require <MobStarfish>(count: 1));

            prerequisites
            .Add <QuestCraftRangedWeapon>();
        }
Exemplo n.º 21
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipeKnifeStone>())
            .Add(RequirementKill.Require <IProtoCharacterMob>(count: 1, description: TaskKillAnyCreature))
            .Add(RequirementGather.Require <ObjectCorpse>(count: 1, description: TaskLootAnyCreature));

            prerequisites
            .Add <QuestUnlockAndBuildWorkbench>();
        }
Exemplo n.º 22
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementVisitTile.Require <TileForestBoreal>())
            .Add(RequirementVisitTile.Require <TileRocky>())
            .Add(RequirementVisitTile.Require <TileClay>());

            prerequisites
            .Add <QuestCraftAndEquipBetterArmor>();
        }
Exemplo n.º 23
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveTechNode.Require <TechNodeIronTools>())
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipeAxeIron>())
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipePickaxeIron>());

            prerequisites
            .Add <QuestBuildFurnaceAndSmeltCopper>();
        }
Exemplo n.º 24
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementHaveTechNode.Require <TechNodeSmelting>())
            .Add(RequirementBuildStructure.Require <ObjectFurnace>())
            .Add(RequirementManufactureItem.Require <ItemIngotCopper>(count: 10));

            prerequisites
            .Add <QuestBuildAPermanentBase>();
        }
Exemplo n.º 25
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementVisitTile.Require <TileSaltFlats>())
            .Add(RequirementVisitTile.Require <TileBarren>());

            prerequisites
            .Add <QuestEstablishPowerGrid>()
            .Add <QuestBuildMedicalLab>();
        }
Exemplo n.º 26
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementVisitTile.Require <TileForestBoreal>())
            .Add(RequirementVisitTile.Require <TileRocky>())
            .Add(RequirementVisitTile.Require <TileClay>());

            prerequisites
            .Add <QuestUseCrowbarAndDeconstructBuilding>();
        }
Exemplo n.º 27
0
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireHandRecipe <RecipeTorch>())
            .Add(RequirementUseItem.Require <ItemTorch>());

            prerequisites
            .Add <QuestLearnBasicBuilding>()
            .Add <QuestCookAnyFood>();
        }
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipeWateringCanWood>())
            .Add(RequirementBuildStructure.Require <ObjectMulchbox>())
            .Add(RequirementUseItem.Require <IProtoItemToolWateringCan>(description: TaskUseWateringCan))
            .Add(RequirementUseItem.Require <ItemMulch>(description: TaskUseMulch));

            prerequisites
            .Add <QuestBuildAFarm>();
        }
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementBuildStructure.Require <ObjectChemicalLab>())
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipeAcidSulfuricFromPyrite>())
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipeAcidNitric>())
            .Add(RequirementCraftRecipe.RequireStationRecipe <RecipeNitrocellulosePowder>());

            prerequisites
            .Add <QuestCompleteTier1Technologies>();
        }
        protected override void PrepareQuest(QuestsList prerequisites, RequirementsList requirements)
        {
            requirements
            .Add(RequirementBuildStructure.Require <ObjectArmorerWorkbench>())
            .Add(RequirementHaveItemEquipped.Require <ItemWoodHelmet>())
            .Add(RequirementHaveItemEquipped.Require <ItemWoodChestplate>())
            .Add(RequirementHaveItemEquipped.Require <ItemWoodPants>());

            prerequisites
            .Add <QuestClaySandGlassBottlesWaterCollector>();
        }