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 MonsterLabZ v3.0.9
plugins/MonsterLabZ/MonsterLabZ.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using System.Threading; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using CreatureManager; using HarmonyLib; using ItemManager; using JetBrains.Annotations; using LocalizationManager; using LocationManager; using Microsoft.CodeAnalysis; using SoftReferenceableAssets; using TMPro; using UnityEngine; using YamlDotNet.Core; using YamlDotNet.Core.Events; using YamlDotNet.Core.Tokens; using YamlDotNet.Helpers; using YamlDotNet.Serialization; using YamlDotNet.Serialization.Converters; using YamlDotNet.Serialization.EventEmitters; using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization.NodeDeserializers; using YamlDotNet.Serialization.NodeTypeResolvers; using YamlDotNet.Serialization.ObjectFactories; using YamlDotNet.Serialization.ObjectGraphTraversalStrategies; using YamlDotNet.Serialization.ObjectGraphVisitors; using YamlDotNet.Serialization.Schemas; using YamlDotNet.Serialization.TypeInspectors; using YamlDotNet.Serialization.TypeResolvers; using YamlDotNet.Serialization.Utilities; using YamlDotNet.Serialization.ValueDeserializers; [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: Guid("150BFDAF-FF35-4302-B7CC-BEDCE69118D5")] [assembly: ComVisible(false)] [assembly: AssemblyTrademark("")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyProduct("MonsterLabZ")] [assembly: AssemblyCompany("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyDescription("https://valheim.thunderstore.io/package/MonsterLabZ/MonsterLabZ")] [assembly: AssemblyTitle("MonsterLabZ")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<ff648590-8803-4818-8ade-4f2cde93812a>Embedded] internal sealed class <ff648590-8803-4818-8ade-4f2cde93812a>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [<ff648590-8803-4818-8ade-4f2cde93812a>Embedded] [CompilerGenerated] internal sealed class <d23ff2c1-30f6-4034-927f-9061f7d45c78>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <d23ff2c1-30f6-4034-927f-9061f7d45c78>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <d23ff2c1-30f6-4034-927f-9061f7d45c78>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [<ff648590-8803-4818-8ade-4f2cde93812a>Embedded] [CompilerGenerated] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class <902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContextAttribute : Attribute { public readonly byte Flag; public <902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace MonsterLabz { [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class DeepSeaCreature : MonoBehaviour, IWaterInteractable { public float m_height = 0.2f; private readonly int[] m_liquids = new int[2]; private MonsterAI m_avoidLand; private Rigidbody m_body; private Humanoid m_canSwim; private Humanoid m_flying; private float m_inWater = 27f; private LiquidSurface m_liquidSurface; private LODGroup m_lodGroup; private bool m_lodVisible = true; private ZNetView m_nview; private Vector3 m_originalLocalRef; private float m_waterDepth; private WaterVolume m_waterVolume; private void Awake() { m_nview = ((Component)this).GetComponent<ZNetView>(); m_body = ((Component)this).GetComponent<Rigidbody>(); m_flying = ((Component)this).GetComponent<Humanoid>(); m_canSwim = ((Component)this).GetComponent<Humanoid>(); m_avoidLand = ((Component)this).GetComponent<MonsterAI>(); m_waterVolume = WaterVolume.Instances.FirstOrDefault(); } private void Start() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) m_waterDepth = m_waterVolume.Depth(((Component)this).transform.position); } public string DebugInformation(WaterVolume waterVolume) { StringBuilder stringBuilder = new StringBuilder(); Type type = ((object)waterVolume).GetType(); float[] array = (float[])type.GetField("m_normalizedDepth", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(waterVolume); stringBuilder.AppendLine($"m_normalizedDepth: {array?.Length}"); if (array != null && array.Length != 0) { stringBuilder.AppendLine("->\tValues: " + string.Join(",", array) + "\n"); } stringBuilder.AppendLine(string.Format("{0}: {1}", "m_heightmap", waterVolume.m_heightmap)); stringBuilder.AppendLine(string.Format("{0}: {1}", "m_forceDepth", waterVolume.m_forceDepth)); stringBuilder.AppendLine(string.Format("{0}: {1}", "m_surfaceOffset", waterVolume.m_surfaceOffset)); stringBuilder.AppendLine(string.Format("{0}: {1}", "m_useGlobalWind", waterVolume.m_useGlobalWind)); return stringBuilder.ToString(); } private void FixedUpdate() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) if ((double)m_inWater <= -10000.0 || (double)m_inWater < (double)((Component)this).transform.position.y + (double)m_height) { m_body.useGravity = true; ((Character)m_flying).m_flying = false; m_avoidLand.m_avoidLand = true; ((Character)m_canSwim).m_canSwim = true; if (CustomIsOutOfWater()) { return; } } else { m_body.useGravity = false; } ((Character)m_flying).m_flying = true; m_avoidLand.m_avoidLand = false; ((Character)m_canSwim).m_canSwim = false; if ((Object)(object)m_waterVolume != (Object)null && !CustomIsOutOfWater()) { } } public void SetLiquidLevel(float level, LiquidType type, Component liquidObj) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 if ((int)type == 0) { m_inWater = level; } m_liquidSurface = null; m_waterVolume = null; WaterVolume val = (WaterVolume)(object)((liquidObj is WaterVolume) ? liquidObj : null); if (val == null) { LiquidSurface val2 = (LiquidSurface)(object)((liquidObj is LiquidSurface) ? liquidObj : null); if (val2 != null) { m_liquidSurface = val2; } } else { m_waterVolume = val; } } public Transform GetTransform() { return ((Object)(object)this == (Object)null) ? null : ((Component)this).transform; } public int Increment(LiquidType type) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return ++m_liquids[type]; } public int Decrement(LiquidType type) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return --m_liquids[type]; } public bool CustomIsOutOfWater() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) return (double)m_inWater < (double)((Component)this).transform.position.y - (double)m_height; } protected void SetVisible(bool visible) { //IL_005b: 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) if (!((Object)(object)m_lodGroup == (Object)null) && m_lodVisible != visible) { m_lodVisible = visible; if (m_lodVisible) { m_lodGroup.localReferencePoint = m_originalLocalRef; } else { m_lodGroup.localReferencePoint = new Vector3(999999f, 999999f, 999999f); } } } } } namespace MonsterLabZ { [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class Ship : MonoBehaviour { [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(0)] public enum Speed { Stop, Back, Slow, Half, Full } private bool m_forwardPressed; private bool m_backwardPressed; private float m_sendRudderTime; private Vector3 windChangeVelocity = Vector3.zero; private bool sailWasInPosition; [Header("Objects")] public GameObject m_sailObject; public GameObject m_mastObject; public GameObject m_rudderObject; public ShipControlls m_shipControlls; public Transform m_controlGuiPos; [Header("Misc")] public BoxCollider m_floatCollider; public float m_waterLevelOffset; public float m_forceDistance = 1f; public float m_force = 0.5f; public float m_damping = 0.05f; public float m_dampingSideway = 0.05f; public float m_dampingForward = 0.01f; public float m_angularDamping = 0.01f; public float m_disableLevel = -0.5f; public float m_sailForceOffset; public float m_sailForceFactor = 0.1f; public float m_rudderSpeed = 0.5f; public float m_stearForceOffset = -10f; public float m_stearForce = 0.5f; public float m_stearVelForceFactor = 0.1f; public float m_backwardForce = 50f; public float m_rudderRotationMax = 30f; public float m_rudderRotationSpeed = 30f; public float m_minWaterImpactForce = 2.5f; public float m_minWaterImpactInterval = 2f; public float m_waterImpactDamage = 10f; public float m_upsideDownDmgInterval = 1f; public float m_upsideDownDmg = 20f; public EffectList m_waterImpactEffect = new EffectList(); private Speed m_speed; private float m_rudder; private float m_rudderValue; private Vector3 m_sailForce = Vector3.zero; private List<BaseAI> m_players = new List<BaseAI>(); private static List<Ship> m_currentShips = new List<Ship>(); private Rigidbody m_body; private ZNetView m_nview; private Cloth m_sailCloth; private float m_lastDepth = -9999f; private float m_lastWaterImpactTime; private float m_upsideDownDmgTimer; private float m_rudderPaddleTimer; private void Awake() { m_nview = ((Component)this).GetComponent<ZNetView>(); m_body = ((Component)this).GetComponent<Rigidbody>(); Humanoid component = ((Component)this).GetComponent<Humanoid>(); if (Object.op_Implicit((Object)(object)component)) { ((Character)component).m_onDeath = (Action)Delegate.Combine(((Character)component).m_onDeath, new Action(OnDestroyed)); } if (m_nview.GetZDO() == null) { ((Behaviour)this).enabled = false; } m_body.maxDepenetrationVelocity = 2f; Heightmap.ForceGenerateAll(); m_sailCloth = m_sailObject.GetComponentInChildren<Cloth>(); } public bool CanBeRemoved() { return m_players.Count > 0; } private void Start() { m_nview.Register("Stop", (Action<long>)RPC_Stop); m_nview.Register("Forward", (Action<long>)RPC_Forward); m_nview.Register("Backward", (Action<long>)RPC_Backward); m_nview.Register<float>("Rudder", (Action<long, float>)RPC_Rudder); ((MonoBehaviour)this).InvokeRepeating("UpdateOwner", 2f, 2f); } private void PrintStats() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) if (m_players.Count != 0) { Vector3 velocity = m_body.velocity; ZLog.Log((object)("Vel:" + ((Vector3)(ref velocity)).magnitude.ToString("0.0"))); } } public void ApplyControlls(Vector3 dir) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) bool flag = (double)dir.z > 0.5; bool flag2 = (double)dir.z < -0.5; if (flag && !m_forwardPressed) { Forward(); } if (flag2 && !m_backwardPressed) { Backward(); } float fixedDeltaTime = Time.fixedDeltaTime; float num = Mathf.Lerp(0.5f, 1f, Mathf.Abs(m_rudderValue)); m_rudder = dir.x * num; m_rudderValue += m_rudder * m_rudderSpeed * fixedDeltaTime; m_rudderValue = Mathf.Clamp(m_rudderValue, -1f, 1f); if ((double)Time.time - (double)m_sendRudderTime > 0.20000000298023224) { m_sendRudderTime = Time.time; m_nview.InvokeRPC("Rudder", new object[1] { m_rudderValue }); } m_forwardPressed = flag; m_backwardPressed = flag2; } public void Forward() { m_nview.InvokeRPC("Forward", Array.Empty<object>()); } public void Backward() { m_nview.InvokeRPC("Backward", Array.Empty<object>()); } public void Rudder(float rudder) { ((MonoBehaviour)m_nview).Invoke("Rudder", rudder); } private void RPC_Rudder(long sender, float value) { m_rudderValue = value; } public void Stop() { m_nview.InvokeRPC("Stop", Array.Empty<object>()); } private void RPC_Stop(long sender) { m_speed = Speed.Stop; } private void RPC_Forward(long sender) { switch (m_speed) { case Speed.Stop: m_speed = Speed.Slow; break; case Speed.Back: m_speed = Speed.Stop; break; case Speed.Slow: m_speed = Speed.Half; break; case Speed.Half: m_speed = Speed.Full; break; } } private void RPC_Backward(long sender) { switch (m_speed) { case Speed.Stop: m_speed = Speed.Back; break; case Speed.Slow: m_speed = Speed.Stop; break; case Speed.Half: m_speed = Speed.Slow; break; case Speed.Full: m_speed = Speed.Half; break; case Speed.Back: break; } } private void FixedUpdate() { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0192: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: 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_01cd: 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_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0432: Unknown result type (might be due to invalid IL or missing references) //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04d6: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04f3: Unknown result type (might be due to invalid IL or missing references) //IL_04fa: Unknown result type (might be due to invalid IL or missing references) //IL_0510: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d1: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_06ac: Unknown result type (might be due to invalid IL or missing references) //IL_06b7: Unknown result type (might be due to invalid IL or missing references) //IL_06c2: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_0700: Unknown result type (might be due to invalid IL or missing references) //IL_0709: Unknown result type (might be due to invalid IL or missing references) //IL_070e: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Unknown result type (might be due to invalid IL or missing references) //IL_075d: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_076e: Unknown result type (might be due to invalid IL or missing references) //IL_0779: Unknown result type (might be due to invalid IL or missing references) //IL_078f: Unknown result type (might be due to invalid IL or missing references) //IL_0794: Unknown result type (might be due to invalid IL or missing references) //IL_0799: Unknown result type (might be due to invalid IL or missing references) //IL_0809: Unknown result type (might be due to invalid IL or missing references) //IL_080d: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ef: Unknown result type (might be due to invalid IL or missing references) //IL_07f6: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) UpdateControlls(Time.fixedDeltaTime); UpdateSail(Time.fixedDeltaTime); if (Object.op_Implicit((Object)(object)m_nview) && !m_nview.IsOwner()) { return; } UpdateUpsideDmg(Time.fixedDeltaTime); if (m_players.Count == 0) { m_speed = Speed.Full; m_rudderValue = 0f; } float num = 1f; Vector3 worldCenterOfMass = m_body.worldCenterOfMass; Vector3 val = ((Component)m_floatCollider).transform.position + ((Component)m_floatCollider).transform.forward * m_floatCollider.size.z / 2f; Vector3 val2 = ((Component)m_floatCollider).transform.position - ((Component)m_floatCollider).transform.forward * m_floatCollider.size.z / 2f; Vector3 val3 = ((Component)m_floatCollider).transform.position - ((Component)m_floatCollider).transform.right * m_floatCollider.size.x / 2f; Vector3 val4 = ((Component)m_floatCollider).transform.position + ((Component)m_floatCollider).transform.right * m_floatCollider.size.x / 2f; double num2 = Floating.GetLiquidLevel(worldCenterOfMass, num, (LiquidType)10); float liquidLevel = Floating.GetLiquidLevel(val3, num, (LiquidType)10); float liquidLevel2 = Floating.GetLiquidLevel(val4, num, (LiquidType)10); float liquidLevel3 = Floating.GetLiquidLevel(val, num, (LiquidType)10); float liquidLevel4 = Floating.GetLiquidLevel(val2, num, (LiquidType)10); double num3 = liquidLevel; float num4 = (float)((num2 + num3 + (double)liquidLevel2 + (double)liquidLevel3 + (double)liquidLevel4) / 5.0); float num5 = worldCenterOfMass.y - num4 - m_waterLevelOffset; if (!((double)num5 > (double)m_disableLevel)) { m_body.WakeUp(); UpdateWaterForce(num5, Time.fixedDeltaTime); Vector3 val5 = default(Vector3); ((Vector3)(ref val5))..ctor(val3.x, liquidLevel, val3.z); Vector3 val6 = default(Vector3); ((Vector3)(ref val6))..ctor(val4.x, liquidLevel2, val4.z); Vector3 val7 = default(Vector3); ((Vector3)(ref val7))..ctor(val.x, liquidLevel3, val.z); Vector3 val8 = default(Vector3); ((Vector3)(ref val8))..ctor(val2.x, liquidLevel4, val2.z); float fixedDeltaTime = Time.fixedDeltaTime; float num6 = fixedDeltaTime * 50f; float num7 = Mathf.Clamp01(Mathf.Abs(num5) / m_forceDistance); m_body.AddForceAtPosition(Vector3.up * m_force * num7 * num6, worldCenterOfMass, (ForceMode)2); float num8 = Vector3.Dot(m_body.velocity, ((Component)this).transform.forward); float num9 = Vector3.Dot(m_body.velocity, ((Component)this).transform.right); Vector3 velocity = m_body.velocity; float num10 = velocity.y * velocity.y * Mathf.Sign(velocity.y) * m_damping * num7; float num11 = num8 * num8 * Mathf.Sign(num8) * m_dampingForward * num7; float num12 = num9 * num9 * Mathf.Sign(num9) * m_dampingSideway * num7; velocity.y -= Mathf.Clamp(num10, -1f, 1f); Vector3 velocity2 = velocity - ((Component)this).transform.forward * Mathf.Clamp(num11, -1f, 1f) - ((Component)this).transform.right * Mathf.Clamp(num12, -1f, 1f); double num13 = ((Vector3)(ref velocity2)).magnitude; Vector3 velocity3 = m_body.velocity; double num14 = ((Vector3)(ref velocity3)).magnitude; if (num13 > num14) { Vector3 normalized = ((Vector3)(ref velocity2)).normalized; velocity3 = m_body.velocity; double num15 = ((Vector3)(ref velocity3)).magnitude; velocity2 = normalized * (float)num15; } if (m_players.Count < 0) { velocity2.x *= 0.1f; velocity2.z *= 0.1f; } m_body.velocity = velocity2; Rigidbody body = m_body; body.angularVelocity -= m_body.angularVelocity * m_angularDamping * num7; float num16 = 0.15f; float num17 = 0.5f; float num18 = Mathf.Clamp((val7.y - val.y) * num16, 0f - num17, num17); float num19 = Mathf.Clamp((val8.y - val2.y) * num16, 0f - num17, num17); float num20 = Mathf.Clamp((val5.y - val3.y) * num16, 0f - num17, num17); float num21 = Mathf.Clamp((val6.y - val4.y) * num16, 0f - num17, num17); float num22 = Mathf.Sign(num18) * Mathf.Abs(Mathf.Pow(num18, 2f)); float num23 = Mathf.Sign(num19) * Mathf.Abs(Mathf.Pow(num19, 2f)); float num24 = Mathf.Sign(num20) * Mathf.Abs(Mathf.Pow(num20, 2f)); float num25 = Mathf.Sign(num21) * Mathf.Abs(Mathf.Pow(num21, 2f)); m_body.AddForceAtPosition(Vector3.up * num22 * num6, val, (ForceMode)2); m_body.AddForceAtPosition(Vector3.up * num23 * num6, val2, (ForceMode)2); m_body.AddForceAtPosition(Vector3.up * num24 * num6, val3, (ForceMode)2); m_body.AddForceAtPosition(Vector3.up * num25 * num6, val4, (ForceMode)2); float sailSize = 0f; if (m_speed == Speed.Full) { sailSize = 1f; } else if (m_speed == Speed.Half) { sailSize = 0.5f; } m_body.AddForceAtPosition(GetSailForce(sailSize, fixedDeltaTime), worldCenterOfMass + ((Component)this).transform.up * m_sailForceOffset, (ForceMode)2); Vector3 val9 = ((Component)this).transform.position + ((Component)this).transform.forward * m_stearForceOffset; m_body.AddForceAtPosition(((Component)this).transform.right * (num8 * m_stearVelForceFactor) * (0f - m_rudderValue) * fixedDeltaTime, val9, (ForceMode)2); Vector3 val10 = Vector3.zero; switch (m_speed) { case Speed.Back: val10 += -((Component)this).transform.forward * m_backwardForce * (1f - Mathf.Abs(m_rudderValue)); break; case Speed.Slow: val10 += ((Component)this).transform.forward * m_backwardForce * (1f - Mathf.Abs(m_rudderValue)); break; } if (m_speed == Speed.Back || m_speed == Speed.Slow) { float num26 = ((m_speed == Speed.Back) ? (-1f) : 1f); val10 += ((Component)this).transform.right * m_stearForce * (0f - m_rudderValue) * num26; } m_body.AddForceAtPosition(val10 * fixedDeltaTime, val9, (ForceMode)2); ApplyEdgeForce(Time.fixedDeltaTime); } } private void UpdateUpsideDmg(float dt) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown if ((double)((Component)this).transform.up.y >= 0.0) { return; } m_upsideDownDmgTimer += dt; if (!((double)m_upsideDownDmgTimer <= (double)m_upsideDownDmgInterval)) { m_upsideDownDmgTimer = 0f; IDestructible component = ((Component)this).GetComponent<IDestructible>(); if (component != null) { component.Damage(new HitData { m_damage = { m_blunt = m_upsideDownDmg }, m_point = ((Component)this).transform.position, m_dir = Vector3.up }); } } } private Vector3 GetSailForce(float sailSize, float dt) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) Vector3 windDir = EnvMan.instance.GetWindDir(); float num = Mathf.Lerp(0.25f, 1f, EnvMan.instance.GetWindIntensity()); float num2 = GetWindAngleFactor() * num; Vector3 forward = ((Component)this).transform.forward; m_sailForce = Vector3.SmoothDamp(m_sailForce, Vector3.Normalize(windDir + forward) * num2 * m_sailForceFactor * sailSize, ref windChangeVelocity, 1f, 99f); return m_sailForce; } public float GetWindAngleFactor() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) float num = Vector3.Dot(EnvMan.instance.GetWindDir(), -((Component)this).transform.forward); return Mathf.Lerp(0.7f, 1f, 1f - Mathf.Abs(num)) * (1f - Utils.LerpStep(0.75f, 0.8f, num)); } private void UpdateWaterForce(float depth, float dt) { //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown if ((double)m_lastDepth == -9999.0) { m_lastDepth = depth; return; } double num = (double)depth - (double)m_lastDepth; m_lastDepth = depth; double num2 = dt; float num3 = (float)(num / num2); if ((double)num3 > 0.0 || (double)Mathf.Abs(num3) <= (double)m_minWaterImpactForce || (double)Time.time - (double)m_lastWaterImpactTime <= (double)m_minWaterImpactInterval) { return; } m_lastWaterImpactTime = Time.time; m_waterImpactEffect.Create(((Component)this).transform.position, ((Component)this).transform.rotation, (Transform)null, 1f, -1); if (m_players.Count > 0) { IDestructible component = ((Component)this).GetComponent<IDestructible>(); if (component != null) { component.Damage(new HitData { m_damage = { m_blunt = m_waterImpactDamage }, m_point = ((Component)this).transform.position, m_dir = Vector3.up }); } } } private void ApplyEdgeForce(float dt) { //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_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) Vector3 position = ((Component)this).transform.position; float magnitude = ((Vector3)(ref position)).magnitude; float num = 10420f; if (!((double)magnitude <= (double)num)) { m_body.AddForce(Vector3.Normalize(((Component)this).transform.position) * (Utils.LerpStep(num, 10500f, magnitude) * 8f) * dt, (ForceMode)2); } } private void FixTilt() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_012b: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) float num = Mathf.Asin(((Component)this).transform.right.y); float num2 = Mathf.Asin(((Component)this).transform.forward.y); if ((double)Mathf.Abs(num) > 0.5235987901687622) { if ((double)num > 0.0) { ((Component)this).transform.RotateAround(((Component)this).transform.position, ((Component)this).transform.forward, (float)((0.0 - (double)Time.fixedDeltaTime) * 20.0)); } else { ((Component)this).transform.RotateAround(((Component)this).transform.position, ((Component)this).transform.forward, Time.fixedDeltaTime * 20f); } } if (!((double)Mathf.Abs(num2) <= 0.5235987901687622)) { if ((double)num2 > 0.0) { ((Component)this).transform.RotateAround(((Component)this).transform.position, ((Component)this).transform.right, (float)((0.0 - (double)Time.fixedDeltaTime) * 20.0)); } else { ((Component)this).transform.RotateAround(((Component)this).transform.position, ((Component)this).transform.right, Time.fixedDeltaTime * 20f); } } } private void UpdateControlls(float dt) { if (m_nview.IsOwner()) { m_nview.GetZDO().Set("forward", (int)m_speed); m_nview.GetZDO().Set("rudder", m_rudderValue); return; } m_speed = (Speed)m_nview.GetZDO().GetInt("forward", 0); if (!((double)Time.time - (double)m_sendRudderTime <= 1.0)) { m_rudderValue = m_nview.GetZDO().GetFloat("rudder", 0f); } } public bool IsSailUp() { return m_speed == Speed.Half || m_speed == Speed.Full; } private void UpdateSail(float dt) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: 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) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) UpdateSailSize(dt); Vector3 val = Vector3.Cross(Vector3.Cross(EnvMan.instance.GetWindDir(), ((Component)this).transform.up), ((Component)this).transform.up); if (m_speed == Speed.Full || m_speed == Speed.Half) { float num = (float)(0.5 + (double)Vector3.Dot(((Component)this).transform.forward, val) * 0.5); m_mastObject.transform.rotation = Quaternion.RotateTowards(m_mastObject.transform.rotation, Quaternion.LookRotation(-Vector3.Lerp(val, Vector3.Normalize(val - ((Component)this).transform.forward), num), ((Component)this).transform.up), 30f * dt); } else if (m_speed == Speed.Back) { m_mastObject.transform.rotation = Quaternion.RotateTowards(m_mastObject.transform.rotation, Quaternion.RotateTowards(Quaternion.LookRotation(-((Component)this).transform.forward, ((Component)this).transform.up), Quaternion.LookRotation(-val, ((Component)this).transform.up), 80f), 30f * dt); } } private void UpdateRudder(float dt, bool HasPlayerOnboard) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)m_rudderObject)) { return; } Quaternion val = Quaternion.Euler(0f, m_rudderRotationMax * (0f - m_rudderValue), 0f); if (HasPlayerOnboard) { if (m_speed == Speed.Full) { m_rudderPaddleTimer += dt; val *= Quaternion.Euler(0f, Mathf.Sin(m_rudderPaddleTimer * 6f) * 20f, 0f); } else if (m_speed == Speed.Back) { m_rudderPaddleTimer += dt; val *= Quaternion.Euler(0f, Mathf.Sin(m_rudderPaddleTimer * -3f) * 40f, 0f); } } m_rudderObject.transform.localRotation = Quaternion.Slerp(m_rudderObject.transform.localRotation, val, 0.5f); } private void UpdateSailSize(float dt) { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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) float num = 0f; switch (m_speed) { case Speed.Stop: num = 0.1f; break; case Speed.Back: num = 0.1f; break; case Speed.Slow: num = 0.1f; break; case Speed.Half: num = 0.5f; break; case Speed.Full: num = 1f; break; } Vector3 localScale = m_sailObject.transform.localScale; bool flag = (double)Mathf.Abs(localScale.y - num) < 0.009999999776482582; if (!flag) { localScale.y = Mathf.MoveTowards(localScale.y, num, dt); m_sailObject.transform.localScale = localScale; } if (Object.op_Implicit((Object)(object)m_sailCloth)) { if (m_speed == Speed.Stop || m_speed == Speed.Slow || m_speed == Speed.Back) { if (flag && m_sailCloth.enabled) { m_sailCloth.enabled = false; } } else if (flag) { if (!sailWasInPosition) { m_sailCloth.enabled = false; m_sailCloth.enabled = true; } } else { m_sailCloth.enabled = true; } } sailWasInPosition = flag; } private void OnTriggerEnter(Collider collider) { BaseAI component = ((Component)collider).GetComponent<BaseAI>(); if (Object.op_Implicit((Object)(object)component)) { m_players.Add(component); if ((Object)(object)component == (Object)(object)((Component)this).gameObject.GetComponent<BaseAI>()) { m_currentShips.Add(this); } } } private void OnTriggerExit(Collider collider) { BaseAI component = ((Component)collider).GetComponent<BaseAI>(); if (Object.op_Implicit((Object)(object)component)) { m_players.Remove(component); if ((Object)(object)component == (Object)(object)((Component)this).gameObject.GetComponent<Humanoid>()) { m_currentShips.Remove(this); } } } public bool IsPlayerInBoat(BaseAI baseAI) { return m_players.Contains(baseAI); } public bool HasPlayerOnboard() { return m_players.Count > 0; } private void OnDestroyed() { if (m_nview.IsValid() && m_nview.IsOwner()) { m_currentShips.Remove(this); } } public static Ship GetLocalShip() { return (m_currentShips.Count == 0) ? null : m_currentShips[m_currentShips.Count - 1]; } public bool HaveControllingPlayer() { return m_players.Count != 0 && m_shipControlls.HaveValidUser(); } public bool IsOwner() { return m_nview.IsValid() && m_nview.IsOwner(); } public float GetSpeed() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) return Vector3.Dot(m_body.velocity, ((Component)this).transform.forward); } public Speed GetSpeedSetting() { return m_speed; } public float GetRudder() { return m_rudder; } public float GetRudderValue() { return m_rudderValue; } public float GetShipYawAngle() { //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) Camera mainCamera = Utils.GetMainCamera(); return ((Object)(object)mainCamera == (Object)null) ? 0f : (0f - Utils.YawFromDirection(((Component)mainCamera).transform.InverseTransformDirection(((Component)this).transform.forward))); } public float GetWindAngle() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) return 0f - Utils.YawFromDirection(((Component)this).transform.InverseTransformDirection(EnvMan.instance.GetWindDir())); } private void OnDrawGizmosSelected() { //IL_0001: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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_003d: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0064: 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) Gizmos.color = Color.red; Gizmos.DrawWireSphere(((Component)this).transform.position + ((Component)this).transform.forward * m_stearForceOffset, 0.25f); Gizmos.color = Color.yellow; Gizmos.DrawWireSphere(((Component)this).transform.position + ((Component)this).transform.up * m_sailForceOffset, 0.25f); } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class AIShipEffects : MonoBehaviour { public Transform m_shadow; public float m_offset = 0.01f; public float m_minimumWakeVel = 5f; public GameObject m_speedWakeRoot; public GameObject m_wakeSoundRoot; public GameObject m_inWaterSoundRoot; public float m_audioFadeDuration = 2f; public AudioSource m_sailSound; public float m_sailFadeDuration = 1f; public GameObject m_splashEffects; private float m_sailBaseVol = 1f; private ParticleSystem[] m_wakeParticles; [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(new byte[] { 1, 0, 1 })] private List<KeyValuePair<AudioSource, float>> m_wakeSounds = new List<KeyValuePair<AudioSource, float>>(); [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(new byte[] { 1, 0, 1 })] private List<KeyValuePair<AudioSource, float>> m_inWaterSounds = new List<KeyValuePair<AudioSource, float>>(); private Rigidbody m_body; private Ship m_ship; private void Awake() { ZNetView componentInParent = ((Component)this).GetComponentInParent<ZNetView>(); if (Object.op_Implicit((Object)(object)componentInParent) && componentInParent.GetZDO() == null) { ((Behaviour)this).enabled = false; return; } m_body = ((Component)this).GetComponentInParent<Rigidbody>(); m_ship = ((Component)this).GetComponentInParent<Ship>(); if (Object.op_Implicit((Object)(object)m_speedWakeRoot)) { m_wakeParticles = m_speedWakeRoot.GetComponentsInChildren<ParticleSystem>(); } if (Object.op_Implicit((Object)(object)m_wakeSoundRoot)) { AudioSource[] componentsInChildren = m_wakeSoundRoot.GetComponentsInChildren<AudioSource>(); foreach (AudioSource val in componentsInChildren) { val.pitch = Random.Range(0.9f, 1.1f); m_wakeSounds.Add(new KeyValuePair<AudioSource, float>(val, val.volume)); } } if (Object.op_Implicit((Object)(object)m_inWaterSoundRoot)) { AudioSource[] componentsInChildren2 = m_inWaterSoundRoot.GetComponentsInChildren<AudioSource>(); foreach (AudioSource val2 in componentsInChildren2) { val2.pitch = Random.Range(0.9f, 1.1f); m_inWaterSounds.Add(new KeyValuePair<AudioSource, float>(val2, val2.volume)); } } if (Object.op_Implicit((Object)(object)m_sailSound)) { m_sailBaseVol = m_sailSound.volume; m_sailSound.pitch = Random.Range(0.9f, 1.1f); } } private void LateUpdate() { //IL_0007: 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) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) float liquidLevel = Floating.GetLiquidLevel(((Component)this).transform.position, 1f, (LiquidType)10); Vector3 position = ((Component)this).transform.position; float deltaTime = Time.deltaTime; if ((double)position.y > (double)liquidLevel) { SetWake(enabled: false, deltaTime); FadeSounds(m_inWaterSounds, enabled: false, deltaTime); return; } Vector3 velocity = m_body.velocity; bool enabled = (double)((Vector3)(ref velocity)).magnitude > (double)m_minimumWakeVel; FadeSounds(m_inWaterSounds, enabled: true, deltaTime); SetWake(enabled, deltaTime); if (Object.op_Implicit((Object)(object)m_sailSound)) { FadeSound(m_sailSound, m_ship.IsSailUp() ? m_sailBaseVol : 0f, m_sailFadeDuration, deltaTime); } } private void SetWake(bool enabled, float dt) { //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) ParticleSystem[] wakeParticles = m_wakeParticles; foreach (ParticleSystem val in wakeParticles) { EmissionModule emission = val.emission; ((EmissionModule)(ref emission)).enabled = enabled; } FadeSounds(m_wakeSounds, enabled, dt); } private void FadeSounds([<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(new byte[] { 1, 0, 1 })] List<KeyValuePair<AudioSource, float>> sources, bool enabled, float dt) { foreach (KeyValuePair<AudioSource, float> source in sources) { if (enabled) { FadeSound(source.Key, source.Value, m_audioFadeDuration, dt); } else { FadeSound(source.Key, 0f, m_audioFadeDuration, dt); } } } private void FadeSound(AudioSource source, float target, float fadeDuration, float dt) { float num = dt / fadeDuration; if ((double)target > 0.0) { if (!source.isPlaying) { source.Play(); } source.volume = Mathf.MoveTowards(source.volume, target, num); } else if (source.isPlaying) { source.volume = Mathf.MoveTowards(source.volume, 0f, num); if (!((double)source.volume > 0.0)) { source.Stop(); } } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public static class CommonResources { public static GameObject DwarfGoblinSpear; public static ItemData DwarfGoblinSpearData; public static void findCommonResources(ZNetScene ZNS) { DwarfGoblinSpear = ZNS.m_prefabs.Where([<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(0)] (GameObject p) => ((Object)p).name == "DwarfGoblinSpear").FirstOrDefault(); DwarfGoblinSpearData = DwarfGoblinSpear.GetComponent<ItemDrop>().m_itemData; } } public class AmbienceSpawn : MonoBehaviour { private const float m_minPlayerDistance = 250f; private const float m_blockedMinTime = 4f; [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(1)] public GameObject m_AmbientPrefab; public float m_interval = 0.5f; private float m_lastSpawnTime; private float m_time; private void Start() { m_time = Random.Range(0f, m_interval); } private void Update() { m_time += Time.deltaTime; if (!((double)m_time <= (double)m_interval)) { m_time = 0f; Spawn(); } } private void Spawn() { //IL_0016: 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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer == (Object)null || (double)Vector3.Distance(((Component)localPlayer).transform.position, ((Component)this).transform.position) > 250.0) { m_lastSpawnTime = Time.time; return; } Object.Instantiate<GameObject>(m_AmbientPrefab, ((Component)this).transform.position, ((Component)this).transform.rotation); m_lastSpawnTime = Time.time; } } public class BillboardMove : MonoBehaviour { public float scrollSpeed = 0.5f; [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(1)] public Renderer rend; private void Start() { rend = ((Component)this).GetComponent<Renderer>(); } private void Update() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) float num = Time.time * scrollSpeed; rend.material.SetTextureOffset("_MainTex", new Vector2(num, 0f)); } } public class RotateTor : MonoBehaviour { public float TorRotationSpeed; private void Update() { //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_0017: Unknown result type (might be due to invalid IL or missing references) //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) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) Quaternion val = Quaternion.AngleAxis(TorRotationSpeed * Time.deltaTime, Vector3.down); Quaternion val2 = Quaternion.AngleAxis(TorRotationSpeed * Time.deltaTime, Vector3.down); Transform transform = ((Component)this).transform; transform.rotation *= val; Transform transform2 = ((Component)this).transform; transform2.rotation *= val2; } } public class RotateTor1 : MonoBehaviour { public float TorRotationSpeed; private void Update() { //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_0017: Unknown result type (might be due to invalid IL or missing references) //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) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) Quaternion val = Quaternion.AngleAxis(TorRotationSpeed * Time.deltaTime, Vector3.down); Quaternion val2 = Quaternion.AngleAxis(TorRotationSpeed * Time.deltaTime, Vector3.down); Transform transform = ((Component)this).transform; transform.rotation *= val; Transform transform2 = ((Component)this).transform; transform2.rotation *= val2; } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class SetTextureOffset : MonoBehaviour { public Vector2 offsetValue; public Renderer rend; private void Start() { rend = ((Component)this).GetComponent<Renderer>(); ((MonoBehaviour)this).StartCoroutine(MoveTheTexture()); } private IEnumerator MoveTheTexture() { while (true) { yield return (object)new WaitForSeconds(5f); offsetValue = rend.material.GetTextureOffset("_MainTex"); offsetValue.y += 1f / 3f; rend.material.SetTextureOffset("_MainTex", new Vector2(offsetValue.x, offsetValue.y)); } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class TorGravity : MonoBehaviour { public float ForceGN; public float BodyKf; private HashSet<Rigidbody> affectedBod = new HashSet<Rigidbody>(); private Rigidbody componRigidbody; private void Start() { componRigidbody = ((Component)this).GetComponent<Rigidbody>(); } private void OnTriggerEnter(Collider other) { if ((Object)(object)other.attachedRigidbody != (Object)null) { affectedBod.Add(other.attachedRigidbody); } } private void OnTriggerExit(Collider other) { if ((Object)(object)other.attachedRigidbody != (Object)null) { affectedBod.Remove(other.attachedRigidbody); } } private void FixedUpdate() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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_007c: Unknown result type (might be due to invalid IL or missing references) foreach (Rigidbody item in affectedBod) { Vector3 val = ((Component)this).transform.position - item.position; Vector3 val2 = ((Component)this).transform.position - item.position; float sqrMagnitude = ((Vector3)(ref val2)).sqrMagnitude; float num = ForceGN * (item.mass - componRigidbody.mass) / sqrMagnitude; item.AddForce(val * num * BodyKf); } } } [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class TornadoGravity : MonoBehaviour { public float ForceG; public float BodyKoeff; public float OrbitSpeed; private HashSet<Rigidbody> affectedBodies = new HashSet<Rigidbody>(); private Rigidbody componentRigidbody; private void Start() { componentRigidbody = ((Component)this).GetComponent<Rigidbody>(); } private void OnTriggerEnter(Collider other) { if ((Object)(object)other.attachedRigidbody != (Object)null) { affectedBodies.Add(other.attachedRigidbody); } } private void OnTriggerExit(Collider other) { if ((Object)(object)other.attachedRigidbody != (Object)null) { affectedBodies.Remove(other.attachedRigidbody); } } private void FixedUpdate() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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) foreach (Rigidbody affectedBody in affectedBodies) { Vector3 val = ((Component)this).transform.position - affectedBody.position; Vector3 normalized = ((Vector3)(ref val)).normalized; val = ((Component)this).transform.position - affectedBody.position; float magnitude = ((Vector3)(ref val)).magnitude; float num = ForceG * affectedBody.mass * componentRigidbody.mass / (magnitude * magnitude); affectedBody.AddForce(normalized * num * BodyKoeff); ((Component)affectedBody).transform.RotateAround(Vector3.zero, Vector3.down, 10f * OrbitSpeed * 120f); } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class WaterSafing : MonoBehaviour { public float power; private void Start() { } private void Update() { } private void OnTriggerStay(Collider col) { //IL_0022: 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) if (((Component)col).tag == "Physical") { ((Component)col).GetComponent<Rigidbody>().AddForce(((Component)this).transform.up * power); } if (((Component)col).tag == "Player") { if (Input.GetKey((KeyCode)32)) { ((Component)col).GetComponent<CharacterController>().skinWidth = 3f; } else { ((Component)col).GetComponent<CharacterController>().skinWidth = 0.08f; } } } private void OnTriggerExit(Collider col) { if (((Component)col).tag == "Player") { ((Component)col).GetComponent<CharacterController>().skinWidth = 0.08f; } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class ML_PlantGrow : SlowUpdate, Hoverable { [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(0)] private enum Status { Healthy } public string m_name = "Plant"; public float m_growTime = 10f; public float m_growTimeMax = 2000f; public GameObject[] m_grownPrefabs = (GameObject[])(object)new GameObject[0]; public float m_minScale = 1f; public float m_maxScale = 1f; public float m_growRadius = 1f; public bool m_destroyIfCantGrow; [SerializeField] private GameObject m_healthy; [SerializeField] private GameObject m_healthyGrown; public EffectList m_growEffect = new EffectList(); private Status m_status; private ZNetView m_nview; private float m_updateTime; private float m_spawnTime; private static int m_spaceMask; private static int m_roofMask; public override void Awake() { ((SlowUpdate)this).Awake(); m_nview = ((Component)this).gameObject.GetComponent<ZNetView>(); if (m_nview.GetZDO() != null) { if (m_nview.IsOwner() && m_nview.GetZDO().GetLong("plantTime", 0L) == 0) { m_nview.GetZDO().Set("plantTime", ZNet.instance.GetTime().Ticks); } m_spawnTime = Time.time; } } public string GetHoverText() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: 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_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) Status status = m_status; Status val = status; if ((int)val == 0) { return Localization.instance.Localize(m_name + " ( $piece_plant_healthy )"); } return ""; } public string GetHoverName() { return Localization.instance.Localize(m_name); } private double TimeSincePlanted() { DateTime dateTime = new DateTime(m_nview.GetZDO().GetLong("plantTime", ZNet.instance.GetTime().Ticks)); return (ZNet.instance.GetTime() - dateTime).TotalSeconds; } public override void SUpdate() { //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Invalid comparison between Unknown and I4 //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Invalid comparison between Unknown and I4 //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Invalid comparison between Unknown and I4 if (m_nview.IsValid() && !((double)Time.time - (double)m_updateTime < 10.0)) { m_updateTime = Time.time; double num = TimeSincePlanted(); UpdateHealth(num); float growTime = GetGrowTime(); if (Object.op_Implicit((Object)(object)m_healthyGrown)) { bool flag = num > (double)growTime * 0.5; m_healthy.SetActive(!flag && (int)m_status == 0); m_healthyGrown.SetActive(flag && (int)m_status == 0); } else { m_healthy.SetActive((int)m_status == 0); } if (m_nview.IsOwner() && !((double)Time.time - (double)m_spawnTime <= 10.0) && !(num <= (double)growTime)) { Grow(); } } } private float GetGrowTime() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: 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) State state = Random.state; float value = Random.value; Random.state = state; return Mathf.Lerp(m_growTime, m_growTimeMax, value); } private void Grow() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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) if ((int)m_status > 0) { if (m_destroyIfCantGrow) { Destroy(); } return; } GameObject val = m_grownPrefabs[Random.Range(0, m_grownPrefabs.Length)]; Quaternion val2 = Quaternion.Euler(0f, Random.Range(0f, 360f), 0f); Vector3 position = ((Component)this).transform.position; Quaternion val3 = val2; GameObject val4 = Object.Instantiate<GameObject>(val, position, val3); ZNetView component = val4.GetComponent<ZNetView>(); float num = Random.Range(m_minScale, m_maxScale); Vector3 localScale = default(Vector3); ((Vector3)(ref localScale))..ctor(num, num, num); component.SetLocalScale(localScale); TreeBase component2 = val4.GetComponent<TreeBase>(); if (Object.op_Implicit((Object)(object)component2)) { component2.Grow(); } m_nview.Destroy(); m_growEffect.Create(((Component)this).transform.position, val2, (Transform)null, num, -1); } private void UpdateHealth(double timeSincePlanted) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (timeSincePlanted < 10.0) { m_status = (Status)0; } } private void Destroy() { //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) //IL_002d: Expected O, but got Unknown IDestructible component = ((Component)this).GetComponent<IDestructible>(); if (component != null) { component.Damage(new HitData { m_damage = { m_damage = 9999f } }); } } private Status GetStatus() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return m_status; } } [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class HitAreaSFX : MonoBehaviour, IDestructible { public Action<HitData, HitAreaSFX> m_onHit; public float m_health = 100000f; [NonSerialized] public GameObject m_parentObject; public float m_hitNoise; public EffectList m_hitEffect = new EffectList(); public DestructibleType GetDestructibleType() { return (DestructibleType)1; } public void Damage(HitData hit) { //IL_0028: 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_005c: Unknown result type (might be due to invalid IL or missing references) float totalDamage = hit.GetTotalDamage(); if ((double)totalDamage <= 0.0) { return; } m_hitEffect.Create(hit.m_point, Quaternion.identity, ((Component)this).transform, 1f, -1); if ((double)m_hitNoise > 0.0) { Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 10f); if (Object.op_Implicit((Object)(object)closestPlayer)) { ((Character)closestPlayer).AddNoise(m_hitNoise); } } if (m_onHit != null) { m_onHit(hit, this); } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class InstantiatePrefabBoatKinematic : MonoBehaviour { public List<GameObject> m_spawnPrefab; private List<GameObject> m_spawnedMobs = new List<GameObject>(); public bool m_attach; public bool m_moveToTop; public void Start() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) foreach (GameObject item in m_spawnPrefab) { GameObject val = Object.Instantiate<GameObject>(item, ((Component)((Component)this).transform).transform.position, ((Component)((Component)this).transform).transform.rotation); val.transform.SetParent(((Component)this).transform, true); m_spawnedMobs.Add(val); } } public void OnDestroy() { foreach (GameObject spawnedMob in m_spawnedMobs) { if ((Object)(object)spawnedMob != (Object)null) { spawnedMob.transform.parent = null; spawnedMob.GetComponent<Rigidbody>().isKinematic = false; } } } } [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class InstantiatePrefabBoat : MonoBehaviour { public List<GameObject> m_spawnPrefab; private List<GameObject> m_spawnedMobs = new List<GameObject>(); public bool m_attach; public bool m_moveToTop; public void Start() { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) ZLog.Log((object)(((object)this).GetType().Name + "." + MethodBase.GetCurrentMethod().Name + "()")); foreach (GameObject item in m_spawnPrefab) { ZLog.Log((object)("[" + ((object)this).GetType().Name + "] Spawning " + ((Object)item).name)); GameObject val = Object.Instantiate<GameObject>(item, ((Component)((Component)this).transform).transform.position, ((Component)((Component)this).transform).transform.rotation); val.transform.SetParent(((Component)this).transform, true); m_spawnedMobs.Add(val); } } public void OnDestroy() { ZLog.Log((object)(((object)this).GetType().Name + "." + MethodBase.GetCurrentMethod().Name + "()")); foreach (GameObject spawnedMob in m_spawnedMobs) { if ((Object)(object)spawnedMob != (Object)null) { ZLog.Log((object)("[" + ((object)this).GetType().Name + "] Reparent " + ((Object)spawnedMob).name)); spawnedMob.transform.parent = null; } } } } [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public class InstantiatePrefabSpawn : MonoBehaviour { public List<GameObject> m_spawnPrefab; private List<GameObject> m_spawnedMobs = new List<GameObject>(); public bool m_attach; public bool m_moveToTop; public void Start() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) ZLog.Log((object)(((object)this).GetType().Name + "." + MethodBase.GetCurrentMethod().Name + "()")); foreach (GameObject item in m_spawnPrefab) { ZLog.Log((object)("[" + ((object)this).GetType().Name + "] Spawning " + ((Object)item).name)); GameObject val = Object.Instantiate<GameObject>(item, ((Component)((Component)this).transform).transform.position, ((Component)((Component)this).transform).transform.rotation); val.transform.SetParent(((Component)this).transform, true); val.layer = 17; m_spawnedMobs.Add(val); } } public void OnDestroy() { ZLog.Log((object)(((object)this).GetType().Name + "." + MethodBase.GetCurrentMethod().Name + "()")); foreach (GameObject spawnedMob in m_spawnedMobs) { if ((Object)(object)spawnedMob != (Object)null) { ZLog.Log((object)("[" + ((object)this).GetType().Name + "] Reparent " + ((Object)spawnedMob).name)); spawnedMob.transform.parent = null; spawnedMob.GetComponent<Rigidbody>().isKinematic = false; spawnedMob.layer = 9; Humanoid component = spawnedMob.GetComponent<Humanoid>(); if ((Object)(object)component != (Object)null) { component.m_rightItem = CommonResources.DwarfGoblinSpearData; component.m_inventory.m_inventory[0] = CommonResources.DwarfGoblinSpearData; ((Character)component).m_turnSpeed = 300f; ((Character)component).m_runTurnSpeed = 100f; } } } } } [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class InstantiatePrefabLoxRider : MonoBehaviour { public List<GameObject> m_spawnPrefab; private List<GameObject> m_spawnedMobs = new List<GameObject>(); public bool m_attach; public bool m_moveToTop; public void Start() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) foreach (GameObject item in m_spawnPrefab) { GameObject val = Object.Instantiate<GameObject>(item, ((Component)((Component)this).transform).transform.position, ((Component)((Component)this).transform).transform.rotation); val.transform.SetParent(((Component)this).transform, true); val.layer = 17; m_spawnedMobs.Add(val); } } public void OnDestroy() { foreach (GameObject spawnedMob in m_spawnedMobs) { if ((Object)(object)spawnedMob != (Object)null) { spawnedMob.transform.parent = null; spawnedMob.GetComponent<Rigidbody>().isKinematic = false; spawnedMob.layer = 9; Humanoid component = spawnedMob.GetComponent<Humanoid>(); if ((Object)(object)component != (Object)null) { component.m_rightItem = CommonResources.DwarfGoblinSpearData; component.m_inventory.m_inventory[0] = CommonResources.DwarfGoblinSpearData; ((Character)component).m_turnSpeed = 300f; ((Character)component).m_runTurnSpeed = 100f; } } } } } public static class ML_Sword_Frigga { public static void init() { Item item = new Item("dybassets", "ML_Sword_Frigga_1"); item.Configurable = Configurability.Disabled; Item item2 = new Item("dybassets", "ML_Sword_Spider_L_1"); item2.Configurable = Configurability.Disabled; Item item3 = new Item("dybassets", "ML_Sword_Spider_R_1"); item3.Configurable = Configurability.Disabled; GameObject val = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spider_1"); GameObject val2 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spawn_1"); GameObject val3 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_SpawnP_1"); Item item4 = new Item("dybassets", "ML_Sword_Frigga_2"); item4.Configurable = Configurability.Disabled; Item item5 = new Item("dybassets", "ML_Sword_Spider_L_2"); item5.Configurable = Configurability.Disabled; Item item6 = new Item("dybassets", "ML_Sword_Spider_R_2"); item6.Configurable = Configurability.Disabled; GameObject val4 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spider_2"); GameObject val5 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spawn_2"); GameObject val6 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_SpawnP_2"); Item item7 = new Item("dybassets", "ML_Sword_Frigga_3_Cold"); item7.Configurable = Configurability.Disabled; Item item8 = new Item("dybassets", "ML_Sword_Spider_L_3_Cold"); item8.Configurable = Configurability.Disabled; Item item9 = new Item("dybassets", "ML_Sword_Spider_R_3_Cold"); item9.Configurable = Configurability.Disabled; GameObject val7 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spider_3_Cold"); GameObject val8 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spawn_3_Cold"); GameObject val9 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_SpawnP_3_Cold"); Item item10 = new Item("dybassets", "ML_Sword_Frigga_3_Fire"); item10.Configurable = Configurability.Disabled; Item item11 = new Item("dybassets", "ML_Sword_Spider_L_3_Fire"); item11.Configurable = Configurability.Disabled; Item item12 = new Item("dybassets", "ML_Sword_Spider_R_3_Fire"); item12.Configurable = Configurability.Disabled; GameObject val10 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spider_3_Fire"); GameObject val11 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spawn_3_Fire"); GameObject val12 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_SpawnP_3_Fire"); Item item13 = new Item("dybassets", "ML_Sword_Frigga_3_Light"); item13.Configurable = Configurability.Disabled; Item item14 = new Item("dybassets", "ML_Sword_Spider_L_3_Light"); item14.Configurable = Configurability.Disabled; Item item15 = new Item("dybassets", "ML_Sword_Spider_R_3_Light"); item15.Configurable = Configurability.Disabled; GameObject val13 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spider_3_Light"); GameObject val14 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_Spawn_3_Light"); GameObject val15 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ML_Sword_Frigga_SpawnP_3_Light"); GameObject val16 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "vfx_ml_spawn"); GameObject val17 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "vfx_ml_despawn"); } } public class OceanLocations { internal static void LocationsAwake() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) new Location("dybassets", "ML_ShipWreck02") { MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, SpawnArea = (BiomeArea)2, Biome = (Biome)256, SpawnDistance = new LocationManager.Range(50f, 10000f), SpawnAltitude = new LocationManager.Range(-1000f, -20f), MinimumDistanceFromGroup = 1000f, Count = 10, Unique = false }; new Location("dybassets", "ML_ShipWreck03") { MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, SpawnArea = (BiomeArea)2, Biome = (Biome)256, SpawnDistance = new LocationManager.Range(50f, 10000f), SpawnAltitude = new LocationManager.Range(-1000f, -20f), MinimumDistanceFromGroup = 1000f, Count = 10, Unique = false }; new Location("dybassets", "Balder_Altar") { Prioritize = true, MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, SpawnArea = (BiomeArea)2, Biome = (Biome)256, SpawnDistance = new LocationManager.Range(200f, 3000f), SpawnAltitude = new LocationManager.Range(-1000f, -25f), MinimumDistanceFromGroup = 1000f, Count = 1, Unique = false }; } } public class Locations { internal static void LocationsAwake() { //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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_0129: 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_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) new Location("dybassets", "AshHuldraQueen_Altar") { Prioritize = true, MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, Biome = (Biome)32, SpawnArea = (BiomeArea)2, SpawnDistance = new LocationManager.Range(50f, 10000f), SpawnAltitude = new LocationManager.Range(5f, 1000f), MinimumDistanceFromGroup = 2000f, Count = 1, Unique = false }; new Location("dybassets", "AshlandsCave_01") { Prioritize = true, MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, Biome = (Biome)32, SpawnDistance = new LocationManager.Range(500f, 10000f), SpawnAltitude = new LocationManager.Range(20f, 1000f), MinimumDistanceFromGroup = 2000f, Count = 7, Unique = false }; new Location("dybassets", "AshlandsCave_02") { Prioritize = true, MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, Biome = (Biome)32, SpawnDistance = new LocationManager.Range(500f, 10000f), SpawnAltitude = new LocationManager.Range(20f, 1000f), MinimumDistanceFromGroup = 2000f, Count = 7, Unique = false }; new Location("dybassets", "SpiderCave01") { Prioritize = true, MapIcon = "bossicon.png", ShowMapIcon = ShowIcon.Never, Biome = (Biome)8, SpawnArea = (BiomeArea)3, SpawnDistance = new LocationManager.Range(500f, 1000f), SpawnAltitude = new LocationManager.Range(5f, 1000f), MinimumDistanceFromGroup = 3000f, Count = 1, Unique = false }; new Location("dybassets", "Mystical_Well0") { Prioritize = true, MapIcon = "ML_Hammer_Icon.png", ShowMapIcon = ShowIcon.Always, Biome = (Biome)1, SpawnDistance = new LocationManager.Range(100f, 500f), SpawnAltitude = new LocationManager.Range(10f, 1000f), MinimumDistanceFromGroup = 3000f, Count = 1, Unique = false }; } } [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] [BepInPlugin("MonsterLabZ", "MonsterLabZ", "3.0.9")] [<d23ff2c1-30f6-4034-927f-9061f7d45c78>Nullable(0)] public class MonsterLabZ : BaseUnityPlugin { [HarmonyPatch(typeof(ZNetScene), "Awake")] [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(0)] private static class ZNetScene_Awake_PostPatch { [<902d42e0-15f1-4173-907f-c4d9b087bf55>NullableContext(1)] public static void Postfix(ZNetScene __instance) { if (!((Object)(object)__instance == (Object)null) && !fixedReferences) { ShaderSwapper.GatherCustomShaders(ref __instance); List<GameObject> prefabList = new List<GameObject>(); GameObject[] array = __instance.m_prefabs.Where((GameObject p) => ((Object)p).name.StartsWith("ML_")).ToArray(); if (array != null && array.Length != 0) { prefabList.AddRange(array); } array = __instance.m_prefabs.Where((GameObject p) => ((Object)p).name.StartsWith("MLNPC")).ToArray(); if (array != null && array.Length != 0) { prefabList.AddRange(array); } if (prefabList.Count > 0) { ShaderSwapper.FixCustomShaders(ref prefabList); } CommonResources.findCommonResources(__instance); fixedReferences = true; } } } private const string ModName = "MonsterLabZ"; private const string ModVersion = "3.0.9"; private const string ModGUID = "MonsterLabZ"; public static ManualLogSource Log; private static bool fixedReferences; public void Awake() { //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Expected O, but got Unknown Localizer.Load(); Locations.LocationsAwake(); OceanLocations.LocationsAwake(); ML_DebugMonsters.init(); ML_NaturalDisasters.init(); NPC_Items.init(); Butterfly.init(); DeepSea_Serpent.init(); EvilShadow.init(); FireGolem.init(); NormalGhostWarrior.init(); DwarfGoblin.init(); GoblinShip.init(); DraugrShip.init(); IceGolem.init(); Kraken.init(); Molluscan.init(); NightmareDragon.init(); NormalSkeleton.init(); FireSkeleton.init(); IceSkeleton.init(); PoisonSkeleton.init(); Frigga.init(); Svartalfar.init(); Succubus.init(); Surtr.init(); WraithWarrior.init(); Spiders.init(); ObsidianGolem.init(); ML_Surtling.init(); NPC_Female.init(); NPC_Male.init(); Greydwarf.init(); ChaosSkeleton.init(); ML_CustomProps.init(); ML_Sword_Frigga.init(); ML_Mistile.init(); ML_Tentaroot.init(); ML_Hatchlings.init(); ML_JellyFish.init(); Assembly executingAssembly = Assembly.GetExecutingAssembly(); Harmony val = new Harmony("MonsterLabZ"); val.PatchAll(executingAssembly); } } public static class NormalGhostWarrior { public static void init() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) Creature creature = new Creature("dybassets", "NormalGhostWarrior") { Biome = (Biome)0 }; creature.ConfigurationEnabled = false; creature.Drops["Ruby"].Amount = new CreatureManager.Range(1f, 1f); creature.Drops["Ruby"].DropChance = 100f; creature.Drops["Ruby"].DropOnePerPlayer = false; creature.Drops["Ruby"].MultiplyDropByLevel = false; GameObject val = ItemManager.PrefabManager.RegisterPrefab("dybassets", "GhostWarrior"); Item item = new Item("dybassets", "ghost_poisonball"); item.Configurable = Configurability.Disabled; GameObject val2 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_ghost_poison_explode"); GameObject val3 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_ghost_poison_start"); GameObject val4 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "vfx_ghostpoison_hit"); GameObject val5 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "vfx_ghost_poison_explosion"); GameObject val6 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "ghost_poisonball_projectile"); } } public static class DwarfGoblin { public static void init() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) Creature creature = new Creature("dybassets", "DwarfGoblin") { Biome = (Biome)16, SpecificSpawnArea = SpawnArea.Everywhere, RequiredAltitude = new CreatureManager.Range(1f, 1000f), CheckSpawnInterval = 300, SpawnChance = 25f, GroupSize = new CreatureManager.Range(4f, 5f), Maximum = 8, SpecificSpawnTime = SpawnTime.Always }; creature.Drops["Coins"].Amount = new CreatureManager.Range(3f, 5f); creature.Drops["Coins"].DropChance = 100f; creature.Drops["Coins"].DropOnePerPlayer = false; creature.Drops["Coins"].MultiplyDropByLevel = true; Creature creature2 = new Creature("dybassets", "DwarfGoblinLoot") { Biome = (Biome)16, SpecificSpawnArea = SpawnArea.Everywhere, RequiredAltitude = new CreatureManager.Range(1f, 1000f), CheckSpawnInterval = 300, SpawnChance = 5f, GroupSize = new CreatureManager.Range(1f, 1f), Maximum = 2, SpecificSpawnTime = SpawnTime.Day }; creature2.Drops["Coins"].Amount = new CreatureManager.Range(5f, 8f); creature2.Drops["Coins"].DropChance = 100f; creature2.Drops["Coins"].DropOnePerPlayer = false; creature2.Drops["Coins"].MultiplyDropByLevel = true; creature2.Drops["Amber"].Amount = new CreatureManager.Range(2f, 4f); creature2.Drops["Amber"].DropChance = 100f; creature2.Drops["Amber"].DropOnePerPlayer = false; creature2.Drops["Amber"].MultiplyDropByLevel = true; creature2.Drops["Ruby"].Amount = new CreatureManager.Range(1f, 3f); creature2.Drops["Ruby"].DropChance = 100f; creature2.Drops["Ruby"].DropOnePerPlayer = false; creature2.Drops["Ruby"].MultiplyDropByLevel = true; Creature creature3 = new Creature("dybassets", "DwarfGoblinShaman") { Biome = (Biome)16, SpecificSpawnArea = SpawnArea.Everywhere, RequiredAltitude = new CreatureManager.Range(1f, 1000f), CheckSpawnInterval = 450, SpawnChance = 10f, GroupSize = new CreatureManager.Range(1f, 2f), Maximum = 2, SpecificSpawnTime = SpawnTime.Always }; creature3.Drops["Coins"].Amount = new CreatureManager.Range(4f, 6f); creature3.Drops["Coins"].DropChance = 100f; creature3.Drops["Coins"].DropOnePerPlayer = false; creature3.Drops["Coins"].MultiplyDropByLevel = true; GameObject val = ItemManager.PrefabManager.RegisterPrefab("dybassets", "DwarfGoblin_ragdoll"); GameObject val2 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "DwarfGoblinLoot_ragdoll"); GameObject val3 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "DwarfGoblinShaman_ragdoll"); Item item = new Item("dybassets", "DwarfGoblinBow"); item.Configurable = Configurability.Disabled; Item item2 = new Item("dybassets", "DwarfGoblinPickAxe"); item2.Configurable = Configurability.Disabled; Item item3 = new Item("dybassets", "DwarfGoblinClub"); item3.Configurable = Configurability.Disabled; Item item4 = new Item("dybassets", "DwarfGoblinSword"); item4.Configurable = Configurability.Disabled; Item item5 = new Item("dybassets", "DwarfGoblinTorch"); item5.Configurable = Configurability.Disabled; Item item6 = new Item("dybassets", "DwarfGoblinShieldBlackMetal"); item6.Configurable = Configurability.Disabled; Item item7 = new Item("dybassets", "DwarfGoblinShieldWood"); item7.Configurable = Configurability.Disabled; Item item8 = new Item("dybassets", "DwarfGoblinArmBandFeathers"); item8.Configurable = Configurability.Disabled; Item item9 = new Item("dybassets", "DwarfGoblinArmBandIron"); item9.Configurable = Configurability.Disabled; Item item10 = new Item("dybassets", "DwarfGoblinArmorBronze"); item10.Configurable = Configurability.Disabled; Item item11 = new Item("dybassets", "DwarfGoblinArmorFeathers"); item11.Configurable = Configurability.Disabled; Item item12 = new Item("dybassets", "DwarfGoblinArmorIron"); item12.Configurable = Configurability.Disabled; Item item13 = new Item("dybassets", "DwarfGoblinArmorLeather"); item13.Configurable = Configurability.Disabled; Item item14 = new Item("dybassets", "DwarfGoblinHelmetBronze"); item14.Configurable = Configurability.Disabled; Item item15 = new Item("dybassets", "DwarfGoblinHelmetLeather"); item15.Configurable = Configurability.Disabled; Item item16 = new Item("dybassets", "DwarfGoblinHelmetSkull"); item16.Configurable = Configurability.Disabled; Item item17 = new Item("dybassets", "DwarfGoblinShamanStaffBones"); item17.Configurable = Configurability.Disabled; Item item18 = new Item("dybassets", "DwarfGoblinShamanStaffFeathers"); item18.Configurable = Configurability.Disabled; Item item19 = new Item("dybassets", "DwarfGoblinShoulderPadIron"); item19.Configurable = Configurability.Disabled; Item item20 = new Item("dybassets", "DwarfGoblinShoulderPadLeather"); item20.Configurable = Configurability.Disabled; Item item21 = new Item("dybassets", "DwarfGoblinSpear"); item21.Configurable = Configurability.Disabled; Item item22 = new Item("dybassets", "DwarfGoblinSpearLox"); item22.Configurable = Configurability.Disabled; Item item23 = new Item("dybassets", "DwarfGoblinSpearChitin"); item23.Configurable = Configurability.Disabled; Item item24 = new Item("dybassets", "DwarfGoblinShamanBoat_attack_fireball"); item24.Configurable = Configurability.Disabled; Item item25 = new Item("dybassets", "DwarfGoblinShaman_attack_fireball"); item25.Configurable = Configurability.Disabled; Item item26 = new Item("dybassets", "DwarfGoblinShaman_attack_poke"); item26.Configurable = Configurability.Disabled; Item item27 = new Item("dybassets", "DwarfGoblinLoot_Run"); item27.Configurable = Configurability.Disabled; GameObject val4 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_goblin_loot_alert"); GameObject val5 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_goblin_loot_die"); GameObject val6 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_goblin_loot_hit"); GameObject val7 = ItemManager.PrefabManager.RegisterPrefab("dybassets", "sfx_goblin_loot_idle"); GameObject val8 = ItemManager.PrefabManager.RegisterPrefab("dybasse