public static PLExtractor CreateExtractor(int Subtype, int level) { PLExtractor InExtractor; if (Subtype >= Instance.VanillaExtractorMaxType) { InExtractor = new PLExtractor(EExtractorType.E_MAX, level); int subtypeformodded = Subtype - Instance.VanillaExtractorMaxType; if (subtypeformodded <= Instance.ExtractorTypes.Count && subtypeformodded > -1) { ExtractorMod ExtractorType = Instance.ExtractorTypes[Subtype - Instance.VanillaExtractorMaxType]; InExtractor.SubType = Subtype; InExtractor.Name = ExtractorType.Name; InExtractor.Desc = ExtractorType.Description; InExtractor.m_IconTexture = ExtractorType.IconTexture; InExtractor.m_Stability = ExtractorType.Stability; InExtractor.m_MarketPrice = ExtractorType.MarketPrice; InExtractor.CargoVisualPrefabID = ExtractorType.CargoVisualID; InExtractor.CanBeDroppedOnShipDeath = ExtractorType.CanBeDroppedOnShipDeath; InExtractor.Experimental = ExtractorType.Experimental; InExtractor.Unstable = ExtractorType.Unstable; InExtractor.Contraband = ExtractorType.Contraband; InExtractor.Price_LevelMultiplierExponent = ExtractorType.Price_LevelMultiplierExponent; } } else { InExtractor = new PLExtractor((EExtractorType)Subtype, level); } return(InExtractor); }
static void Postfix(PLExtractor __instance, ref string __result) { int subtypeformodded = __instance.SubType - ExtractorModManager.Instance.VanillaExtractorMaxType; if (subtypeformodded > -1 && subtypeformodded < ExtractorModManager.Instance.ExtractorTypes.Count && __instance.ShipStats != null) { __result = ExtractorModManager.Instance.ExtractorTypes[subtypeformodded].GetStatLineRight(__instance); } }
public static PLExtractor CreateExtractor(int Subtype, int level) { PLExtractor InExtractor; if (Subtype >= Instance.VanillaExtractorMaxType) { InExtractor = new PLExtractor(EExtractorType.E_MAX, level); int subtypeformodded = Subtype - Instance.VanillaExtractorMaxType; if (Global.DebugLogging) { Logger.Info($"Subtype for modded is {subtypeformodded}"); } if (subtypeformodded <= Instance.ExtractorTypes.Count && subtypeformodded > -1) { if (Global.DebugLogging) { Logger.Info("Creating Extractor from list info"); } ExtractorPlugin ExtractorType = Instance.ExtractorTypes[Subtype - Instance.VanillaExtractorMaxType]; InExtractor.SubType = Subtype; InExtractor.Name = ExtractorType.Name; InExtractor.Desc = ExtractorType.Description; InExtractor.GetType().GetField("m_IconTexture", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InExtractor, ExtractorType.IconTexture); InExtractor.GetType().GetField("m_Stability", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InExtractor, ExtractorType.Stability); InExtractor.GetType().GetField("m_MarketPrice", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InExtractor, (ObscuredInt)ExtractorType.MarketPrice); InExtractor.CargoVisualPrefabID = ExtractorType.CargoVisualID; InExtractor.CanBeDroppedOnShipDeath = ExtractorType.CanBeDroppedOnShipDeath; InExtractor.Experimental = ExtractorType.Experimental; InExtractor.Unstable = ExtractorType.Unstable; InExtractor.Contraband = ExtractorType.Contraband; InExtractor.GetType().GetField("Price_LevelMultiplierExponent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InExtractor, (ObscuredFloat)ExtractorType.Price_LevelMultiplierExponent); } } else { InExtractor = new PLExtractor((EExtractorType)Subtype, level); } return(InExtractor); }
public override string GetStatLineRight(PLShipComponent InComp) { PLExtractor me = InComp as PLExtractor; return(((float)me.m_Stability * 10f).ToString("0")); }