Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Archaic Wisp v1.1.9
plugins/Moffein-ArchaicWisp/ArchaicWisp.dll
Decompiled 6 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.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.GreaterWispMonster; using On.EntityStates.GreaterWispMonster; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Projectile; using SneedUtils; using UnityEngine; using UnityEngine.AddressableAssets; using Zio.FileSystems; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ArchaicWisp")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+9b3385e6eba3884aa3572f0b643f425c8a87ccfb")] [assembly: AssemblyProduct("ArchaicWisp")] [assembly: AssemblyTitle("ArchaicWisp")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace SneedUtils { public class SneedUtils { public static int FindEnemiesInSphere(float radius, Vector3 position, TeamIndex team, bool airborneOnly = false) { //IL_0009: 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) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) int num = 0; List<HealthComponent> list = new List<HealthComponent>(); Collider[] array = Physics.OverlapSphere(position, radius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent<HurtBox>(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && !list.Contains(healthComponent)) { list.Add(healthComponent); if (Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.teamComponent) && healthComponent.body.teamComponent.teamIndex != team && (!airborneOnly || healthComponent.body.isFlying || (Object.op_Implicit((Object)(object)healthComponent.body.characterMotor) && !healthComponent.body.characterMotor.isGrounded))) { num++; } } } return num; } public static void RemoveItemTag(ItemDef itemDef, ItemTag tag) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (itemDef.ContainsTag(tag)) { List<ItemTag> list = itemDef.tags.ToList(); list.Remove(tag); itemDef.tags = list.ToArray(); } } public static void AddItemTag(ItemDef itemDef, ItemTag tag) { //IL_0002: 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) if (!itemDef.ContainsTag(tag)) { List<ItemTag> list = itemDef.tags.ToList(); list.Add(tag); itemDef.tags = list.ToArray(); } } public static void DumpEntityStateConfig(EntityStateConfiguration esc) { for (int i = 0; i < esc.serializedFieldsCollection.serializedFields.Length; i++) { if (Object.op_Implicit(esc.serializedFieldsCollection.serializedFields[i].fieldValue.objectValue)) { Debug.Log((object)(esc.serializedFieldsCollection.serializedFields[i].fieldName + " - " + (object)esc.serializedFieldsCollection.serializedFields[i].fieldValue.objectValue)); } else { Debug.Log((object)(esc.serializedFieldsCollection.serializedFields[i].fieldName + " - " + esc.serializedFieldsCollection.serializedFields[i].fieldValue.stringValue)); } } } public static void DumpEntityStateConfig(string entityStateName) { EntityStateConfiguration esc = LegacyResourcesAPI.Load<EntityStateConfiguration>("entitystateconfigurations/" + entityStateName); DumpEntityStateConfig(esc); } public static Object GetEntityStateFieldObject(string entityStateName, string fieldName) { EntityStateConfiguration val = LegacyResourcesAPI.Load<EntityStateConfiguration>("entitystateconfigurations/" + entityStateName); for (int i = 0; i < val.serializedFieldsCollection.serializedFields.Length; i++) { if (val.serializedFieldsCollection.serializedFields[i].fieldName == fieldName) { return val.serializedFieldsCollection.serializedFields[i].fieldValue.objectValue; } } return null; } public static string GetEntityStateFieldString(string entityStateName, string fieldName) { EntityStateConfiguration val = LegacyResourcesAPI.Load<EntityStateConfiguration>("entitystateconfigurations/" + entityStateName); for (int i = 0; i < val.serializedFieldsCollection.serializedFields.Length; i++) { if (val.serializedFieldsCollection.serializedFields[i].fieldName == fieldName) { return val.serializedFieldsCollection.serializedFields[i].fieldValue.stringValue; } } return string.Empty; } public static bool SetEntityStateField(string entityStateName, string fieldName, Object newObject) { EntityStateConfiguration val = LegacyResourcesAPI.Load<EntityStateConfiguration>("entitystateconfigurations/" + entityStateName); for (int i = 0; i < val.serializedFieldsCollection.serializedFields.Length; i++) { if (val.serializedFieldsCollection.serializedFields[i].fieldName == fieldName) { val.serializedFieldsCollection.serializedFields[i].fieldValue.objectValue = newObject; return true; } } return false; } public static bool SetEntityStateField(string entityStateName, string fieldName, string value) { EntityStateConfiguration val = LegacyResourcesAPI.Load<EntityStateConfiguration>("entitystateconfigurations/" + entityStateName); for (int i = 0; i < val.serializedFieldsCollection.serializedFields.Length; i++) { if (val.serializedFieldsCollection.serializedFields[i].fieldName == fieldName) { val.serializedFieldsCollection.serializedFields[i].fieldValue.stringValue = value; return true; } } return false; } } } namespace ArchaicWisp { public class ArchaicWispContent : IContentPackProvider { [CompilerGenerated] private sealed class <FinalizeAsync>d__10 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public FinalizeAsyncArgs args; public ArchaicWispContent <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <FinalizeAsync>d__10(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <GenerateContentPackAsync>d__11 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GetContentPackAsyncArgs args; public ArchaicWispContent <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <GenerateContentPackAsync>d__11(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; ContentPack.Copy(content, args.output); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <LoadStaticContentAsync>d__12 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LoadStaticContentAsyncArgs args; public ArchaicWispContent <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadStaticContentAsync>d__12(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; content.bodyPrefabs.Add((GameObject[])(object)new GameObject[1] { ArchaicWispObject }); content.masterPrefabs.Add((GameObject[])(object)new GameObject[1] { ArchaicWispMaster }); content.unlockableDefs.Add((UnlockableDef[])(object)new UnlockableDef[1] { ArchaicWispLogbookUnlockable }); content.projectilePrefabs.Add(projectilePrefabs.ToArray()); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static AssetBundle assets; public static ContentPack content = new ContentPack(); public static GameObject ArchaicWispObject; public static GameObject ArchaicWispMaster; public static UnlockableDef ArchaicWispLogbookUnlockable; public static DirectorCardHolder ArchaicWispCard; public static DirectorCardHolder ArchaicWispLoopCard; public static List<GameObject> projectilePrefabs = new List<GameObject>(); public string identifier => "MoffeinArchaicWisp.content"; [IteratorStateMachine(typeof(<FinalizeAsync>d__10))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <FinalizeAsync>d__10(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<GenerateContentPackAsync>d__11))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <GenerateContentPackAsync>d__11(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<LoadStaticContentAsync>d__12))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadStaticContentAsync>d__12(0) { <>4__this = this, args = args }; } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Moffein.ArchaicWisp", "Archaic Wisp", "1.1.9")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class ArchaicWispPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnEnter <>9__2_0; public static Func<char, bool> <>9__4_0; public static Func<char, bool> <>9__4_1; internal void <Awake>b__2_0(orig_OnEnter orig, ChargeCannons self) { orig.Invoke(self); Debug.Log((object)self.baseDuration); } internal bool <ReadConfig>b__4_0(char c) { return !char.IsWhiteSpace(c); } internal bool <ReadConfig>b__4_1(char c) { return !char.IsWhiteSpace(c); } } public static PluginInfo pluginInfo; public static List<StageSpawnInfo> StageList = new List<StageSpawnInfo>(); public void Awake() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Expected O, but got Unknown //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) //IL_00a6: Expected O, but got Unknown pluginInfo = ((BaseUnityPlugin)this).Info; new LanguageTokens(); using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ArchaicWisp.archwispbundle")) { ArchaicWispContent.assets = AssetBundle.LoadFromStream(stream); } ReadConfig(); Prefab.Init(); Director.Init(); ModifySkills.Init(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(LateSetup)); ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); object obj = <>c.<>9__2_0; if (obj == null) { hook_OnEnter val = delegate(orig_OnEnter orig, ChargeCannons self) { orig.Invoke(self); Debug.Log((object)self.baseDuration); }; <>c.<>9__2_0 = val; obj = (object)val; } ChargeCannons.OnEnter += (hook_OnEnter)obj; } public void LateSetup() { ItemDisplays.DisplayRules(ArchaicWispContent.ArchaicWispObject); } public void ReadConfig() { //IL_0011: 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_0030: Expected O, but got Unknown //IL_0030: Expected O, but got Unknown //IL_0046: 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_0065: Expected O, but got Unknown //IL_0065: Expected O, but got Unknown //IL_017e: Unknown result type (might be due to invalid IL or missing references) string value = ((BaseUnityPlugin)this).Config.Bind<string>(new ConfigDefinition("Spawns", "Stage List"), "goldshores, dampcavesimple, itdampcave, sulfurpools, skymeadow, itskymeadow, wispgraveyard - loop, helminthroost, lemuriantemple", new ConfigDescription("What stages the monster will show up on. Add a '- loop' after the stagename to make it only spawn after looping. List of stage names can be found at https://github.com/risk-of-thunder/R2Wiki/wiki/List-of-scene-names", (AcceptableValueBase)null, Array.Empty<object>())).Value; string value2 = ((BaseUnityPlugin)this).Config.Bind<string>(new ConfigDefinition("Spawns", "Remove Greater Wisps"), "goldshores, dampcavesimple, itdampcave, sulfurpools, skymeadow, itskymeadow, helminthroost, lemuriantemple", new ConfigDescription("Remove Greater Wisps from these stages to prevent role overlap.", (AcceptableValueBase)null, Array.Empty<object>())).Value; value = new string((from c in value.ToCharArray() where !char.IsWhiteSpace(c) select c).ToArray()); string[] array = value.Split(','); string[] array2 = array; foreach (string text in array2) { string[] array3 = text.Split('-'); string stageName = array3[0]; int minStages = 0; if (array3.Length > 1) { minStages = 5; } StageList.Add(new StageSpawnInfo(stageName, minStages)); } value2 = new string((from c in value2.ToCharArray() where !char.IsWhiteSpace(c) select c).ToArray()); string[] array4 = value.Split(','); string[] array5 = array4; foreach (string text2 in array5) { string[] array6 = text2.Split('-'); string text3 = array6[0]; SceneDef val = ScriptableObject.CreateInstance<SceneDef>(); val.baseSceneNameOverride = text3; Helpers.RemoveExistingMonsterFromStage(MonsterNames.GreaterWisp, DirectorAPI.GetStageEnumFromSceneDef(val), text3); } } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)new ArchaicWispContent()); } } public class StageSpawnInfo { private string stageName; private int minStages; public StageSpawnInfo(string stageName, int minStages) { this.stageName = stageName; this.minStages = minStages; } public string GetStageName() { return stageName; } public int GetMinStages() { return minStages; } } public class Director { private static bool initialized; public static void Init() { //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) //IL_0051: 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_005f: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_0097: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown //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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Expected O, but got Unknown //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_00e7: 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_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Expected O, but got Unknown //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_0167: 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_01ea: Unknown result type (might be due to invalid IL or missing references) if (initialized) { return; } initialized = true; CharacterSpawnCard val = Addressables.LoadAssetAsync<CharacterSpawnCard>((object)"RoR2/Base/GreaterWisp/cscGreaterWisp.asset").WaitForCompletion(); CharacterSpawnCard val2 = ScriptableObject.CreateInstance<CharacterSpawnCard>(); ((Object)val2).name = "cscArchWisp"; ((SpawnCard)val2).prefab = ArchaicWispContent.ArchaicWispMaster; ((SpawnCard)val2).sendOverNetwork = true; ((SpawnCard)val2).hullSize = (HullClassification)0; ((SpawnCard)val2).nodeGraphType = (GraphType)1; ((SpawnCard)val2).requiredFlags = (NodeFlags)0; ((SpawnCard)val2).forbiddenFlags = (NodeFlags)4; ((SpawnCard)val2).directorCreditCost = 240; ((SpawnCard)val2).occupyPosition = false; val2.loadout = new SerializableLoadout(); val2.noElites = false; val2.forbiddenAsBoss = false; DirectorCard val3 = new DirectorCard { spawnCard = (SpawnCard)(object)val2, selectionWeight = 1, preventOverhead = false, minimumStageCompletions = 0, spawnDistance = (MonsterSpawnDistance)0 }; DirectorCardHolder archaicWispCard = new DirectorCardHolder { Card = val3, MonsterCategory = (MonsterCategory)3 }; DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)val2, selectionWeight = 1, preventOverhead = false, minimumStageCompletions = 5, spawnDistance = (MonsterSpawnDistance)0 }; DirectorCardHolder archaicWispLoopCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)3 }; ArchaicWispContent.ArchaicWispCard = archaicWispCard; ArchaicWispContent.ArchaicWispLoopCard = archaicWispLoopCard; int num = -1; DirectorCardCategorySelection val4 = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/MixEnemy/dccsMixEnemy.asset").WaitForCompletion(); num = FindCategoryIndexByName(val4, "Minibosses"); if (num >= 0) { val4.AddCard(num, val3); } DirectorCardCategorySelection val5 = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/Common/DirectorCardCategorySelections/dccsWispFamily.asset").WaitForCompletion(); num = FindCategoryIndexByName(val5, "Minibosses"); if (num >= 0) { val5.AddCard(num, val3); } foreach (StageSpawnInfo stage in ArchaicWispPlugin.StageList) { DirectorCardHolder val6 = ((stage.GetMinStages() == 0) ? ArchaicWispContent.ArchaicWispCard : ArchaicWispContent.ArchaicWispLoopCard); SceneDef val7 = ScriptableObject.CreateInstance<SceneDef>(); val7.baseSceneNameOverride = stage.GetStageName(); Helpers.AddNewMonsterToStage(val6, false, DirectorAPI.GetStageEnumFromSceneDef(val7), stage.GetStageName()); } } public static int FindCategoryIndexByName(DirectorCardCategorySelection dcs, string categoryName) { for (int i = 0; i < dcs.categories.Length; i++) { if (string.CompareOrdinal(dcs.categories[i].name, categoryName) == 0) { return i; } } return -1; } } public class ItemDisplays { private static Dictionary<string, GameObject> itemDisplayPrefabs = new Dictionary<string, GameObject>(); public static List<KeyAssetRuleGroup> equipmentList; public static Transform headTransform; public static void DisplayRules(GameObject bodyObject) { //IL_0018: 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_0040: 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_0055: 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_0085: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_0131: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0233: 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_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0269: 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_027b: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: 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_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035f: 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_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0397: 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_03b2: 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_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0410: 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_0438: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: 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_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: 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_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0533: 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_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_0595: Unknown result type (might be due to invalid IL or missing references) //IL_059a: 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_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Unknown result type (might be due to invalid IL or missing references) //IL_05fb: 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_0608: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_060f: Unknown result type (might be due to invalid IL or missing references) //IL_0619: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_06a1: Unknown result type (might be due to invalid IL or missing references) //IL_06a6: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_06d7: Unknown result type (might be due to invalid IL or missing references) //IL_06dc: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06f5: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_0726: Unknown result type (might be due to invalid IL or missing references) //IL_0738: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_074d: Unknown result type (might be due to invalid IL or missing references) //IL_0752: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0798: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c5: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07d1: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: 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_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0829: Unknown result type (might be due to invalid IL or missing references) //IL_082e: Unknown result type (might be due to invalid IL or missing references) //IL_0859: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_088f: Unknown result type (might be due to invalid IL or missing references) //IL_0894: Unknown result type (might be due to invalid IL or missing references) //IL_089c: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08a3: Unknown result type (might be due to invalid IL or missing references) //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08af: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRuleSet val = ScriptableObject.CreateInstance<ItemDisplayRuleSet>(); equipmentList = new List<KeyAssetRuleGroup>(); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixPoison, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/ElitePoison/DisplayEliteUrchinCrown.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -0.6f, -0.85f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixHaunted, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -0.6f, -0.6f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.25f, 0.25f, 0.25f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixWhite, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteIce/DisplayEliteIceCrown.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -0.6f, -0.45f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.12f, 0.12f, 0.12f), limbMask = (LimbFlags)0 } } } }); GameObject followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab").WaitForCompletion(); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixBlue, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = followerPrefab, childName = "Mask", localPos = new Vector3(0f, -0.7874f, -0.92505f), localAngles = new Vector3(80.00003f, 0f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = followerPrefab, childName = "Mask", localPos = new Vector3(0f, -0.81623f, -1.2465f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(0.8f, 0.8f, 0.8f), limbMask = (LimbFlags)0 } } } }); GameObject followerPrefab2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/EliteFire/DisplayEliteHorn.prefab").WaitForCompletion(); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixRed, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = followerPrefab2, childName = "Mask", localPos = new Vector3(0.7f, -1f, -1.1f), localAngles = new Vector3(0f, 190f, 180f), localScale = new Vector3(0.4f, 0.4f, 0.4f) }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = followerPrefab2, childName = "Mask", localPos = new Vector3(-0.7f, -1f, -1.1f), localAngles = new Vector3(0f, 170f, 180f), localScale = new Vector3(-0.4f, 0.4f, 0.4f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Elites.Earth.eliteEquipmentDef, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteEarth/DisplayEliteMendingAntlers.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -0.63f, -0.75f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(2.5f, 2.5f, 2.5f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Elites.Void.eliteEquipmentDef, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -0.98165f, -1.88916f), localAngles = new Vector3(0f, 180f, 180f), localScale = new Vector3(0.68414f, 0.68414f, 0.68414f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Elites.Aurelionite.eliteEquipmentDef, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteAurelionite/DisplayEliteAurelioniteEquipment.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(0f, -1.45f, -1f), localAngles = new Vector3(90f, 0f, 0f), localScale = new Vector3(2f, 2f, 2f), limbMask = (LimbFlags)0 } } } }); equipmentList.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Elites.Bead.eliteEquipmentDef, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/Elites/EliteBead/DisplayEliteBeadSpike.prefab").WaitForCompletion(), childName = "Mask", localPos = new Vector3(-0.59181f, -0.80641f, -1.02937f), localAngles = new Vector3(18.04248f, 223.5347f, 251.9449f), localScale = new Vector3(0.076f, 0.076f, 0.076f), limbMask = (LimbFlags)0 } } } }); val.keyAssetRuleGroups = equipmentList.ToArray(); CharacterModel component = ((Component)bodyObject.GetComponent<ModelLocator>().modelTransform).GetComponent<CharacterModel>(); component.itemDisplayRuleSet = val; component.itemDisplayRuleSet.GenerateRuntimeValues(); itemDisplayPrefabs.Clear(); } } internal class LanguageTokens { public static SubFileSystem fileSystem; internal static string languageRoot => Path.Combine(assemblyDir, "language"); internal static string assemblyDir => Path.GetDirectoryName(ArchaicWispPlugin.pluginInfo.Location); public LanguageTokens() { RegisterLanguageTokens(); } public static void RegisterLanguageTokens() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown Language.SetFolders += new hook_SetFolders(fixme); } private static void fixme(orig_SetFolders orig, Language self, IEnumerable<string> newFolders) { if (Directory.Exists(languageRoot)) { IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(languageRoot), self.name); orig.Invoke(self, newFolders.Union(second)); } else { orig.Invoke(self, newFolders); } } } public class ModifySkills { private static bool initialized; public static void Init() { //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) //IL_0082: 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_005c: Unknown result type (might be due to invalid IL or missing references) if (!initialized) { initialized = true; GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ArchWisp/ArchWispCannon.prefab").WaitForCompletion(), "MoffeinArchWispCannon", true); ArchaicWispContent.projectilePrefabs.Add(val); ProjectileDamage component = val.GetComponent<ProjectileDamage>(); if (Object.op_Implicit((Object)(object)component)) { component.damageType.damageSource = (DamageSource)1; } val.GetComponent<Rigidbody>().useGravity = false; ProjectileImpactExplosion component2 = val.GetComponent<ProjectileImpactExplosion>(); component2.lifetime = 7f; ((ProjectileExplosion)component2).falloffModel = (FalloffModel)2; ProjectileSimple component3 = ((Component)component2).GetComponent<ProjectileSimple>(); component3.lifetime = 7f; GameObject val2 = (((ProjectileExplosion)component2).childrenProjectilePrefab = PrefabAPI.InstantiateClone(((ProjectileExplosion)component2).childrenProjectilePrefab, "MoffeinArchWispCannonGround", true)); ArchaicWispContent.projectilePrefabs.Add(val2); ProjectileDamageTrail component4 = val2.GetComponent<ProjectileDamageTrail>(); component4.damageToTrailDpsFactor = 0.35f; component4.trailLifetimeAfterExpiration = 8f; ProjectileImpactExplosion component5 = val2.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component5).falloffModel = (FalloffModel)2; global::SneedUtils.SneedUtils.SetEntityStateField("EntityStates.ArchWispMonster.ChargeCannons", "baseDuration", "2"); global::SneedUtils.SneedUtils.SetEntityStateField("EntityStates.ArchWispMonster.FireCannons", "damageCoefficient", "3.6"); global::SneedUtils.SneedUtils.SetEntityStateField("EntityStates.ArchWispMonster.FireCannons", "projectilePrefab", (Object)(object)val); } } } public class Prefab { private static bool initialized; public static void Init() { if (!initialized) { initialized = true; CreateBody(); CreateMaster(); AddSniperTarget(); } } private static void AddSniperTarget() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) ModelLocator component = ArchaicWispContent.ArchaicWispObject.GetComponent<ModelLocator>(); HurtBoxGroup component2 = ((Component)component.modelTransform).gameObject.GetComponent<HurtBoxGroup>(); GameObject gameObject = ((Component)((Component)component2.mainHurtBox).transform).gameObject; Collider component3 = ((Component)component2.mainHurtBox).GetComponent<Collider>(); Object.Destroy((Object)(object)component2.mainHurtBox); Object.Destroy((Object)(object)component3); CapsuleCollider val = gameObject.AddComponent<CapsuleCollider>(); val.height = 3.6f; val.radius = 1f; val.direction = 2; HurtBox val2 = gameObject.AddComponent<HurtBox>(); val2.isBullseye = true; val2.healthComponent = ArchaicWispContent.ArchaicWispObject.GetComponent<HealthComponent>(); val2.damageModifier = (DamageModifier)0; val2.isSniperTarget = true; val2.hurtBoxGroup = component2; val2.indexInGroup = 0; component2.mainHurtBox = val2; component2.hurtBoxes[0] = val2; } private static void CreateMaster() { //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) ArchaicWispContent.ArchaicWispMaster = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ArchWisp/ArchWispMaster.prefab").WaitForCompletion(), "MoffeinArchWispMaster", true); CharacterMaster component = ArchaicWispContent.ArchaicWispMaster.GetComponent<CharacterMaster>(); component.bodyPrefab = ArchaicWispContent.ArchaicWispObject; } private static void CreateBody() { //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_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_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) ArchaicWispContent.ArchaicWispObject = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Junk/ArchWisp/ArchWispBody.prefab").WaitForCompletion(), "MoffeinArchWisp", true); SpecialObjectAttributes val = ArchaicWispContent.ArchaicWispObject.AddComponent<SpecialObjectAttributes>(); val.grabbable = true; val.damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)128); SphereCollider[] componentsInChildren = ArchaicWispContent.ArchaicWispObject.GetComponentsInChildren<SphereCollider>(); SphereCollider[] array = componentsInChildren; foreach (SphereCollider val2 in array) { if (((Object)((Component)val2).gameObject).name == "StandableSurface") { if (val.collisionToDisable == null) { val.collisionToDisable = new List<GameObject>(); } val.collisionToDisable.Add(((Component)val2).gameObject); break; } } CharacterBody component = ArchaicWispContent.ArchaicWispObject.GetComponent<CharacterBody>(); component.baseNameToken = "MOFFEIN_ARCHWISP_BODY_NAME"; component.baseMaxHealth = 900f; component.baseDamage = 15f; component.baseRegen = 0f; component.bodyFlags = (BodyFlags)0; component.portraitIcon = (Texture)(object)ArchaicWispContent.assets.LoadAsset<Texture2D>("icon"); component.baseArmor = 0f; component.levelMaxHealth = component.baseMaxHealth * 0.3f; component.levelDamage = component.baseDamage * 0.2f; component.levelRegen = component.baseRegen * 0.2f; component.levelArmor = 0f; component.preferredInitialStateType = new SerializableEntityStateType(typeof(SpawnState)); AddSSoH(ArchaicWispContent.ArchaicWispObject); DeathRewards component2 = ArchaicWispContent.ArchaicWispObject.GetComponent<DeathRewards>(); ArchaicWispContent.ArchaicWispLogbookUnlockable = ScriptableObject.CreateInstance<UnlockableDef>(); ArchaicWispContent.ArchaicWispLogbookUnlockable.nameToken = "UNLOCKABLE_LOG_MOFFEIN_MOFFEIN_ARCHWISP"; ArchaicWispContent.ArchaicWispLogbookUnlockable.cachedName = "MOFFEIN_ARCHWISP_BODY_NAME"; component2.logUnlockableDef = ArchaicWispContent.ArchaicWispLogbookUnlockable; ModelLocator component3 = ((Component)component).GetComponent<ModelLocator>(); if (!Object.op_Implicit((Object)(object)component3)) { return; } Transform modelTransform = component3.modelTransform; if (!Object.op_Implicit((Object)(object)modelTransform)) { return; } Transform val3 = null; ChildLocator component4 = ((Component)modelTransform).GetComponent<ChildLocator>(); NameTransformPair[] transformPairs = component4.transformPairs; NameTransformPair val5 = default(NameTransformPair); foreach (NameTransformPair val4 in transformPairs) { if (!(val4.name == "Mask") || Object.op_Implicit((Object)(object)val4.transform)) { continue; } val5 = val4; Transform[] componentsInChildren2 = ((Component)modelTransform).GetComponentsInChildren<Transform>(); Transform[] array2 = componentsInChildren2; foreach (Transform val6 in array2) { if (((Object)val6).name == "Mask") { val3 = val6; break; } } break; } if (Object.op_Implicit((Object)(object)val3)) { val5.transform = val3; } } private static void AddSSoH(GameObject enemyObject) { //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_00d7: 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) EntityStateMachine val = null; EntityStateMachine val2 = null; EntityStateMachine[] components = enemyObject.GetComponents<EntityStateMachine>(); EntityStateMachine[] array = components; foreach (EntityStateMachine val3 in array) { string customName = val3.customName; string text = customName; if (!(text == "Body")) { if (text == "Weapon") { val2 = val3; } } else { val = val3; } } SetStateOnHurt val4 = enemyObject.GetComponent<SetStateOnHurt>(); if (!Object.op_Implicit((Object)(object)val4)) { val4 = enemyObject.AddComponent<SetStateOnHurt>(); } val4.canBeFrozen = true; val4.canBeStunned = true; val4.canBeHitStunned = false; val4.hitThreshold = 0.5f; val4.targetStateMachine = val; val4.idleStateMachine = (EntityStateMachine[])(object)new EntityStateMachine[1] { val2 }; val4.hurtState = new SerializableEntityStateType(typeof(HurtStateFlyer)); val.initialStateType = new SerializableEntityStateType(typeof(SpawnState)); } } }