Ejemplo n.º 1
0
Archivo: Eating.cs Proyecto: mxgmn/GENW
 private bool CanEat(CraftingComponent cc)
 {
     if (cc.NameIs("Iron", "Gold", "Copper", "Bottle")) return false;
     else if (!t.HasAbility("Omnivore") && cc.NameIs("Ironwood")) return false;
     else if (t.HasAbility("Overgrowth") && !cc.NameIs("Water", "Glowing Goo")) return false;
     else return true;
 }
Ejemplo n.º 2
0
Archivo: Eating.cs Proyecto: mxgmn/GENW
    private void Eat(CraftingComponent cc)
    {
        int nutritionalValue = 0;

        if (cc.NameIs("Squiraug", "Squiraid", "Auglum")) nutritionalValue = 1;
        else if (cc.NameIs("Fiber", "Wood", "Leather", "Animal Parts", "Ironwood") && t.HasAbility("Omnivore")) nutritionalValue = 1;
        else if (cc.NameIs("Glowing Goo", "Dukuris")) nutritionalValue = -1;

        if (t.HasAbility("Substitutional Metabolism")) t.hp.Add(nutritionalValue);
        t.hp.AddStamina(nutritionalValue);
    }
Ejemplo n.º 3
0
        public CamoShirtRecipe()
        {
            this.Recipes = new List <Recipe>
            {
                new Recipe(
                    "CamoShirt",
                    Localizer.DoStr("Camo Shirt"),
                    new IngredientElement[]
                {
                    new IngredientElement(typeof(ClothItem), 20, typeof(TailoringSkill), typeof(TailoringLavishResourcesTalent)),
                    new IngredientElement(typeof(CelluloseFiberItem), 10, typeof(TailoringSkill), typeof(TailoringLavishResourcesTalent)),
                    new IngredientElement(typeof(LeatherHideItem), 20, typeof(TailoringSkill), typeof(TailoringLavishResourcesTalent)),
                },
                    new CraftingElement <CamoShirtItem>()
                    )
            };

            this.LaborInCalories = CreateLaborInCaloriesValue(60, typeof(TailoringSkill));
            this.CraftMinutes    = CreateCraftTimeValue(typeof(CamoShirtRecipe), 1, typeof(TailoringSkill), typeof(TailoringFocusedSpeedTalent), typeof(TailoringParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Camo Shirt"), typeof(CamoShirtRecipe));
            CraftingComponent.AddRecipe(typeof(TailoringTableObject), this);
        }
Ejemplo n.º 4
0
        public WoodenStrawBedRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <WoodenStrawBedItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <LogItem>(typeof(WoodworkingEfficiencySkill), 10, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BoardItem>(typeof(WoodworkingEfficiencySkill), 20, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <PlantFibersItem>(typeof(WoodworkingEfficiencySkill), 20, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <NailsItem>(typeof(LumberWoodworkingEfficiencySkill), 16, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(5, WoodworkingSpeedSkill.MultiplicativeStrategy, typeof(WoodworkingSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(WoodenStrawBedRecipe), Item.Get <WoodenStrawBedItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <WoodenStrawBedItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Wooden Straw Bed", typeof(WoodenStrawBedRecipe));
            CraftingComponent.AddRecipe(typeof(CarpentryTableObject), this);
        }
Ejemplo n.º 5
0
        public FlotationCellRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <FlotationCellItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <ConcreteItem>(typeof(MetallurgyEfficiencySkill), 10, MetallurgyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ElectricMotorItem>(typeof(MetallurgyEfficiencySkill), 3, MetallurgyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ServoItem>(typeof(MetallurgyEfficiencySkill), 10, MetallurgyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <SteelItem>(typeof(MetallurgyEfficiencySkill), 20, MetallurgyEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(180, MetallurgySpeedSkill.MultiplicativeStrategy, typeof(MetallurgySpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(FlotationCellRecipe), Item.Get <FlotationCellItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <FlotationCellItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("FlotationCell", typeof(FlotationCellRecipe));
            CraftingComponent.AddRecipe(typeof(MachinistTableObject), this);
        }
Ejemplo n.º 6
0
        public ElectricPlanerRecipe()
        {
            var product = new Recipe(
                "ElectricPlaner",
                Localizer.DoStr("Electric Planer"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(SteelPlateItem), 12, typeof(IndustrySkill), typeof(IndustryLavishResourcesTalent)),
                new IngredientElement(typeof(RivetItem), 12, typeof(IndustrySkill), typeof(IndustryLavishResourcesTalent)),
            },
                new CraftingElement <ElectricPlanerItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 20;
            this.LaborInCalories   = CreateLaborInCaloriesValue(400, typeof(IndustrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(ElectricPlanerRecipe), 8, typeof(IndustrySkill), typeof(IndustryFocusedSpeedTalent), typeof(IndustryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Electric Planer"), typeof(ElectricPlanerRecipe));
            CraftingComponent.AddRecipe(typeof(ElectricMachinistTableObject), this);
        }
        public WoodenFloorLampRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <WoodenFloorLampItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <LightBulbItem>(1),
                new CraftingElement <LumberItem>(typeof(LumberWoodworkingEfficiencySkill), 10, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BoardItem>(typeof(LumberWoodworkingEfficiencySkill), 20, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ClothItem>(typeof(LumberWoodworkingEfficiencySkill), 10, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(10, SteelworkingSpeedSkill.MultiplicativeStrategy, typeof(SteelworkingSpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(WoodenFloorLampRecipe), Item.Get <WoodenFloorLampItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <WoodenFloorLampItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize(Localizer.DoStr("Wooden Floor Lamp"), typeof(WoodenFloorLampRecipe));
            CraftingComponent.AddRecipe(typeof(SawmillObject), this);
        }
Ejemplo n.º 8
0
        public LumberTableRecipe()
        {
            var product = new Recipe(
                "LumberTable",
                Localizer.DoStr("Lumber Table"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(NailItem), 8, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
                new IngredientElement("Lumber", 18, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
            },
                new CraftingElement <LumberTableItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 3;
            this.LaborInCalories   = CreateLaborInCaloriesValue(100, typeof(CarpentrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(LumberTableRecipe), 4, typeof(CarpentrySkill), typeof(CarpentryFocusedSpeedTalent), typeof(CarpentryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Lumber Table"), typeof(LumberTableRecipe));
            CraftingComponent.AddRecipe(typeof(SawmillObject), this);
        }
Ejemplo n.º 9
0
        public ResearchTableRecipe()
        {
            var product = new Recipe(
                "ResearchTable",
                Localizer.DoStr("Research Table"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(PlantFibersItem), 30),
                new IngredientElement("Wood", 30),
                new IngredientElement("Rock", 40),
            },
                new CraftingElement <ResearchTableItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.LaborInCalories = CreateLaborInCaloriesValue(250);
            this.CraftMinutes    = CreateCraftTimeValue(5);
            this.Initialize(Localizer.DoStr("Research Table"), typeof(ResearchTableRecipe));
            CraftingComponent.AddRecipe(typeof(WorkbenchObject), this);
        }
Ejemplo n.º 10
0
        public AdvancedSmeltingSkillBookRecipe()
        {
            this.Recipes = new List <Recipe>
            {
                new Recipe(
                    "AdvancedSmelting",
                    Localizer.DoStr("Advanced Smelting"),
                    new IngredientElement[]
                {
                    new IngredientElement(typeof(MetallurgyResearchPaperBasicItem), 20),
                    new IngredientElement(typeof(MetallurgyResearchPaperAdvancedItem), 20),
                    new IngredientElement("Basic Research", 10),
                },
                    new CraftingElement <AdvancedSmeltingSkillBook>()
                    )
            };
            this.LaborInCalories = CreateLaborInCaloriesValue(10000);
            this.CraftMinutes    = CreateCraftTimeValue(30);

            this.Initialize(Localizer.DoStr("Advanced Smelting Skill Book"), typeof(AdvancedSmeltingSkillBookRecipe));
            CraftingComponent.AddRecipe(typeof(ResearchTableObject), this);
        }
Ejemplo n.º 11
0
        public SteamTractorRecipe()
        {
            Products = new CraftingElement[]
            {
                new CraftingElement <SteamTractorItem>(),
            };
            Ingredients = new CraftingElement[]
            {
                new CraftingElement <PortableSteamEngineItem>(),
                new CraftingElement <IronWheelItem>(4),
                new CraftingElement <IronAxleItem>(),
                new CraftingElement <IronPlateItem>(typeof(MechanicsSkill), 30, MechanicsSkill.MultiplicativeStrategy),
                new CraftingElement <IronPipeItem>(typeof(MechanicsSkill), 20, MechanicsSkill.MultiplicativeStrategy),
                new CraftingElement <ScrewsItem>(typeof(MechanicsSkill), 40, MechanicsSkill.MultiplicativeStrategy),
                new CraftingElement <LumberItem>(typeof(MechanicsSkill), 30, MechanicsSkill.MultiplicativeStrategy),
                new CraftingElement <LeatherHideItem>(typeof(MechanicsSkill), 20, MechanicsSkill.MultiplicativeStrategy),
            };
            CraftMinutes = new ConstantValue(25);

            Initialize(Localizer.DoStr("Steam Tractor"), typeof(SteamTractorRecipe));
            CraftingComponent.AddRecipe(typeof(AssemblyLineObject), this);
        }
Ejemplo n.º 12
0
        public DistributionStationRecipe()
        {
            var product = new Recipe(
                "DistributionStation",
                Localizer.DoStr("Distribution Station"),
                new IngredientElement[]
            {
                new IngredientElement("HewnLog", 10, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
                new IngredientElement("WoodBoard", 10, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
            },
                new CraftingElement <DistributionStationItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 5;
            this.LaborInCalories   = CreateLaborInCaloriesValue(100, typeof(CarpentrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(DistributionStationRecipe), 2, typeof(CarpentrySkill), typeof(CarpentryFocusedSpeedTalent), typeof(CarpentryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Distribution Station"), typeof(DistributionStationRecipe));
            CraftingComponent.AddRecipe(typeof(CarpentryTableObject), this);
        }
Ejemplo n.º 13
0
        public WashingMachineRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <WashingMachineItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <SteelItem>(typeof(IndustrialEngineeringEfficiencySkill), 20, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <CircuitItem>(typeof(IndustrialEngineeringEfficiencySkill), 5, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <HingeItem>(typeof(IndustrialEngineeringEfficiencySkill), 4, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <GlassItem>(typeof(IndustrialEngineeringEfficiencySkill), 4, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(10, IndustrialEngineeringSpeedSkill.MultiplicativeStrategy, typeof(IndustrialEngineeringSpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(WashingMachineRecipe), Item.Get <WashingMachineItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <WashingMachineItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Washing Machine", typeof(WashingMachineRecipe));
            CraftingComponent.AddRecipe(typeof(RoboticAssemblyLineObject), this);
        }
Ejemplo n.º 14
0
        public ElegantSinkRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <ElegantSinkItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <CeramicItem>(typeof(ClayProductionEfficiencySkill), 10, ClayProductionEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BoardItem>(typeof(ClayProductionEfficiencySkill), 20, ClayProductionEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <CopperPipeItem>(typeof(ClayProductionEfficiencySkill), 1, ClayProductionEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <CeramicPolishItem>(typeof(ClayProductionEfficiencySkill), 5, ClayProductionEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(20, ClayProductionSpeedSkill.MultiplicativeStrategy, typeof(ClayProductionSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(ElegantSinkRecipe), Item.Get <ElegantSinkItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <ElegantSinkItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Elegant Sink", typeof(ElegantSinkRecipe));
            CraftingComponent.AddRecipe(typeof(KilnObject), this);
        }
Ejemplo n.º 15
0
        public FactoryRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <FactoryItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <ConcreteItem>(typeof(IndustrialEngineeringEfficiencySkill), 25, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ElectricMotorItem>(typeof(IndustrialEngineeringEfficiencySkill), 6, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ServoItem>(typeof(IndustrialEngineeringEfficiencySkill), 10, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <SteelItem>(typeof(IndustrialEngineeringEfficiencySkill), 30, IndustrialEngineeringEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(180, IndustrialEngineeringSpeedSkill.MultiplicativeStrategy, typeof(IndustrialEngineeringSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(FactoryRecipe), Item.Get <FactoryItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <FactoryItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Factory", typeof(FactoryRecipe));
            CraftingComponent.AddRecipe(typeof(ElectronicsAssemblyObject), this);
        }
Ejemplo n.º 16
0
        public BrickFireplaceRecipe()
        {
            var product = new Recipe(
                "BrickFireplace",
                Localizer.DoStr("Brick Fireplace"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(BrickItem), 50, typeof(PotterySkill), typeof(PotteryLavishResourcesTalent)),
                new IngredientElement(typeof(IronBarItem), 20, typeof(PotterySkill), typeof(PotteryLavishResourcesTalent)),
            },
                new CraftingElement <BrickFireplaceItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 3;
            this.LaborInCalories   = CreateLaborInCaloriesValue(500, typeof(PotterySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(BrickFireplaceRecipe), 10, typeof(PotterySkill), typeof(PotteryFocusedSpeedTalent), typeof(PotteryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Brick Fireplace"), typeof(BrickFireplaceRecipe));
            CraftingComponent.AddRecipe(typeof(MasonryTableObject), this);
        }
Ejemplo n.º 17
0
        public RootCampfireStewRecipe()
        {
            var product = new Recipe(
                "RootCampfireStew",
                Localizer.DoStr("Root Campfire Stew"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(BeetItem), 1, typeof(CampfireCookingSkill), typeof(CampfireCookingLavishResourcesTalent)),
                new IngredientElement(typeof(CamasBulbItem), 1, typeof(CampfireCookingSkill), typeof(CampfireCookingLavishResourcesTalent)),
                new IngredientElement("Fat", 1, typeof(CampfireCookingSkill), typeof(CampfireCookingLavishResourcesTalent)),
            },
                new CraftingElement <RootCampfireStewItem>(1)
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.LaborInCalories = CreateLaborInCaloriesValue(20, typeof(CampfireCookingSkill));
            this.CraftMinutes    = CreateCraftTimeValue(typeof(RootCampfireStewRecipe), 1, typeof(CampfireCookingSkill), typeof(CampfireCookingFocusedSpeedTalent), typeof(CampfireCookingParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Root Campfire Stew"), typeof(RootCampfireStewRecipe));
            CraftingComponent.AddRecipe(typeof(CampfireObject), this);
        }
Ejemplo n.º 18
0
        public ShelfCabinetRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <ShelfCabinetItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <LumberItem>(typeof(LumberWoodworkingEfficiencySkill), 20, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BookItem>(typeof(LumberWoodworkingEfficiencySkill), 2, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <HingeItem>(typeof(LumberWoodworkingEfficiencySkill), 4, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <NailsItem>(typeof(LumberWoodworkingEfficiencySkill), 5, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(5, LumberWoodworkingSpeedSkill.MultiplicativeStrategy, typeof(LumberWoodworkingSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(ShelfCabinetRecipe), Item.Get <ShelfCabinetItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <ShelfCabinetItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Shelf Cabinet", typeof(ShelfCabinetRecipe));
            CraftingComponent.AddRecipe(typeof(SawmillObject), this);
        }
Ejemplo n.º 19
0
        public MillRecipe()
        {
            var product = new Recipe(
                "Mill",
                Localizer.DoStr("Mill"),
                new IngredientElement[]
            {
                new IngredientElement("Rock", 40, typeof(MasonrySkill), typeof(MasonryLavishResourcesTalent)),
                new IngredientElement("Wood", 20, typeof(MasonrySkill), typeof(MasonryLavishResourcesTalent)),
            },
                new CraftingElement <MillItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 5;
            this.LaborInCalories   = CreateLaborInCaloriesValue(600, typeof(MasonrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(MillRecipe), 8, typeof(MasonrySkill), typeof(MasonryFocusedSpeedTalent), typeof(MasonryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Mill"), typeof(MillRecipe));
            CraftingComponent.AddRecipe(typeof(MasonryTableObject), this);
        }
        public AdornedAshlarStoneBenchRecipe()
        {
            var product = new Recipe(
                "AdornedAshlarStoneBench",
                Localizer.DoStr("Adorned Ashlar Stone Bench"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(GoldBarItem), 6, typeof(AdvancedMasonrySkill), typeof(AdvancedMasonryLavishResourcesTalent)),
                new IngredientElement("AshlarStone", 20, typeof(AdvancedMasonrySkill), typeof(AdvancedMasonryLavishResourcesTalent)),
            },
                new CraftingElement <AdornedAshlarStoneBenchItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 3;
            this.LaborInCalories   = CreateLaborInCaloriesValue(400, typeof(AdvancedMasonrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(AdornedAshlarStoneBenchRecipe), 8, typeof(AdvancedMasonrySkill), typeof(AdvancedMasonryFocusedSpeedTalent), typeof(AdvancedMasonryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Adorned Ashlar Stone Bench"), typeof(AdornedAshlarStoneBenchRecipe));
            CraftingComponent.AddRecipe(typeof(AdvancedMasonryTableObject), this);
        }
Ejemplo n.º 21
0
        public BeehiveRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <BeehiveItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <BoardItem>(typeof(BeekeeperEfficiencySkill), 50, BeekeeperEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <GlassItem>(typeof(BeekeeperEfficiencySkill), 10, BeekeeperEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <IronIngotItem>(typeof(BeekeeperEfficiencySkill), 4, BeekeeperEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <GlueItem>(typeof(BeekeeperEfficiencySkill), 8, BeekeeperEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(1, BeekeeperSpeedSkill.MultiplicativeStrategy, typeof(BeekeeperSpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(BeehiveRecipe), Item.Get <BeehiveItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <BeehiveItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Beehive", typeof(BeehiveRecipe));
            CraftingComponent.AddRecipe(typeof(FarmersTableObject), this);
        }
        public CurrencyExchangeRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <CurrencyExchangeItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <IronIngotItem>(typeof(MetalworkingEfficiencySkill), 20, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <GoldIngotItem>(typeof(MetalworkingEfficiencySkill), 10, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BrickItem>(typeof(MetalworkingEfficiencySkill), 20, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <LumberItem>(typeof(MetalworkingEfficiencySkill), 20, MetalworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(30, MetalworkingSpeedSkill.MultiplicativeStrategy, typeof(MetalworkingSpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(CurrencyExchangeRecipe), Item.Get <CurrencyExchangeItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <CurrencyExchangeItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Currency Exchange", typeof(CurrencyExchangeRecipe));
            CraftingComponent.AddRecipe(typeof(AnvilObject), this);
        }
        public GreenSteamTruckRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <GreenSteamTruckItem>(),
            };
            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <PortableSteamEngineItem>(1),
                new CraftingElement <IronWheelItem>(4),
                new CraftingElement <IronAxleItem>(1),
                new CraftingElement <IronPlateItem>(typeof(MechanicsSkill), 30, MechanicsSkill.MultiplicativeStrategy, typeof(MechanicsLavishResourcesTalent)),
                new CraftingElement <IronPipeItem>(typeof(MechanicsSkill), 20, MechanicsSkill.MultiplicativeStrategy, typeof(MechanicsLavishResourcesTalent)),
                new CraftingElement <ScrewsItem>(typeof(MechanicsSkill), 40, MechanicsSkill.MultiplicativeStrategy, typeof(MechanicsLavishResourcesTalent)),
                new CraftingElement <LumberItem>(typeof(MechanicsSkill), 30, MechanicsSkill.MultiplicativeStrategy, typeof(MechanicsLavishResourcesTalent)),
                new CraftingElement <LeatherHideItem>(typeof(MechanicsSkill), 20, MechanicsSkill.MultiplicativeStrategy, typeof(MechanicsLavishResourcesTalent))
            };
            this.CraftMinutes = CreateCraftTimeValue(typeof(GreenSteamTruckRecipe), Item.Get <GreenSteamTruckItem>().UILink(), 25, typeof(MechanicsSkill), typeof(MechanicsFocusedSpeedTalent), typeof(MechanicsParallelSpeedTalent));

            this.Initialize(Localizer.DoStr("Green Steam Truck"), typeof(GreenSteamTruckRecipe));
            CraftingComponent.AddRecipe(typeof(AssemblyLineObject), this);
        }
Ejemplo n.º 24
0
        public ElegantKitchenChairRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <ElegantKitchenChairItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <LogItem>(typeof(WoodworkingEfficiencySkill), 10, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BoardItem>(typeof(WoodworkingEfficiencySkill), 20, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ClothItem>(typeof(WoodworkingEfficiencySkill), 10, WoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <RivetItem>(typeof(WoodworkingEfficiencySkill), 5, WoodworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(5, WoodworkingSpeedSkill.MultiplicativeStrategy, typeof(WoodworkingSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(ElegantKitchenChairRecipe), Item.Get <ElegantKitchenChairItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <ElegantKitchenChairItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Elegant Kitchen Chair", typeof(ElegantKitchenChairRecipe));
            CraftingComponent.AddRecipe(typeof(CarpentryTableObject), this);
        }
Ejemplo n.º 25
0
        public BlastFurnaceRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <BlastFurnaceItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <BrickItem>(typeof(MetalworkingEfficiencySkill), 10, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <IronPlateItem>(typeof(MetalworkingEfficiencySkill), 20, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ScrewsItem>(typeof(MetalworkingEfficiencySkill), 20, MetalworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <IronPipeItem>(typeof(MetalworkingEfficiencySkill), 10, MetalworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(60, MetalworkingSpeedSkill.MultiplicativeStrategy, typeof(MetalworkingSpeedSkill), Localizer.DoStr("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(BlastFurnaceRecipe), Item.Get <BlastFurnaceItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <BlastFurnaceItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize(Localizer.DoStr("Blast Furnace"), typeof(BlastFurnaceRecipe));
            CraftingComponent.AddRecipe(typeof(AssemblyLineObject), this);
        }
Ejemplo n.º 26
0
        public SteamTruckRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <SteamTruckItem>(),
            };
            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <PortableSteamEngineItem>(1),
                new CraftingElement <IronWheelItem>(4),
                new CraftingElement <IronAxleItem>(1),
                new CraftingElement <IronPlateItem>(typeof(MechanicsAssemblyEfficiencySkill), 30, MechanicsAssemblyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <IronPipeItem>(typeof(MechanicsAssemblyEfficiencySkill), 20, MechanicsAssemblyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <ScrewsItem>(typeof(MechanicsAssemblyEfficiencySkill), 40, MechanicsAssemblyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <LumberItem>(typeof(MechanicsAssemblyEfficiencySkill), 30, MechanicsAssemblyEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <LeatherHideItem>(typeof(MechanicsAssemblyEfficiencySkill), 20, MechanicsAssemblyEfficiencySkill.MultiplicativeStrategy)
            };
            this.CraftMinutes = new ConstantValue(25);

            this.Initialize("Steam Truck", typeof(SteamTruckRecipe));
            CraftingComponent.AddRecipe(typeof(AssemblyLineObject), this);
        }
Ejemplo n.º 27
0
        public BrazierRecipe()
        {
            var product = new Recipe(
                "Brazier",
                Localizer.DoStr("Brazier"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(IronBarItem), 4, typeof(SmeltingSkill), typeof(SmeltingLavishResourcesTalent)),
                new IngredientElement(typeof(TallowItem), 2, typeof(SmeltingSkill), typeof(SmeltingLavishResourcesTalent)),
            },
                new CraftingElement <BrazierItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 3;
            this.LaborInCalories   = CreateLaborInCaloriesValue(200, typeof(SmeltingSkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(BrazierRecipe), 4, typeof(SmeltingSkill), typeof(SmeltingFocusedSpeedTalent), typeof(SmeltingParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Brazier"), typeof(BrazierRecipe));
            CraftingComponent.AddRecipe(typeof(AnvilObject), this);
        }
        public SmallStandingLumberSignRecipe()
        {
            var product = new Recipe(
                "SmallStandingLumberSign",
                Localizer.DoStr("Small Standing Lumber Sign"),
                new IngredientElement[]
            {
                new IngredientElement("WoodBoard", 6, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
                new IngredientElement("Lumber", 4, typeof(CarpentrySkill), typeof(CarpentryLavishResourcesTalent)),
            },
                new CraftingElement <SmallStandingLumberSignItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 2;
            this.LaborInCalories   = CreateLaborInCaloriesValue(100, typeof(CarpentrySkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(SmallStandingLumberSignRecipe), 5, typeof(CarpentrySkill), typeof(CarpentryFocusedSpeedTalent), typeof(CarpentryParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Small Standing Lumber Sign"), typeof(SmallStandingLumberSignRecipe));
            CraftingComponent.AddRecipe(typeof(SawmillObject), this);
        }
Ejemplo n.º 29
0
        public StorageChestRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <StorageChestItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <BoardItem>(typeof(BasicCraftingEfficiencySkill), 5, BasicCraftingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <HingeItem>(typeof(BasicCraftingEfficiencySkill), 2, BasicCraftingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <NailsItem>(typeof(BasicCraftingEfficiencySkill), 10, BasicCraftingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <IronIngotItem>(typeof(BasicCraftingEfficiencySkill), 3, BasicCraftingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(2, BasicCraftingSpeedSkill.MultiplicativeStrategy, typeof(BasicCraftingSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(StorageChestRecipe), Item.Get <StorageChestItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <StorageChestItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Storage Chest", typeof(StorageChestRecipe));
            CraftingComponent.AddRecipe(typeof(WorkbenchObject), this);
        }
Ejemplo n.º 30
0
        public CompositeLumberBenchRecipe()
        {
            var product = new Recipe(
                "CompositeLumberBench",
                Localizer.DoStr("Composite Lumber Bench"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(ScrewsItem), 6, typeof(CompositesSkill), typeof(CompositesLavishResourcesTalent)),
                new IngredientElement("CompositeLumber", 6, typeof(CompositesSkill), typeof(CompositesLavishResourcesTalent)),
            },
                new CraftingElement <CompositeLumberBenchItem>()
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.ExperienceOnCraft = 3;
            this.LaborInCalories   = CreateLaborInCaloriesValue(300, typeof(CompositesSkill));
            this.CraftMinutes      = CreateCraftTimeValue(typeof(CompositeLumberBenchRecipe), 4, typeof(CompositesSkill), typeof(CompositesFocusedSpeedTalent), typeof(CompositesParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Composite Lumber Bench"), typeof(CompositeLumberBenchRecipe));
            CraftingComponent.AddRecipe(typeof(AdvancedCarpentryTableObject), this);
        }
Ejemplo n.º 31
0
        public PineappleFriendRiceRecipe()
        {
            var product = new Recipe(
                "PineappleFriendRice",
                Localizer.DoStr("Pineapple Friend Rice"),
                new IngredientElement[]
            {
                new IngredientElement(typeof(CharredPineappleItem), 5, typeof(AdvancedCookingSkill), typeof(AdvancedCookingLavishResourcesTalent)),
                new IngredientElement(typeof(BoiledRiceItem), 5, typeof(AdvancedCookingSkill), typeof(AdvancedCookingLavishResourcesTalent)),
                new IngredientElement(typeof(ScrapMeatItem), 10, typeof(AdvancedCookingSkill), typeof(AdvancedCookingLavishResourcesTalent)),
            },
                new CraftingElement <PineappleFriendRiceItem>(1)
                );

            this.Recipes = new List <Recipe> {
                product
            };
            this.LaborInCalories = CreateLaborInCaloriesValue(20, typeof(AdvancedCookingSkill));
            this.CraftMinutes    = CreateCraftTimeValue(typeof(PineappleFriendRiceRecipe), 4, typeof(AdvancedCookingSkill), typeof(AdvancedCookingFocusedSpeedTalent), typeof(AdvancedCookingParallelSpeedTalent));
            this.Initialize(Localizer.DoStr("Pineapple Friend Rice"), typeof(PineappleFriendRiceRecipe));
            CraftingComponent.AddRecipe(typeof(KitchenObject), this);
        }
Ejemplo n.º 32
0
        public RusticLivingRoomStandRecipe()
        {
            this.Products = new CraftingElement[]
            {
                new CraftingElement <RusticLivingRoomStandItem>(),
            };

            this.Ingredients = new CraftingElement[]
            {
                new CraftingElement <LumberItem>(typeof(LumberWoodworkingEfficiencySkill), 40, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <BoardItem>(typeof(LumberWoodworkingEfficiencySkill), 40, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <RivetItem>(typeof(LumberWoodworkingEfficiencySkill), 5, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
                new CraftingElement <WoodPolishItem>(typeof(LumberWoodworkingEfficiencySkill), 5, LumberWoodworkingEfficiencySkill.MultiplicativeStrategy),
            };
            SkillModifiedValue value = new SkillModifiedValue(20, LumberWoodworkingSpeedSkill.MultiplicativeStrategy, typeof(LumberWoodworkingSpeedSkill), Localizer.Do("craft time"));

            SkillModifiedValueManager.AddBenefitForObject(typeof(RusticLivingRoomStandRecipe), Item.Get <RusticLivingRoomStandItem>().UILink(), value);
            SkillModifiedValueManager.AddSkillBenefit(Item.Get <RusticLivingRoomStandItem>().UILink(), value);
            this.CraftMinutes = value;
            this.Initialize("Rustic Living Room Stand", typeof(RusticLivingRoomStandRecipe));
            CraftingComponent.AddRecipe(typeof(SawmillObject), this);
        }
Ejemplo n.º 33
0
    public void HandleBlueprintMessage(Dictionary<string, object> props)
    {
        int numBlueprints = (int)props["numBlueprints"];

        for (int i = 0; i < numBlueprints; i++) {
            Blueprint bp = new Blueprint();
            bp.recipeID = (int)props["recipeID" + i];
            bp.resultID = (int)props["itemID" + i];
            bp.recipeItemID = (int)props["recipeItemID" + i];
            bp.station = (string)props["station" + i];
            int numRows = (int)props["numRows" + i];
            List<List<CraftingComponent>> slots = new List<List<CraftingComponent>>();
            for (int j = 0; j < numRows; j++) {
                List<CraftingComponent> columnSlots = new List<CraftingComponent>();
                int numColumns = (int)props["numColumns" + i + "_" + j];
                for (int k = 0; k < numColumns; k++) {
                    int itemID = (int)props["item" + i + "_" + j + "_" + k];
                    if (itemID == -1)
                        continue;
                    AtavismInventoryItem item = ClientAPI.ScriptObject.GetComponent<Inventory>().GetItemByTemplateID(itemID);
                    CraftingComponent component = new CraftingComponent();
                    component.item = item;
                    columnSlots.Add(component);
                }
                slots.Add(columnSlots);
            }
            bp.slots = slots;
            blueprints.Add(bp);
        }
    }
Ejemplo n.º 34
0
Archivo: Item.cs Proyecto: mxgmn/GENW
 private int this[CraftingComponent cc]
 {
     get
     {
         var query = from tuple in components where tuple.Item1 == cc select tuple.Item2;
         return query.Count() > 0 ? query.Single() : 0;
     }
 }