Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of TF2Emotes v1.3.0
TitanFall2Emotes.dll
Decompiled a year agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EmotesAPI; using Microsoft.CodeAnalysis; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; [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("TitanFall2Emotes")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+236c1eb710febc01513bb47af860b0406a555218")] [assembly: AssemblyProduct("TitanFall2Emotes")] [assembly: AssemblyTitle("TitanFall2Emotes")] [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 TitanFall2Emotes { public static class Assets { private enum ResourceType { AssetBundle, SoundBank, DisplayRuleSetOverride, Other } private static readonly string[] KnownExtensions = new string[5] { "png", "exe", "txt", "xcf", "bat" }; private static readonly List<AssetBundle> AssetBundles = new List<AssetBundle>(); private static readonly Dictionary<string, int> AssetIndices = new Dictionary<string, int>(); private static readonly List<string> SoundBanksToLoad = new List<string>(); private static readonly List<string> FoundSoundBanks = new List<string>(); private static readonly Dictionary<string, string> DisplayRuleSetOverrides = new Dictionary<string, string>(); private static Material _prefab; public static Material LoadMaterial(string texture) { Material val = Object.Instantiate<Material>(Assets.Load<Material>("general/basehgstandard.mat")); val.SetTexture("_MainTex", Assets.Load<Texture>(texture)); ((Object)val).name = texture; return val; } public static Material RobloxMaterial(string texture) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)_prefab)) { _prefab = Object.Instantiate<Material>(((Renderer)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Golem/GolemBody.prefab").WaitForCompletion().GetComponentInChildren<SkinnedMeshRenderer>()).material); } Material val = Object.Instantiate<Material>(_prefab); val.mainTexture = Assets.Load<Texture>(texture); val.SetColor("_Color", Color.white); val.SetFloat("_EmPower", 0f); val.SetColor("_EmColor", Color.white); val.SetTexture("_EmTex", (Texture)null); val.SetTexture("_FresnelRamp", (Texture)null); val.SetFloat("_NormalStrength", 0.5f); val.SetTexture("_NormalTex", (Texture)null); ((Object)val).name = texture; return val; } public static Material CopyMaterial(Texture texture) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)_prefab)) { _prefab = Object.Instantiate<Material>(((Renderer)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponentInChildren<SkinnedMeshRenderer>()).material); } Material val = Object.Instantiate<Material>(_prefab); val.mainTexture = texture; val.SetColor("_Color", Color.white); val.SetFloat("_EmPower", 0f); val.SetColor("_EmColor", Color.white); val.SetTexture("_EmTex", (Texture)null); val.SetFloat("_NormalStrength", 0.5f); val.SetTexture("_NormalTex", (Texture)null); return val; } internal static void PopulateAssets() { string[] manifestResourceNames = Assembly.GetExecutingAssembly().GetManifestResourceNames(); string[] array = manifestResourceNames; foreach (string text in array) { switch (GetResourceType(text)) { case ResourceType.AssetBundle: LoadAssetBundle(text); break; case ResourceType.SoundBank: FoundSoundBanks.Add(text); break; case ResourceType.DisplayRuleSetOverride: DisplayRuleSetOverrides.Add(GetFileName(text).Split('.')[0], text); break; } } } internal static void LoadSoundBanks() { foreach (string foundSoundBank in FoundSoundBanks) { int num = SoundBanksToLoad.IndexOf(GetFileName(foundSoundBank)); if (num >= 0) { LoadSoundBank(foundSoundBank); SoundBanksToLoad.RemoveAt(num); } } } private static string GetFileName(string resource) { string[] array = resource.Split('.'); return array[^2] + "." + array[^1]; } internal static void AddSoundBank(string name) { SoundBanksToLoad.Add(name ?? ""); } private static ResourceType GetResourceType(string resourceName) { string[] array = resourceName.Split('.'); if (array.Length == 0) { throw new Exception("Invalid asset found: " + resourceName); } string text = array[^1]; if (text == "bnk") { return ResourceType.SoundBank; } if (text == "drso") { return ResourceType.DisplayRuleSetOverride; } if (Array.IndexOf(KnownExtensions, text) >= 0) { return ResourceType.Other; } return ResourceType.AssetBundle; } private static void LoadAssetBundle(string location) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(location); AssetBundle val = AssetBundle.LoadFromStream(stream); int count = AssetBundles.Count; AssetBundles.Add(val); string[] allAssetNames = val.GetAllAssetNames(); foreach (string text in allAssetNames) { string text2 = text.ToLowerInvariant(); if (text2.StartsWith("assets/")) { text2 = text2.Remove(0, "assets/".Length); } AssetIndices[text2] = count; } DebugClass.Log((object)("Loaded AssetBundle: " + location)); } private static void LoadSoundBank(string location) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(location); byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); SoundBanks.Add(array); DebugClass.Log((object)("Loaded SoundBank: " + location)); } [Obsolete("AssetBundles are loaded automatically, calling this does literally nothing")] public static void AddBundle(string assetBundleLocation) { } public static T Load<T>(string assetName) where T : Object { //IL_00d2: 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) if (assetName.Contains(":")) { string[] array = assetName.Split(':'); assetName = array[1].ToLowerInvariant(); } if (assetName.ToLowerInvariant().StartsWith("assets/")) { assetName = assetName.Remove(0, "assets/".Length); } int index = AssetIndices[assetName.ToLowerInvariant()]; T val = AssetBundles[index].LoadAsset<T>("assets/" + assetName); object obj = val; Material val2 = (Material)((obj is Material) ? obj : null); if (val2 != null && ((Object)val2.shader).name.StartsWith("MoistToolkit/StubbedShader")) { val2.shader = Addressables.LoadAssetAsync<Shader>((object)("RoR2/Base/Shaders/" + ((Object)val2.shader).name.Substring(27) + ".shader")).WaitForCompletion(); } return val; } public static Stream LoadDisplayRuleSetOverride(string overrideName) { string name = DisplayRuleSetOverrides[overrideName]; return Assembly.GetExecutingAssembly().GetManifestResourceStream(name); } } internal class ChairHandler : MonoBehaviour { internal GameObject chair; private bool check = true; internal Vector3 pos; internal Vector3 rot; internal Vector3 scal; private bool check2 = false; private bool check3 = false; internal BoneMapper mapper; private float timer = 0f; private int whenToEmote = 0; private void Start() { Material[] materials = ((Renderer)((Component)this).GetComponentInChildren<SkinnedMeshRenderer>()).materials; foreach (Material val in materials) { val.shader = TF2Plugin.defaultShader; val.shaderKeywords = new string[1] { "DITHER" }; } whenToEmote = Random.Range(15, 25); } private void Update() { //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_025f: 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_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) if (check) { timer += Time.deltaTime; } if (timer > (float)whenToEmote) { timer = 0f; whenToEmote = Random.Range(15, 25); switch (Random.Range(0, 3)) { case 0: mapper.preserveParent = true; mapper.preserveProps = true; DebugClass.Log((object)"burp"); mapper.PlayAnim("engiRanchoBurp", 0); AkSoundEngine.PostEvent("Play_RanchoBurp", ((Component)mapper).gameObject); break; case 1: mapper.preserveParent = true; mapper.preserveProps = true; DebugClass.Log((object)"bigDrink"); mapper.PlayAnim("engiRanchoBigDrink", 0); AkSoundEngine.PostEvent("Play_RanchoLong", ((Component)mapper).gameObject); ((Component)this).GetComponentInChildren<Animator>().SetBool("BigDrink", true); break; case 2: mapper.preserveParent = true; mapper.preserveProps = true; DebugClass.Log((object)"quickDrink"); mapper.PlayAnim("engiRanchoQuickDrink", 0); AkSoundEngine.PostEvent("Play_RanchoQuick", ((Component)mapper).gameObject); ((Component)this).GetComponentInChildren<Animator>().SetBool("SmallDrink", true); break; } } else if (timer > 3f) { ((Component)this).GetComponentInChildren<Animator>().SetBool("BigDrink", false); ((Component)this).GetComponentInChildren<Animator>().SetBool("SmallDrink", false); } if (check && !Object.op_Implicit((Object)(object)chair)) { check = false; ((MonoBehaviour)this).StartCoroutine(spinThenDestroy()); ((Component)this).GetComponentInChildren<Animator>().SetBool("Breaking", true); ((Component)this).gameObject.transform.SetParent((Transform)null); ((Component)this).gameObject.transform.position = pos; ((Component)this).gameObject.transform.localEulerAngles = rot; ((Component)this).gameObject.transform.localScale = scal; scal *= 1.333f; AkSoundEngine.PostEvent("Stop_Rancho", ((Component)mapper).gameObject); AkSoundEngine.PostEvent("Play_RanchoClose", ((Component)this).gameObject); } if (check3) { ((Component)this).gameObject.transform.localScale = Vector3.Slerp(((Component)this).gameObject.transform.localScale, Vector3.zero, Time.deltaTime * 5f); } else if (check2) { ((Component)this).gameObject.transform.localScale = Vector3.Slerp(((Component)this).gameObject.transform.localScale, scal, Time.deltaTime * 30f); } } private IEnumerator spinThenDestroy() { yield return (object)new WaitForSeconds(3.5f); check2 = true; yield return (object)new WaitForSeconds(0.15f); check3 = true; yield return (object)new WaitForSeconds(1f); Object.Destroy((Object)(object)((Component)this).gameObject); } } internal class Conga : MonoBehaviour { public string akSound; public static void StartConga(BoneMapper joinerMapper, int spot) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0037: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.Conga_Emotes[spot], 0); GameObject val = new GameObject(); val.transform.parent = ((Component)joinerMapper).gameObject.transform; val.transform.localPosition = Vector3.zero; string text = ""; switch (spot) { case 0: text = "Conga_Demo"; break; case 1: text = "Conga_Engi"; break; case 2: text = "Conga_Heavy"; break; case 3: text = "Conga_Medic"; break; case 4: text = "Conga_Pyro"; break; case 5: text = "Conga_Scout"; break; case 6: text = "Conga_Sniper"; break; case 7: text = "Conga_Soldier"; break; case 8: text = "Conga_Spy"; break; } val.AddComponent<Conga>().akSound = text; joinerMapper.props.Add(val); joinerMapper.SetAutoWalk(1.2f, true); } private void Start() { AkSoundEngine.PostEvent(akSound, ((Component)this).gameObject); } private void OnDestroy() { AkSoundEngine.StopAll(((Component)this).gameObject); } } internal class Flip : MonoBehaviour { public int charType; public static void FlipWait(BoneMapper joinerMapper, int spot) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0067: 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_008f: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.Flip_Wait_Emotes[spot], 0); joinerMapper.props.Add(new GameObject()); joinerMapper.props[0].AddComponent<Flip>().charType = spot; GameObject val = new GameObject(); ((Object)val).name = "Flip_WaitProp"; joinerMapper.props.Add(val); val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, true, true, false); } public static void Flip_Flip(BoneMapper joinerMapper, int spot, BoneMapper hostJoinerMapper) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: 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_00da: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.Flip_Flip_Emotes[spot], 0); GameObject val = new GameObject(); ((Object)val).name = "Flip_FlipProp"; joinerMapper.props.Add(val); Vector3 localScale = ((Component)hostJoinerMapper).transform.parent.localScale; ((Component)hostJoinerMapper).transform.parent.localScale = Vector3.one; val.transform.SetParent(((Component)hostJoinerMapper).transform.parent); val.transform.localPosition = new Vector3(0f, 0f, 1.95f); val.transform.localEulerAngles = new Vector3(0f, 180f, 0f); val.transform.localScale = Vector3.one; val.transform.SetParent((Transform)null); ((Component)hostJoinerMapper).transform.parent.localScale = localScale; joinerMapper.AssignParentGameObject(val, true, true, true, true, true); } public static void Flip_Throw(BoneMapper joinerMapper, int spot, BoneMapper hostJoinerMapper) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.Flip_Throw_Emotes[spot], 0); GameObject val = new GameObject(); ((Object)val).name = "Flip_ThrowProp"; joinerMapper.props.Add(val); val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, true, true, false); } } internal class Kazotsky : MonoBehaviour { public static void StartKazotsky(BoneMapper joinerMapper, int spot) { joinerMapper.PlayAnim(TF2Plugin.KazotskyKick_Emotes[spot], 0); joinerMapper.SetAutoWalk(2f, true, false); } } internal class Laugh : MonoBehaviour { public static void PlayLaugh(BoneMapper joinerMapper, int spot) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.Laugh_Emotes[spot], 0); GameObject val = new GameObject(); ((Object)val).name = "Laugh_HaltProp"; joinerMapper.props.Add(val); val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, true, true, false); } } internal class RockPaperScissors : MonoBehaviour { public int charType; public static void RPSStart(BoneMapper joinerMapper, int spot) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0067: 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_008f: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.RPS_Start_Emotes[spot], 0); joinerMapper.props.Add(new GameObject()); joinerMapper.props[0].AddComponent<RockPaperScissors>().charType = spot; GameObject val = new GameObject(); ((Object)val).name = "RPS_StartProp"; joinerMapper.props.Add(val); val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, false, false, false); } public static void RPSWin(BoneMapper joinerMapper, int spot, BoneMapper hostJoinerMapper, TeamIndex joinerIndex, TeamIndex hostIndex) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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_0076: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_021c: 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_0263: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.RPS_Win_Emotes[spot], 0); GameObject val = new GameObject(); ((Object)val).name = "RPS_WinProp"; joinerMapper.props.Add(val); if ((Object)(object)hostJoinerMapper != (Object)(object)joinerMapper) { val.transform.SetParent(((Component)hostJoinerMapper).transform); Vector3 lossyScale = ((Component)hostJoinerMapper).transform.lossyScale; val.transform.localPosition = new Vector3(0f, 0f, 2.5f / lossyScale.z); val.transform.localEulerAngles = new Vector3(0f, 180f, 0f); val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, false, false, true); } else { val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, false, false, false); } string text = "Red"; if (joinerIndex != hostIndex) { text = "Blu"; TF2Plugin.Instance.KillAfterSecondsNotIEnumerator(hostJoinerMapper, 6.5f); } int count = joinerMapper.props.Count; switch (spot % 3) { case 0: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Rock_Win.prefab"))); break; case 1: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Paper_Win.prefab"))); break; case 2: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Scissors_Win.prefab"))); break; } joinerMapper.props[count].transform.SetParent(joinerMapper.parentGameObject.transform); joinerMapper.props[count].transform.localEulerAngles = Vector3.zero; joinerMapper.props[count].transform.localPosition = new Vector3(0f, 2.5f * joinerMapper.props[count].transform.lossyScale.y, 0f); joinerMapper.ScaleProps(); } public static void RPSLose(BoneMapper joinerMapper, int spot, BoneMapper hostJoinerMapper, TeamIndex joinerIndex, TeamIndex hostIndex) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_005a: 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_0076: 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_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_021c: 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_0263: Unknown result type (might be due to invalid IL or missing references) joinerMapper.PlayAnim(TF2Plugin.RPS_Loss_Emotes[spot], 0); GameObject val = new GameObject(); ((Object)val).name = "RPS_LossProp"; joinerMapper.props.Add(val); if ((Object)(object)hostJoinerMapper != (Object)(object)joinerMapper) { val.transform.SetParent(((Component)hostJoinerMapper).transform); Vector3 lossyScale = ((Component)hostJoinerMapper).transform.lossyScale; val.transform.localPosition = new Vector3(0f, 0f, 2.5f / lossyScale.z); val.transform.localEulerAngles = new Vector3(0f, 180f, 0f); val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, false, false, true); } else { val.transform.localPosition = ((Component)joinerMapper).transform.position; val.transform.localEulerAngles = ((Component)joinerMapper).transform.eulerAngles; val.transform.localScale = Vector3.one; joinerMapper.AssignParentGameObject(val, true, true, false, false, false); } string text = "Red"; if (joinerIndex != hostIndex) { text = "Blu"; TF2Plugin.Instance.KillAfterSecondsNotIEnumerator(joinerMapper, 6.5f); } int count = joinerMapper.props.Count; switch (spot % 3) { case 0: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Rock_Lose.prefab"))); break; case 1: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Paper_Lose.prefab"))); break; case 2: joinerMapper.props.Add(Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/RPS/" + text + "_Scissors_Lose.prefab"))); break; } joinerMapper.props[count].transform.SetParent(joinerMapper.parentGameObject.transform); joinerMapper.props[count].transform.localEulerAngles = Vector3.zero; joinerMapper.props[count].transform.localPosition = new Vector3(0f, 2.5f * joinerMapper.props[count].transform.lossyScale.y, 0f); joinerMapper.ScaleProps(); } } public static class Settings { public static ConfigEntry<bool> RPSisAccurate; internal static void SetupConfig() { ModSettingsManager.SetModIcon(Assets.Load<Sprite>("@ExampleEmotePlugin_example_emotes:assets/icon.png")); RPSisAccurate = ((BaseUnityPlugin)TF2Plugin.Instance).Config.Bind<bool>("Gameplay Altering Stuff", "Lore Accurate Rock Paper Scissors", true, "bottom text"); } internal static void SetupROO() { //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_0017: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(RPSisAccurate, new CheckBoxConfig { restartRequired = false })); } } internal class SyncRandomEmoteToClient : INetMessage, ISerializableObject { private NetworkInstanceId netId; private string name; private int spot; private NetworkInstanceId secondaryNetId; public SyncRandomEmoteToClient() { } public SyncRandomEmoteToClient(NetworkInstanceId netId, string name, int spot, NetworkInstanceId secondaryNetId) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) this.netId = netId; this.name = name; this.spot = spot; this.secondaryNetId = secondaryNetId; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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) netId = reader.ReadNetworkId(); name = reader.ReadString(); spot = reader.ReadInt32(); secondaryNetId = reader.ReadNetworkId(); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_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_01c4: 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_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(netId); BoneMapper componentInChildren = ((Component)val.GetComponent<ModelLocator>().modelTransform).GetComponentInChildren<BoneMapper>(); GameObject val2 = Util.FindNetworkObject(secondaryNetId); BoneMapper componentInChildren2 = ((Component)val2.GetComponent<ModelLocator>().modelTransform).GetComponentInChildren<BoneMapper>(); TeamIndex teamIndex = val.GetComponent<TeamComponent>().teamIndex; TeamIndex teamIndex2 = val2.GetComponent<TeamComponent>().teamIndex; string text = name; string text2 = text; if (text2 == null) { return; } switch (text2.Length) { case 9: switch (text2[5]) { case 't': if (text2 == "RPS_Start") { RockPaperScissors.RPSStart(componentInChildren, spot); } break; case 'W': if (text2 == "Flip_Wait") { Flip.FlipWait(componentInChildren, spot); } break; case 'F': if (text2 == "Flip_Flip") { Flip.Flip_Flip(componentInChildren, spot, componentInChildren2); } break; } break; case 11: switch (text2[0]) { case 'C': if (text2 == "Conga_Start") { Conga.StartConga(componentInChildren, spot); } break; case 'L': if (text2 == "Laugh_Start") { Laugh.PlayLaugh(componentInChildren, spot); } break; } break; case 7: if (text2 == "RPS_Win") { RockPaperScissors.RPSWin(componentInChildren, spot, componentInChildren2, teamIndex, teamIndex2); } break; case 8: if (text2 == "RPS_Loss") { RockPaperScissors.RPSLose(componentInChildren, spot, componentInChildren2, teamIndex, teamIndex2); } break; case 10: if (text2 == "Flip_Throw") { Flip.Flip_Throw(componentInChildren, spot, componentInChildren2); } break; case 14: if (text2 == "Kazotsky_Start") { Kazotsky.StartKazotsky(componentInChildren, spot); } break; case 12: case 13: break; } } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) writer.Write(netId); writer.Write(name); writer.Write(spot); writer.Write(secondaryNetId); } } internal class SyncRandomEmoteToHost : INetMessage, ISerializableObject { private NetworkInstanceId netId; private string name; private int spot; private NetworkInstanceId secondaryNetId; public SyncRandomEmoteToHost() { } public SyncRandomEmoteToHost(NetworkInstanceId netId, string name, int spot, NetworkInstanceId secondaryNetId) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) this.netId = netId; this.name = name; this.spot = spot; this.secondaryNetId = secondaryNetId; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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) netId = reader.ReadNetworkId(); name = reader.ReadString(); spot = reader.ReadInt32(); secondaryNetId = reader.ReadNetworkId(); } public void OnReceived() { //IL_0002: 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) NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToClient(netId, name, spot, secondaryNetId), (NetworkDestination)1); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) writer.Write(netId); writer.Write(name); writer.Write(spot); writer.Write(secondaryNetId); } } internal class TF2EmoteTracker : MonoBehaviour { public string currentAnimation = "cumblaster69"; public bool ignoreNextAnim = false; } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.weliveinasociety.teamfortress2emotes", "TF2Emotes", "1.3.0")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [R2APISubmoduleDependency(new string[] { "SoundAPI", "PrefabAPI", "CommandHelper", "ResourcesAPI" })] public class TF2Plugin : BaseUnityPlugin { public static TF2Plugin Instance; public const string PluginGUID = "com.weliveinasociety.teamfortress2emotes"; public const string PluginAuthor = "Nunchuk"; public const string PluginName = "TF2Emotes"; public const string PluginVersion = "1.3.0"; internal static List<string> Conga_Emotes = new List<string>(); internal static List<string> KazotskyKick_Emotes = new List<string>(); internal static List<string> RPS_Start_Emotes = new List<string>(); internal static List<string> RPS_Loss_Emotes = new List<string>(); internal static List<string> RPS_Win_Emotes = new List<string>(); internal static List<string> Flip_Wait_Emotes = new List<string>(); internal static List<string> Flip_Flip_Emotes = new List<string>(); internal static List<string> Flip_Throw_Emotes = new List<string>(); internal static List<string> Laugh_Emotes = new List<string>(); internal static Shader defaultShader = ((Renderer)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion().GetComponentInChildren<SkinnedMeshRenderer>()).material.shader; public void Awake() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown Instance = this; Assets.PopulateAssets(); Settings.SetupConfig(); Settings.SetupROO(); Assets.AddSoundBank("tf2.bnk"); Assets.LoadSoundBanks(); Rancho(); RPS(); Conga(); Flip(); KazotskyKick(); Laugh(); Register(); CustomEmotesAPI.animJoined += new AnimationJoined(CustomEmotesAPI_animJoined); CustomEmotesAPI.animChanged += new AnimationChanged(CustomEmotesAPI_animChanged); CustomEmotesAPI.emoteSpotJoined_Body += new JoinedEmoteSpotBody(CustomEmotesAPI_emoteSpotJoined_Body); } private void CustomEmotesAPI_animJoined(string joinedAnimation, BoneMapper joiner, BoneMapper host) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) if (joinedAnimation.EndsWith("_Conga")) { int spot = Random.Range(0, Conga_Emotes.Count); NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Conga_Start", spot, ((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } if (joinedAnimation.StartsWith("Kazotsky_")) { NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Kazotsky_Start", Random.Range(0, KazotskyKick_Emotes.Count), ((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } } private void Register() { NetworkingAPI.RegisterMessageType<SyncRandomEmoteToClient>(); NetworkingAPI.RegisterMessageType<SyncRandomEmoteToHost>(); } public void Rancho() { AddAnimation("Engi/Rancho/RanchoRelaxo", "Rancho", "Engi/Rancho/engiRanchoPassive", dimAudio: false, sync: false); AddAnimation("Engi/Rancho/engiRanchoBurp", "", "Engi/Rancho/engiRanchoPassive", dimAudio: false, sync: false, visibility: false); AddAnimation("Engi/Rancho/engiRanchoBigDrink", "", "Engi/Rancho/engiRanchoPassive", dimAudio: false, sync: false, visibility: false); AddAnimation("Engi/Rancho/engiRanchoQuickDrink", "", "Engi/Rancho/engiRanchoPassive", dimAudio: false, sync: false, visibility: false); } public void Laugh() { CustomEmotesAPI.AddNonAnimatingEmote("Schadenfreude", true); CustomEmotesAPI.BlackListEmote("Schadenfreude"); string item = AddHiddenAnimation(new string[1] { "Engi/Laugh/Engi_Laugh" }, new string[1] { "Engi_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/Laugh/Scout_Laugh" }, new string[1] { "Scout_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/Laugh/Demo_Laugh" }, new string[1] { "Demo_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/Laugh/Soldier_Laugh" }, new string[1] { "Soldier_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/Laugh/Pyro_Laugh" }, new string[1] { "Pyro_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/Laugh/Heavy_Laugh" }, new string[1] { "Heavy_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/Laugh/Medic_Laugh" }, new string[1] { "Medic_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/Laugh/Sniper_Laugh" }, new string[1] { "Sniper_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/Laugh/Spy_Laugh" }, new string[1] { "Spy_Laugh" }, "Laugh"); Laugh_Emotes.Add(item); } public void Flip() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0213: 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_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_056c: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0711: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) CustomEmotesAPI.AddNonAnimatingEmote("Flippin' Awesome", true); CustomEmotesAPI.BlackListEmote("Flippin' Awesome"); string item = AddHiddenAnimation(new string[1] { "Demo/Flip/Demo_Flip_Start" }, new string[1] { "Demo/Flip/Demo_Flip_Wait" }, new string[1] { "Demo_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/Flip/Demo_Flip_Throw" }, new string[1] { "Demo_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/Flip/Demo_Flip_Flip" }, new string[1] { "Demo_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/Flip/Engi_Flip_Start" }, new string[1] { "Engi/Flip/Engi_Flip_Wait" }, new string[1] { "Engi_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/Flip/Engi_Flip_Throw" }, new string[1] { "Engi_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/Flip/Engi_Flip_Flip" }, new string[1] { "Engi_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/Flip/Medic_Flip_Start" }, new string[1] { "Medic/Flip/Medic_Flip_Wait" }, new string[1] { "Medic_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/Flip/Medic_Flip_Throw" }, new string[1] { "Medic_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/Flip/Medic_Flip_Flip" }, new string[1] { "Medic_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/Flip/Heavy_Flip_Start" }, new string[1] { "Heavy/Flip/Heavy_Flip_Wait" }, new string[1] { "Heavy_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/Flip/Heavy_Flip_Throw" }, new string[1] { "Heavy_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/Flip/Heavy_Flip_Flip" }, new string[1] { "Heavy_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/Flip/Pyro_Flip_Start" }, new string[1] { "Pyro/Flip/Pyro_Flip_Wait" }, new string[1] { "Pyro_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/Flip/Pyro_Flip_Throw" }, new string[1] { "Pyro_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/Flip/Pyro_Flip_Flip" }, new string[1] { "Pyro_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/Flip/Scout_Flip_Start" }, new string[1] { "Scout/Flip/Scout_Flip_Wait" }, new string[1] { "Scout_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/Flip/Scout_Flip_Throw" }, new string[1] { "Scout_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/Flip/Scout_Flip_Flip" }, new string[1] { "Scout_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/Flip/Sniper_Flip_Start" }, new string[1] { "Sniper/Flip/Sniper_Flip_Wait" }, new string[1] { "Sniper_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/Flip/Sniper_Flip_Throw" }, new string[1] { "Sniper_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/Flip/Sniper_Flip_Flip" }, new string[1] { "Sniper_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/Flip/Soldier_Flip_Start" }, new string[1] { "Soldier/Flip/Soldier_Flip_Wait" }, new string[1] { "Soldier_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/Flip/Soldier_Flip_Throw" }, new string[1] { "Soldier_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/Flip/Soldier_Flip_Flip" }, new string[1] { "Soldier_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/Flip/Spy_Flip_Start" }, new string[1] { "Spy/Flip/Spy_Flip_Wait" }, new string[1] { "Spy_Flip_Waiting" }, "Flip", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("FlipJoinSpot", new Vector3(0f, 0f, 1.5f)) }); Flip_Wait_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/Flip/Spy_Flip_Throw" }, new string[1] { "Spy_Flip_Throw" }, ""); Flip_Throw_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/Flip/Spy_Flip_Flip" }, new string[1] { "Spy_Flip_Flip" }, ""); Flip_Flip_Emotes.Add(item); } public void RPS() { //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: 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_0577: Unknown result type (might be due to invalid IL or missing references) //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_071c: Unknown result type (might be due to invalid IL or missing references) //IL_0721: 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_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08cb: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a6b: Unknown result type (might be due to invalid IL or missing references) //IL_0a70: Unknown result type (might be due to invalid IL or missing references) //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c10: Unknown result type (might be due to invalid IL or missing references) //IL_0c15: Unknown result type (might be due to invalid IL or missing references) //IL_0db0: Unknown result type (might be due to invalid IL or missing references) //IL_0db5: Unknown result type (might be due to invalid IL or missing references) //IL_0dba: Unknown result type (might be due to invalid IL or missing references) CustomEmotesAPI.AddNonAnimatingEmote("Rock Paper Scissors", true); CustomEmotesAPI.BlackListEmote("Rock Paper Scissors"); CustomEmotesAPI.AddNonAnimatingEmote("Rock", false); CustomEmotesAPI.AddNonAnimatingEmote("Paper", false); CustomEmotesAPI.AddNonAnimatingEmote("Scissors", false); string item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPSStart" }, new string[1] { "Engi/RPS/EngiRPSLoop" }, new string[1] { "RPS_Engi_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_RWin" }, new string[1] { "RPS_Engi_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_RLose" }, new string[1] { "RPS_Engi_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_PWin" }, new string[1] { "RPS_Engi_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_PLose" }, new string[1] { "RPS_Engi_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_SWin" }, new string[1] { "RPS_Engi_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Engi/RPS/EngiRPS_SLose" }, new string[1] { "RPS_Engi_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_Start" }, new string[1] { "Demo/RPS/DemoRPS_Loop" }, new string[1] { "RPS_Demo_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_RWin" }, new string[1] { "RPS_Demo_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_RLose" }, new string[1] { "RPS_Demo_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_PWin" }, new string[1] { "RPS_Demo_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_PLose" }, new string[1] { "RPS_Demo_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_SWin" }, new string[1] { "RPS_Demo_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Demo/RPS/DemoRPS_SLose" }, new string[1] { "RPS_Demo_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_Start" }, new string[1] { "Soldier/RPS/SoldierRPS_Loop" }, new string[1] { "RPS_Soldier_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_RWin" }, new string[1] { "RPS_Soldier_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_RLose" }, new string[1] { "RPS_Soldier_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_PWin" }, new string[1] { "RPS_Soldier_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_PLose" }, new string[1] { "RPS_Soldier_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_SWin" }, new string[1] { "RPS_Soldier_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Soldier/RPS/SoldierRPS_SLose" }, new string[1] { "RPS_Soldier_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_Start" }, new string[1] { "Heavy/RPS/HeavyRPS_Loop" }, new string[1] { "RPS_Heavy_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_RWin" }, new string[1] { "RPS_Heavy_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_RLose" }, new string[1] { "RPS_Heavy_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_PWin" }, new string[1] { "RPS_Heavy_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_PLose" }, new string[1] { "RPS_Heavy_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_SWin" }, new string[1] { "RPS_Heavy_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Heavy/RPS/HeavyRPS_SLose" }, new string[1] { "RPS_Heavy_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_Start" }, new string[1] { "Medic/RPS/MedicRPS_Loop" }, new string[1] { "RPS_Medic_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_RWin" }, new string[1] { "RPS_Medic_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_RLose" }, new string[1] { "RPS_Medic_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_PWin" }, new string[1] { "RPS_Medic_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_PLose" }, new string[1] { "RPS_Medic_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_SWin" }, new string[1] { "RPS_Medic_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Medic/RPS/MedicRPS_SLose" }, new string[1] { "RPS_Medic_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_Start" }, new string[1] { "Pyro/RPS/PyroRPS_Loop" }, new string[1] { "RPS_Pyro_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_RWin" }, new string[1] { "RPS_Pyro_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_RLose" }, new string[1] { "RPS_Pyro_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_PWin" }, new string[1] { "RPS_Pyro_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_PLose" }, new string[1] { "RPS_Pyro_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_SWin" }, new string[1] { "RPS_Pyro_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Pyro/RPS/PyroRPS_SLose" }, new string[1] { "RPS_Pyro_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_Start" }, new string[1] { "Scout/RPS/ScoutRPS_Loop" }, new string[1] { "RPS_Scout_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_RWin" }, new string[1] { "RPS_Scout_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_RLose" }, new string[1] { "RPS_Scout_LossRock" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_PWin" }, new string[1] { "RPS_Scout_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_PLose" }, new string[1] { "RPS_Scout_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_SWin" }, new string[1] { "RPS_Scout_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Scout/RPS/ScoutRPS_SLose" }, new string[1] { "RPS_Scout_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_Start" }, new string[1] { "Sniper/RPS/SniperRPS_Loop" }, new string[1] { "RPS_Sniper_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_RWin" }, new string[1] { "RPS_Sniper_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_RLose" }, new string[1] { "RPS_Sniper_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_PWin" }, new string[1] { "RPS_Sniper_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_PLose" }, new string[1] { "RPS_Sniper_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_SWin" }, new string[1] { "RPS_Sniper_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Sniper/RPS/SniperRPS_SLose" }, new string[1] { "RPS_Sniper_Loss" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_Start" }, new string[1] { "Spy/RPS/SpyRPS_Loop" }, new string[1] { "RPS_Spy_Initiate" }, "RPS", (JoinSpot[])(object)new JoinSpot[1] { new JoinSpot("RPSJoinSpot", new Vector3(0f, 0f, 1.5f)) }); RPS_Start_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_RWin" }, new string[1] { "RPS_Spy_WinRock" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_RLose" }, new string[1] { "RPS_Spy_LossRock" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_PWin" }, new string[1] { "RPS_Spy_WinPaper" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_PLose" }, new string[1] { "RPS_Spy_LossPaper" }, ""); RPS_Loss_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_SWin" }, new string[1] { "RPS_Spy_WinScissors" }, ""); RPS_Win_Emotes.Add(item); item = AddHiddenAnimation(new string[1] { "Spy/RPS/SpyRPS_SLose" }, new string[1] { "RPS_Spy_LossScissors" }, ""); RPS_Loss_Emotes.Add(item); } public void KazotskyKick() { CustomEmotesAPI.AddNonAnimatingEmote("Kazotsky Kick", true); CustomEmotesAPI.BlackListEmote("Kazotsky Kick"); string text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Demo_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Demo_Loop" }); KazotskyKick_Emotes.Add(text); int syncPos = BoneMapper.animClips[text].syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Engi_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Engi_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Heavy_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Heavy_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Medic_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Medic_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Pyro_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Pyro_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Scout_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Scout_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Sniper_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Sniper_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Soldier_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Soldier_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "KazotskyKick/Kazotsky_Spy_Start" }, new string[1] { "Kazotsky" }, "Kazotsky", sync: true, new string[1] { "KazotskyKick/Kazotsky_Spy_Loop" }); KazotskyKick_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; } public void Conga() { CustomEmotesAPI.AddNonAnimatingEmote("Conga", true); CustomEmotesAPI.BlackListEmote("Conga"); string text = AddHiddenAnimation(new string[1] { "Conga/Demo_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); int syncPos = BoneMapper.animClips[text].syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Engi_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Heavy_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Medic_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Pyro_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Scout_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Sniper_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Soldier_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; text = AddHiddenAnimation(new string[1] { "Conga/Spy_Conga" }, new string[1] { "Conga" }, "Conga", sync: true); Conga_Emotes.Add(text); BoneMapper.animClips[text].syncPos = syncPos; } private void CustomEmotesAPI_emoteSpotJoined_Body(GameObject emoteSpot, BoneMapper joiner, BoneMapper host) { //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_0180: 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_01d1: 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_00d7: 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_0128: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) string name = ((Object)emoteSpot).name; if (name == "RPSJoinSpot") { if (NetworkServer.active) { int num = Random.Range(0, 2); int num2 = Random.Range(0, 3); int num3 = ((num != 0) ? (num2 + 1) : (num2 - 1)); if (num3 > 2) { num3 -= 3; } if (num3 < 0) { num3 += 3; } num2 += host.props[0].GetComponent<RockPaperScissors>().charType * 3; num3 += Random.Range(0, RPS_Start_Emotes.Count) * 3; if (num == 0) { NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "RPS_Win", num2, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "RPS_Loss", num3, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } else { NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "RPS_Loss", num2, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "RPS_Win", num3, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } } } else if (name == "FlipJoinSpot" && NetworkServer.active) { int charType = host.props[0].GetComponent<Flip>().charType; int spot = Random.Range(0, Flip_Flip_Emotes.Count); NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Flip_Throw", charType, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)joiner).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Flip_Flip", spot, ((Component)((Component)((Component)host).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } } private void CustomEmotesAPI_animChanged(string newAnimation, BoneMapper mapper) { //IL_0073: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_023a: 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_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_0305: 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_039c: 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_0433: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((Component)mapper).gameObject.GetComponent<TF2EmoteTracker>())) { ((Component)mapper).gameObject.AddComponent<TF2EmoteTracker>(); } if (newAnimation == "RanchoRelaxo") { GameObject val = Object.Instantiate<GameObject>(Assets.Load<GameObject>("@BadAssEmotes_badassemotes:Assets/Engi/Rancho/RanchoRelaxo.prefab")); mapper.props.Add(val); val.transform.SetParent(((Component)mapper).transform.parent); val.transform.localEulerAngles = Vector3.one; val.transform.localPosition = Vector3.zero; val.transform.localScale = new Vector3(1.175f, 1.175f, 1.175f); mapper.ScaleProps(); mapper.props.RemoveAt(mapper.props.Count - 1); ChairHandler chairHandler = val.AddComponent<ChairHandler>(); chairHandler.pos = val.transform.position; chairHandler.rot = val.transform.eulerAngles; chairHandler.scal = val.transform.lossyScale; chairHandler.mapper = mapper; val = new GameObject(); ((Object)val).name = "RanchoRelaxoProp"; mapper.props.Add(val); val.transform.localPosition = ((Component)mapper).transform.position; val.transform.localEulerAngles = ((Component)mapper).transform.eulerAngles; val.transform.localScale = Vector3.one; mapper.AssignParentGameObject(val, true, true, true, false, false); chairHandler.chair = val; } if (newAnimation == "Rock Paper Scissors" && NetworkServer.active) { NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "RPS_Start", Random.Range(0, RPS_Start_Emotes.Count), ((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } if (newAnimation == "Flippin' Awesome" && NetworkServer.active) { NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Flip_Wait", Random.Range(0, Flip_Wait_Emotes.Count), ((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } if (newAnimation == "Conga" && NetworkServer.active) { ((Component)mapper).gameObject.GetComponent<TF2EmoteTracker>().currentAnimation = "Medic_Conga"; NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Conga_Start", Random.Range(0, Conga_Emotes.Count), ((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } if (newAnimation == "Kazotsky Kick" && NetworkServer.active) { ((Component)mapper).gameObject.GetComponent<TF2EmoteTracker>().currentAnimation = "Medic_Kazotsky"; NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Kazotsky_Start", Random.Range(0, KazotskyKick_Emotes.Count), ((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } if (newAnimation == "Schadenfreude" && NetworkServer.active) { ((Component)mapper).gameObject.GetComponent<TF2EmoteTracker>().currentAnimation = "Medic_Laugh"; NetMessageExtensions.Send((INetMessage)(object)new SyncRandomEmoteToHost(((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId, "Laugh_Start", Random.Range(0, Laugh_Emotes.Count), ((Component)((Component)((Component)mapper).transform.parent).GetComponent<CharacterModel>().body).GetComponent<NetworkIdentity>().netId), (NetworkDestination)2); } ((Component)mapper).gameObject.GetComponent<TF2EmoteTracker>().currentAnimation = newAnimation; } private void Update() { } internal void PlayAfterSecondsNotIEnumerator(BoneMapper mapper, string animName, float seconds) { ((MonoBehaviour)this).StartCoroutine(PlayAfterSeconds(mapper, animName, seconds)); } internal IEnumerator PlayAfterSeconds(BoneMapper mapper, string animName, float seconds) { yield return (object)new WaitForSeconds(seconds); CustomEmotesAPI.PlayAnimation(animName, mapper, -2); } internal void KillAfterSecondsNotIEnumerator(BoneMapper mapper, float seconds) { ((MonoBehaviour)this).StartCoroutine(KillAfterSeconds(mapper, seconds)); } internal IEnumerator KillAfterSeconds(BoneMapper mapper, float seconds) { yield return (object)new WaitForSeconds(seconds); ((Component)mapper).GetComponentInParent<CharacterModel>().body.healthComponent.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo)); } internal void AddAnimation(string AnimClip, string wwise, bool looping, bool dimAudio, bool sync) { CustomEmotesAPI.AddCustomAnimation(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + AnimClip + ".anim"), looping, "Play_" + wwise, "Stop_" + wwise, (HumanBodyBones[])null, (HumanBodyBones[])null, (AnimationClip)null, dimAudio, false, false, true, sync, sync); string key = AnimClip.Split('/')[AnimClip.Split('/').Length - 1]; BoneMapper.animClips[key].vulnerableEmote = true; } internal void AddAnimation(string AnimClip, string wwise, string AnimClip2ElectricBoogaloo, bool dimAudio, bool sync) { CustomEmotesAPI.AddCustomAnimation(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + AnimClip + ".anim"), true, "Play_" + wwise, "Stop_" + wwise, (HumanBodyBones[])null, (HumanBodyBones[])null, Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + AnimClip2ElectricBoogaloo + ".anim"), dimAudio, false, false, true, sync, sync); string text = AnimClip.Split('/')[AnimClip.Split('/').Length - 1]; CustomEmotesAPI.BlackListEmote(text); BoneMapper.animClips[text].vulnerableEmote = true; } internal void AddAnimation(string AnimClip, string wwise, string AnimClip2ElectricBoogaloo, bool dimAudio, bool sync, bool visibility) { AnimationClip obj = Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + AnimClip + ".anim"); string text = "Play_" + wwise; string text2 = "Stop_" + wwise; AnimationClip obj2 = Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + AnimClip2ElectricBoogaloo + ".anim"); bool flag = sync; bool flag2 = sync; CustomEmotesAPI.AddCustomAnimation(obj, true, text, text2, (HumanBodyBones[])null, (HumanBodyBones[])null, obj2, dimAudio, false, false, visibility, flag, flag2); string key = AnimClip.Split('/')[AnimClip.Split('/').Length - 1]; BoneMapper.animClips[key].vulnerableEmote = true; } internal string AddHiddenAnimation(string[] AnimClip, string[] AnimClip2ElectricBoogaloo, string[] wwise, string stopWwise, JoinSpot[] joinSpots) { List<string> list = new List<string>(); foreach (string text in wwise) { list.Add("Stop_" + stopWwise); } List<AnimationClip> list2 = new List<AnimationClip>(); foreach (string text2 in AnimClip) { list2.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text2 + ".anim")); } List<AnimationClip> list3 = new List<AnimationClip>(); foreach (string text3 in AnimClip2ElectricBoogaloo) { list3.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text3 + ".anim")); } string text4 = AnimClip[0].Split('/')[AnimClip[0].Split('/').Length - 1]; CustomEmotesAPI.AddCustomAnimation(list2.ToArray(), true, wwise, list.ToArray(), (HumanBodyBones[])null, (HumanBodyBones[])null, list3.ToArray(), false, false, false, false, false, false, -1, -1, joinSpots); BoneMapper.animClips[text4].vulnerableEmote = true; return text4; } internal string AddHiddenAnimation(string[] AnimClip, string[] wwise, string stopWwise) { List<string> list = new List<string>(); foreach (string text in wwise) { list.Add("Stop_" + stopWwise); } List<AnimationClip> list2 = new List<AnimationClip>(); foreach (string text2 in AnimClip) { list2.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text2 + ".anim")); } string text3 = AnimClip[0].Split('/')[AnimClip[0].Split('/').Length - 1]; CustomEmotesAPI.AddCustomAnimation(list2.ToArray(), false, wwise, list.ToArray(), (HumanBodyBones[])null, (HumanBodyBones[])null, (AnimationClip[])null, false, false, false, false, false, false, -1, -1, (JoinSpot[])null); BoneMapper.animClips[text3].vulnerableEmote = true; return text3; } internal string AddHiddenAnimation(string[] AnimClip, string[] wwise, string stopWwise, bool sync) { List<string> list = new List<string>(); foreach (string text in wwise) { list.Add("Stop_" + stopWwise); } List<AnimationClip> list2 = new List<AnimationClip>(); foreach (string text2 in AnimClip) { list2.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text2 + ".anim")); } string text3 = AnimClip[0].Split('/')[AnimClip[0].Split('/').Length - 1]; CustomEmotesAPI.AddCustomAnimation(list2.ToArray(), true, wwise, list.ToArray(), (HumanBodyBones[])null, (HumanBodyBones[])null, (AnimationClip[])null, false, false, false, false, false, sync, -1, -1, (JoinSpot[])null); BoneMapper.animClips[text3].vulnerableEmote = true; return text3; } internal string AddHiddenAnimation(string[] AnimClip, string[] wwise, string stopWwise, bool sync, string[] AnimClip2) { List<string> list = new List<string>(); foreach (string text in wwise) { list.Add("Stop_" + stopWwise); } List<AnimationClip> list2 = new List<AnimationClip>(); foreach (string text2 in AnimClip) { list2.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text2 + ".anim")); } List<AnimationClip> list3 = new List<AnimationClip>(); foreach (string text3 in AnimClip2) { list3.Add(Assets.Load<AnimationClip>("@ExampleEmotePlugin_badassemotes:assets/" + text3 + ".anim")); } string text4 = AnimClip[0].Split('/')[AnimClip[0].Split('/').Length - 1]; AnimationClip[] array = list2.ToArray(); string[] array2 = list.ToArray(); bool flag = sync; CustomEmotesAPI.AddCustomAnimation(array, false, wwise, array2, (HumanBodyBones[])null, (HumanBodyBones[])null, list3.ToArray(), false, false, false, false, false, flag, -1, -1, (JoinSpot[])null); BoneMapper.animClips[text4].vulnerableEmote = true; return text4; } private IEnumerator SpawnEnemies() { Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body BeetleQueen", false); yield return (object)new WaitForSeconds(0.75f); Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body Larva", false); yield return (object)new WaitForSeconds(0.75f); Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body BeetleGuard", false); yield return (object)new WaitForSeconds(0.75f); Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body Mithrix", false); yield return (object)new WaitForSeconds(0.75f); Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body ClayTemplar", false); yield return (object)new WaitForSeconds(0.75f); Console.instance.SubmitCmd(NetworkUser.readOnlyLocalPlayersList[0], "spawn_body Aurelionite", false); } } }