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 Shawesomes Warhammer 40k v1.0.4
Shawesomes_Warhammer40k.dll
Decompiled 3 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using Jotunn.Utils; using Microsoft.CodeAnalysis; using Shawesomes_Warhammer40k; using UnityEngine; using shawcape; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("Shawesomes_Infinte_Multiverse")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Shawesomes_Infinte_Multiverse")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e0e26f8d-a8f0-41a7-a502-951624fa6f31")] [assembly: AssemblyFileVersion("1.0.0.0")] [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] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } public class Patches : MonoBehaviour { [HarmonyPatch(typeof(Player), "SetControls")] [HarmonyPrefix] private static void PrefixSetControlsforShip(Player __instance, ref bool jump, ref bool crouch) { Ship controlledShip = __instance.GetControlledShip(); ShipFly shipFly = default(ShipFly); if (!((Object)(object)controlledShip == (Object)null) && ((Component)controlledShip).gameObject.TryGetComponent<ShipFly>(ref shipFly)) { shipFly.flyship(ref jump, ref crouch); } } } public class ShipFly : MonoBehaviour { private Ship ship; private Rigidbody rb; public float drop_reduction = 10f; public Vector3 forcepos = new Vector3(0f, 0f, 0f); public float forwardReduction = 0.5f; public float hoverlift_modifier = 0.1f; public float hoverheight_modifier = 0.15f; public float hovertilt_modifier = 2f; public float jump_lift_mod = 0.1f; private float lift = 110f; public float LR_StabilityForce = 100f; public Vector3 LRpos = new Vector3(0f, 4f, -5f); public float maxangle = 0.35f; public float R_multi = 10f; public float rightingForce = -45f; public float rollForce = -25000f; public float rotationForce = 50f; public float slowDown_multi = 3f; public float thrust = 15f; public float turningForce = 0.05f; public float yawForce = 30000f; private float waterlvl = 30f; public void Awake() { //IL_005d: Unknown result type (might be due to invalid IL or missing references) ship = ((Component)this).gameObject.GetComponent<Ship>(); if (Object.op_Implicit((Object)(object)ship)) { rb = ship.m_body; waterlvl = (Object.op_Implicit((Object)(object)ship.m_previousCenter) ? ((Component)ship.m_previousCenter).transform.position.y : 30f); } } private bool hasShip() { //IL_0084: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)ship) && Object.op_Implicit((Object)(object)rb)) { return true; } ship = ((Component)this).gameObject.GetComponent<Ship>(); if (Object.op_Implicit((Object)(object)ship)) { rb = ship.m_body; waterlvl = (Object.op_Implicit((Object)(object)ship.m_previousCenter) ? ((Component)ship.m_previousCenter).transform.position.y : 30f); if (Object.op_Implicit((Object)(object)rb)) { return true; } return false; } return false; } public void flyship(ref bool jump, ref bool crouch) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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_012e: 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) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032b: 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_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: 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_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: 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_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Invalid comparison between Unknown and I4 //IL_050b: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) //IL_0547: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: 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_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_047a: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_049d: 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_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) if (!hasShip()) { Shawesomes_Divine_Armaments.logger.LogWarning((object)"Does not have ship"); return; } if (jump) { jump = false; } float num = 1f + 0.25f * Math.Min(Math.Max(rb.position.y - waterlvl, 0f), 6f); float num2 = Math.Max(Math.Min(1.25f - 0.25f * Math.Min(rb.position.y - waterlvl, 4f), 1f), 0f) * rotationForce; Vector3 val = rb.position + forcepos; Vector3 val2 = rb.rotation * Vector3.forward; float num3 = Vector3.Dot(val2, Vector3.up); if (num3 > maxangle) { num2 *= -1f; } float num4 = (maxangle - num3) * (maxangle - num3) * 100f; float num5 = Vector3.Dot(rb.velocity, val2); if (ZInput.GetButton("Jump") || ZInput.GetButtonDown("JoyJump")) { rb.AddForceAtPosition(new Vector3(0f, num2 * num4, 0f), rb.position, (ForceMode)1); if (num5 < 30f) { rb.AddForce(val2 * thrust * num, (ForceMode)1); } rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * jump_lift_mod * num3 * num5, 2400f), (ForceMode)1); } rb.AddForceAtPosition(new Vector3(0f, rightingForce, 0f), val, (ForceMode)1); float num6 = 1f; if (rb.position.y > waterlvl + 20f) { num6 = 1f - Math.Min(0.01f * (rb.position.y - waterlvl - 20f), 0.3f); } rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * num6 * num3 * num5, 2400f), (ForceMode)1); float num7 = Vector3.Dot(rb.rotation * Vector3.left, Vector3.up); Vector3 val3 = rb.position + R_multi * num7 * (rb.rotation * Vector3.right) + rb.rotation * LRpos; rb.AddForceAtPosition(new Vector3(0f, LR_StabilityForce, 0f), val3, (ForceMode)1); if (num < 2f) { return; } float num8 = Math.Max(num - 1.5f, 0f); if ((int)ship.m_speed == 4) { float num9 = Math.Max(Math.Min(10f / num5 - 27f, 2f), 0.1f); if (num5 < 30f) { rb.AddForce(val2 * thrust * num9 * num * hoverheight_modifier, (ForceMode)1); } else { rb.AddForce(val2 * thrust * slowDown_multi * (30f - num5) * num * hoverheight_modifier, (ForceMode)1); } rb.AddForceAtPosition(new Vector3(0f, num2 * hovertilt_modifier * num9 * num4, 0f), rb.position, (ForceMode)1); rb.AddForce(rb.rotation * new Vector3(0f, 1f, 0.1f) * Math.Min(lift * num3 * num5 * hoverlift_modifier, 2400f), (ForceMode)1); } if (num8 > 0f) { float rudderValue = ship.m_rudderValue; float num10 = Vector3.Dot(rb.velocity, rb.rotation * Vector3.left); float num11 = Vector3.Dot(rb.velocity, rb.rotation * Vector3.up); if (num11 < 0f && num5 > 15f) { rb.AddForce(new Vector3(0f, 1f, 0f) * Math.Min(lift * (0f - num11) * drop_reduction * num8, 2400f), (ForceMode)1); } rb.AddForce(rb.rotation * new Vector3(num10 * turningForce * num8, 0f, forwardReduction * Math.Abs(num10) * turningForce * num8), (ForceMode)2); rb.AddRelativeTorque(0f, rudderValue * yawForce * num8, rudderValue * rollForce * num8); ship.m_rudderValue += 0.02f * (num8 * (float)((!(ship.m_rudderValue > 0f)) ? 1 : (-1))); } } } public static class Utils2 { private const BindingFlags bindingFlags = BindingFlags.Public; public static T GetCopyOf<T>(this Component comp, T other) where T : Component { Type type = ((object)comp).GetType(); if (type != ((object)other).GetType()) { return default(T); } List<Type> list = new List<Type>(); Type baseType = type.BaseType; while (baseType != null && !(baseType == typeof(MonoBehaviour))) { list.Add(baseType); baseType = baseType.BaseType; } IEnumerable<PropertyInfo> enumerable = type.GetProperties(BindingFlags.Public); foreach (Type item in list) { enumerable = enumerable.Concat(item.GetProperties(BindingFlags.Public)); } enumerable = from property in enumerable where !(type == typeof(Rigidbody)) || !(property.Name == "inertiaTensor") where !property.CustomAttributes.Any((CustomAttributeData attribute) => attribute.AttributeType == typeof(ObsoleteAttribute)) select property; foreach (PropertyInfo pinfo in enumerable) { if (pinfo.CanWrite && !enumerable.Any((PropertyInfo e) => e.Name == $"shared{char.ToUpper(pinfo.Name[0])}{pinfo.Name.Substring(1)}")) { try { pinfo.SetValue(comp, pinfo.GetValue(other, null), null); } catch { } } } IEnumerable<FieldInfo> enumerable2 = type.GetFields(BindingFlags.Public); foreach (FieldInfo finfo in enumerable2) { foreach (Type item2 in list) { if (!enumerable2.Any((FieldInfo e) => e.Name == $"shared{char.ToUpper(finfo.Name[0])}{finfo.Name.Substring(1)}")) { enumerable2 = enumerable2.Concat(item2.GetFields(BindingFlags.Public)); } } } foreach (FieldInfo item3 in enumerable2) { item3.SetValue(comp, item3.GetValue(other)); } enumerable2 = enumerable2.Where((FieldInfo field) => field.CustomAttributes.Any((CustomAttributeData attribute) => attribute.AttributeType == typeof(ObsoleteAttribute))); foreach (FieldInfo item4 in enumerable2) { item4.SetValue(comp, item4.GetValue(other)); } return (T)(object)((comp is T) ? comp : null); } public static T AddComponent<T>(this GameObject go, T toAdd) where T : Component { return go.AddComponent(((object)toAdd).GetType()).GetCopyOf(toAdd); } public static void updateSKMesh(Transform parent, SkinnedMeshRenderer skmesh) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_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) List<ParticleSystem> list = ((Component)parent).GetComponentsInChildren<ParticleSystem>().ToList(); foreach (ParticleSystem item in list) { ShapeModule shape = item.shape; if (!Object.op_Implicit((Object)(object)((ShapeModule)(ref shape)).skinnedMeshRenderer)) { ShapeModule shape2 = item.shape; ((ShapeModule)(ref shape2)).skinnedMeshRenderer = skmesh; } } } public static SkinnedMeshRenderer createSkMeshRen(Transform objectTrans, Transform attach_skin) { SkinnedMeshRenderer val = default(SkinnedMeshRenderer); if (!((Component)objectTrans).gameObject.TryGetComponent<SkinnedMeshRenderer>(ref val)) { val = ((Component)objectTrans).gameObject.AddComponent<SkinnedMeshRenderer>(); } val.rootBone = attach_skin.Find("Armature").Find("Hips"); return val; } public static Mesh createBonedMesh(Mesh newmesh, Mesh copymesh, Vector3 pos, Vector3 rot, Vector3 scale, bool stretch = true) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) Mesh newmesh2 = AlignedSkinMesh(newmesh, pos, rot, scale); return copyBoneWeights(newmesh2, copymesh, stretch); } public static Mesh AlignedSkinMesh(Mesh meshtomodify, Vector3 pos, Vector3 rot, Vector3 scale) { //IL_0016: 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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0083: 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_0090: 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) Mesh val = Object.Instantiate<Mesh>(meshtomodify); List<Vector3> list = new List<Vector3>(); for (int i = 0; i < meshtomodify.vertices.Count(); i++) { Vector3 val2 = Quaternion.Euler(rot) * new Vector3(meshtomodify.vertices[i].x * scale.x, meshtomodify.vertices[i].y * scale.y, meshtomodify.vertices[i].z * scale.z); list.Add(new Vector3(val2.x + pos.x, val2.y + pos.y, val2.z + pos.z)); } val.SetVertices(list); ((Object)val).name = "copymesh"; return val; } public static Mesh copyBoneWeights(Mesh newmesh, Mesh copymesh, bool stretch = true) { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) BoneWeight[] array = (BoneWeight[])(object)new BoneWeight[newmesh.vertexCount]; newmesh.bindposes = copymesh.bindposes; if (stretch) { for (int i = 0; i < newmesh.vertexCount; i++) { int closestVert = getClosestVert(newmesh.vertices[i], copymesh.vertices); array[i] = copymesh.boneWeights[closestVert]; } } else { Vector3 val = Vector3.zero; for (int j = 0; j < newmesh.vertexCount; j++) { val += newmesh.vertices[j]; } int closestVert2 = getClosestVert(val / (float)newmesh.vertexCount, copymesh.vertices); for (int k = 0; k < newmesh.vertexCount; k++) { array[k] = copymesh.boneWeights[closestVert2]; } } newmesh.boneWeights = array; return newmesh; } public static int getClosestVert(Vector3 vert, Vector3[] basemesh) { //IL_000e: 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) float num = 99999f; int result = -1; for (int i = 0; i < basemesh.Length; i++) { float num2 = Vector3.Distance(vert, basemesh[i]); if (num2 < num) { num = num2; result = i; } } return result; } public static void alignMeshAllChidren(Transform objectTrans, Transform basetransform) { //IL_001a: 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_0026: 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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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) //IL_0056: 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) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) MeshFilter[] componentsInChildren = ((Component)objectTrans).GetComponentsInChildren<MeshFilter>(); for (int i = 0; i < componentsInChildren.Length; i++) { Transform val = ((Component)componentsInChildren[i]).transform; Vector3 val2 = val.localPosition; Vector3 val3 = ((Component)val).transform.localEulerAngles; Vector3 val4 = ((Component)val).transform.localScale; for (int j = 0; j < 20; j++) { if (!((Object)(object)val.parent != (Object)(object)objectTrans)) { break; } val = val.parent; val4 = Vector3.Scale(val4, val.localScale); val2 = Vector3.Scale(val4, val2) + val.localPosition; val3 += val.localEulerAngles; } SkinnedMeshRenderer val5 = createSkMeshRen(((Component)componentsInChildren[i]).transform, basetransform); val5.sharedMesh = AlignedSkinMesh(val5.sharedMesh, val2, val3, val4); } } public static void boneMeshAllChidren(Transform objectTrans, Transform basetransform, Mesh baseMesh, bool stretch = true) { //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_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_004a: 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_005e: 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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: 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_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_00fb: 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) Transform val = basetransform.Find("Armature").Find("Hips"); MeshFilter[] componentsInChildren = ((Component)objectTrans).GetComponentsInChildren<MeshFilter>(); for (int i = 0; i < componentsInChildren.Length; i++) { Transform val2 = ((Component)componentsInChildren[i]).transform; Vector3 val3 = val2.localPosition; Vector3 val4 = ((Component)val2).transform.localEulerAngles; Vector3 val5 = ((Component)val2).transform.localScale; for (int j = 0; j < 20; j++) { if (!((Object)(object)val2.parent != (Object)(object)objectTrans)) { break; } val2 = val2.parent; val5 = Vector3.Scale(val5, val2.localScale); val3 = Vector3.Scale(val5, val3) + val2.localPosition; val4 += val2.localEulerAngles; } val3 += new Vector3(0f, 0f - val.localPosition.y, 0f - val.localPosition.z); SkinnedMeshRenderer val6 = createSkMeshRen(((Component)componentsInChildren[i]).transform, basetransform); val6.sharedMesh = createBonedMesh(val6.sharedMesh, baseMesh, val3, val4, val5, stretch); } } public static void setStyleTex(Material mat, Texture2D styles) { mat.EnableKeyword("_USESTYLES_ON"); mat.SetFloat("_Style", 0f); mat.SetFloat("_UseStyles", 1f); mat.SetTexture("_StyleTex", (Texture)(object)styles); } public static Mesh createScaledCape(Mesh originalMesh, Vector3 scaleTop, Vector3 scaleBot, Vector3 offset = default(Vector3)) { //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_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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0034: 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_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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) //IL_005e: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0083: 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) //IL_0095: 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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: 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_0104: 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_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0125: 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_0131: 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_013f: 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_014d: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0181: 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_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) Vector3 zero = Vector3.zero; Vector3 one = Vector3.one; Mesh val = Object.Instantiate<Mesh>(originalMesh); List<Vector3> list = new List<Vector3>(); for (int i = 0; i < originalMesh.vertices.Count(); i++) { Vector3 val2 = originalMesh.vertices[i]; ((Vector3)(ref zero))..ctor(Mathf.Max(zero.x, val2.x), Mathf.Max(zero.y, val2.y), Mathf.Max(zero.z, val2.z)); ((Vector3)(ref one))..ctor(Mathf.Min(one.x, val2.x), Mathf.Min(one.y, val2.y), Mathf.Min(one.z, val2.z)); } Vector3 val4 = default(Vector3); for (int j = 0; j < originalMesh.vertices.Count(); j++) { Vector3 val3 = originalMesh.vertices[j]; float num = val3.x * (scaleBot.x + (scaleTop.x - scaleBot.x) * (val3.z - one.z) / (zero.z - one.z)); float num2 = val3.y * (scaleBot.y + (scaleTop.y - scaleBot.y) * (val3.z - one.z) / (zero.z - one.z)); ((Vector3)(ref val4))..ctor(num, num2, val3.z); list.Add(new Vector3(val4.x + offset.x, val4.y + offset.y, val4.z + offset.z)); } val.SetVertices(list); ((Object)val).name = "scaled_" + ((Object)val).name; return val; } public static void resolveMocksinChildren(Transform parentTrans) { //IL_0062: 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_007c: Unknown result type (might be due to invalid IL or missing references) for (int num = parentTrans.childCount - 1; num >= 0; num--) { Transform child = parentTrans.GetChild(num); if (((Object)child).name.StartsWith("ATmock_")) { GameObject val = getmockGo(((Object)child).name, parentTrans); if (Object.op_Implicit((Object)(object)val)) { Transform val2 = Shawesomes_Divine_Armaments.CopyIntoParent<Transform>(val.transform, parentTrans); val2.localPosition = child.localPosition; val2.localEulerAngles = child.localEulerAngles; val2.localScale = child.localScale; ((Object)val2).name = ((Object)child).name.Split(new char[1] { '.' })[0]; child.parent = null; } } } } public static GameObject getmockGo(string mockname, Transform newParent) { string[] array = mockname.Split(new char[1] { '.' }); if (!array[0].StartsWith("ATmock_")) { return null; } Transform transform; try { transform = PrefabManager.Instance.GetPrefab(array[0].Replace("ATmock_", "")).transform; } catch { return null; } for (int i = 1; i < array.Length; i++) { try { transform = ((Component)transform.Find(array[i])).transform; } catch { } } return ((Component)transform).gameObject; } } namespace Shawesomes_Warhammer40k { public static class VanillaShaders { private static bool s_logFilterInitialized; private static bool s_patchInitialized; private static readonly HashSet<string> s_registeredPrefabs = new HashSet<string>(); private static readonly HashSet<string> s_registeredBundles = new HashSet<string>(); private static readonly Dictionary<string, Shader> s_shaderCache = new Dictionary<string, Shader>(); private static bool s_cacheBuilt; private static HashSet<int> s_processedObjects = new HashSet<int>(); private static int s_totalFixed; public static void RegisterAssetBundle(string bundleName) { s_registeredBundles.Add(bundleName); } public static void RegisterPrefab(string prefabName) { s_registeredPrefabs.Add(prefabName); } public static bool IsRegistered(string prefabName) { return s_registeredPrefabs.Contains(prefabName); } public static void InitLogFilter() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Expected O, but got Unknown if (s_logFilterInitialized) { return; } s_logFilterInitialized = true; ManualLogSource logger = Shawesomes_Divine_Armaments.logger; if (logger != null) { logger.LogInfo((object)"[VanillaShaders] Initializing shader fixer..."); } Harmony val = new Harmony("Shawesomes.40k.VanillaShaders"); Type type = Type.GetType("BepInEx.Logging.UnityLogSource, BepInEx"); if (type != null) { MethodInfo method = type.GetMethod("OnUnityLogMessageReceived", BindingFlags.Static | BindingFlags.NonPublic); if (method != null) { val.Patch((MethodBase)method, new HarmonyMethod(typeof(VanillaShaders), "FilterUnityLogMessage", (Type[])null), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } } if (!s_patchInitialized) { s_patchInitialized = true; MethodInfo method2 = typeof(ZNetView).GetMethod("Awake", BindingFlags.Instance | BindingFlags.NonPublic); if (method2 != null) { val.Patch((MethodBase)method2, (HarmonyMethod)null, new HarmonyMethod(typeof(VanillaShaders), "OnZNetViewAwake", (Type[])null), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } } } private static void OnZNetViewAwake(ZNetView __instance) { if ((Object)(object)__instance == (Object)null) { return; } string prefabName = Utils.GetPrefabName(((Component)__instance).gameObject); if (s_registeredPrefabs.Contains(prefabName) || IsPrefabFromRegisteredBundle(prefabName)) { ManualLogSource logger = Shawesomes_Divine_Armaments.logger; if (logger != null) { logger.LogDebug((object)("[VanillaShaders] Auto-fixing shaders on: " + prefabName)); } FixShaders(((Component)__instance).gameObject); } } private static bool IsPrefabFromRegisteredBundle(string prefabName) { foreach (string bundleName in s_registeredBundles) { AssetBundle val = AssetBundle.GetAllLoadedAssetBundles().FirstOrDefault((Func<AssetBundle, bool>)((AssetBundle b) => string.Equals(((Object)b).name, bundleName, StringComparison.OrdinalIgnoreCase))); if (!((Object)(object)val != (Object)null)) { continue; } string[] allAssetNames = val.GetAllAssetNames(); string[] array = allAssetNames; foreach (string path in array) { string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path); if (string.Equals(fileNameWithoutExtension, prefabName, StringComparison.OrdinalIgnoreCase)) { s_registeredPrefabs.Add(prefabName); return true; } } } return false; } private static bool FilterUnityLogMessage(string message) { if (message != null && message.Contains("Failed to find expected binary shader data")) { return false; } return true; } private static void BuildShaderCache() { if (s_cacheBuilt) { return; } Shader[] array = Resources.FindObjectsOfTypeAll<Shader>(); Dictionary<string, Shader> dictionary = new Dictionary<string, Shader>(); Shader[] array2 = array; foreach (Shader val in array2) { if (!((Object)(object)val == (Object)null) && !string.IsNullOrEmpty(((Object)val).name)) { if (val.isSupported && val.passCount > 0) { s_shaderCache[((Object)val).name] = val; } else if (!s_shaderCache.ContainsKey(((Object)val).name)) { dictionary[((Object)val).name] = val; } } } foreach (KeyValuePair<string, Shader> item in dictionary) { if (!s_shaderCache.ContainsKey(item.Key)) { s_shaderCache[item.Key] = item.Value; } } s_cacheBuilt = true; ManualLogSource logger = Shawesomes_Divine_Armaments.logger; if (logger != null) { logger.LogInfo((object)$"[VanillaShaders] Cached {s_shaderCache.Count} shaders ({dictionary.Count} were stubs)"); } } public static void FixShaders(GameObject gameObject) { if ((Object)(object)gameObject == (Object)null) { return; } BuildShaderCache(); s_processedObjects.Clear(); s_totalFixed = 0; FixShadersRecursive(gameObject, 0); if (s_totalFixed > 0) { ManualLogSource logger = Shawesomes_Divine_Armaments.logger; if (logger != null) { logger.LogInfo((object)$"[VanillaShaders] Fixed {s_totalFixed} shaders on {((Object)gameObject).name} and its references"); } } } private static void FixShadersRecursive(GameObject gameObject, int depth) { if ((Object)(object)gameObject == (Object)null || depth > 10) { return; } int instanceID = ((Object)gameObject).GetInstanceID(); if (s_processedObjects.Contains(instanceID)) { return; } s_processedObjects.Add(instanceID); FixRenderersOnObject(gameObject); Component[] componentsInChildren = gameObject.GetComponentsInChildren<Component>(true); foreach (Component val in componentsInChildren) { if (!((Object)(object)val == (Object)null)) { FindAndFixReferences(val, depth); } } } private static void FindAndFixReferences(Component component, int depth) { if ((Object)(object)component == (Object)null) { return; } Type type = ((object)component).GetType(); FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { try { object value = fieldInfo.GetValue(component); if (value == null) { continue; } GameObject val = (GameObject)((value is GameObject) ? value : null); if (val != null) { FixShadersRecursive(val, depth + 1); continue; } Material val2 = (Material)((value is Material) ? value : null); if (val2 != null) { FixMaterial(val2); continue; } if (value is GameObject[] array2) { GameObject[] array3 = array2; foreach (GameObject gameObject in array3) { FixShadersRecursive(gameObject, depth + 1); } continue; } if (value is Material[] array4) { Material[] array5 = array4; foreach (Material material in array5) { FixMaterial(material); } continue; } EffectList val3 = (EffectList)((value is EffectList) ? value : null); if (val3 != null) { FixEffectList(val3, depth); } else { if (!(value is IList list) || list.Count <= 0) { continue; } foreach (object item in list) { if (item == null) { continue; } Type type2 = item.GetType(); FieldInfo field = type2.GetField("m_prefab"); if (field != null) { object? value2 = field.GetValue(item); GameObject val4 = (GameObject)((value2 is GameObject) ? value2 : null); if ((Object)(object)val4 != (Object)null) { FixShadersRecursive(val4, depth + 1); } } } continue; } } catch { } } } private static void FixEffectList(EffectList effectList, int depth) { if (effectList?.m_effectPrefabs == null) { return; } EffectData[] effectPrefabs = effectList.m_effectPrefabs; foreach (EffectData val in effectPrefabs) { if ((Object)(object)val?.m_prefab != (Object)null) { FixShadersRecursive(val.m_prefab, depth + 1); } } } private static void FixRenderersOnObject(GameObject gameObject) { Renderer[] componentsInChildren = gameObject.GetComponentsInChildren<Renderer>(true); Renderer[] array = componentsInChildren; foreach (Renderer val in array) { if ((Object)(object)val == (Object)null) { continue; } Material[] sharedMaterials = val.sharedMaterials; bool flag = false; for (int j = 0; j < sharedMaterials.Length; j++) { if (FixMaterial(sharedMaterials[j])) { flag = true; } } if (flag) { val.sharedMaterials = sharedMaterials; } } } private static bool FixMaterial(Material material) { if ((Object)(object)material == (Object)null || (Object)(object)material.shader == (Object)null) { return false; } Shader shader = material.shader; string name = ((Object)shader).name; if (shader.isSupported && shader.passCount > 0) { return false; } if (!s_shaderCache.TryGetValue(name, out Shader value)) { return false; } if (!value.isSupported || value.passCount == 0) { return false; } material.shader = value; s_totalFixed++; return true; } public static void RebuildCache() { s_shaderCache.Clear(); s_cacheBuilt = false; BuildShaderCache(); } } } namespace shawcape { [BepInPlugin("IDshawesome4u4", "Shawesomes_Warhammer40k", "1.0.4")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Shawesomes_Divine_Armaments : BaseUnityPlugin { public Harmony harmony; public static GameObject Root; public string version = "1.0.0"; public static ManualLogSource logger; public static ManualLogSource harmonyLog; private static AssetBundle Shawcassets; public static List<GameObject> EffectList = new List<GameObject>(); public void Awake() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown logger = ((BaseUnityPlugin)this).Logger; VanillaShaders.InitLogFilter(); VanillaShaders.RegisterAssetBundle("shaw_40k"); harmony = new Harmony("IDshawesome4u4"); Root = new GameObject("Shaw Root"); Object.DontDestroyOnLoad((Object)(object)Root); harmony.PatchAll(typeof(Patches)); harmonyLog = ((BaseUnityPlugin)this).Logger; Shawcassets = AssetUtils.LoadAssetBundleFromResources("shaw_40k", Assembly.GetExecutingAssembly()); LoadAssets(); PrefabManager.OnVanillaPrefabsAvailable += additems; PrefabManager.OnPrefabsRegistered += delegate { harmonyLog.LogMessage((object)"Registering VFX via PrefabManager (safe, ZNetScene ready)..."); AddEffectsToZNet(); }; } public static void LoadAssets() { EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/PrefabInstance/vfx_HitSparks1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/flamer_projectile.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/fx_flamerprojectile_hit.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/gspearprojectile_start.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/relicswordspecial_aoe_projectile1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/sfx_chainsaw_hit.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/sfx_chainsaw_start.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome1/custom attacks/NTbow_projectile.cust.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/sfx_warlord_horn.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/Titan_misile_projectile.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/titan_guns_projectile.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/titan_gun.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/titan_misiles.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/beacon_drop pod.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/beacon_projectile_titan.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/PrefabInstance/sfx_firework_explode1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeGOW/vfx_shawtechdmg_impact1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/beacon_projectile_cust.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/beacon_projectile_UM.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/droppod_open.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/droppod_open1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/projectile_Drop_pod.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/projectile_Drop_pod1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/sfx_bullet.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/sfx_dutyisfate.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/sfx_fraftisdeath.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/sfx_honorislife.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/spawn_drop_pod.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/spawn_drop_pod1.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome1/custom attacks/arcrifle_projectile_primary.prefab")); EffectList.Add(Shawcassets.LoadAsset<GameObject>("Assets/Shawesome1/custom attacks/fx_ntbow_hit.prefab")); } public static void AddEffectsToZNet() { harmonyLog.LogMessage((object)"Adding effects to ZNet"); foreach (GameObject effect in EffectList) { int stableHashCode = StringExtensionMethods.GetStableHashCode(((Object)effect).name); harmonyLog.LogMessage((object)("Attempting to add to Znet " + stableHashCode + ":" + ((Object)effect).name)); if ((Object)(object)ZNetScene.instance != (Object)null && !ZNetScene.instance.m_namedPrefabs.ContainsKey(stableHashCode)) { harmonyLog.LogMessage((object)("Adding to ZNet" + ((Object)effect).name)); PrefabManager.Instance.RegisterToZNetScene(effect); } harmonyLog.LogMessage((object)((Object)(object)ZNetScene.instance.GetPrefab(stableHashCode) != (Object)null)); } } public static void additems() { AddMamlakatome(); Addtechoozetome(); Addheavyflamer(); Addchainaxe(); Addchainsword(); Addgspear(); Addtitancore(); Add40ktitan(); Addtitanatk2(); Addtitanatk3(); Addtitanbeacon(); AddUMbeacon(); AddCUSTbeacon(); Addcustodes(); AddUM(); Addaiweapon1(); Addaiweapon2(); Addaiweapon3(); Addaiweapon4(); Addaiweapon5(); Addaiweapon6(); Addaiweapon7(); Addaiweapon8(); Addautofemhelm(); Addfemautoback(); Addautofemchest(); Addfemautolegs(); PrefabManager.OnVanillaPrefabsAvailable -= additems; } public static void Addautofemchest() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("FlametalNew", 30, 15, false)); val.CraftingStation = CraftingStations.BlackForge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40karmor/femautochest.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addautofemhelm() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("FlametalNew", 30, 15, false)); val.CraftingStation = CraftingStations.BlackForge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40karmor/femautohelm.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addfemautoback() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("FlametalNew", 30, 15, false)); val.CraftingStation = CraftingStations.BlackForge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40karmor/femautoback.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addfemautolegs() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("FlametalNew", 30, 15, false)); val.CraftingStation = CraftingStations.BlackForge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40karmor/femautolegs.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon8() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/shaw40kgspear1.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon7() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/shaw40kflamer1.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon6() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/shaw40kchainsword1.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon5() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/shaw40kchainaxe1.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon4() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/umaisword2.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon3() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/umaisword.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon2() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/umaigun1.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addaiweapon1() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/umaibow.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addcustodes() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown CreatureConfig val = new CreatureConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/Shaw_Custodian.prefab"); CustomCreature val3 = new CustomCreature(val2, true, val); CreatureManager.Instance.AddCreature(val3); } public static void AddCUSTbeacon() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 0, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 5, 0, false)); val.AddRequirement(new RequirementConfig("Silver", 40, 0, false)); val.AddRequirement(new RequirementConfig("Coins", 3000, 0, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/orbitalbeacon_custodes.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void AddUM() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown CreatureConfig val = new CreatureConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/Shaw_Ultra_Marine.prefab"); CustomCreature val3 = new CustomCreature(val2, true, val); CreatureManager.Instance.AddCreature(val3); } public static void AddUMbeacon() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 0, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 5, 0, false)); val.AddRequirement(new RequirementConfig("Silver", 40, 0, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 0, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/shawdroppod/orbitalbeacon_ultramarine.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addtitanbeacon() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 20, 0, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 50, 0, false)); val.AddRequirement(new RequirementConfig("Silver", 40, 0, false)); val.AddRequirement(new RequirementConfig("Coins", 5000, 0, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/TeleportBeacon_titan.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addtitancore() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 20, 0, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 50, 0, false)); val.AddRequirement(new RequirementConfig("Silver", 40, 0, false)); val.AddRequirement(new RequirementConfig("Coins", 4000, 0, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/TitanCore.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Add40ktitan() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown CreatureConfig val = new CreatureConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/ShawTitan1.prefab"); CustomCreature val3 = new CustomCreature(val2, true, val); CreatureManager.Instance.AddCreature(val3); } public static void Addtitanatk2() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/titan_gun.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addtitanatk3() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown ItemConfig val = new ItemConfig(); GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawTitan/titan_misiles.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addsangchest() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("Coins", 1, 0, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/ShawesomeArmor/shawsangchest.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addgspear() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 1, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 4, 4, false)); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/shaw40kgspear.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addchainsword() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 1, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 4, 4, false)); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/shaw40kchainsword.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addchainaxe() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 1, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 4, 4, false)); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/shaw40kchainaxe.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addheavyflamer() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("BlackCore", 4, 1, false)); val.AddRequirement(new RequirementConfig("FlametalNew", 4, 4, false)); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40kweapons/shaw40kflamer.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void Addtechoozetome() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40k/techoozetome.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static void AddMamlakatome() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown ItemConfig val = new ItemConfig(); val.AddRequirement(new RequirementConfig("Silver", 4, 4, false)); val.AddRequirement(new RequirementConfig("Coins", 1000, 1000, false)); val.CraftingStation = CraftingStations.Forge; val.MinStationLevel = 1; GameObject val2 = Shawcassets.LoadAsset<GameObject>("Assets/Shawesome40k/mamlakatome.prefab"); CustomItem val3 = new CustomItem(val2, true, val); ItemManager.Instance.AddItem(val3); } public static T CopyIntoParent<T>(T go, T parent) where T : Component { //IL_0055: Unknown result type (might be due to invalid IL or missing references) T val = Object.Instantiate<T>(go); ((Object)(object)val).name = ((Object)(object)go).name; ((Component)val).transform.parent = ((Component)parent).transform; ((Component)val).transform.localPosition = new Vector3(0f, 0f, 0f); return val; } } }