
// 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;

    /// <summary>
    /// <para>Server side talent definition for "FrugalWorkspace".</para>
    /// <para>More information about Talent objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.Talent.html</para>
    /// <remarks>
    /// This is an auto-generated class. Don't modify it! All your changes will be wiped with next update! Use Mods* partial methods instead for customization. 
    /// If you wish to modify this class, please create a new partial class or follow the instructions in the "UserCode" folder to override the entire file.
    /// </remarks>
    /// </summary>
    public partial class FrugalWorkspaceTalent : Talent
    {
        public override bool Base => true;
        public override Type TalentType { get { return typeof(CraftingTalent); } }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Composites")]
    public partial class CompositesFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class CompositesFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CompositesFrugalWorkspaceTalentGroup); } }
        public CompositesFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: AdvancedBaking")]
    public partial class AdvancedBakingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class AdvancedBakingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedBakingFrugalWorkspaceTalentGroup); } }
        public AdvancedBakingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: CampfireCooking")]
    public partial class CampfireCookingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class CampfireCookingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CampfireCookingFrugalWorkspaceTalentGroup); } }
        public CampfireCookingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: AdvancedCooking")]
    public partial class AdvancedCookingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class AdvancedCookingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedCookingFrugalWorkspaceTalentGroup); } }
        public AdvancedCookingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: AdvancedSmelting")]
    public partial class AdvancedSmeltingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class AdvancedSmeltingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedSmeltingFrugalWorkspaceTalentGroup); } }
        public AdvancedSmeltingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Baking")]
    public partial class BakingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class BakingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BakingFrugalWorkspaceTalentGroup); } }
        public BakingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: BasicEngineering")]
    public partial class BasicEngineeringFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class BasicEngineeringFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(BasicEngineeringFrugalWorkspaceTalentGroup); } }
        public BasicEngineeringFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Pottery")]
    public partial class PotteryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class PotteryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PotteryFrugalWorkspaceTalentGroup); } }
        public PotteryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Butchery")]
    public partial class ButcheryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class ButcheryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ButcheryFrugalWorkspaceTalentGroup); } }
        public ButcheryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: AdvancedMasonry")]
    public partial class AdvancedMasonryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class AdvancedMasonryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(AdvancedMasonryFrugalWorkspaceTalentGroup); } }
        public AdvancedMasonryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Cooking")]
    public partial class CookingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class CookingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CookingFrugalWorkspaceTalentGroup); } }
        public CookingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: CuttingEdgeCooking")]
    public partial class CuttingEdgeCookingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class CuttingEdgeCookingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CuttingEdgeCookingFrugalWorkspaceTalentGroup); } }
        public CuttingEdgeCookingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Electronics")]
    public partial class ElectronicsFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class ElectronicsFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(ElectronicsFrugalWorkspaceTalentGroup); } }
        public ElectronicsFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Fertilizers")]
    public partial class FertilizersFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class FertilizersFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FertilizersFrugalWorkspaceTalentGroup); } }
        public FertilizersFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Glassworking")]
    public partial class GlassworkingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class GlassworkingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(GlassworkingFrugalWorkspaceTalentGroup); } }
        public GlassworkingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Industry")]
    public partial class IndustryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class IndustryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(IndustryFrugalWorkspaceTalentGroup); } }
        public IndustryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Mechanics")]
    public partial class MechanicsFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class MechanicsFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MechanicsFrugalWorkspaceTalentGroup); } }
        public MechanicsFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Milling")]
    public partial class MillingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class MillingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MillingFrugalWorkspaceTalentGroup); } }
        public MillingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Masonry")]
    public partial class MasonryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class MasonryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(MasonryFrugalWorkspaceTalentGroup); } }
        public MasonryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: OilDrilling")]
    public partial class OilDrillingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class OilDrillingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(OilDrillingFrugalWorkspaceTalentGroup); } }
        public OilDrillingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: PaperMilling")]
    public partial class PaperMillingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class PaperMillingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(PaperMillingFrugalWorkspaceTalentGroup); } }
        public PaperMillingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Smelting")]
    public partial class SmeltingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class SmeltingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(SmeltingFrugalWorkspaceTalentGroup); } }
        public SmeltingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Tailoring")]
    public partial class TailoringFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class TailoringFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(TailoringFrugalWorkspaceTalentGroup); } }
        public TailoringFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Farming")]
    public partial class FarmingFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class FarmingFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(FarmingFrugalWorkspaceTalentGroup); } }
        public FarmingFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }

    /// <summary>
    /// <para>Server side talent group definition for "FrugalWorkspace".</para>
    /// <para>More information about TalentGroup objects can be found at https://docs.play.eco/api/server/eco.gameplay/Eco.Gameplay.Skills.TalentGroup.html</para>
    /// </summary>
    [Serialized]
    [LocDisplayName("Frugal Workspace: Carpentry")]
    public partial class CarpentryFrugalWorkspaceTalentGroup : TalentGroup
    {
        public override LocString DisplayDescription { get; } = Localizer.DoStr("Lowers the tier requirement of related tables by 0.2.(Only applies to claimed workstations)");

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

    [Serialized]
    public partial class CarpentryFrugalReqTalent : FrugalWorkspaceTalent
    {
        public override bool Base { get { return false; } }
        public override Type TalentGroupType { get { return typeof(CarpentryFrugalWorkspaceTalentGroup); } }
        public CarpentryFrugalReqTalent()
        {
            this.Value = -0.2f;
        }
    }
}
