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