public static PLMissionShipComponent CreateMissionShipComponent(int Subtype, int level) { PLMissionShipComponent InMissionShipComponent; if (Subtype >= Instance.VanillaMissionShipComponentMaxType) { InMissionShipComponent = new PLMissionShipComponent(0, level); int subtypeformodded = Subtype - Instance.VanillaMissionShipComponentMaxType; if (subtypeformodded <= Instance.MissionShipComponentTypes.Count && subtypeformodded > -1) { MissionShipComponentMod MissionShipComponentType = Instance.MissionShipComponentTypes[Subtype - Instance.VanillaMissionShipComponentMaxType]; InMissionShipComponent.SubType = Subtype; InMissionShipComponent.Name = MissionShipComponentType.Name; InMissionShipComponent.Desc = MissionShipComponentType.Description; InMissionShipComponent.m_IconTexture = MissionShipComponentType.IconTexture; InMissionShipComponent.m_MarketPrice = MissionShipComponentType.MarketPrice; InMissionShipComponent.CargoVisualPrefabID = MissionShipComponentType.CargoVisualID; InMissionShipComponent.CanBeDroppedOnShipDeath = MissionShipComponentType.CanBeDroppedOnShipDeath; InMissionShipComponent.Experimental = MissionShipComponentType.Experimental; InMissionShipComponent.Unstable = MissionShipComponentType.Unstable; InMissionShipComponent.Contraband = MissionShipComponentType.Contraband; InMissionShipComponent.Price_LevelMultiplierExponent = MissionShipComponentType.Price_LevelMultiplierExponent; } } else { InMissionShipComponent = new PLMissionShipComponent(Subtype, level); } return(InMissionShipComponent); }
public static PLMissionShipComponent CreateMissionShipComponent(int Subtype, int level) { PLMissionShipComponent InMissionShipComponent; if (Subtype >= Instance.VanillaMissionShipComponentMaxType) { InMissionShipComponent = new PLMissionShipComponent(0, level); int subtypeformodded = Subtype - Instance.VanillaMissionShipComponentMaxType; if (Global.DebugLogging) { Logger.Info($"Subtype for modded is {subtypeformodded}"); } if (subtypeformodded <= Instance.MissionShipComponentTypes.Count && subtypeformodded > -1) { if (Global.DebugLogging) { Logger.Info("Creating MissionShipComponent from list info"); } MissionShipComponentPlugin MissionShipComponentType = Instance.MissionShipComponentTypes[Subtype - Instance.VanillaMissionShipComponentMaxType]; InMissionShipComponent.SubType = Subtype; InMissionShipComponent.Name = MissionShipComponentType.Name; InMissionShipComponent.Desc = MissionShipComponentType.Description; InMissionShipComponent.GetType().GetField("m_IconTexture", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InMissionShipComponent, MissionShipComponentType.IconTexture); InMissionShipComponent.GetType().GetField("m_MarketPrice", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InMissionShipComponent, (ObscuredInt)MissionShipComponentType.MarketPrice); InMissionShipComponent.CargoVisualPrefabID = MissionShipComponentType.CargoVisualID; InMissionShipComponent.CanBeDroppedOnShipDeath = MissionShipComponentType.CanBeDroppedOnShipDeath; InMissionShipComponent.Experimental = MissionShipComponentType.Experimental; InMissionShipComponent.Unstable = MissionShipComponentType.Unstable; InMissionShipComponent.Contraband = MissionShipComponentType.Contraband; InMissionShipComponent.GetType().GetField("Price_LevelMultiplierExponent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InMissionShipComponent, (ObscuredFloat)MissionShipComponentType.Price_LevelMultiplierExponent); } } else { InMissionShipComponent = new PLMissionShipComponent(Subtype, level); } return(InMissionShipComponent); }