コード例 #1
0
        static void Postfix(PLNuclearDevice __instance, ref string __result)
        {
            int subtypeformodded = __instance.SubType - NuclearDeviceModManager.Instance.VanillaNuclearDeviceMaxType;

            if (subtypeformodded > -1 && subtypeformodded < NuclearDeviceModManager.Instance.NuclearDeviceTypes.Count && __instance.ShipStats != null)
            {
                __result = NuclearDeviceModManager.Instance.NuclearDeviceTypes[subtypeformodded].GetStatLineRight(__instance);
            }
        }
コード例 #2
0
        public override string GetStatLineRight(PLShipComponent InComp)
        {
            PLNuclearDevice me = InComp as PLNuclearDevice;

            return(string.Concat(new string[]
            {
                (me.MaxDamage * me.LevelMultiplier(0.15f, 1f)).ToString("0"),
                "\n",
                (me.Range * me.LevelMultiplier(0.2f, 1f)).ToString("0"),
                "\n",
                me.FuelBurnRate.ToString("0.0"),
                "\n",
                (me.TurnRate * 100f * me.LevelMultiplier(0.2f, 1f)).ToString("0")
            }));
        }
コード例 #3
0
        public static PLNuclearDevice CreateNuclearDevice(int Subtype, int level)
        {
            PLNuclearDevice InNuclearDevice;

            if (Subtype >= Instance.VanillaNuclearDeviceMaxType)
            {
                InNuclearDevice = new PLNuclearDevice(ENuclearDeviceType.MAX, level);
                int subtypeformodded = Subtype - Instance.VanillaNuclearDeviceMaxType;
                if (Global.DebugLogging)
                {
                    Logger.Info($"Subtype for modded is {subtypeformodded}");
                }
                if (subtypeformodded <= Instance.NuclearDeviceTypes.Count && subtypeformodded > -1)
                {
                    if (Global.DebugLogging)
                    {
                        Logger.Info("Creating NuclearDevice from list info");
                    }
                    NuclearDevicePlugin NuclearDeviceType = Instance.NuclearDeviceTypes[Subtype - Instance.VanillaNuclearDeviceMaxType];
                    InNuclearDevice.SubType = Subtype;
                    InNuclearDevice.Name    = NuclearDeviceType.Name;
                    InNuclearDevice.Desc    = NuclearDeviceType.Description;
                    InNuclearDevice.GetType().GetField("m_IconTexture", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.IconTexture);
                    InNuclearDevice.GetType().GetField("m_MaxDamage", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.MaxDamage);
                    InNuclearDevice.GetType().GetField("m_Range", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.Range);
                    InNuclearDevice.GetType().GetField("m_FuelBurnRate", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.FuelBurnRate);
                    InNuclearDevice.GetType().GetField("m_TurnRate", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.TurnRate);
                    InNuclearDevice.GetType().GetField("m_IntimidationBonus", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.IntimidationBonus);
                    InNuclearDevice.GetType().GetField("m_TurnRate", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.TurnRate);
                    InNuclearDevice.GetType().GetField("m_Health", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, NuclearDeviceType.Health);
                    InNuclearDevice.GetType().GetField("m_MarketPrice", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, (ObscuredInt)NuclearDeviceType.MarketPrice);
                    InNuclearDevice.CargoVisualPrefabID     = NuclearDeviceType.CargoVisualID;
                    InNuclearDevice.CanBeDroppedOnShipDeath = NuclearDeviceType.CanBeDroppedOnShipDeath;
                    InNuclearDevice.Experimental            = NuclearDeviceType.Experimental;
                    InNuclearDevice.Unstable   = NuclearDeviceType.Unstable;
                    InNuclearDevice.Contraband = NuclearDeviceType.Contraband;
                    InNuclearDevice.GetType().GetField("Price_LevelMultiplierExponent", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(InNuclearDevice, (ObscuredFloat)NuclearDeviceType.Price_LevelMultiplierExponent);
                }
            }
            else
            {
                InNuclearDevice = new PLNuclearDevice((ENuclearDeviceType)Subtype, level);
            }
            return(InNuclearDevice);
        }
コード例 #4
0
        public static PLNuclearDevice CreateNuclearDevice(int Subtype, int level)
        {
            PLNuclearDevice InNuclearDevice;

            if (Subtype >= Instance.VanillaNuclearDeviceMaxType)
            {
                InNuclearDevice = new PLNuclearDevice(ENuclearDeviceType.MAX, level);
                int subtypeformodded = Subtype - Instance.VanillaNuclearDeviceMaxType;
                if (subtypeformodded <= Instance.NuclearDeviceTypes.Count && subtypeformodded > -1)
                {
                    NuclearDeviceMod NuclearDeviceType = Instance.NuclearDeviceTypes[Subtype - Instance.VanillaNuclearDeviceMaxType];
                    InNuclearDevice.SubType                       = Subtype;
                    InNuclearDevice.Name                          = NuclearDeviceType.Name;
                    InNuclearDevice.Desc                          = NuclearDeviceType.Description;
                    InNuclearDevice.m_IconTexture                 = NuclearDeviceType.IconTexture;
                    InNuclearDevice.m_MaxDamage                   = NuclearDeviceType.MaxDamage;
                    InNuclearDevice.m_Range                       = NuclearDeviceType.Range;
                    InNuclearDevice.m_FuelBurnRate                = NuclearDeviceType.FuelBurnRate;
                    InNuclearDevice.m_TurnRate                    = NuclearDeviceType.TurnRate;
                    InNuclearDevice.m_IntimidationBonus           = NuclearDeviceType.IntimidationBonus;
                    InNuclearDevice.m_TurnRate                    = NuclearDeviceType.TurnRate;
                    InNuclearDevice.m_Health                      = NuclearDeviceType.Health;
                    InNuclearDevice.m_MarketPrice                 = NuclearDeviceType.MarketPrice;
                    InNuclearDevice.CargoVisualPrefabID           = NuclearDeviceType.CargoVisualID;
                    InNuclearDevice.CanBeDroppedOnShipDeath       = NuclearDeviceType.CanBeDroppedOnShipDeath;
                    InNuclearDevice.Experimental                  = NuclearDeviceType.Experimental;
                    InNuclearDevice.Unstable                      = NuclearDeviceType.Unstable;
                    InNuclearDevice.Contraband                    = NuclearDeviceType.Contraband;
                    InNuclearDevice.Price_LevelMultiplierExponent = NuclearDeviceType.Price_LevelMultiplierExponent;
                }
            }
            else
            {
                InNuclearDevice = new PLNuclearDevice((ENuclearDeviceType)Subtype, level);
            }
            return(InNuclearDevice);
        }