// Copyright (c) Strange Loop Games. All rights reserved.
// See LICENSE file in the project root for full license information.
// <auto-generated />

namespace Eco.Mods.TechTree
{
        using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using Eco.Gameplay.Components;
    using Eco.Gameplay.Items;
    using Eco.Gameplay.Players;
    using Eco.Gameplay.Skills;
    using Eco.Mods.TechTree;
    using Eco.Shared.Items;
    using Eco.Shared.Localization;
    using Eco.Shared.Serialization;
    using Eco.Shared.Utils;
    using Eco.Shared.View;
    public partial class LavishWorkspaceTalent : Talent
    {
        public override bool Base { get { return true; } }
        public override Type TalentType { get { return typeof(CraftingTalent); } } 
    }

    [Serialized]
    [LocDisplayName("Lavish Workspace: Composites")]
    public partial class CompositesLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public CompositesLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(CompositesLavishResourcesTalent), 
            
            typeof(CompositesLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(CompositesSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class CompositesLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CompositesLavishWorkspaceTalentGroup); } }
        public CompositesLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class CompositesLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CompositesLavishWorkspaceTalentGroup); } }
        public CompositesLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: AdvancedBaking")]
    public partial class AdvancedBakingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public AdvancedBakingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(AdvancedBakingLavishResourcesTalent), 
            
            typeof(AdvancedBakingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(AdvancedBakingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class AdvancedBakingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedBakingLavishWorkspaceTalentGroup); } }
        public AdvancedBakingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class AdvancedBakingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedBakingLavishWorkspaceTalentGroup); } }
        public AdvancedBakingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: CampfireCooking")]
    public partial class CampfireCookingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public CampfireCookingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(CampfireCookingLavishResourcesTalent), 
            
            typeof(CampfireCookingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(CampfireCookingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class CampfireCookingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CampfireCookingLavishWorkspaceTalentGroup); } }
        public CampfireCookingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class CampfireCookingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CampfireCookingLavishWorkspaceTalentGroup); } }
        public CampfireCookingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: AdvancedCooking")]
    public partial class AdvancedCookingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public AdvancedCookingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(AdvancedCookingLavishResourcesTalent), 
            
            typeof(AdvancedCookingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(AdvancedCookingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class AdvancedCookingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedCookingLavishWorkspaceTalentGroup); } }
        public AdvancedCookingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class AdvancedCookingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedCookingLavishWorkspaceTalentGroup); } }
        public AdvancedCookingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: AdvancedSmelting")]
    public partial class AdvancedSmeltingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public AdvancedSmeltingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(AdvancedSmeltingLavishResourcesTalent), 
            
            typeof(AdvancedSmeltingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(AdvancedSmeltingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class AdvancedSmeltingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedSmeltingLavishWorkspaceTalentGroup); } }
        public AdvancedSmeltingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class AdvancedSmeltingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedSmeltingLavishWorkspaceTalentGroup); } }
        public AdvancedSmeltingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Baking")]
    public partial class BakingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public BakingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(BakingLavishResourcesTalent), 
            
            typeof(BakingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(BakingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class BakingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BakingLavishWorkspaceTalentGroup); } }
        public BakingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class BakingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BakingLavishWorkspaceTalentGroup); } }
        public BakingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: BasicEngineering")]
    public partial class BasicEngineeringLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public BasicEngineeringLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(BasicEngineeringLavishResourcesTalent), 
            
            typeof(BasicEngineeringLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(BasicEngineeringSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class BasicEngineeringLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BasicEngineeringLavishWorkspaceTalentGroup); } }
        public BasicEngineeringLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class BasicEngineeringLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BasicEngineeringLavishWorkspaceTalentGroup); } }
        public BasicEngineeringLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Pottery")]
    public partial class PotteryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public PotteryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(PotteryLavishResourcesTalent), 
            
            typeof(PotteryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(PotterySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class PotteryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PotteryLavishWorkspaceTalentGroup); } }
        public PotteryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class PotteryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PotteryLavishWorkspaceTalentGroup); } }
        public PotteryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Butchery")]
    public partial class ButcheryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public ButcheryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(ButcheryLavishResourcesTalent), 
            
            typeof(ButcheryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(ButcherySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class ButcheryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ButcheryLavishWorkspaceTalentGroup); } }
        public ButcheryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class ButcheryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ButcheryLavishWorkspaceTalentGroup); } }
        public ButcheryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: AdvancedMasonry")]
    public partial class AdvancedMasonryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public AdvancedMasonryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(AdvancedMasonryLavishResourcesTalent), 
            
            typeof(AdvancedMasonryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(AdvancedMasonrySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class AdvancedMasonryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedMasonryLavishWorkspaceTalentGroup); } }
        public AdvancedMasonryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class AdvancedMasonryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedMasonryLavishWorkspaceTalentGroup); } }
        public AdvancedMasonryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Cooking")]
    public partial class CookingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public CookingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(CookingLavishResourcesTalent), 
            
            typeof(CookingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(CookingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class CookingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CookingLavishWorkspaceTalentGroup); } }
        public CookingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class CookingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CookingLavishWorkspaceTalentGroup); } }
        public CookingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: CuttingEdgeCooking")]
    public partial class CuttingEdgeCookingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public CuttingEdgeCookingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(CuttingEdgeCookingLavishResourcesTalent), 
            
            typeof(CuttingEdgeCookingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(CuttingEdgeCookingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class CuttingEdgeCookingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CuttingEdgeCookingLavishWorkspaceTalentGroup); } }
        public CuttingEdgeCookingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class CuttingEdgeCookingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CuttingEdgeCookingLavishWorkspaceTalentGroup); } }
        public CuttingEdgeCookingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Electronics")]
    public partial class ElectronicsLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public ElectronicsLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(ElectronicsLavishResourcesTalent), 
            
            typeof(ElectronicsLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(ElectronicsSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class ElectronicsLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ElectronicsLavishWorkspaceTalentGroup); } }
        public ElectronicsLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class ElectronicsLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ElectronicsLavishWorkspaceTalentGroup); } }
        public ElectronicsLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Fertilizers")]
    public partial class FertilizersLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public FertilizersLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(FertilizersLavishResourcesTalent), 
            
            typeof(FertilizersLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(FertilizersSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class FertilizersLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FertilizersLavishWorkspaceTalentGroup); } }
        public FertilizersLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class FertilizersLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FertilizersLavishWorkspaceTalentGroup); } }
        public FertilizersLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Glassworking")]
    public partial class GlassworkingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public GlassworkingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(GlassworkingLavishResourcesTalent), 
            
            typeof(GlassworkingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(GlassworkingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class GlassworkingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(GlassworkingLavishWorkspaceTalentGroup); } }
        public GlassworkingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class GlassworkingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(GlassworkingLavishWorkspaceTalentGroup); } }
        public GlassworkingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Industry")]
    public partial class IndustryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public IndustryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(IndustryLavishResourcesTalent), 
            
            typeof(IndustryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(IndustrySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class IndustryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(IndustryLavishWorkspaceTalentGroup); } }
        public IndustryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class IndustryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(IndustryLavishWorkspaceTalentGroup); } }
        public IndustryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Mechanics")]
    public partial class MechanicsLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public MechanicsLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(MechanicsLavishResourcesTalent), 
            
            typeof(MechanicsLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(MechanicsSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class MechanicsLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MechanicsLavishWorkspaceTalentGroup); } }
        public MechanicsLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class MechanicsLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MechanicsLavishWorkspaceTalentGroup); } }
        public MechanicsLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Milling")]
    public partial class MillingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public MillingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(MillingLavishResourcesTalent), 
            
            typeof(MillingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(MillingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class MillingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MillingLavishWorkspaceTalentGroup); } }
        public MillingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class MillingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MillingLavishWorkspaceTalentGroup); } }
        public MillingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Masonry")]
    public partial class MasonryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public MasonryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(MasonryLavishResourcesTalent), 
            
            typeof(MasonryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(MasonrySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class MasonryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MasonryLavishWorkspaceTalentGroup); } }
        public MasonryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class MasonryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MasonryLavishWorkspaceTalentGroup); } }
        public MasonryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: OilDrilling")]
    public partial class OilDrillingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public OilDrillingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(OilDrillingLavishResourcesTalent), 
            
            typeof(OilDrillingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(OilDrillingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class OilDrillingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(OilDrillingLavishWorkspaceTalentGroup); } }
        public OilDrillingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class OilDrillingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(OilDrillingLavishWorkspaceTalentGroup); } }
        public OilDrillingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: PaperMilling")]
    public partial class PaperMillingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public PaperMillingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(PaperMillingLavishResourcesTalent), 
            
            typeof(PaperMillingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(PaperMillingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class PaperMillingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PaperMillingLavishWorkspaceTalentGroup); } }
        public PaperMillingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class PaperMillingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PaperMillingLavishWorkspaceTalentGroup); } }
        public PaperMillingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Smelting")]
    public partial class SmeltingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public SmeltingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(SmeltingLavishResourcesTalent), 
            
            typeof(SmeltingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(SmeltingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class SmeltingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(SmeltingLavishWorkspaceTalentGroup); } }
        public SmeltingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class SmeltingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(SmeltingLavishWorkspaceTalentGroup); } }
        public SmeltingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Tailoring")]
    public partial class TailoringLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public TailoringLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(TailoringLavishResourcesTalent), 
            
            typeof(TailoringLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(TailoringSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class TailoringLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(TailoringLavishWorkspaceTalentGroup); } }
        public TailoringLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class TailoringLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(TailoringLavishWorkspaceTalentGroup); } }
        public TailoringLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Farming")]
    public partial class FarmingLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public FarmingLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(FarmingLavishResourcesTalent), 
            
            typeof(FarmingLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(FarmingSkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class FarmingLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FarmingLavishWorkspaceTalentGroup); } }
        public FarmingLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class FarmingLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FarmingLavishWorkspaceTalentGroup); } }
        public FarmingLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    

    [Serialized]
    [LocDisplayName("Lavish Workspace: Carpentry")]
    public partial class CarpentryLavishWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Increases the tier requirement of tables by 0.2, but reduces the resources needed by 5 percent.");

        public CarpentryLavishWorkspaceTalentGroup()
        {
            Talents = new Type[]
            {
            
            typeof(CarpentryLavishResourcesTalent), 
            
            typeof(CarpentryLavishReqTalent), 
            
            };
            this.OwningSkill = typeof(CarpentrySkill);
            this.Level = 6;
        }
    }

    
    [Serialized]
    public partial class CarpentryLavishResourcesTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CarpentryLavishWorkspaceTalentGroup); } }
        public CarpentryLavishResourcesTalent()
        {
            this.Value = 0.95f;
        }
    }
    
    [Serialized]
    public partial class CarpentryLavishReqTalent : LavishWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CarpentryLavishWorkspaceTalentGroup); } }
        public CarpentryLavishReqTalent()
        {
            this.Value = 0.2f;
        }
    }
    
    
}
