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 Ability Randomizer v1.1.1
DarknessExpansion.dll
Decompiled a year agousing System; using System.Collections.Generic; using System.Diagnostics; 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 BepInEx.Logging; using EntityStates; using EntityStates.Mage; using Microsoft.CodeAnalysis; using On; using On.EntityStates; using On.RoR2; using R2API; using RoR2; using RoR2.ContentManagement; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; [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("DarknessExpansion")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("DarknessExpansion")] [assembly: AssemblyTitle("DarknessExpansion")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace DarknessExpansion { [BepInPlugin("com.cybug.AbilityRandomizer", "AbilityRandomizer", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class AbilityRandomizer : BaseUnityPlugin { private struct StateMachine { public string name; public SerializableEntityStateType initial; public SerializableEntityStateType main; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Start <>9__8_0; public static hook_FindChild_string <>9__8_1; public static hook_FindChildIndex_string <>9__8_2; public static hook_Start <>9__8_3; public static hook_FindHitBoxGroup <>9__8_4; public static Predicate<HitBoxGroup> <>9__8_8; public static hook_Fire <>9__8_5; internal void <.ctor>b__8_0(orig_Start orig, CharacterBody self) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown orig.Invoke(self); ModelLocator component = ((Component)self).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelTransform)) { GameObject val = new GameObject("FallbackTransform"); val.transform.SetParent(component.modelTransform); } } internal Transform <.ctor>b__8_1(orig_FindChild_string orig, ChildLocator self, string str) { <>c__DisplayClass8_0 CS$<>8__locals0 = new <>c__DisplayClass8_0(); Transform val = orig.Invoke(self, str); if (Object.op_Implicit((Object)(object)val)) { return val; } CS$<>8__locals0.muzzles = new List<string>(); self.transformPairs.ToList().ForEach(delegate(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { CS$<>8__locals0.muzzles.Add(x.name); } }); if (CS$<>8__locals0.muzzles.Count >= 1) { string text = CS$<>8__locals0.muzzles[0]; return orig.Invoke(self, text); } return ((Component)self).transform.Find("FallbackTransform"); } internal int <.ctor>b__8_2(orig_FindChildIndex_string orig, ChildLocator self, string str) { <>c__DisplayClass8_1 CS$<>8__locals0 = new <>c__DisplayClass8_1(); int num = orig.Invoke(self, str); if (num != -1) { return num; } CS$<>8__locals0.muzzles = new List<string>(); self.transformPairs.ToList().ForEach(delegate(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { CS$<>8__locals0.muzzles.Add(x.name); } }); if (CS$<>8__locals0.muzzles.Count >= 1) { string text = CS$<>8__locals0.muzzles[0]; return orig.Invoke(self, text); } return -1; } internal void <.ctor>b__8_3(orig_Start orig, CharacterBody self) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: 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_00d6: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); ModelLocator component = ((Component)self).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelTransform)) { GameObject val = new GameObject("DefaultSSHitbox"); BoxCollider val2 = val.AddComponent<BoxCollider>(); val2.size = new Vector3(240f, 180f, 240f); HitBox val3 = val.AddComponent<HitBox>(); val.layer = LayerIndex.triggerZone.intVal; ((Collider)val2).isTrigger = true; val.transform.SetParent(component.modelTransform); val.transform.position = component.modelTransform.position; val.transform.localPosition = new Vector3(0f, 1f, 1.5f); Transform transform = val.transform; transform.localScale *= 3.5f; HitBoxGroup val4 = ((Component)component.modelTransform).gameObject.AddComponent<HitBoxGroup>(); val4.groupName = "DefaultSSGroup"; val4.hitBoxes = (HitBox[])(object)new HitBox[1] { val3 }; } } internal HitBoxGroup <.ctor>b__8_4(orig_FindHitBoxGroup orig, BaseState self, string str) { HitBoxGroup val = orig.Invoke(self, str); if (Object.op_Implicit((Object)(object)val)) { return val; } return orig.Invoke(self, "DefaultSSGroup"); } internal bool <.ctor>b__8_5(orig_Fire orig, OverlapAttack self, List<HurtBox> res) { if ((Object)(object)self.hitBoxGroup == (Object)null && Object.op_Implicit((Object)(object)self.attacker)) { CharacterBody component = self.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelLocator) && Object.op_Implicit((Object)(object)component.modelLocator.modelTransform)) { HitBoxGroup[] components = ((Component)component.modelLocator.modelTransform).GetComponents<HitBoxGroup>(); self.hitBoxGroup = Array.Find(components, (HitBoxGroup x) => x.groupName == "DefaultSSGroup"); Debug.Log((object)self.hitBoxGroup.groupName); } } return orig.Invoke(self, res); } internal bool <.ctor>b__8_8(HitBoxGroup x) { return x.groupName == "DefaultSSGroup"; } } [CompilerGenerated] private sealed class <>c__DisplayClass8_0 { public List<string> muzzles; internal void <.ctor>b__6(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { muzzles.Add(x.name); } } } [CompilerGenerated] private sealed class <>c__DisplayClass8_1 { public List<string> muzzles; internal void <.ctor>b__7(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { muzzles.Add(x.name); } } } private ConfigEntry<bool> keepSlot; private ConfigEntry<bool> workOnEnemies; private ConfigEntry<bool> workOnPlayers; private static List<SkillDef> primaries = new List<SkillDef>(); private static List<SkillDef> secondaries = new List<SkillDef>(); private static List<SkillDef> utilites = new List<SkillDef>(); private static List<SkillDef> specials = new List<SkillDef>(); private static List<SkillDef> all = new List<SkillDef>(); private static List<StateMachine> machines = new List<StateMachine>(); public AbilityRandomizer() { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Expected O, but got Unknown //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown //IL_00af: 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_00ba: 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_00df: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Expected O, but got Unknown //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Expected O, but got Unknown //IL_0168: 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_0173: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); keepSlot = ((BaseUnityPlugin)this).Config.Bind<bool>("", "Stay in slot", true, "Whether the abilities stay in the slot they are in."); workOnEnemies = ((BaseUnityPlugin)this).Config.Bind<bool>("", "Work On Enemies", false, "Whether enemy abilities are randomized."); workOnPlayers = ((BaseUnityPlugin)this).Config.Bind<bool>("", "Work On Players", true, "Whether player abilities are randomized."); CharacterBody.OnSkillActivated += new hook_OnSkillActivated(CharacterBodyOnOnSkillActivated); SurvivorCatalog.Init += new hook_Init(SurvivorCatalogOnInit); object obj = <>c.<>9__8_0; if (obj == null) { hook_Start val = delegate(orig_Start orig, CharacterBody self) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown orig.Invoke(self); ModelLocator component3 = ((Component)self).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)component3) && Object.op_Implicit((Object)(object)component3.modelTransform)) { GameObject val13 = new GameObject("FallbackTransform"); val13.transform.SetParent(component3.modelTransform); } }; <>c.<>9__8_0 = val; obj = (object)val; } CharacterBody.Start += (hook_Start)obj; object obj2 = <>c.<>9__8_1; if (obj2 == null) { hook_FindChild_string val2 = delegate(orig_FindChild_string orig, ChildLocator self, string str) { Transform val12 = orig.Invoke(self, str); if (Object.op_Implicit((Object)(object)val12)) { return val12; } List<string> muzzles2 = new List<string>(); self.transformPairs.ToList().ForEach(delegate(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { muzzles2.Add(x.name); } }); if (muzzles2.Count >= 1) { string text2 = muzzles2[0]; return orig.Invoke(self, text2); } return ((Component)self).transform.Find("FallbackTransform"); }; <>c.<>9__8_1 = val2; obj2 = (object)val2; } ChildLocator.FindChild_string += (hook_FindChild_string)obj2; object obj3 = <>c.<>9__8_2; if (obj3 == null) { hook_FindChildIndex_string val3 = delegate(orig_FindChildIndex_string orig, ChildLocator self, string str) { int num = orig.Invoke(self, str); if (num != -1) { return num; } List<string> muzzles = new List<string>(); self.transformPairs.ToList().ForEach(delegate(NameTransformPair x) { //IL_0001: 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) if (x.name.ToLower().Contains("muzzle")) { muzzles.Add(x.name); } }); if (muzzles.Count >= 1) { string text = muzzles[0]; return orig.Invoke(self, text); } return -1; }; <>c.<>9__8_2 = val3; obj3 = (object)val3; } ChildLocator.FindChildIndex_string += (hook_FindChildIndex_string)obj3; object obj4 = <>c.<>9__8_3; if (obj4 == null) { hook_Start val4 = delegate(orig_Start orig, CharacterBody self) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: 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_00d6: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); ModelLocator component2 = ((Component)self).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component2.modelTransform)) { GameObject val8 = new GameObject("DefaultSSHitbox"); BoxCollider val9 = val8.AddComponent<BoxCollider>(); val9.size = new Vector3(240f, 180f, 240f); HitBox val10 = val8.AddComponent<HitBox>(); val8.layer = LayerIndex.triggerZone.intVal; ((Collider)val9).isTrigger = true; val8.transform.SetParent(component2.modelTransform); val8.transform.position = component2.modelTransform.position; val8.transform.localPosition = new Vector3(0f, 1f, 1.5f); Transform transform = val8.transform; transform.localScale *= 3.5f; HitBoxGroup val11 = ((Component)component2.modelTransform).gameObject.AddComponent<HitBoxGroup>(); val11.groupName = "DefaultSSGroup"; val11.hitBoxes = (HitBox[])(object)new HitBox[1] { val10 }; } }; <>c.<>9__8_3 = val4; obj4 = (object)val4; } CharacterBody.Start += (hook_Start)obj4; object obj5 = <>c.<>9__8_4; if (obj5 == null) { hook_FindHitBoxGroup val5 = delegate(orig_FindHitBoxGroup orig, BaseState self, string str) { HitBoxGroup val7 = orig.Invoke(self, str); return Object.op_Implicit((Object)(object)val7) ? val7 : orig.Invoke(self, "DefaultSSGroup"); }; <>c.<>9__8_4 = val5; obj5 = (object)val5; } BaseState.FindHitBoxGroup += (hook_FindHitBoxGroup)obj5; object obj6 = <>c.<>9__8_5; if (obj6 == null) { hook_Fire val6 = delegate(orig_Fire orig, OverlapAttack self, List<HurtBox> res) { if ((Object)(object)self.hitBoxGroup == (Object)null && Object.op_Implicit((Object)(object)self.attacker)) { CharacterBody component = self.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.modelLocator) && Object.op_Implicit((Object)(object)component.modelLocator.modelTransform)) { HitBoxGroup[] components = ((Component)component.modelLocator.modelTransform).GetComponents<HitBoxGroup>(); self.hitBoxGroup = Array.Find(components, (HitBoxGroup x) => x.groupName == "DefaultSSGroup"); Debug.Log((object)self.hitBoxGroup.groupName); } } return orig.Invoke(self, res); }; <>c.<>9__8_5 = val6; obj6 = (object)val6; } OverlapAttack.Fire += (hook_Fire)obj6; CharacterBody.Start += new hook_Start(Components); } private void Components(orig_Start orig, CharacterBody self) { orig.Invoke(self); HuntressTracker component = ((Component)self).GetComponent<HuntressTracker>(); if (!Object.op_Implicit((Object)(object)component)) { component = ((Component)self).gameObject.AddComponent<HuntressTracker>(); component.maxTrackingDistance = 60f; component.maxTrackingAngle = 30f; component.trackerUpdateFrequency = 10f; } SeekerController component2 = ((Component)self).GetComponent<SeekerController>(); if (!Object.op_Implicit((Object)(object)component2)) { component2 = ((Component)self).gameObject.AddComponent<SeekerController>(); component2.skillLocator = self.skillLocator; component2.characterBody = self; } } private void SurvivorCatalogOnInit(orig_Init orig) { //IL_001c: 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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0121: 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_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(); SurvivorDef[] survivorDefs = SurvivorCatalog.survivorDefs; foreach (SurvivorDef val in survivorDefs) { if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Chef")) { GameObject bodyPrefab = val.bodyPrefab; SkillLocator component = bodyPrefab.GetComponent<SkillLocator>(); if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("FalseSon")) { CollectSkills(component.primary.skillFamily, ref primaries); } if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Railgunner")) { CollectSkills(component.secondary.skillFamily, ref secondaries); } if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Engi") && val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Captain")) { CollectSkills(component.utility.skillFamily, ref utilites); } if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Captain") && val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Toolbot") && val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Railgunner") && val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("VoidSurvivor")) { CollectSkills(component.special.skillFamily, ref specials); } if (val.survivorIndex != SurvivorCatalog.FindSurvivorIndex("Toolbot")) { CollectMachines(val.bodyPrefab); } } } SurvivorDef[] survivorDefs2 = ContentManager.survivorDefs; foreach (SurvivorDef val2 in survivorDefs2) { GameObject bodyPrefab2 = val2.bodyPrefab; SetupStateMachines(bodyPrefab2); } } internal static void SetupStateMachines(GameObject survivor) { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: 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_005d: Unknown result type (might be due to invalid IL or missing references) foreach (StateMachine machine in machines) { if (!HasMachine(survivor, machine.name)) { NetworkStateMachine component = survivor.GetComponent<NetworkStateMachine>(); EntityStateMachine val = survivor.AddComponent<EntityStateMachine>(); val.customName = machine.name; val.initialStateType = machine.initial; val.mainStateType = machine.main; List<EntityStateMachine> list = component.stateMachines.ToList(); list.Add(val); component.stateMachines = list.ToArray(); } } } internal static bool HasMachine(GameObject survivor, string name) { //IL_0050: 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_0065: 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) EntityStateMachine[] components = survivor.GetComponents<EntityStateMachine>(); foreach (EntityStateMachine val in components) { if (val.customName != null && val.customName == name) { if (val.customName == "Body") { val.initialStateType = new SerializableEntityStateType(typeof(MageCharacterMain)); val.mainStateType = new SerializableEntityStateType(typeof(MageCharacterMain)); } return true; } } return false; } private void CharacterBodyOnOnSkillActivated(orig_OnSkillActivated orig, CharacterBody self, GenericSkill skill) { //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Expected O, but got Unknown //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Expected O, but got Unknown //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Expected O, but got Unknown //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Expected O, but got Unknown //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown orig.Invoke(self, skill); if ((!workOnEnemies.Value && !self.isPlayerControlled) || (!workOnPlayers.Value && self.isPlayerControlled) || !Object.op_Implicit((Object)(object)self.skillLocator)) { return; } if ((Object)(object)self.skillLocator.primary == (Object)(object)skill) { self.skillLocator.primary.skillDef = (keepSlot.Value ? primaries[(int)((float)primaries.Count * Random.value)] : all[(int)((float)all.Count * Random.value)]); self.skillLocator.primary.cooldownOverride = self.skillLocator.primary.skillDef.baseRechargeInterval; if (self.skillLocator.primary.skillDef is HuntressTrackingSkillDef) { self.skillLocator.primary.skillInstanceData = (BaseSkillInstanceData)new InstanceData { huntressTracker = ((Component)self).gameObject.GetComponent<HuntressTracker>() }; } if (self.skillLocator.primary.skillDef is ReloadSkillDef) { self.skillLocator.primary.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } if (self.skillLocator.primary.skillDef is SteppedSkillDef) { self.skillLocator.primary.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } } else if ((Object)(object)self.skillLocator.secondary == (Object)(object)skill) { self.skillLocator.secondary.skillDef = (keepSlot.Value ? secondaries[(int)((float)secondaries.Count * Random.value)] : all[(int)((float)all.Count * Random.value)]); self.skillLocator.secondary.cooldownOverride = self.skillLocator.secondary.skillDef.baseRechargeInterval; if (self.skillLocator.secondary.skillDef is HuntressTrackingSkillDef) { self.skillLocator.secondary.skillInstanceData = (BaseSkillInstanceData)new InstanceData { huntressTracker = ((Component)self).gameObject.GetComponent<HuntressTracker>() }; } if (self.skillLocator.secondary.skillDef is SteppedSkillDef) { self.skillLocator.secondary.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } } else if ((Object)(object)self.skillLocator.utility == (Object)(object)skill) { self.skillLocator.utility.skillDef = (keepSlot.Value ? utilites[(int)((float)utilites.Count * Random.value)] : all[(int)((float)all.Count * Random.value)]); self.skillLocator.utility.cooldownOverride = self.skillLocator.utility.skillDef.baseRechargeInterval; if (self.skillLocator.utility.skillDef is MercDashSkillDef) { self.skillLocator.utility.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } if (self.skillLocator.utility.skillDef is SteppedSkillDef) { self.skillLocator.utility.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } } else if ((Object)(object)self.skillLocator.special == (Object)(object)skill) { self.skillLocator.special.skillDef = (keepSlot.Value ? specials[(int)((float)specials.Count * Random.value)] : all[(int)((float)all.Count * Random.value)]); self.skillLocator.special.cooldownOverride = self.skillLocator.special.skillDef.baseRechargeInterval; if (self.skillLocator.special.skillDef is SteppedSkillDef) { self.skillLocator.special.skillInstanceData = (BaseSkillInstanceData)new InstanceData(); } } } private void CollectSkills(SkillFamily secondarySkillFamily, ref List<SkillDef> skillDefs) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) Variant[] variants = secondarySkillFamily.variants; foreach (Variant val in variants) { skillDefs.Add(val.skillDef); all.Add(val.skillDef); } } internal static void CollectMachines(GameObject survivor) { //IL_003b: 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_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0084: 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) EntityStateMachine[] components = survivor.GetComponents<EntityStateMachine>(); foreach (EntityStateMachine val in components) { if (!ContainsMachine(val)) { StateMachine item = default(StateMachine); item.name = val.customName; item.initial = val.initialStateType; item.main = val.mainStateType; if (item.name == "Body") { item.initial = new SerializableEntityStateType(typeof(MageCharacterMain)); item.main = item.initial; } machines.Add(item); } } static bool ContainsMachine(EntityStateMachine machine) { if (machine.customName == null) { return true; } foreach (StateMachine machine in machines) { if (machine.name == machine.customName) { return true; } } return false; } } } public class BigArtifact { public static ArtifactDef bigArtifact; public static Sprite iconDisabled = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteOnly/texArtifactEliteOnlyDisabled.png").WaitForCompletion(); public static Sprite iconEnabled = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/EliteOnly/texArtifactEliteOnlyEnabled.png").WaitForCompletion(); public BigArtifact() { bigArtifact = ScriptableObject.CreateInstance<ArtifactDef>(); bigArtifact.nameToken = "Artifact of Size"; bigArtifact.descriptionToken = "Everything is Bigger"; bigArtifact.smallIconDeselectedSprite = iconDisabled; bigArtifact.smallIconSelectedSprite = iconEnabled; ContentAddition.AddArtifactDef(bigArtifact); SpawnCard.onSpawnedServerGlobal += SpawnCardOnonSpawnedServerGlobal; } private void SpawnCardOnonSpawnedServerGlobal(SpawnResult obj) { //IL_0015: 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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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) if (RunArtifactManager.instance.IsArtifactEnabled(bigArtifact)) { Transform transform = obj.spawnedInstance.transform; transform.localScale *= 3f; CharacterMaster component = obj.spawnedInstance.GetComponent<CharacterMaster>(); if ((Object)(object)component != (Object)null) { Transform transform2 = component.GetBody().transform; transform2.localScale *= 3f; } } } } public class RandomArtifact { public static ArtifactDef randomArtifact; public static Sprite iconDisabled = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/TeamDeath/texArtifactDeathDisabled.png").WaitForCompletion(); public static Sprite iconEnabled = Addressables.LoadAssetAsync<Sprite>((object)"RoR2/Base/TeamDeath/texArtifactDeathEnabled.png").WaitForCompletion(); public ItemIndex itemToEquip = (ItemIndex)(-1); public int bigEnemiesLeft = 0; public int smallEnemiesLeft = 0; public int removeElites = 0; public int gainElites = 0; public RandomArtifact() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown randomArtifact = ScriptableObject.CreateInstance<ArtifactDef>(); randomArtifact.nameToken = "Artifact of Fun"; randomArtifact.descriptionToken = "Something random happens whenever you pickup an item."; randomArtifact.smallIconDeselectedSprite = iconDisabled; randomArtifact.smallIconSelectedSprite = iconEnabled; ContentAddition.AddArtifactDef(randomArtifact); Inventory.onServerItemGiven += InventoryOnonServerItemGiven; SpawnCard.onSpawnedServerGlobal += SpawnCardOnonSpawnedServerGlobal; CombatDirector.Spawn += new hook_Spawn(CombatDirectorOnSpawn); } private void InventoryOnonServerItemGiven(Inventory arg1, ItemIndex arg2, int arg3) { //IL_0010: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: 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_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_009b: 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) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Invalid comparison between Unknown and I4 //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Expected O, but got Unknown //IL_01ae: 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: Invalid comparison between Unknown and I4 //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Invalid comparison between Unknown and I4 //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Expected O, but got Unknown //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Invalid comparison between Unknown and I4 //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Invalid comparison between Unknown and I4 //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Expected O, but got Unknown //IL_0291: 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_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: 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_01fe: Invalid comparison between Unknown and I4 //IL_01cd: 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_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Expected O, but got Unknown //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Expected O, but got Unknown //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Expected O, but got Unknown //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Expected O, but got Unknown //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Expected O, but got Unknown //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Expected O, but got Unknown //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Expected O, but got Unknown //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Expected O, but got Unknown //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Expected O, but got Unknown //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Unknown result type (might be due to invalid IL or missing references) //IL_053d: Expected O, but got Unknown //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0540: 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_0519: Expected O, but got Unknown //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Expected O, but got Unknown //IL_0552: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Expected O, but got Unknown //IL_057c: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Expected O, but got Unknown //IL_04c1: Unknown result type (might be due to invalid IL or missing references) //IL_04c6: Unknown result type (might be due to invalid IL or missing references) //IL_04de: Expected O, but got Unknown //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Expected O, but got Unknown //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Expected O, but got Unknown //IL_0627: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Expected O, but got Unknown //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_0642: 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_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0677: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_0699: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Expected O, but got Unknown //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_06f9: Expected O, but got Unknown //IL_0706: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0720: 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_07e8: Expected O, but got Unknown //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_0763: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_077a: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0788: Unknown result type (might be due to invalid IL or missing references) //IL_078e: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Expected O, but got Unknown //IL_07a3: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: Unknown result type (might be due to invalid IL or missing references) //IL_07c1: Expected O, but got Unknown int num = Random.RandomRangeInt(0, 25); int num2 = arg1.itemAcquisitionOrder.IndexOf(arg2); ItemTier tier = ItemCatalog.GetItemDef(arg2).tier; if (num == 0) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FFFFFF>Nothing Happens!</color></style>" }); } if (num == 1) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF0000>Lose your item.</color></style>" }); arg1.RemoveItem(arg2, arg3); } if (num == 2) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FF00>Double your item.</color></style>" }); arg1.itemStacks[arg1.itemAcquisitionOrder.IndexOf(arg2)] *= 2; } if (num == 3) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#0000FF>Randomize your item.</color></style>" }); List<ItemIndex> items = getItems(tier); arg1.itemAcquisitionOrder[num2] = items[Random.RandomRangeInt(0, items.Count)]; } if (num == 4) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FF00>Upgrade your item.</color></style>" }); ItemTier val = (ItemTier)4; if ((int)tier == 0) { val = (ItemTier)1; } else if ((int)tier == 1) { val = (ItemTier)2; } List<ItemIndex> items2 = getItems(val); arg1.itemAcquisitionOrder[num2] = items2[Random.RandomRangeInt(0, items2.Count)]; if ((int)val == 4) { arg1.itemStacks[num2] *= 2; } } if (num == 5) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF0000>Downgrade your item.</color></style>" }); ItemTier val2 = (ItemTier)4; if ((int)tier == 1) { val2 = (ItemTier)0; } else if ((int)tier == 2) { val2 = (ItemTier)1; } List<ItemIndex> items3 = getItems(val2); arg1.itemAcquisitionOrder[num2] = items3[Random.RandomRangeInt(0, items3.Count)]; if ((int)val2 == 4) { arg1.itemStacks[num2] = Mathf.Max(1, arg1.itemStacks[num2] / 2); } } if (num == 6) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FFFF>Get Bigger!</color></style>" }); Transform transform = ((Component)arg1).gameObject.transform; transform.localScale *= 1.25f; } if (num == 7) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF00FF>Get Smaller!</color></style>" }); Transform transform2 = ((Component)arg1).gameObject.transform; transform2.localScale *= 0.75f; } if (num == 8) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF0000>Lose your Bead Stats.</color></style>" }); arg1.beadAppliedDamage = 0f; arg1.beadAppliedHealth = 0f; arg1.beadAppliedRegen = 0f; arg1.beadAppliedShield = 0f; } if (num == 9) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FF00>Get some Bonus Health!</color></style>" }); arg1.beadAppliedHealth += 100f; } if (num == 10) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FFFF00>Get some Bonus Damage!</color></style>" }); arg1.beadAppliedDamage += 5f; } if (num == 11) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FFFF>Big Enemies Incoming!</color></style>" }); bigEnemiesLeft += 10; } if (num == 12) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF00FF>Small Enemies Incoming!</color></style>" }); smallEnemiesLeft += 10; } if (num == 13) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FF00>Heal to Full.</color></style>" }); CharacterBody component = ((Component)arg1).GetComponent<CharacterBody>(); component.healthComponent.Heal((float)(int)component.maxHealth, default(ProcChainMask), true); } if (num == 14) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF0000>Damage!!!!</color></style>" }); CharacterBody component2 = ((Component)arg1).GetComponent<CharacterBody>(); component2.healthComponent.TakeDamage(new DamageInfo { damage = component2.maxHealth * Random.value }); } if (num == 15) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#000000>Spinning the death roulette.</color></style>" }); if (Random.RandomRangeInt(0, 100) == 0) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#000000>YOU HAVE BEEN DOOMED TO DIE!!!!</color></style>" }); CharacterBody component3 = ((Component)arg1).GetComponent<CharacterBody>(); for (int i = 0; i < 10; i++) { component3.healthComponent.TakeDamage(new DamageInfo { damage = component3.maxHealth * 10f }); } component3.healthComponent.Die(false); } else { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#000000>You survive this time.</color></style>" }); } } if (num == 16) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF0000>An enemy equips this item.</color></style>" }); itemToEquip = arg2; } if (num == 17) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FF00>The next 5 elites will become normal enemies.</color></style>" }); removeElites = 5; } if (num == 18) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#0000FF>The next 5 normal enemies will become a random elite.</color></style>" }); removeElites = 5; } if (num == 19) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FF00FF>Enable a random artifact.</color></style>" }); RunArtifactManager.instance.SetArtifactEnabled(ArtifactCatalog.artifactDefs[(int)((float)ArtifactCatalog.artifactDefs.Length * Random.value)], true); } if (num == 20) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#00FFFF>Gain a barrier!</color></style>" }); CharacterBody component4 = ((Component)arg1).GetComponent<CharacterBody>(); component4.healthComponent.AddBarrier(100f); } if (num == 21) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FFAA00>Random teleport!</color></style>" }); Vector3 onUnitSphere = Random.onUnitSphere; onUnitSphere.y = 0f; Transform transform3 = ((Component)arg1).gameObject.transform; transform3.position += ((Vector3)(ref onUnitSphere)).normalized * Random.Range(5f, 10f); } if (num == 22) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#8888FF>Random Buff for 20 seconds!</color></style>" }); CharacterBody component5 = ((Component)arg1).GetComponent<CharacterBody>(); component5.AddTimedBuff(BuffCatalog.buffDefs[(int)((float)BuffCatalog.buffDefs.Length * Random.value)], 20f); } if (num == 23) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FFFF00>A Meteor strikes the nearest foe!</color></style>" }); CharacterBody component6 = ((Component)arg1).GetComponent<CharacterBody>(); Ray val3 = default(Ray); ((Ray)(ref val3)).direction = component6.transform.forward; CharacterBody enemyEasyTarget = Util.GetEnemyEasyTarget(component6, val3, 100f, 100f); if (Object.op_Implicit((Object)(object)enemyEasyTarget)) { enemyEasyTarget.healthComponent.TakeDamage(new DamageInfo { damage = 150f, position = enemyEasyTarget.transform.position, attacker = ((Component)component6).gameObject, inflictor = null, crit = false, damageType = DamageTypeCombo.op_Implicit((DamageType)16777216) }); EffectManager.SpawnEffect(CommonAssets.runicMeteorEffect, new EffectData { origin = enemyEasyTarget.transform.position }, true); } } if (num == 24) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "<style=cEvent><color=#FFFF00>Swap health with a random enemy!</color></style>" }); CharacterBody component7 = ((Component)arg1).GetComponent<CharacterBody>(); List<CharacterBody> list = CharacterBody.instancesList.Where((CharacterBody b) => (int)b.teamComponent.teamIndex == 2).ToList(); if (list.Count > 0) { CharacterBody val4 = list[Random.Range(0, list.Count)]; float health = component7.healthComponent.health; float health2 = val4.healthComponent.health; component7.healthComponent.health = Mathf.Clamp(health2, 1f, component7.healthComponent.fullHealth); val4.healthComponent.health = Mathf.Clamp(health, 1f, val4.healthComponent.fullHealth); } } } private void SpawnCardOnonSpawnedServerGlobal(SpawnResult obj) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_0079: 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_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_00ed: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: 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) if (bigEnemiesLeft > 0) { Transform transform = obj.spawnedInstance.transform; transform.localScale *= 2f; CharacterMaster component = obj.spawnedInstance.GetComponent<CharacterMaster>(); if ((Object)(object)component != (Object)null) { Transform transform2 = component.GetBody().transform; transform2.localScale *= 2f; } } if (smallEnemiesLeft > 0) { Transform transform3 = obj.spawnedInstance.transform; transform3.localScale *= 0.5f; CharacterMaster component2 = obj.spawnedInstance.GetComponent<CharacterMaster>(); if ((Object)(object)component2 != (Object)null) { Transform transform4 = component2.GetBody().transform; transform4.localScale *= 0.5f; } } if ((int)itemToEquip != -1) { obj.spawnedInstance.GetComponent<Inventory>().GiveItem(itemToEquip, 1); itemToEquip = (ItemIndex)(-1); } } private bool CombatDirectorOnSpawn(orig_Spawn origSpawn, CombatDirector self, SpawnCard spawncard, EliteDef elitedef, Transform spawntarget, MonsterSpawnDistance spawndistance, bool preventoverhead, float valuemultiplier, PlacementMode placementmode) { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) if (removeElites > 0 && (Object)(object)elitedef != (Object)null) { elitedef = null; removeElites--; } if ((Object)(object)elitedef == (Object)null && gainElites > 0) { elitedef = EliteCatalog.eliteDefs[(int)((float)EliteCatalog.eliteDefs.Length * Random.value)]; gainElites--; } return origSpawn.Invoke(self, spawncard, elitedef, spawntarget, spawndistance, preventoverhead, valuemultiplier, placementmode); } public List<ItemIndex> getItems(ItemTier tier) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Invalid comparison between Unknown and I4 //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Invalid comparison between Unknown and I4 //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Invalid comparison between Unknown and I4 if ((int)tier == 0) { return ItemCatalog.tier1ItemList; } if ((int)tier == 1) { return ItemCatalog.tier2ItemList; } if ((int)tier == 2) { return ItemCatalog.tier3ItemList; } if ((int)tier == 3) { return ItemCatalog.lunarItemList; } return ItemCatalog.itemNameToIndex.Values.ToList(); } } internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } }