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; }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
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; } }