Please disclose if your mod was created primarily 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 CardboardMomoa v1.0.2
cardboardMomoa.dll
Decompiled 2 years agousing System; using System.Collections; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; using cardboardMomoa.Behaviours; using testMod; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("testMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("testMod")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("482e497d-a94a-4a11-b6e2-ee1a1d13054f")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace templateMod { [BepInPlugin("Alien.cardboardMomoa", "Cardboard Momoa", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class CardboardMomoaBase : BaseUnityPlugin { private const string modGUID = "Alien.cardboardMomoa"; private const string modName = "Cardboard Momoa"; private const string modVersion = "1.0.0"; private readonly Harmony harmony = new Harmony("Alien.cardboardMomoa"); private static CardboardMomoaBase Instance; internal ManualLogSource mls; public static Configuration configuration { get; internal set; } private void Awake() { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("Alien.cardboardMomoa"); mls.LogInfo((object)"hey buddy"); configuration = new Configuration(((BaseUnityPlugin)this).Config); string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "cardboardmomoaassets"); AssetBundle val = AssetBundle.LoadFromFile(text); EnemyType val2 = val.LoadAsset<EnemyType>("Assets/Unity/MOD_ASSETS/jasonmomoa/jasonMomoa.asset"); Item val3 = val.LoadAsset<Item>("Assets/Unity/MOD_ASSETS/jasonmomoa/jasonMomoaScrap.asset"); AudioClip yellSound = val.LoadAsset<AudioClip>("Assets/Unity/MOD_ASSETS/jasonmomoa/ussy.mp3"); AudioClip scrapeSound = val.LoadAsset<AudioClip>("Assets/Unity/MOD_ASSETS/jasonmomoa/cadeboard.mp3"); val2.enemyPrefab.transform.localScale = new Vector3(0.7f, 0.7f, 0.7f); val3.spawnPrefab.transform.localScale = new Vector3(0.7f, 0.7f, 0.7f); JasonMomoaBehaviour jasonMomoaBehaviour = val2.enemyPrefab.AddComponent<JasonMomoaBehaviour>(); Transform val4 = val2.enemyPrefab.transform.Find("Mamoa"); ((Component)val4).GetComponent<EnemyAICollisionDetect>().mainScript = (EnemyAI)(object)jasonMomoaBehaviour; jasonMomoaBehaviour.shouldExplode = Configuration.configExplode.Value; val2.canDie = false; ((EnemyAI)jasonMomoaBehaviour).AIIntervalTime = 0.02f; ((EnemyAI)jasonMomoaBehaviour).enemyType = val2; jasonMomoaBehaviour.deathScrap = val3; val2.destroyOnDeath = false; ((EnemyAI)jasonMomoaBehaviour).enemyHP = 3; ((EnemyAI)jasonMomoaBehaviour).creatureVoice = null; ((EnemyAI)jasonMomoaBehaviour).creatureSFX = null; jasonMomoaBehaviour.yellSound = yellSound; jasonMomoaBehaviour.scrapeSound = scrapeSound; ((EnemyAI)jasonMomoaBehaviour).eye = ((Component)val4).transform.Find("Eye"); ((SpringManAI)jasonMomoaBehaviour).animStopPoints = ((Component)((Component)val4).transform.Find("AnimContainer")).GetComponent<AnimationStopPoints>(); ((Component)val4).GetComponent<EnemyAICollisionDetect>().mainScript = (EnemyAI)(object)jasonMomoaBehaviour; ((SpringManAI)jasonMomoaBehaviour).mainCollider = (Collider)(object)((Component)val4).GetComponent<BoxCollider>(); NetworkPrefabs.RegisterNetworkPrefab(val2.enemyPrefab); Utilities.FixMixerGroups(val2.enemyPrefab); Enemies.RegisterEnemy(val2, Configuration.configSpawnWeight.Value, (LevelTypes)(-1), (TerminalNode)null, (TerminalKeyword)null); NetworkPrefabs.RegisterNetworkPrefab(val3.spawnPrefab); Utilities.FixMixerGroups(val3.spawnPrefab); Items.RegisterScrap(val3, 0, (LevelTypes)1); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Alien.cardboardMomoa is loaded! IRTHGRTUIGHOIERGHUEHGERHU"); } } } namespace testMod { public class Configuration { public static ConfigEntry<int> configSpawnWeight; public static ConfigEntry<bool> configExplode; public Configuration(ConfigFile config) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown configSpawnWeight = config.Bind<int>("Spawn Weight", "Cardboard Momoa Spawn Weight", 40, new ConfigDescription("The spawn weight/rarity of the Jason Momoa cardboard cutout on any moon.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 1000), Array.Empty<object>())); configExplode = config.Bind<bool>("Misc", "Kill Players with Explosion?", true, "Should Jason Momoa cause the player to explode when he kills them?"); } } } namespace cardboardMomoa.Behaviours { public class JasonMomoaBehaviour : SpringManAI { private bool spawnedScrap = false; private bool enemyDestroyed = false; public AudioSource audio; public AudioClip yellSound; public AudioClip scrapeSound; private bool isPlayingScrapeSound = false; public bool shouldExplode; private int hitsTaken = 0; public Item deathScrap; public ManualLogSource logger; public override void Start() { audio = ((Component)this).GetComponent<AudioSource>(); ((Component)this).GetComponent<NavMeshAgent>().speed = 1f; ((Component)this).GetComponent<NavMeshAgent>().angularSpeed = 500f; ((EnemyAI)this).Start(); } public override void DoAIInterval() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) ((SpringManAI)this).DoAIInterval(); if ((Object)(object)((EnemyAI)this).agent != (Object)null) { Vector3 velocity = ((EnemyAI)this).agent.velocity; if (((Vector3)(ref velocity)).magnitude > 0.1f) { if (((EnemyAI)this).movingTowardsTargetPlayer) { audio.PlayOneShot(yellSound); WalkieTalkie.TransmitOneShotAudio(audio, yellSound, 1f); } if (!isPlayingScrapeSound) { audio.PlayOneShot(scrapeSound); WalkieTalkie.TransmitOneShotAudio(audio, scrapeSound, 1f); isPlayingScrapeSound = true; } return; } } if (isPlayingScrapeSound) { audio.Stop(); isPlayingScrapeSound = false; } } private IEnumerator SpinAndInitiateDeath() { float spinDuration = 5f; float elapsedTime = 0f; float spinSpeed = 100f; float maxSpinSpeed = 1000f; ((EnemyAI)this).isEnemyDead = true; audio.PlayOneShot(scrapeSound); WalkieTalkie.TransmitOneShotAudio(audio, scrapeSound, 1f); while (elapsedTime < spinDuration) { float currentSpinSpeed = Mathf.Lerp(spinSpeed, maxSpinSpeed, elapsedTime / spinDuration) * 2.5f; ((Component)this).transform.Rotate(Vector3.up, currentSpinSpeed * Time.deltaTime); elapsedTime += Time.deltaTime; yield return null; } Landmine.SpawnExplosion(((Component)this).transform.position, true, 0f, 0f, 0, 0f, (GameObject)null, false); audio.Stop(); GameObject instance = Object.Instantiate<GameObject>(deathScrap.spawnPrefab, ((Component)this).transform.position, Quaternion.identity, RoundManager.Instance.spawnedScrapContainer); instance.GetComponent<NetworkObject>().Spawn(false); PhysicsProp prop = instance.GetComponent<PhysicsProp>(); int randomScrapValue = Random.Range(150, 300); ((GrabbableObject)prop).SetScrapValue(randomScrapValue); enemyDestroyed = true; Object.Destroy((Object)(object)((Component)this).gameObject); <>n__0(destroy: true); } private void initiateDeathStuff() { ((MonoBehaviour)this).StartCoroutine(SpinAndInitiateDeath()); } public override void HitEnemy(int force = 1, PlayerControllerB playerWhoHit = null, bool playHitSFX = false, int hitID = -1) { Debug.Log((object)("Force: " + force + ", PlayerWhoHit: " + ((object)playerWhoHit)?.ToString() + ", PlayHitSFX: " + playHitSFX + ", HitID: " + hitID)); if (!enemyDestroyed && (hitID != -1 || Object.op_Implicit((Object)(object)playerWhoHit))) { hitsTaken++; if (hitsTaken >= ((EnemyAI)this).enemyHP) { initiateDeathStuff(); } } } public override void OnCollideWithPlayer(Collider other) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB val = ((EnemyAI)this).MeetsStandardPlayerCollisionConditions(other, false, false); if ((Object)(object)val != (Object)null) { if (shouldExplode) { val.DamagePlayer(100, true, true, (CauseOfDeath)3, 1, false, default(Vector3)); Landmine.SpawnExplosion(((Component)this).transform.position, true, 4f, 5f, 100, 2f, (GameObject)null, false); } else { val.DamagePlayer(50, true, true, (CauseOfDeath)6, 1, false, default(Vector3)); } } } [CompilerGenerated] [DebuggerHidden] private void <>n__0(bool destroy = false) { ((EnemyAI)this).KillEnemy(destroy); } } public class JasonItemScrapBehaviour : PhysicsProp { public Item originalItemProperties; public float originalVertOffset; public Vector3 originalRestRot; public override void EquipItem() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)"Equipped item!"); originalItemProperties.verticalOffset = originalVertOffset; originalItemProperties.restingRotation = originalRestRot; ((PhysicsProp)this).EquipItem(); } } }