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 TF2Emotes v1.3.0
TitanFall2Emotes.dll
Decompiled 2 years 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); } } }