Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of LethalCorporation v1.0.4
OrianaGames/OrianaGamesLethalCompany.dll
Decompiled 2 years agousing System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = "")] [assembly: AssemblyCompany("OrianaGamesLethalCompany")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("By Lunastellia")] [assembly: AssemblyFileVersion("1.0.3.0")] [assembly: AssemblyInformationalVersion("1.0.3")] [assembly: AssemblyProduct("OrianaGamesLethalCompany")] [assembly: AssemblyTitle("OrianaGamesLethalCompany")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.3.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace OrianaCore { public static class MyPluginInfo { public const string PLUGIN_GUID = "OrianaGamesLethalCompany"; public const string PLUGIN_NAME = "OrianaGamesLethalCompany"; public const string PLUGIN_VERSION = "1.0.3"; } } namespace OrianaGamesLC { public class LightCheck : MonoBehaviour { private MeshRenderer mainRend; private Light thisLight; private Shovel thisHitdamage; private static bool IsActived; private void Start() { thisLight = ((Component)this).GetComponentInChildren<Light>(); mainRend = ((Component)this).GetComponentInChildren<MeshRenderer>(); thisHitdamage = ((Component)this).GetComponentInChildren<Shovel>(); thisHitdamage.shovelHitForce = Config.lightsaberDamage.Value; } private void On() { IsActived = true; } private void Off() { IsActived = false; } private void Update() { ((Behaviour)thisLight).enabled = ((Renderer)mainRend).enabled; if ((((GrabbableObject)thisHitdamage).isHeld && !((GrabbableObject)thisHitdamage).isPocketed) || ((GrabbableObject)thisHitdamage).isHeldByEnemy) { On(); } else { Off(); } thisHitdamage.shovelHitForce = Config.lightsaberDamage.Value; if (IsActived) { thisLight.intensity = 0f + Config.lightsaberIntensity.Value; thisLight.range = 0f + Config.lightsaberRange.Value; ((Behaviour)thisLight).enabled = true; } else { thisLight.intensity = 0f; thisLight.range = 0f; ((Behaviour)thisLight).enabled = false; } } } public class Config { public static ConfigEntry<int> lightsaberPrice; public static ConfigEntry<int> lightsaberColor; public static ConfigEntry<float> lightsaberIntensity; public static ConfigEntry<float> lightsaberRange; public static ConfigEntry<bool> lightsaberCanscrap; public static ConfigEntry<int> lightsaberScrap; public static ConfigEntry<int> lightsaberDamage; public static ConfigEntry<bool> usefriendlyfire; public static ConfigEntry<int> friendlydamages; public static ConfigFile Configfile; public static void Load() { //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Expected O, but got Unknown lightsaberPrice = Plugin.config.Bind<int>("Lasersaber", "Price", 50, "Change price to Lasersaber, Default = 50"); lightsaberColor = Plugin.config.Bind<int>("Lasersaber", "Buyable Color", 0, "0 - random 1 - green, 2 - red, 3 - blue, 4 - purple, Default = 0"); lightsaberCanscrap = Plugin.config.Bind<bool>("Lasersaber", "Can Scrap", true, "Can scrap Lasersaber in dungeon, Default = true"); lightsaberScrap = Plugin.config.Bind<int>("Lasersaber", "Scrap spawn value", 10, "Spawn rarity (range 0-100), Default = 10"); lightsaberIntensity = Plugin.config.Bind<float>("Lasersaber", "Intensity", 40f, "Change intencity to Lasersaber, Default = 40"); lightsaberRange = Plugin.config.Bind<float>("Lasersaber", "Range", 15f, "Change light range to Lasersaber, Default = 15"); lightsaberDamage = Plugin.config.Bind<int>("Lasersaber", "Damage multiplier", 1, "Damage multiplier, (Shovel damage = x1), Default = 1"); usefriendlyfire = Plugin.config.Bind<bool>("Friendly damages", "Enable custom Friendly damages", true, "for compatibility with other mods, Default = true"); friendlydamages = Plugin.config.Bind<int>("Friendly damages", "damage to other player", 30, "from shovel, lasersaber and other similar weapon, Default = 30"); Configfile = new ConfigFile(Paths.ConfigPath + "\\OrianaGames.LethalCorporation.cfg", true); } } [HarmonyPatch] internal class DamagePatch { [HarmonyPatch(typeof(PlayerControllerB), "DamagePlayerFromOtherClientServerRpc")] [HarmonyPrefix] public static void DamagePlayerFromOtherClientServerRpc(ref int damageAmount, Vector3 hitDirection, int playerWhoHit) { if (Config.usefriendlyfire.Value) { damageAmount = Config.friendlydamages.Value; } } } public static class PluginInfo { public const string GUID = "Orianagames.LethalCorporation"; public const string NAME = "LethalCorporation"; public const string VERSION = "1.0.3"; } [BepInPlugin("Orianagames.LethalCorporation", "LethalCorporation", "1.0.3")] internal class Plugin : BaseUnityPlugin { public static ConfigFile config; private readonly Harmony harmony = new Harmony("Orianagames.LethalCorporation"); private static Plugin instance; private static string Debugg = "*"; public void Awake() { config = ((BaseUnityPlugin)this).Config; Config.Load(); if ((Object)(object)instance == (Object)null) { instance = this; string[] array = new string[4] { "0LS", "1LS", "2LS", "3LS" }; string[] array2 = new string[4] { "GreenLightsaber", "RedLightsaber", "BlueLightsaber", "PurpleLightsaber" }; int num = 2; num = ((Config.lightsaberColor.Value == 0) ? Random.Range(0, 4) : ((Config.lightsaberColor.Value != 1) ? ((Config.lightsaberColor.Value == 2) ? 1 : ((Config.lightsaberColor.Value == 3) ? 2 : ((Config.lightsaberColor.Value != 4) ? Random.Range(0, 4) : 3))) : 0)); for (int i = 0; i < 4; i++) { string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), array[i]); AssetBundle val = AssetBundle.LoadFromFile(text); string text2 = "Assets/" + array2[i] + ".asset"; Item val2 = val.LoadAsset<Item>(text2); val2.itemName = "LaserSaber"; val2.weight = 1.05f; val2.isConductiveMetal = true; val2.canBeGrabbedBeforeGameStart = true; NetworkPrefabs.RegisterNetworkPrefab(val2.spawnPrefab); Utilities.FixMixerGroups(val2.spawnPrefab); Shovel component = val2.spawnPrefab.GetComponent<Shovel>(); component.shovelHitForce = Config.lightsaberDamage.Value; LightCheck lightCheck = val2.spawnPrefab.AddComponent<LightCheck>(); if (Config.lightsaberCanscrap.Value) { Items.RegisterScrap(val2, Config.lightsaberScrap.Value, (LevelTypes)(-1)); } else { Items.RegisterScrap(val2, 0, (LevelTypes)(-1)); } if (i == num) { TerminalNode val3 = ScriptableObject.CreateInstance<TerminalNode>(); val3.clearPreviousText = true; val3.displayText = "A f*ckin lazersaber!\n\n"; Items.RegisterShopItem(val2, (TerminalNode)null, (TerminalNode)null, val3, Config.lightsaberPrice.Value); if (num == 0) { Debugg = " - (LightsaberColor = Green)"; } if (num == 0) { Debugg = " - (LightsaberColor = Red)"; } if (num == 0) { Debugg = " - (LightsaberColor = Bleu)"; } if (num == 0) { Debugg = " - (LightsaberColor = Purple)"; } } } } harmony.PatchAll(typeof(Plugin).Assembly); harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.Log((LogLevel)16, (object)("OrianaGames - LethalCorporation loaded!" + Debugg)); } } public static class MainMenuManager_Patch { [HarmonyPatch(typeof(MenuManager), "Awake")] public static class MainMenuManagerPatch { public static void Postfix(MenuManager __instance) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) try { GameObject gameObject = ((Component)((Component)__instance).transform.parent).gameObject; GameObject gameObject2 = ((Component)gameObject.transform.Find("MenuContainer").Find("VersionNum")).gameObject; GameObject gameObject3 = ((Component)gameObject.transform.Find("MenuContainer").Find("MainButtons").Find("HeaderImage")).gameObject; if (!Object.op_Implicit((Object)(object)GameObject.Find("VersionText"))) { GameObject val = new GameObject("VersionText"); val.transform.position = gameObject3.transform.position; TextMesh val2 = val.AddComponent<TextMesh>(); val2.fontStyle = (FontStyle)1; val2.alignment = (TextAlignment)1; val2.text = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<size=25><color=#ffff66>LethalCorporation</color> <color=#0066cc>[1.0.2]</color><color=#ff0000>\n- </color><color=#ff00ff> By Lunastellia </color><color=#3399ff>(OrianaGames)</color></size>"; } } catch (Exception) { } } } } }