using 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);
}
}
}