public static PLCaptainsChair CreateCaptainsChair(int Subtype, int level)
        {
            PLCaptainsChair InCaptainsChair;

            if (Subtype >= Instance.VanillaCaptainsChairMaxType)
            {
                InCaptainsChair = new PLCaptainsChair(ECaptainsChairType.E_MAX, level);
                int subtypeformodded = Subtype - Instance.VanillaCaptainsChairMaxType;
                if (subtypeformodded <= Instance.CaptainsChairTypes.Count && subtypeformodded > -1)
                {
                    CaptainsChairMod CaptainsChairType = Instance.CaptainsChairTypes[Subtype - Instance.VanillaCaptainsChairMaxType];
                    InCaptainsChair.SubType                       = Subtype;
                    InCaptainsChair.Name                          = CaptainsChairType.Name;
                    InCaptainsChair.Desc                          = CaptainsChairType.Description;
                    InCaptainsChair.m_IconTexture                 = CaptainsChairType.IconTexture;
                    InCaptainsChair.m_MarketPrice                 = CaptainsChairType.MarketPrice;
                    InCaptainsChair.CargoVisualPrefabID           = CaptainsChairType.CargoVisualID;
                    InCaptainsChair.CanBeDroppedOnShipDeath       = CaptainsChairType.CanBeDroppedOnShipDeath;
                    InCaptainsChair.Experimental                  = CaptainsChairType.Experimental;
                    InCaptainsChair.Unstable                      = CaptainsChairType.Unstable;
                    InCaptainsChair.Contraband                    = CaptainsChairType.Contraband;
                    InCaptainsChair.Price_LevelMultiplierExponent = CaptainsChairType.Price_LevelMultiplierExponent;
                }
            }
            else
            {
                InCaptainsChair = new PLCaptainsChair((ECaptainsChairType)Subtype, level);
            }
            return(InCaptainsChair);
        }
        static void Postfix(PLShipStats inStats, PLCaptainsChair __instance)
        {
            int subtypeformodded = __instance.SubType - CaptainsChairModManager.Instance.VanillaCaptainsChairMaxType;

            if (subtypeformodded > -1 && subtypeformodded < CaptainsChairModManager.Instance.CaptainsChairTypes.Count && inStats != null)
            {
                CaptainsChairModManager.Instance.CaptainsChairTypes[subtypeformodded].LateAddStats(__instance);
            }
        }
        public static PLCaptainsChair CreateCaptainsChair(int Subtype, int level)
        {
            PLCaptainsChair InCaptainsChair;

            if (Subtype >= Instance.VanillaCaptainsChairMaxType)
            {
                InCaptainsChair = new PLCaptainsChair(ECaptainsChairType.E_MAX, level);
                int subtypeformodded = Subtype - Instance.VanillaCaptainsChairMaxType;
                if (Global.DebugLogging)
                {
                    Logger.Info($"Subtype for modded is {subtypeformodded}");
                }
                if (subtypeformodded <= Instance.CaptainsChairTypes.Count && subtypeformodded > -1)
                {
                    if (Global.DebugLogging)
                    {
                        Logger.Info("Creating CaptainsChair from list info");
                    }
                    CaptainsChairPlugin CaptainsChairType = Instance.CaptainsChairTypes[Subtype - Instance.VanillaCaptainsChairMaxType];
                    InCaptainsChair.SubType = Subtype;
                    InCaptainsChair.Name    = CaptainsChairType.Name;
                    InCaptainsChair.Desc    = CaptainsChairType.Description;
                    InCaptainsChair.GetType().GetField("m_IconTexture", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InCaptainsChair, CaptainsChairType.IconTexture);
                    InCaptainsChair.GetType().GetField("m_MarketPrice", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InCaptainsChair, (ObscuredInt)CaptainsChairType.MarketPrice);
                    InCaptainsChair.CargoVisualPrefabID     = CaptainsChairType.CargoVisualID;
                    InCaptainsChair.CanBeDroppedOnShipDeath = CaptainsChairType.CanBeDroppedOnShipDeath;
                    InCaptainsChair.Experimental            = CaptainsChairType.Experimental;
                    InCaptainsChair.Unstable   = CaptainsChairType.Unstable;
                    InCaptainsChair.Contraband = CaptainsChairType.Contraband;
                    InCaptainsChair.GetType().GetField("Price_LevelMultiplierExponent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InCaptainsChair, (ObscuredFloat)CaptainsChairType.Price_LevelMultiplierExponent);
                }
            }
            else
            {
                InCaptainsChair = new PLCaptainsChair((ECaptainsChairType)Subtype, level);
            }
            return(InCaptainsChair);
        }