using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using LethalMin;
using LethalMin.Library;
using Microsoft.CodeAnalysis;
using NoteBoxz.LethalMinLibrary.NetcodePatcher;
using Unity.Netcode;
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(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("NoteBoxz.LethalMinLibrary")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.2.0.0")]
[assembly: AssemblyInformationalVersion("1.2.0+412e84a769a4eea8d08355c6febcb85be76dd87b")]
[assembly: AssemblyProduct("LethalMinLibrary")]
[assembly: AssemblyTitle("NoteBoxz.LethalMinLibrary")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.2.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
[module: NetcodePatchedAssembly]
internal class <Module>
{
static <Module>()
{
}
}
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[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 LethalMinLibrary
{
[BepInPlugin("NoteBoxz.LethalMinLibrary", "LethalMinLibrary", "1.2.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class LethalMinLibrary : BaseUnityPlugin
{
public static LethalMinLibrary Instance { get; private set; }
internal static ManualLogSource Logger { get; private set; }
internal static Harmony? Harmony { get; set; }
private void Awake()
{
Logger = ((BaseUnityPlugin)this).Logger;
Instance = this;
Patch();
NetcodePatcher();
Logger.LogInfo((object)"NoteBoxz.LethalMinLibrary v1.2.0 has loaded!");
}
internal static void Patch()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Expected O, but got Unknown
if (Harmony == null)
{
Harmony = new Harmony("NoteBoxz.LethalMinLibrary");
}
Logger.LogDebug((object)"Patching...");
Harmony.PatchAll();
Logger.LogMessage((object)"LethalMin Libarary: Sending Library Patch Call to LethalMin...");
LethalMin.PatchLibraryTypes();
Logger.LogDebug((object)"Finished patching!");
}
private void NetcodePatcher()
{
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
Type[] array = types;
foreach (Type type in array)
{
MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
MethodInfo[] array2 = methods;
foreach (MethodInfo methodInfo in array2)
{
object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
if (customAttributes.Length != 0)
{
methodInfo.Invoke(null, null);
}
}
}
}
internal static void Unpatch()
{
Logger.LogDebug((object)"Unpatching...");
Harmony? harmony = Harmony;
if (harmony != null)
{
harmony.UnpatchSelf();
}
Logger.LogDebug((object)"Finished unpatching!");
}
}
[CreateAssetMenu(menuName = "LethalMin Library/OnionFuseRules", order = 1)]
public class OnionFuseRules : ScriptableObject
{
[Tooltip("An array of OnionType values representing the onions that can fuse together.")]
public OnionType[] CompatibleOnions;
[Header("Not Implemented")]
[Tooltip("An array of Texture2D objects representing the textures to be used for fusing onions. If this is null, the textures will be generated automatically.")]
public Texture2D[]? FuseTextures;
[Tooltip("Determines whether onions should fuse in order or not.")]
public bool FuseInOrder;
[Tooltip("Specifies whether Fuseion textures should be generated automatically.")]
public bool GenerateFuseionTextures;
[Tooltip("The main onion prefab to be instantiated when fusing occurs.")]
public GameObject MainOnionPrefab;
[Tooltip("The path to the onion's mesh that will be replaced with the fused mesh.")]
public string OnionMeshPath;
[Tooltip("The fused onion meshes, (Note: The first mesh should be the 2 onion fused, the second should be the 3 onion fused, etc.)")]
public GameObject[] OnionMeshes;
[HideInInspector]
public bool HasBeenRegistered;
[HideInInspector]
public int FuseID;
[HideInInspector]
public string version = "0.2.18";
public bool CanFuseWith(OnionType onion)
{
OnionType onion2 = onion;
return Array.Exists(CompatibleOnions, (OnionType element) => (Object)(object)element == (Object)(object)onion2);
}
}
[CreateAssetMenu(menuName = "LethalMin Library/OnionType", order = 1)]
public class OnionType : ScriptableObject
{
[Header("Distinguishing Information")]
[Tooltip("The onion's color")]
public Color OnionColor;
[Tooltip("The Onion's texture")]
public Texture2D? OnionTexture;
public Material? OnionMaterial;
[Tooltip("The name of the onion's type.")]
public string TypeName = "";
[Tooltip("Set by mod, do not change.")]
[HideInInspector]
public int OnionTypeID;
[Header("Onion Stats")]
[Tooltip("The types of pikmin that the onion can hold.")]
public PikminType[] TypesCanHold;
[Header("Spawning")]
[Tooltip("Whether the onion should spawn in as an item.")]
public bool SpawnInAsItem;
[Tooltip("Whether the onion can create sprouts.")]
public bool CanCreateSprouts = true;
[Tooltip("The item mesh that the onion should spawn in as. (will be set to defult if empty)")]
public GameObject OnionItemMeshPrefab;
[Header("Unused / Not Implemented")]
[Tooltip("The onion's custom script")]
public NetworkBehaviour[]? OnionScript;
[Tooltip("The onion's icon")]
public Sprite? OnionIcon;
[Tooltip("Whether the onion can be fused with other onions.")]
public bool CanBeFused;
[Tooltip("The fuse rules for the onion.")]
public OnionFuseRules FuesingRules;
[Tooltip("The onion's prefab. (will be set to defult if empty)")]
public GameObject OnionPrefab;
[HideInInspector]
public bool HasBeenRegistered;
[HideInInspector]
public string version = "0.2.18";
}
public class PikminItemOverrideSettings : MonoBehaviour
{
public int PikminNeededOnItem = 1;
}
[CreateAssetMenu(menuName = "LethalMin Library/PikminSoundPack", order = 1)]
public class PikminSoundPack : ScriptableObject
{
[Tooltip("The sound the pikmin plays before attacking")]
public AudioClip[] AttackVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when spawned in")]
public AudioClip[] BornVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays for exiting the onion")]
public AudioClip[] ExitOnionVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays for entering the onion")]
public AudioClip[] EnterOnionVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when it spots an item")]
public AudioClip[] ItemNoticeVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when it dies")]
public AudioClip[] GhostVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays while carrying an item")]
public AudioClip[] CarryVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when losing their leader")]
public AudioClip[] LostVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when they start carrying an item")]
public AudioClip[] LiftVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when it gets hurt")]
public AudioClip[] HurtVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when it gets Crushed")]
public AudioClip[] CrushedVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when spotting a player")]
public AudioClip[] NoticeVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when thrown")]
public AudioClip[] ThrowVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays when being held by a player")]
public AudioClip[] HoldVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("The sound the pikmin plays for compleating action")]
public AudioClip[] YayVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("the sound that plays when a pikmin is poisoned")]
public AudioClip[] CoughVoiceLine = (AudioClip[])(object)new AudioClip[0];
[Tooltip("the 'woosh' sound that plays when a pikmin is thrown, overridden by mod if left empty")]
public AudioClip[] ThrowSFX = (AudioClip[])(object)new AudioClip[0];
[Tooltip("the hit sound that plays when a pikmin lands a hit on an enemy, overridden by mod if left empty")]
public AudioClip[] HitSFX = (AudioClip[])(object)new AudioClip[0];
public bool FillEmptyWithDefault = false;
}
[CreateAssetMenu(menuName = "LethalMin Library/PikminType", order = 1)]
public class PikminType : ScriptableObject
{
[Header("Distinguishing Information")]
[Tooltip("The pikmin type's name")]
public string PikminName = "";
[Tooltip("The pikmin's color")]
public Color PikminColor;
[Tooltip("The pikmin's Secondary color")]
public Color PikminColor2;
[Tooltip("The pikmin's icon")]
public Sprite? PikminIcon;
[Tooltip("The pikmin's the Idle Glow Sprite")]
public Sprite? PikminGlow;
public bool ReplaceGlowFXwithDefult = true;
public PikminMeshRefernces MeshRefernces = null;
[Tooltip("The pikmin's custom AI scripts")]
public NetworkBehaviour[]? PikminScripts;
[Tooltip("In the pikmin's prefab.")]
public GameObject? MeshPrefab;
[Tooltip("If null, the sprout will use the mesh prefab")]
public GameObject? SproutMeshPrefab;
[Tooltip("Set by mod, do not change.")]
[HideInInspector]
public int PikminTypeID;
[Tooltip("The pikmin's sound pack.")]
public PikminSoundPack? soundPack;
[Header("Pikmin Stats")]
[Tooltip("The hazards the pikmin is resistant to")]
public LibHazardType[] HazardsResistantTo = new LibHazardType[0];
[Tooltip("Whether the pikmin can latch on to enemies")]
public bool CanLatchOnToEnemies = true;
[Tooltip("Whether the pikmin can carry items")]
public bool CanCarryItems = true;
[Tooltip("Whether the pikmin can attack without latching on")]
public bool CanAttackWithoutLatchingOn = true;
[Tooltip("The speeds of the pikmin at different growth stages")]
public float[] Speeds = new float[3] { 2f, 5f, 9f };
[Tooltip("The force with which the pikmin is thrown")]
public float ThrowForce = 15f;
[Tooltip("Multiplier for the pikmin's growth speed")]
public float GrowSpeedMultipler = 1f;
[Tooltip("Multiplier for the pikmin's throw force")]
public float ThrowForceMultiplier = 1f;
[Tooltip("Multiplier for the pikmin's damage")]
public float DamageMultiplier = 1f;
[Tooltip("Speed multipliers for different growth stages")]
public float[] SpeedMultipliers = new float[3] { 1f, 1f, 1f };
[Tooltip("The amount of damage the pikmin does when it attacks.")]
public float DamageAmmount;
[Tooltip("The amount of damage the pikmin does when it dies.")]
public float DamageDeltUponDeath;
[Tooltip("The ammount of distance between the pikmin and enemies where the enemy will be delt damage from the pikmin upon death.")]
public float DeathDamageRange;
[Tooltip("Normalizes the damage the pikmin does when it attacks, (i.e. 5 -> 0.05)")]
public bool NormalizeDamage;
[Tooltip("The pikmin's carry strength (i.e. one pikmin with the CarryStrength of 5 will count as 5 pikmin on the item)")]
public int CarryStrength = 1;
[Tooltip("The pikmin's carry speed")]
public float CarrySpeed = 1f;
[Tooltip("The ammount of distance the pikmin can detect items")]
public float ItemDetectionRange = 5f;
[Tooltip("The ammount of distance a Pikmin can hit enemies at.")]
public float AttackRange = 1f;
[Header("Spawning")]
[Tooltip("Whether the pikmin can spawn in from Lethal Company's spawn system (Pikmin do not affect the power level)")]
public bool SpawnsNaturally = true;
[Tooltip("Whether the pikmin can spawn indoors")]
public bool SpawnsIndoors;
[Tooltip("Whether the pikmin can spawn outdoors")]
public bool SpawnsOutdoors;
[Tooltip("Whether the pikmin spawns as a sprout")]
public bool SpawnsAsSprout;
[Tooltip("Whether the pikmin uses a pikmin container")]
public bool UsesPikminContainer;
[Header("Other")]
[Tooltip("Whether the pikmin instantly enters the onion")]
public bool InstaEnterOnion;
[Tooltip("Multiplier for the pikmin's spawn chance")]
public float SpawnChanceMultiplier = 1f;
[Tooltip("To Prevent pikmin from instantly dropping the item right outside of the ship, this varible is used to delay the drop in the ship buffer.")]
public float DropItemInShipBuffer = 1f;
[Tooltip("Minimum knockback resistance")]
public int MinKnockBackResistance;
[Tooltip("Maximum knockback resistance")]
public int MaxKnockBackResistance;
[Tooltip("Material for the pikmin")]
public Material? PikminMaterial;
[Tooltip("Material for the pikmin sprout")]
public Material? SproutMaterial;
[Tooltip("The type of onion this pikmin targets")]
public OnionType TargetOnion;
[Tooltip("The ammount of extra idle animations for the pikmin")]
public int ExtraIdleAnimsCount = 0;
[Tooltip("The amount of Yay animations for the pikmin")]
public int YayAnimationsCount = 0;
[Tooltip("The Attack animation for the pikmin")]
public AnimationClip? AttackAnimation;
[Tooltip("The Non-Latched Attack animation for the pikmin")]
public AnimationClip? NonLatchAttackAnimation;
[Tooltip("The frame of your Attack animaiton when the Pikmin should hit the enemy")]
public int AttackAnimationHitFrame;
[Tooltip("The frame of your Non-Latched Attack animaiton when the Pikmin should hit the enemy")]
public int NonLatchAttackAnimationHitFrame;
[Tooltip("The Pikmin's attack rate while latched onto an enemy in seconds (Set this to -1 if you have an animation)")]
public float AttackRate = -1f;
[Header("Beastiary")]
[Tooltip("The Pikmin type's scientific name")]
public string ScientificName = "Pikminus Pikminus";
[Tooltip("The Pikmin type's beastiary segment")]
[TextArea(2, 20)]
public string beastiarySegment = "";
[HideInInspector]
public string version = "0.2.18";
}
public class PikminHarmTrigger : MonoBehaviour
{
public LibHazardType[] hazardTypes = new LibHazardType[1] { LibHazardType.Poison };
public bool CanBeWhistledOutOff = true;
public float MaxKillTimer = 3f;
public float MinKillTimer = 1f;
public void OnTriggerEnter(Collider other)
{
if (((Object)other).name == "PikminColision")
{
LibReciver.ApplyAffectToPikmin(((Component)other).gameObject, EnumConverter.Convert_Lib_HazardToLmHazard(hazardTypes), CanBeWhistledOutOff, MinKillTimer, MaxKillTimer);
}
}
}
public enum KillType
{
SnapTo,
Knockback,
Instant
}
public enum LibHazardType
{
Lethal,
Poison,
Fire,
Electric,
Water,
Exsplosive,
Spore,
Crush
}
public class PikminKillTrigger : MonoBehaviour
{
[Header("Kill Settings")]
public KillType killType;
public float KillTimer;
public LibHazardType[] hazardTypes = new LibHazardType[1];
[Header("Knockback Settings")]
public bool FixedForce = false;
public float KnockbackForce = 10f;
public Vector3 FixedKnockbackForce;
public bool KillOnLanding;
[Header("Snap To Settings")]
public Transform SnapToTarget;
[Header("Debug Settings")]
public Color gizmoColor = Color.red;
public float arrowScaleFactor = 0.5f;
public float minArrowLength = 0.5f;
public float maxArrowLength = 100f;
public void OnTriggerEnter(Collider other)
{
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
if (!(((Object)other).name == "PikminColision"))
{
return;
}
switch (killType)
{
case KillType.SnapTo:
LibReciver.KillPikmin(((Component)other).gameObject, SnapToTarget, KillTimer, EnumConverter.Convert_Lib_HazardToLmHazard(hazardTypes));
break;
case KillType.Knockback:
{
if (FixedForce)
{
LibReciver.KillPikmin(((Component)other).gameObject, FixedKnockbackForce, KillOnLanding, KillTimer, EnumConverter.Convert_Lib_HazardToLmHazard(hazardTypes));
break;
}
Vector3 val = CalculateKnockbackDirection(((Component)other).transform.position);
LibReciver.KillPikmin(((Component)other).gameObject, val * KnockbackForce, KillOnLanding, KillTimer, EnumConverter.Convert_Lib_HazardToLmHazard(hazardTypes));
break;
}
case KillType.Instant:
LibReciver.KillPikmin(((Component)other).gameObject, KillTimer, EnumConverter.Convert_Lib_HazardToLmHazard(hazardTypes));
break;
}
}
private void OnDrawGizmos()
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
if (killType == KillType.Knockback && FixedForce && FixedKnockbackForce != Vector3.zero)
{
DrawKnockbackArrow();
}
if (killType == KillType.Knockback && !FixedForce && KnockbackForce != 0f)
{
DrawKnockbackArrows();
}
}
private Vector3 CalculateKnockbackDirection(Vector3 pikminPosition)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
Vector3 val = pikminPosition - ((Component)this).transform.position;
return ((Vector3)(ref val)).normalized;
}
private void DrawKnockbackArrow()
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_0055: Unknown result type (might be due to invalid IL or missing references)
//IL_0056: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_0095: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_00db: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_011d: Unknown result type (might be due to invalid IL or missing references)
//IL_0122: Unknown result type (might be due to invalid IL or missing references)
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
//IL_013b: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_0143: Unknown result type (might be due to invalid IL or missing references)
//IL_0148: Unknown result type (might be due to invalid IL or missing references)
//IL_015c: Unknown result type (might be due to invalid IL or missing references)
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
//IL_0175: Unknown result type (might be due to invalid IL or missing references)
//IL_017a: Unknown result type (might be due to invalid IL or missing references)
//IL_017f: Unknown result type (might be due to invalid IL or missing references)
//IL_0181: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_018b: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
Vector3 position = ((Component)this).transform.position;
float num = Mathf.Clamp(((Vector3)(ref FixedKnockbackForce)).magnitude * arrowScaleFactor, minArrowLength, maxArrowLength);
Vector3 val = position + ((Vector3)(ref FixedKnockbackForce)).normalized * num;
Gizmos.color = gizmoColor;
Gizmos.DrawLine(position, val);
Vector3 val2 = Quaternion.LookRotation(FixedKnockbackForce) * Quaternion.Euler(0f, 200f, 0f) * new Vector3(0f, 0f, 1f);
Vector3 val3 = Quaternion.LookRotation(FixedKnockbackForce) * Quaternion.Euler(0f, 160f, 0f) * new Vector3(0f, 0f, 1f);
Gizmos.DrawRay(val, val2 * (num * 0.25f));
Gizmos.DrawRay(val, val3 * (num * 0.25f));
Vector3 val4 = Quaternion.LookRotation(FixedKnockbackForce) * Quaternion.Euler(0f, 90f, 12f) * new Vector3(1f, 0f, 0f);
Vector3 val5 = Quaternion.LookRotation(FixedKnockbackForce) * Quaternion.Euler(0f, 90f, -12f) * new Vector3(1f, 0f, 0f);
Gizmos.DrawRay(val, val4 * (num * 0.25f));
Gizmos.DrawRay(val, val5 * (num * 0.25f));
}
private void DrawKnockbackArrows()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_001a: 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)
//IL_0026: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: 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_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_004a: Unknown result type (might be due to invalid IL or missing references)
//IL_005c: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_006e: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ca: 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)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0101: Unknown result type (might be due to invalid IL or missing references)
//IL_0103: Unknown result type (might be due to invalid IL or missing references)
//IL_0105: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_011e: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_013e: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Unknown result type (might be due to invalid IL or missing references)
//IL_014a: Unknown result type (might be due to invalid IL or missing references)
//IL_0155: Unknown result type (might be due to invalid IL or missing references)
//IL_0157: Unknown result type (might be due to invalid IL or missing references)
//IL_0161: Unknown result type (might be due to invalid IL or missing references)
//IL_016c: Unknown result type (might be due to invalid IL or missing references)
//IL_016e: Unknown result type (might be due to invalid IL or missing references)
//IL_0182: Unknown result type (might be due to invalid IL or missing references)
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_019b: Unknown result type (might be due to invalid IL or missing references)
//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
//IL_01db: Unknown result type (might be due to invalid IL or missing references)
//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0205: Unknown result type (might be due to invalid IL or missing references)
Vector3[] array = (Vector3[])(object)new Vector3[6]
{
Vector3.forward,
Vector3.back,
Vector3.left,
Vector3.right,
Vector3.up,
Vector3.down
};
Vector3[] array2 = array;
foreach (Vector3 val in array2)
{
Vector3 position = ((Component)this).transform.position;
Vector3 val2 = CalculateKnockbackDirection(position + val);
float num = Mathf.Clamp(KnockbackForce * arrowScaleFactor, minArrowLength, maxArrowLength);
Vector3 val3 = position + val2 * num;
Gizmos.color = gizmoColor;
Gizmos.DrawLine(position, val3);
Vector3 val4 = Quaternion.LookRotation(val2) * Quaternion.Euler(0f, 200f, 0f) * new Vector3(0f, 0f, 1f);
Vector3 val5 = Quaternion.LookRotation(val2) * Quaternion.Euler(0f, 160f, 0f) * new Vector3(0f, 0f, 1f);
Gizmos.DrawRay(val3, val4 * (num * 0.25f));
Gizmos.DrawRay(val3, val5 * (num * 0.25f));
Vector3 val6 = Quaternion.LookRotation(val2) * Quaternion.Euler(0f, 90f, 12f) * new Vector3(1f, 0f, 0f);
Vector3 val7 = Quaternion.LookRotation(val2) * Quaternion.Euler(0f, 90f, -12f) * new Vector3(1f, 0f, 0f);
Gizmos.DrawRay(val3, val6 * (num * 0.25f));
Gizmos.DrawRay(val3, val7 * (num * 0.25f));
}
}
}
public class PikminMeshRefernces : MonoBehaviour
{
public GameObject PikminGlowRoot;
[Tooltip("The Gameobjects of the pikmin's plants in the pikmin's prefab.")]
public GameObject[] PikminGrowthStagePlants;
public Animator PikminAnimator;
}
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "NoteBoxz.LethalMinLibrary";
public const string PLUGIN_NAME = "LethalMinLibrary";
public const string PLUGIN_VERSION = "1.2.0";
}
}
namespace NoteBoxz.LethalMinLibrary.NetcodePatcher
{
[AttributeUsage(AttributeTargets.Module)]
internal class NetcodePatchedAssemblyAttribute : Attribute
{
}
}