Decompiled source of Himothy Cards v1.10.0
PedoCards-main.dll
Decompiled 4 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using Microsoft.CodeAnalysis; using ModdingUtils.MonoBehaviours; using ModdingUtils.RoundsEffects; using PSA.Extensions; using PedoCards_main.Cards; using PedoCards_main.MonoBehaviours; using SanyaCards.Cards; using SanyaCards.Monos; using Sonigon; using Sonigon.Internal; using SoundImplementation; using UnboundLib; using UnboundLib.Cards; using UnboundLib.Utils; using UnityEngine; using UnityEngine.Events; [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("PedoCards-main")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+e1ba9a1df0324f4f7a70205a6531ad0e38e66a84")] [assembly: AssemblyProduct("PedoCards-main")] [assembly: AssemblyTitle("PedoCards-main")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } public class chasehornytest : MonoBehaviour { public UnityEvent turnOnEvent; public UnityEvent turnOffEvent; public UnityEvent switchTargetEvent; private Player player; private LineEffect lineEffect; private bool isOn; private Player currentTarget; private void Start() { lineEffect = ((Component)this).GetComponentInChildren<LineEffect>(true); player = ((Component)this).GetComponentInParent<Player>(); } private void Update() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_003b: 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_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) Player val = PlayerManager.instance.GetClosestPlayerInTeam(((Component)this).transform.position, PlayerManager.instance.GetOtherTeam(player.teamID), true); if (Object.op_Implicit((Object)(object)val) && (Vector2.Angle(Vector2.op_Implicit(((Component)val).transform.position - ((Component)this).transform.position), Vector2.op_Implicit(player.data.input.direction)) > 70f || player.data.input.direction == Vector3.zero)) { val = null; } if (Object.op_Implicit((Object)(object)val)) { if ((Object)(object)currentTarget != (Object)(object)player) { currentTarget = player; switchTargetEvent.Invoke(); lineEffect.Play(((Component)this).transform, ((Component)val).transform, 0f); } if (!isOn) { isOn = true; turnOnEvent.Invoke(); } } else { if (isOn) { isOn = false; turnOffEvent.Invoke(); } if (lineEffect.isPlaying) { lineEffect.Stop(); ((Component)lineEffect).gameObject.SetActive(false); } currentTarget = null; } } } namespace SanyaCards.Monos { internal class GlueBulletMono : RayHitEffect { private class GlueMono : MonoBehaviour { public float glueMultiplier; private Player target; private Vector2 myPosition; private Vector2 myOffset; private static FieldInfo playerVelocityField = typeof(PlayerVelocity).GetField("velocity", BindingFlags.Instance | BindingFlags.NonPublic); private LineRenderer lineRenderer; private void Awake() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) target = ((Component)((Component)this).transform.parent).GetComponent<Player>(); myPosition = Vector2.op_Implicit(((Component)this).transform.position); myOffset = Vector2.op_Implicit(((Component)this).transform.position - ((Component)target).transform.position); lineRenderer = ((Component)this).gameObject.AddComponent<LineRenderer>(); lineRenderer.startWidth = 0.1f; lineRenderer.endWidth = lineRenderer.startWidth; lineRenderer.positionCount = 2; ((Renderer)lineRenderer).material = new Material(Shader.Find("Sprites/Default")); lineRenderer.startColor = Color.white; lineRenderer.endColor = Color.white; } private void OnDisable() { Object.Destroy((Object)(object)((Component)this).gameObject); } private void FixedUpdate() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: 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_00b2: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) Vector2 val = Vector2.op_Implicit(((Component)target).transform.position); PlayerVelocity playerVel = target.data.playerVel; float x = ((Component)target).transform.localScale.x; x *= x; Vector2 val2 = (myPosition - (val + myOffset)) * 15f * glueMultiplier; Vector2 val3 = (Vector2)playerVelocityField.GetValue(playerVel); val3 += val2 * (Time.fixedDeltaTime / x); playerVelocityField.SetValue(playerVel, val3); lineRenderer.SetPosition(0, Vector2.op_Implicit(myPosition)); lineRenderer.SetPosition(1, Vector2.op_Implicit(val + myOffset)); } } [CompilerGenerated] private sealed class <OnPointEnd>d__1 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; private GlueMono[] <array>5__1; private int <i>5__2; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OnPointEnd>d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <array>5__1 = null; <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <array>5__1 = Object.FindObjectsOfType<GlueMono>(); <i>5__2 = 0; while (<i>5__2 < <array>5__1.Length) { Object.Destroy((Object)(object)((Component)<array>5__1[<i>5__2]).gameObject); <i>5__2++; } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public override HasToReturn DoHitEffect(HitInfo hit) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: 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_0089: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)hit.transform == (Object)null) { return (HasToReturn)1; } if ((Object)(object)((Component)hit.transform).GetComponent<Player>() == (Object)null) { return (HasToReturn)1; } if (!((Component)hit.transform).gameObject.activeSelf) { GlueMono[] componentsInChildren = ((Component)hit.transform).GetComponentsInChildren<GlueMono>(); for (int i = 0; i < componentsInChildren.Length; i++) { Object.Destroy((Object)(object)((Component)componentsInChildren[i]).gameObject); } return (HasToReturn)1; } GameObject val = new GameObject("Glue"); val.transform.position = Vector2.op_Implicit(hit.point); val.transform.SetParent(hit.transform, true); val.AddComponent<GlueMono>().glueMultiplier = ((Component)this).transform.localScale.x; Object.Destroy((Object)(object)val, Random.Range(4.75f, 5.25f)); return (HasToReturn)1; } [IteratorStateMachine(typeof(<OnPointEnd>d__1))] internal static IEnumerator OnPointEnd() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OnPointEnd>d__1(0); } } } namespace SanyaCards.Cards { internal class Glue : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.attackSpeed = 1.25f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) bool flag = true; ObjectsToSpawn[] objectsToSpawn = gun.objectsToSpawn; foreach (ObjectsToSpawn val in objectsToSpawn) { if ((Object)(object)val.AddToProjectile != (Object)null && ((Object)val.AddToProjectile).name == "SAN-NAH_glueBullet") { Transform transform = val.AddToProjectile.transform; transform.localScale += Vector3.right; flag = false; break; } } if (flag) { GameObject val2 = new GameObject("SAN-NAH_glueBullet"); ((Object)val2).hideFlags = (HideFlags)61; val2.AddComponent<GlueBulletMono>(); List<ObjectsToSpawn> list = gun.objectsToSpawn.ToList(); list.Add(new ObjectsToSpawn { AddToProjectile = val2, scaleFromDamage = 1f }); gun.objectsToSpawn = list.ToArray(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Glue"; } protected override string GetDescription() { return "Your bullets pull enemies back to where they hit. Glue stickiness depends on bullet damage."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: 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) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Glue Stickiness", amount = "+1", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Attack speed", amount = "-25%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)8; } public override string GetModName() { return "PeCa/SANYA"; } } } namespace PedoCards_main { internal static class Terms { public static string charHealth = "Max Health"; public static string charSpeed = "Movement Speed"; public static string charJump = "Jump Count"; public static string charSize = "Character Size"; public static string charRegen = "Health Regeneration"; public static string charProtection = "Damage Reduction"; public static string charThorns = "Thorns"; public static string charAntiThorns = "Thorns Pierce"; public static string charPierce = "Damage Reduction Pierce"; public static string gunReload = "Reload Time"; public static string gunDamage = "Gun Damage"; public static string gunProjectile = "Bullet Count"; public static string gunSpread = "Bullet Spread"; public static string gunBurst = "Burst Count"; public static string gunAmmo = "Max Ammo"; public static string gunAttackSpeed = "Attack Delay"; public static string gunDrag = "Bullet Drag"; public static string gunBounces = "Bullet Bounces"; public static string gunKnockback = "Bullet Knockback"; public static string gunDamageGrowth = "Bullet Damage Growth"; public static string gunSpeedGrowth = "Bullet Speed Growth"; public static string blockCount = "Blocks"; public static string blockCooldown = "Block Cooldown"; public static string blockForceV = "Vertical Block Force"; public static string blockForceH = "Horizontal Block Force"; public static string extraLifesteal = "Lifesteal"; public static string extraDecay = "Decay"; public static CardInfoStat LesserCurse = new CardInfoStat { positive = false, stat = "Curse Card", amount = "Lesser", simepleAmount = (SimpleAmount)0 }; public static CardInfoStat GreaterCurse = new CardInfoStat { positive = false, stat = "Curse Card", amount = "Greater", simepleAmount = (SimpleAmount)0 }; public static CardInfoStat LesserCurseRemoval = new CardInfoStat { positive = false, stat = "Curse Removal", amount = "Lesser", simepleAmount = (SimpleAmount)0 }; public static CardInfoStat GreaterCurseRemoval = new CardInfoStat { positive = false, stat = "Curse Removal", amount = "Greater", simepleAmount = (SimpleAmount)0 }; } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.harmlessheep.rounds.PedoCards", "Pedo Cards", "2.0.0")] [BepInProcess("Rounds.exe")] public class PedoCards : BaseUnityPlugin { private const string ModId = "com.harmlessheep.rounds.PedoCards"; private const string ModName = "Pedo Cards"; public const string Version = "2.0.0"; public const string ModInitials = "PeCa"; public static PedoCards instance { get; private set; } private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown Harmony val = new Harmony("com.harmlessheep.rounds.PedoCards"); val.PatchAll(); } private void Start() { instance = this; CustomCard.BuildCard<EvasiveManeuvers>(); CustomCard.BuildCard<Firework>(); CustomCard.BuildCard<Bullseye>(); CustomCard.BuildCard<Frostbite>(); CustomCard.BuildCard<Jetpack>(); CustomCard.BuildCard<DropShot>(); CustomCard.BuildCard<HeavyBullets>(); CustomCard.BuildCard<SpringLoaded>(); CustomCard.BuildCard<Hyperball>(); CustomCard.BuildCard<Cloud>(); CustomCard.BuildCard<Unicellular>(); CustomCard.BuildCard<BloodSiphon>(); CustomCard.BuildCard<Vampire>(); CustomCard.BuildCard<SawedOffBarrel>(); CustomCard.BuildCard<Springboots>(); CustomCard.BuildCard<Obese>(); CustomCard.BuildCard<Flutter>(); CustomCard.BuildCard<Acid>(); CustomCard.BuildCard<Bravery>(); CustomCard.BuildCard<Moonboot>(); CustomCard.BuildCard<Overclocked>(); CustomCard.BuildCard<DoubleEdgedBullets>(); CustomCard.BuildCard<RapidFire>(); CustomCard.BuildCard<Bite>(); CustomCard.BuildCard<WildAim>(); CustomCard.BuildCard<ToxicSplash>(); CustomCard.BuildCard<AcidShield>(); CustomCard.BuildCard<Barrier>(); CustomCard.BuildCard<MagneticBullets>(); CustomCard.BuildCard<Rewind>(); CustomCard.BuildCard<HealingVeil>(); CustomCard.BuildCard<Grounded>(); CustomCard.BuildCard<Glue>(); CustomCard.BuildCard<Meditation>(); } } } namespace PedoCards_main.MonoTemplates { internal class WhenInLineOfSightTemplate { } } namespace PedoCards_main.MonoBehaviours { public class AbsorbMono : MonoBehaviour { private class AbsorbSpawner : MonoBehaviour { private void Start() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Component)this).gameObject.transform.localScale = new Vector3(1f, 1f, 1f); ((Component)this).gameObject.AddComponent<RemoveAfterSeconds>().seconds = 2f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "inited", (object)false); typeof(LineEffect).InvokeMember("Init", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), new object[0]); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().radius = 4.3f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "startWidth", (object)1f); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().Play(); } } private readonly float maxDistance = 8f; public Block block; public Player player; public CharacterData data; public Gun gun; private Action<BlockTriggerType> gravy; private Action<BlockTriggerType> basic; private static GameObject Absorbvisu; private readonly float updateDelay = 0.1f; private readonly float effectCooldown; private float startTime; private float timeOfLastEffect; private bool canTrigger; private bool hasTriggered; public int numcheck; public static SoundEvent fieldsound; private SoundParameterIntensity soundParameterIntensity = new SoundParameterIntensity(0.2f, (UpdateMode)0); [Obsolete] public static GameObject AbsorbVisual { get { //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Absorbvisu != (Object)null) { return Absorbvisu; } IEnumerable<CardInfo> first = ((ObservableCollection<CardInfo>)typeof(CardManager).GetField("activeCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null)).ToList(); List<CardInfo> second = (List<CardInfo>)typeof(CardManager).GetField("inactiveCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null); Absorbvisu = Object.Instantiate<GameObject>(((Component)(from card in first.Concat(second).ToList() where card.cardName.ToLower() == "overpower" select card).First()).GetComponent<CharacterStatModifiers>().AddObjectToPlayer.GetComponent<SpawnObjects>().objectToSpawn[0], new Vector3(0f, 100000f, 0f), Quaternion.identity); ((Object)Absorbvisu).name = "E_Absorb"; Object.DontDestroyOnLoad((Object)(object)Absorbvisu); ParticleSystem[] componentsInChildren = Absorbvisu.GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].startColor = Color.white; } ((Component)Absorbvisu.transform.GetChild(1)).GetComponent<LineEffect>().colorOverTime.colorKeys = (GradientColorKey[])(object)new GradientColorKey[1] { new GradientColorKey(Color.white, 0f) }; Object.Destroy((Object)(object)((Component)Absorbvisu.transform.GetChild(2)).gameObject); ((Component)Absorbvisu.transform.GetChild(1)).GetComponent<LineEffect>().offsetMultiplier = 0f; ((Component)Absorbvisu.transform.GetChild(1)).GetComponent<LineEffect>().playOnAwake = true; Object.Destroy((Object)(object)Absorbvisu.GetComponent<FollowPlayer>()); Absorbvisu.GetComponent<DelayEvent>().time = 0f; Object.Destroy((Object)(object)Absorbvisu.GetComponent<SoundUnityEventPlayer>()); Object.Destroy((Object)(object)Absorbvisu.GetComponent<Explosion>()); Object.Destroy((Object)(object)Absorbvisu.GetComponent<RemoveAfterSeconds>()); Absorbvisu.AddComponent<AbsorbSpawner>(); return Absorbvisu; } set { } } private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponent<Block>(); data = ((Component)this).GetComponent<CharacterData>(); gun = ((Component)this).GetComponent<Gun>(); ResetEffectTimer(); ResetTimer(); canTrigger = true; hasTriggered = false; basic = block.BlockAction; if (Object.op_Implicit((Object)(object)block)) { gravy = GetDoBlockAction(player, block).Invoke; block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, gravy); } } public void Destroy() { Object.Destroy((Object)(object)this); } public void OnDestroy() { block.BlockAction = basic; } private void Update() { if (!(Time.time >= startTime + updateDelay)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Absorb") { numcheck++; } } if (numcheck > 0) { ResetTimer(); if (Time.time >= timeOfLastEffect) { canTrigger = true; } else { canTrigger = false; } } else { Object.Destroy((Object)(object)this); } } public Action<BlockTriggerType> GetDoBlockAction(Player player, Block block) { Block block2 = block; Player player2 = player; return delegate(BlockTriggerType trigger) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) if ((int)trigger != 1) { if (!Object.op_Implicit((Object)(object)fieldsound)) { } soundParameterIntensity.intensity = ((Component)this).transform.localScale.x * Optionshandler.vol_Master * Optionshandler.vol_Sfx / 1.3f; SoundManager.Instance.Play(fieldsound, ((Component)this).transform, (SoundParameterBase[])(object)new SoundParameterBase[1] { (SoundParameterBase)soundParameterIntensity }); Object.Instantiate<GameObject>(AbsorbVisual, ((Component)this.player).transform.position, Quaternion.identity); Vector2 val = Vector2.op_Implicit(((Component)block2).transform.position); Player[] array = PlayerManager.instance.players.ToArray(); for (int i = 0; i < array.Length; i++) { if (array[i].teamID != player2.teamID && Vector2.Distance(val, Vector2.op_Implicit(((Component)array[i]).transform.position)) < maxDistance && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)player2).transform.position), array[i]).canSee) { ((Damagable)((Component)((Component)array[i]).transform).GetComponent<HealthHandler>()).TakeDamage(this.player.data.weaponHandler.gun.damage * 55f * 0.5f * Vector2.down, Vector2.op_Implicit(((Component)array[i]).transform.position), ((Component)this.player.data.weaponHandler).gameObject, this.player, true, false); CharacterData obj = this.player.data; obj.health += this.player.data.weaponHandler.gun.damage * 55f * 0.5f; if (this.player.data.health > this.player.data.maxHealth) { this.player.data.health = this.player.data.maxHealth; } hasTriggered = true; } } if (hasTriggered) { hasTriggered = false; canTrigger = false; ResetEffectTimer(); } } }; } private void ResetTimer() { startTime = Time.time; numcheck = 0; } private void ResetEffectTimer() { timeOfLastEffect = Time.time; } } public class AcidMono : RayHitPoison { [Header("Sounds")] public SoundEvent? soundEventDamageOverTime; [Header("Settings")] public float time = 4f; public float interval = 0.4f; public Color color = Color.green; private void Start() { if ((Object)(object)((Component)this).GetComponentInParent<ProjectileHit>() != (Object)null) { ((Component)this).GetComponentInParent<ProjectileHit>().bulletCanDealDeamage = false; } } public override HasToReturn DoHitEffect(HitInfo hit) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hit.transform)) { return (HasToReturn)1; } RayHitPoison[] componentsInChildren = ((Component)((Component)this).transform.root).GetComponentsInChildren<RayHitPoison>(); ProjectileHit componentInParent = ((Component)this).GetComponentInParent<ProjectileHit>(); DamageOverTime component = ((Component)hit.transform).GetComponent<DamageOverTime>(); if (Object.op_Implicit((Object)(object)component)) { component.TakeDamageOverTime(Vector2.op_Implicit(componentInParent.damage * ((Component)this).transform.forward / (float)componentsInChildren.Length), Vector2.op_Implicit(((Component)this).transform.position), time, interval, color, soundEventDamageOverTime, ((Component)this).GetComponentInParent<ProjectileHit>().ownWeapon, ((Component)this).GetComponentInParent<ProjectileHit>().ownPlayer, true); } return (HasToReturn)1; } public void Destroy() { Object.Destroy((Object)(object)this); } } internal class AcidShieldMono : ShieldTemplateMono { public static readonly float abilityCooldown = 4f; public static readonly float abilityDuration = 4f; public static readonly float abilityRadius = 5.8f; public static readonly bool FollowPlayer = false; public static readonly float SizeAffectedByPlayer = 1f; public static readonly float abilityThickness = 0.15f; protected override void Start() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) baseAbilityCooldown = abilityCooldown; baseAbilityDuration = abilityDuration; baseAbilityRadius = abilityRadius; baseFollowPlayer = FollowPlayer; baseSizeAffectedByPlayer = SizeAffectedByPlayer; baseThickness = abilityThickness; base.Start(); setColor(Color.green); } protected override bool bulletValidation(ProjectileHit projectile) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) return projectile.ownPlayer.teamID != base.player.teamID && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)projectile).transform.position), base.player).canSee; } protected override void affectBullet(ProjectileHit projectile) { //IL_0035: 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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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) float num = Mathf.Pow(0.25f, Time.fixedDeltaTime); float num2 = Mathf.Pow(0.75f, Time.fixedDeltaTime); projectile.damage *= num; ((Component)projectile).transform.localScale = Vector3.one * (projectile.damage / 55f); float num3 = projectile.damage / 55f; MoveTransform component = ((Component)projectile).gameObject.GetComponent<MoveTransform>(); float num4 = ((Vector3)(ref component.velocity)).sqrMagnitude * (1f - num2) / num3; if (num4 > ((Vector3)(ref component.velocity)).magnitude) { component.velocity = Vector3.zero; } else { component.velocity -= ((Vector3)(ref component.velocity)).normalized * num4; } if (projectile.damage < 5f) { Object.Destroy((Object)(object)((Component)projectile).gameObject); } } } internal class AdrenalineMono : MonoBehaviour { public static readonly float AppliedStatBonus1 = 100f; private float StatBonusPercentage; private float TimeInLineOfSight; private Player player; private Gun gun; private Gun gunAmmo; private CharacterStatModifiers statModifiers; private bool isActive; private LineEffect lineEffect; private LineRenderer lineRenderer; private LineRenderer lr; private Vector3 target; private Vector3 myPosition; private Vector3 myOffset; private bool drawLine; private float baseplayerspeed; private static FieldInfo playerVelocityField = typeof(PlayerVelocity).GetField("velocity", BindingFlags.Instance | BindingFlags.NonPublic); private void Start() { baseplayerspeed = player.data.stats.movementSpeed; player = ((Component)this).GetComponentInParent<Player>(); } private void FixedUpdate() { player.data.stats.movementSpeed = baseplayerspeed * 1f + (1f - player.data.health / player.data.maxHealth) * 0.5f; } } internal class BarrierMono : ShieldTemplateMono { public static float barrierHealth; public static float barrierSize; public static readonly float abilityCooldown = 15f; public static readonly float abilityRadius = 4.3f; public static readonly float abilitybaseThickness = 0.3f; public static float abilityThickness = 0.4f; public static readonly float barrierInitialHealth = 130f; public static readonly float barrierHealthFadingNormalized = 0.003f; public static readonly float InvincibilityTime = 0.02f; public static float BarrierCanHitAgainTime; public static float barrierCurrentAliveTime; public static readonly bool FollowPlayer = true; public static readonly float SizeAffectedByPlayer = 1f; private static MethodInfo destroyProjectileMethod = typeof(ProjectileHit).GetMethod("DestroyMe", BindingFlags.Instance | BindingFlags.NonPublic); protected override void Start() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) baseAbilityCooldown = abilityCooldown; baseAbilityRadius = abilityRadius; baseFollowPlayer = FollowPlayer; baseSizeAffectedByPlayer = SizeAffectedByPlayer; baseThickness = abilityThickness; base.Start(); setColor(Color.cyan); } protected override void FixedUpdate() { if (base.player.data.dead || base.player.data.health <= 0f || !((Component)base.player).gameObject.activeInHierarchy) { barrierHealth = -1f; base.abilityActive = false; BarrierCanHitAgainTime = Time.time; } if (base.abilityActive) { float barrierMaxHealth = getBarrierMaxHealth(); barrierHealth -= barrierHealthFadingNormalized * (1f + (barrierCurrentAliveTime + 1f) * (barrierCurrentAliveTime + 1f) / 2f) * barrierMaxHealth * Time.fixedDeltaTime; setRadius(abilityRadius); barrierSize = abilityRadius; abilityThickness = abilitybaseThickness * barrierHealth / barrierMaxHealth; baseThickness = abilityThickness; barrierCurrentAliveTime += Time.fixedDeltaTime; } else { barrierCurrentAliveTime = 0f; } base.FixedUpdate(); } protected override IEnumerator abilityWaitDuration() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown return (IEnumerator)new WaitUntil((Func<bool>)(() => barrierHealth <= 0f || base.player.data.dead || base.player.data.health <= 0f || !((Component)base.player).gameObject.activeInHierarchy)); } protected override bool bulletValidation(ProjectileHit projectile) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) return projectile.ownPlayer.teamID != base.player.teamID && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)projectile).transform.position), base.player).canSee; } protected override void affectBullet(ProjectileHit projectile) { if (barrierHealth > projectile.damage) { if (Time.time > BarrierCanHitAgainTime && !(HealingVeilMono.HealingVeilSize > barrierSize)) { BarrierCanHitAgainTime = Time.time + InvincibilityTime; barrierHealth -= projectile.damage; } ProjectileCollision componentInChildren = ((Component)projectile).GetComponentInChildren<ProjectileCollision>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.Die(); } destroyProjectileMethod.Invoke(projectile, new object[0]); } else { projectile.damage -= barrierHealth; barrierHealth = 0f; } } protected override void onShieldEnable() { barrierHealth = getBarrierMaxHealth(); } private float getBarrierMaxHealth() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) return ((Component)base.player).transform.localScale.x / base.player.data.stats.sizeMultiplier * barrierInitialHealth + 130f; } } public class BiteMono : MonoBehaviour { private class BiteSpawner : MonoBehaviour { private void Start() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Component)this).gameObject.transform.localScale = new Vector3(1f, 1f, 1f); ((Component)this).gameObject.AddComponent<RemoveAfterSeconds>().seconds = 2f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "inited", (object)false); typeof(LineEffect).InvokeMember("Init", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), new object[0]); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().radius = 4.3f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "startWidth", (object)1f); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().Play(); } } private readonly float maxDistance = 8f; public Block block; public Player player; public CharacterData data; public Gun gun; private Action<BlockTriggerType> gravy; private Action<BlockTriggerType> basic; private static GameObject Bitevisu; private readonly float updateDelay = 0.1f; private readonly float effectCooldown; private float startTime; private float timeOfLastEffect; private bool canTrigger; private bool hasTriggered; public int numcheck; public static SoundEvent fieldsound; private SoundParameterIntensity soundParameterIntensity = new SoundParameterIntensity(0.2f, (UpdateMode)0); [Obsolete] public static GameObject BiteVisual { get { //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Bitevisu != (Object)null) { return Bitevisu; } IEnumerable<CardInfo> first = ((ObservableCollection<CardInfo>)typeof(CardManager).GetField("activeCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null)).ToList(); List<CardInfo> second = (List<CardInfo>)typeof(CardManager).GetField("inactiveCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null); Bitevisu = Object.Instantiate<GameObject>(((Component)(from card in first.Concat(second).ToList() where card.cardName.ToLower() == "overpower" select card).First()).GetComponent<CharacterStatModifiers>().AddObjectToPlayer.GetComponent<SpawnObjects>().objectToSpawn[0], new Vector3(0f, 100000f, 0f), Quaternion.identity); ((Object)Bitevisu).name = "E_Bite"; Object.DontDestroyOnLoad((Object)(object)Bitevisu); ParticleSystem[] componentsInChildren = Bitevisu.GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].startColor = Color.red; } ((Component)Bitevisu.transform.GetChild(1)).GetComponent<LineEffect>().colorOverTime.colorKeys = (GradientColorKey[])(object)new GradientColorKey[1] { new GradientColorKey(Color.magenta, 0f) }; Object.Destroy((Object)(object)((Component)Bitevisu.transform.GetChild(2)).gameObject); ((Component)Bitevisu.transform.GetChild(1)).GetComponent<LineEffect>().offsetMultiplier = 0f; ((Component)Bitevisu.transform.GetChild(1)).GetComponent<LineEffect>().playOnAwake = true; Object.Destroy((Object)(object)Bitevisu.GetComponent<FollowPlayer>()); Bitevisu.GetComponent<DelayEvent>().time = 0f; Object.Destroy((Object)(object)Bitevisu.GetComponent<SoundUnityEventPlayer>()); Object.Destroy((Object)(object)Bitevisu.GetComponent<Explosion>()); Object.Destroy((Object)(object)Bitevisu.GetComponent<RemoveAfterSeconds>()); Bitevisu.AddComponent<BiteSpawner>(); return Bitevisu; } set { } } private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponent<Block>(); data = ((Component)this).GetComponent<CharacterData>(); gun = ((Component)this).GetComponent<Gun>(); ResetEffectTimer(); ResetTimer(); canTrigger = true; hasTriggered = false; basic = block.BlockAction; if (Object.op_Implicit((Object)(object)block)) { gravy = GetDoBlockAction(player, block).Invoke; block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, gravy); } } public void Destroy() { Object.Destroy((Object)(object)this); } public void OnDestroy() { block.BlockAction = basic; } private void Update() { if (!(Time.time >= startTime + updateDelay)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Bite") { numcheck++; } } if (numcheck > 0) { ResetTimer(); if (Time.time >= timeOfLastEffect) { canTrigger = true; } else { canTrigger = false; } } else { Object.Destroy((Object)(object)this); } } public Action<BlockTriggerType> GetDoBlockAction(Player player, Block block) { Block block2 = block; Player player2 = player; return delegate(BlockTriggerType trigger) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) if ((int)trigger != 1) { if (!Object.op_Implicit((Object)(object)fieldsound)) { } soundParameterIntensity.intensity = ((Component)this).transform.localScale.x * Optionshandler.vol_Master * Optionshandler.vol_Sfx / 1.3f; SoundManager.Instance.Play(fieldsound, ((Component)this).transform, (SoundParameterBase[])(object)new SoundParameterBase[1] { (SoundParameterBase)soundParameterIntensity }); Object.Instantiate<GameObject>(BiteVisual, ((Component)this.player).transform.position, Quaternion.identity); Vector2 val = Vector2.op_Implicit(((Component)block2).transform.position); Player[] array = PlayerManager.instance.players.ToArray(); for (int i = 0; i < array.Length; i++) { if (array[i].teamID != player2.teamID && Vector2.Distance(val, Vector2.op_Implicit(((Component)array[i]).transform.position)) < maxDistance && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)player2).transform.position), array[i]).canSee) { ((Damagable)((Component)((Component)array[i]).transform).GetComponent<HealthHandler>()).TakeDamage(this.player.data.stats.lifeSteal * 55f * 0.5f * Vector2.down, Vector2.op_Implicit(((Component)array[i]).transform.position), ((Component)this.player.data.weaponHandler).gameObject, this.player, true, false); hasTriggered = true; } } if (hasTriggered) { hasTriggered = false; canTrigger = false; ResetEffectTimer(); } } }; } private void ResetTimer() { startTime = Time.time; numcheck = 0; } private void ResetEffectTimer() { timeOfLastEffect = Time.time; } } public class BloodyBulletDOTMono : RayHitPoison { [Header("Sounds")] public SoundEvent? soundEventDamageOverTime; [Header("Settings")] public float time = 3f; public float interval = 0.2f; public Color color = Color.red; private void Start() { if ((Object)(object)((Component)this).GetComponentInParent<ProjectileHit>() != (Object)null) { ((Component)this).GetComponentInParent<ProjectileHit>().bulletCanDealDeamage = false; } } public override HasToReturn DoHitEffect(HitInfo hit) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hit.transform)) { return (HasToReturn)1; } RayHitPoison[] componentsInChildren = ((Component)((Component)this).transform.root).GetComponentsInChildren<RayHitPoison>(); ProjectileHit componentInParent = ((Component)this).GetComponentInParent<ProjectileHit>(); DamageOverTime component = ((Component)hit.transform).GetComponent<DamageOverTime>(); if (Object.op_Implicit((Object)(object)component)) { component.TakeDamageOverTime(Vector2.op_Implicit(componentInParent.damage * ((Component)this).transform.forward / (float)componentsInChildren.Length), Vector2.op_Implicit(((Component)this).transform.position), time, interval, color, soundEventDamageOverTime, ((Component)this).GetComponentInParent<ProjectileHit>().ownWeapon, ((Component)this).GetComponentInParent<ProjectileHit>().ownPlayer, true); } return (HasToReturn)1; } public void Destroy() { Object.Destroy((Object)(object)this); } } public class BloodyBulletsEffect : ReversibleEffect { private readonly Color color = Color.red; private ReversibleColorEffect colorEffect; private readonly float updateDelay = 0.05f; private float startTime; private float count; public override void OnOnEnable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnStart() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) base.characterStatModifiersModifier.movementSpeed_mult = 0.9f; base.characterStatModifiersModifier.jump_mult = 0.95f; ResetTimer(); count = 0f; colorEffect = ((Component)base.player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); } public override void OnUpdate() { if (Time.time >= startTime + updateDelay) { ResetTimer(); count += 0.05f; if (count >= 4f) { ((ReversibleEffect)this).Destroy(); } if (((Component)this).GetComponent<Player>().data.dead || ((Component)this).GetComponent<Player>().data.health <= 0f || !((Component)((Component)this).GetComponent<Player>()).gameObject.activeInHierarchy) { ResetTimer(); ((ReversibleEffect)this).Destroy(); } } } public override void OnOnDisable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnOnDestroy() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } private void ResetTimer() { startTime = Time.time; } } public class BloodyBulletsSelfDamageMono : MonoBehaviour { private Gun gun; public Player player; private float nextTime; private float numcheck; private float oneProjectileAtATimePal; private void Start() { player = ((Component)this).GetComponent<Player>(); gun = player.data.weaponHandler.gun; Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(ShootAction)); } private void Update() { if (!(Time.time >= nextTime)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Blood Siphon") { numcheck += 1f; } } if (numcheck > 0f) { ResetTimerLol(); } else { Object.Destroy((Object)(object)this); } } private void ResetTimerLol() { nextTime = Time.time + 0.1f; numcheck = 0f; } private void ShootAction(GameObject projectile) { //IL_00a0: 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_00ab: Unknown result type (might be due to invalid IL or missing references) if (Time.time > oneProjectileAtATimePal) { oneProjectileAtATimePal = Time.time + 0.01f; float num = player.data.weaponHandler.gun.damage * 55f * 0.07f; num *= (float)gun.numberOfProjectiles; num /= (float)(1 + (gun.numberOfProjectiles - 1) / 8); num = Mathf.Clamp(num, 0.2f * (float)gun.numberOfProjectiles, 20f); ((Damagable)player.data.healthHandler).TakeDamage(Vector2.one * num, Vector2.zero, (GameObject)null, (Player)null, false, false); if (Mathf.Floor(player.data.health) <= 1f) { player.data.stats.AddSlowAddative(2f * gun.damage * (float)gun.numberOfProjectiles / (float)(1 + (gun.numberOfProjectiles - 1) / 8), 1f, false); Player component = ((Component)this).gameObject.GetComponent<Player>(); ((Component)component).gameObject.AddComponent<BloodyBulletsEffect>(); } } } private void OnDestroy() { Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(ShootAction)); } } public class DoubleEdgedBulletsMono : MonoBehaviour { private Gun gun; public Player player; private float nextTime; private float numcheck; private float oneProjectileAtATimePal; private void Start() { player = ((Component)this).GetComponent<Player>(); gun = player.data.weaponHandler.gun; Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(ShootAction)); } private void Update() { if (!(Time.time >= nextTime)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Double Edged Bullets") { numcheck += 1f; } } if (numcheck > 0f) { ResetTimerLol(); } else { Object.Destroy((Object)(object)this); } } private void ResetTimerLol() { nextTime = Time.time + 0.1f; numcheck = 0f; } private void ShootAction(GameObject projectile) { //IL_00a0: 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_00ab: Unknown result type (might be due to invalid IL or missing references) if (Time.time > oneProjectileAtATimePal) { oneProjectileAtATimePal = Time.time + 0.01f; float num = player.data.weaponHandler.gun.damage * 55f * 0.07f; num *= (float)gun.numberOfProjectiles; num /= (float)(1 + (gun.numberOfProjectiles - 1) / 8); num = Mathf.Clamp(num, 0.2f * (float)gun.numberOfProjectiles, 20f); ((Damagable)player.data.healthHandler).TakeDamage(Vector2.one * num, Vector2.zero, (GameObject)null, (Player)null, false, false); if (Mathf.Floor(player.data.health) <= 1f) { player.data.stats.AddSlowAddative(2f * gun.damage * (float)gun.numberOfProjectiles / (float)(1 + (gun.numberOfProjectiles - 1) / 8), 1f, false); Player component = ((Component)this).gameObject.GetComponent<Player>(); ((Component)component).gameObject.AddComponent<BloodyBulletsEffect>(); } } } private void OnDestroy() { Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(ShootAction)); } } internal class ExorcismMono : MonoBehaviour { public static readonly float AppliedStatBonus1 = 100f; public static readonly float AppliedStatBonus2 = 2f; public static readonly float AppliedStatBonus3 = 80f; public static readonly float AppliedStatBonus4 = 500f; private float StatBonusPercentage; private float TimeInLineOfSight; private Player player; private Gun gun; private Gun gunAmmo; private CharacterStatModifiers statModifiers; private bool isActive; private LineEffect lineEffect; private LineRenderer lineRenderer; private LineRenderer lr; private Vector3 target; private Vector3 myPosition; private Vector3 myOffset; private bool drawLine; private float prevBonus1; private float newBonus1; private static FieldInfo playerVelocityField = typeof(PlayerVelocity).GetField("velocity", BindingFlags.Instance | BindingFlags.NonPublic); private void Start() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected O, but got Unknown prevBonus1 = 1f; newBonus1 = 1f; player = ((Component)this).GetComponentInParent<Player>(); myPosition = ((Component)player).transform.position; lineRenderer = ((Component)this).gameObject.AddComponent<LineRenderer>(); lineRenderer.startWidth = 0.15f; lineRenderer.endWidth = lineRenderer.startWidth; lineRenderer.positionCount = 2; ((Renderer)lineRenderer).material = new Material(Shader.Find("Sprites/Default")); } private void OnDisable() { turnOff(); } private void FixedUpdate() { //IL_0049: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) bool flag = false; drawLine = false; foreach (Player player in PlayerManager.instance.players) { if (player.teamID != this.player.teamID && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)this.player).transform.position), player).canSee) { flag = true; drawLine = true; break; } } foreach (Player player2 in PlayerManager.instance.players) { target = ((Component)this.player).transform.position; myOffset = ((Component)player2).transform.position; if (drawLine) { ((Renderer)lineRenderer).enabled = true; lineRenderer.SetPosition(0, target); lineRenderer.SetPosition(1, myOffset); } else { ((Renderer)lineRenderer).enabled = false; } } newBonus1 = 1f + AppliedStatBonus1 * 0.01f * StatBonusPercentage; CharacterStatModifiers stats = this.player.data.stats; stats.movementSpeed /= prevBonus1; CharacterStatModifiers stats2 = this.player.data.stats; stats2.movementSpeed *= newBonus1; prevBonus1 = newBonus1; if (drawLine) { TimeInLineOfSight += 2f; } else { TimeInLineOfSight -= 6f; } if (TimeInLineOfSight > 1000f) { TimeInLineOfSight = 1000f; } if (TimeInLineOfSight < 0f) { TimeInLineOfSight = 0f; } StatBonusPercentage = TimeInLineOfSight / 1000f; lineRenderer.startColor = new Color(255f, 0f, (float)Math.Round(255f * (1f - StatBonusPercentage))); lineRenderer.endColor = new Color(255f, 0f, (float)Math.Round(255f * (1f - StatBonusPercentage))); if (drawLine) { turnOn(); } else { turnOff(); } } private void turnOn() { if (!isActive) { isActive = true; } } private void turnOff() { if (isActive) { isActive = false; CharacterStatModifiers stats = player.data.stats; stats.movementSpeed /= 1f + AppliedStatBonus1 * 0.01f * StatBonusPercentage; } } } public class FireworkEffect : ReversibleEffect { private readonly Color color = Color.magenta; private ReversibleColorEffect colorEffect; private readonly float updateDelay = 0.01f; private float startTime; private float actualstartTime; public override void OnOnEnable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnStart() { //IL_0066: Unknown result type (might be due to invalid IL or missing references) base.data.currentJumps = base.data.jumps; base.healthHandlerModifier.regen_add = 6f; base.gravityModifier.gravityForce_mult = 0.25f; ResetTimer(); actualstartTime = Time.time; colorEffect = ((Component)base.player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); } public override void OnUpdate() { if (Time.time >= startTime + updateDelay && Time.time >= actualstartTime + 0.5f) { ResetTimer(); if (((Component)this).GetComponent<Player>().data.isGrounded || ((Component)this).GetComponent<Player>().data.isWallGrab) { ((ReversibleEffect)this).Destroy(); } if (((Component)this).GetComponent<Player>().data.dead || ((Component)this).GetComponent<Player>().data.health <= 0f || !((Component)((Component)this).GetComponent<Player>()).gameObject.activeInHierarchy) { ResetTimer(); ((ReversibleEffect)this).Destroy(); } } } public override void OnOnDisable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnOnDestroy() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } private void ResetTimer() { startTime = Time.time; } } public class FireworkMono : MonoBehaviour { public Block block; public Player player; public CharacterData data; public Gun gun; private HealthHandler health; private Action<BlockTriggerType> gravy; private Action<BlockTriggerType> basic; private float timeOfLastEffect; protected readonly float AbilityCooldown = 1f; private float abilityUseTime; private float mass; private float nextTime; private float numcheck; private CodeAnimation anim; private CharacterStatModifiers stats; private Player componentInParent; private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponent<Block>(); data = ((Component)this).GetComponent<CharacterData>(); gun = ((Component)this).GetComponent<Gun>(); health = ((Component)this).GetComponent<HealthHandler>(); anim = ((Component)this).GetComponentInChildren<CodeAnimation>(); stats = ((Component)this).GetComponent<CharacterStatModifiers>(); Block val = player.data.block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); componentInParent = ((Component)this).GetComponentInParent<Player>(); } private void Update() { if (!(Time.time >= nextTime)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Firework") { numcheck += 1f; } } if (numcheck > 0f) { ResetTimerLol(); } else { Object.Destroy((Object)(object)this); } } private void ResetTimerLol() { nextTime = Time.time + 0.1f; numcheck = 0f; } public void Destroy() { Object.Destroy((Object)(object)this); } protected virtual void OnDestroy() { Block val = player.data.block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); } private void OnBlock(BlockTriggerType triggerType) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) if ((int)triggerType == 0 && !(Time.time < abilityUseTime)) { Player component = ((Component)this).gameObject.GetComponent<Player>(); if (!Object.op_Implicit((Object)(object)((Component)component).gameObject.GetComponent<FireworkEffect>())) { ((Component)component).gameObject.AddComponent<FireworkEffect>(); } data.currentJumps = data.jumps; abilityUseTime = Time.time + AbilityCooldown; } } protected virtual IEnumerator abilityWaitDuration() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown return (IEnumerator)new WaitUntil((Func<bool>)(() => true)); } } public class FrostbiteDamageMono : RayHitPoison { [Header("Sounds")] public SoundEvent? soundEventDamageOverTime; [Header("Settings")] public float time = 2f; public float interval = 0.5f; public Color color = Color.cyan; private void Start() { if ((Object)(object)((Component)this).GetComponentInParent<ProjectileHit>() != (Object)null) { ((Component)this).GetComponentInParent<ProjectileHit>().bulletCanDealDeamage = false; } } public override HasToReturn DoHitEffect(HitInfo hit) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hit.transform)) { return (HasToReturn)1; } RayHitPoison[] componentsInChildren = ((Component)((Component)this).transform.root).GetComponentsInChildren<RayHitPoison>(); ProjectileHit componentInParent = ((Component)this).GetComponentInParent<ProjectileHit>(); DamageOverTime component = ((Component)hit.transform).GetComponent<DamageOverTime>(); if (Object.op_Implicit((Object)(object)component)) { component.TakeDamageOverTime(Vector2.op_Implicit(componentInParent.damage * ((Component)this).transform.forward / (float)componentsInChildren.Length), Vector2.op_Implicit(((Component)this).transform.position), time, interval, color, soundEventDamageOverTime, ((Component)this).GetComponentInParent<ProjectileHit>().ownWeapon, ((Component)this).GetComponentInParent<ProjectileHit>().ownPlayer, true); } return (HasToReturn)1; } public void Destroy() { Object.Destroy((Object)(object)this); } } public class FrostbiteMono : RayHitEffect { public static SoundEvent fieldsound; public override HasToReturn DoHitEffect(HitInfo hit) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hit.transform)) { return (HasToReturn)1; } FrostbiteSlowMono component = ((Component)hit.transform).GetComponent<FrostbiteSlowMono>(); if (Object.op_Implicit((Object)(object)((Component)hit.transform).GetComponent<DamageOverTime>()) && !Object.op_Implicit((Object)(object)component)) { ((Component)hit.transform).gameObject.AddComponent<FrostbiteSlowMono>(); } return (HasToReturn)1; } public void Destroy() { Object.Destroy((Object)(object)this); } } public class FrostbiteSlowMono : ReversibleEffect { private readonly Color color = Color.cyan; private ReversibleColorEffect colorEffect; private readonly float updateDelay = 0.5f; private readonly float effectCooldown = 2f; public float slowDealt = 0f; private float startTime; private float timeOfLastEffect; private SoundEvent soundCharacterSlowFreeze; public override void OnOnEnable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnStart() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) ResetEffectTimer(); ResetTimer(); colorEffect = ((Component)base.player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); } public override void OnUpdate() { base.data = ((Component)this).GetComponent<CharacterData>(); float slow = base.gun.slow; float num = slow; float num2 = num / effectCooldown * updateDelay; if (!(Time.time >= startTime + updateDelay)) { return; } ResetTimer(); if (slowDealt < num) { if ((Object)(object)soundCharacterSlowFreeze != (Object)null && base.data.isPlaying && !base.data.dead) { SoundManager.Instance.Play(soundCharacterSlowFreeze, ((Component)this).transform); } slowDealt += num2; float num3 = Mathf.Clamp(slow * 1.5f * (0.5f + base.gun.damage / 2f), 0.5f, 1f); base.data.stats.AddSlowAddative(num2 * base.gun.damage * 1.8f, num3, false); } if (slowDealt >= num) { ((ReversibleEffect)this).Destroy(); ((ColorEffect)colorEffect).Destroy(); } if (base.player.data.dead || base.player.data.health <= 0f || !((Component)base.player).gameObject.activeInHierarchy) { ResetTimer(); ((ReversibleEffect)this).Destroy(); } } public override void OnOnDisable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); ResetEffectTimer(); ResetTimer(); } } public override void OnOnDestroy() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); ResetEffectTimer(); ResetTimer(); } } private void ResetTimer() { startTime = Time.time; } private void ResetEffectTimer() { timeOfLastEffect = Time.time; } } public class GroundedEffect : ReversibleEffect { private readonly Color color = new Color(150f, 75f, 0f); private ReversibleColorEffect colorEffect; private readonly float updateDelay = 0.05f; private float startTime; private float count; public override void OnOnEnable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnStart() { //IL_005c: Unknown result type (might be due to invalid IL or missing references) base.gravityModifier.gravityForce_mult = 5f; base.characterDataModifier.numberOfJumps_mult = 0; base.characterStatModifiersModifier.movementSpeed_mult = 0.75f; ResetTimer(); count = 0f; colorEffect = ((Component)base.player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); } public override void OnUpdate() { if (Time.time >= startTime + updateDelay) { ResetTimer(); count += 0.05f; if (count >= 2.25f) { ((ReversibleEffect)this).Destroy(); } if (((Component)this).GetComponent<Player>().data.dead || ((Component)this).GetComponent<Player>().data.health <= 0f || !((Component)((Component)this).GetComponent<Player>()).gameObject.activeInHierarchy) { ResetTimer(); ((ReversibleEffect)this).Destroy(); } } } public override void OnOnDisable() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } public override void OnOnDestroy() { if ((Object)(object)colorEffect != (Object)null) { ((ColorEffect)colorEffect).Destroy(); } } private void ResetTimer() { startTime = Time.time; } } public class GroundedMono : MonoBehaviour { private class GroundedSpawner : MonoBehaviour { private void Start() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Component)this).gameObject.transform.localScale = new Vector3(1f, 1f, 1f); ((Component)this).gameObject.AddComponent<RemoveAfterSeconds>().seconds = 2f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "inited", (object)false); typeof(LineEffect).InvokeMember("Init", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), new object[0]); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().radius = 5.6f; ExtensionMethods.SetFieldValue((object)((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>(), "startWidth", (object)1f); ((Component)((Component)this).gameObject.transform.GetChild(1)).GetComponent<LineEffect>().Play(); } } private readonly float maxDistance = 10f; public Block block; public Player player; public CharacterData data; public Gun gun; private Action<BlockTriggerType> gravy; private Action<BlockTriggerType> basic; private static GameObject Groundedvisu; private readonly float updateDelay = 0.1f; private readonly float effectCooldown; private float startTime; private float timeOfLastEffect; private bool canTrigger; private bool hasTriggered; public int numcheck; public static SoundEvent fieldsound; private SoundParameterIntensity soundParameterIntensity = new SoundParameterIntensity(0.2f, (UpdateMode)0); [Obsolete] public static GameObject GroundedVisual { get { //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Groundedvisu != (Object)null) { return Groundedvisu; } IEnumerable<CardInfo> first = ((ObservableCollection<CardInfo>)typeof(CardManager).GetField("activeCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null)).ToList(); List<CardInfo> second = (List<CardInfo>)typeof(CardManager).GetField("inactiveCards", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null); Groundedvisu = Object.Instantiate<GameObject>(((Component)(from card in first.Concat(second).ToList() where card.cardName.ToLower() == "overpower" select card).First()).GetComponent<CharacterStatModifiers>().AddObjectToPlayer.GetComponent<SpawnObjects>().objectToSpawn[0], new Vector3(0f, 100000f, 0f), Quaternion.identity); ((Object)Groundedvisu).name = "E_Grounded"; Object.DontDestroyOnLoad((Object)(object)Groundedvisu); ParticleSystem[] componentsInChildren = Groundedvisu.GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].startColor = Color.gray; } ((Component)Groundedvisu.transform.GetChild(1)).GetComponent<LineEffect>().colorOverTime.colorKeys = (GradientColorKey[])(object)new GradientColorKey[1] { new GradientColorKey(Color.white, 0f) }; Object.Destroy((Object)(object)((Component)Groundedvisu.transform.GetChild(2)).gameObject); ((Component)Groundedvisu.transform.GetChild(1)).GetComponent<LineEffect>().offsetMultiplier = 0f; ((Component)Groundedvisu.transform.GetChild(1)).GetComponent<LineEffect>().playOnAwake = true; Object.Destroy((Object)(object)Groundedvisu.GetComponent<FollowPlayer>()); Groundedvisu.GetComponent<DelayEvent>().time = 0f; Object.Destroy((Object)(object)Groundedvisu.GetComponent<SoundUnityEventPlayer>()); Object.Destroy((Object)(object)Groundedvisu.GetComponent<Explosion>()); Object.Destroy((Object)(object)Groundedvisu.GetComponent<RemoveAfterSeconds>()); Groundedvisu.AddComponent<GroundedSpawner>(); return Groundedvisu; } set { } } private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponent<Block>(); data = ((Component)this).GetComponent<CharacterData>(); gun = ((Component)this).GetComponent<Gun>(); ResetEffectTimer(); ResetTimer(); canTrigger = true; hasTriggered = false; basic = block.BlockAction; if (Object.op_Implicit((Object)(object)block)) { gravy = GetDoBlockAction(player, block).Invoke; block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, gravy); } } public void Destroy() { Object.Destroy((Object)(object)this); } public void OnDestroy() { block.BlockAction = basic; } private void Update() { if (!(Time.time >= startTime + updateDelay)) { return; } for (int i = 0; i <= player.data.currentCards.Count - 1; i++) { if (player.data.currentCards[i].cardName == "Grounded") { numcheck++; } } if (numcheck > 0) { ResetTimer(); if (Time.time >= timeOfLastEffect) { canTrigger = true; } else { canTrigger = false; } } else { Object.Destroy((Object)(object)this); } } public Action<BlockTriggerType> GetDoBlockAction(Player player, Block block) { Block block2 = block; Player player2 = player; return delegate(BlockTriggerType trigger) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_009f: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) if ((int)trigger != 1) { if (!Object.op_Implicit((Object)(object)fieldsound)) { } soundParameterIntensity.intensity = ((Component)this).transform.localScale.x * Optionshandler.vol_Master * Optionshandler.vol_Sfx / 1.3f; SoundManager.Instance.Play(fieldsound, ((Component)this).transform, (SoundParameterBase[])(object)new SoundParameterBase[1] { (SoundParameterBase)soundParameterIntensity }); Object.Instantiate<GameObject>(GroundedVisual, ((Component)this.player).transform.position, Quaternion.identity); Vector2 val = Vector2.op_Implicit(((Component)block2).transform.position); Player[] array = PlayerManager.instance.players.ToArray(); for (int i = 0; i < array.Length; i++) { if (array[i].teamID != player2.teamID && Vector2.Distance(val, Vector2.op_Implicit(((Component)array[i]).transform.position)) < maxDistance && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)player2).transform.position), array[i]).canSee) { if (!array[i].data.block.IsBlocking()) { ((Damagable)((Component)((Component)array[i]).transform).GetComponent<HealthHandler>()).TakeDamage(27.5f * Vector2.one, Vector2.op_Implicit(((Component)array[i]).transform.position), ((Component)this.player.data.weaponHandler).gameObject, this.player, true, false); if (Object.op_Implicit((Object)(object)((Component)((Component)array[i]).transform).gameObject.GetComponent<GroundedEffect>())) { ((ReversibleEffect)((Component)((Component)array[i]).transform).gameObject.GetComponent<GroundedEffect>()).Destroy(); } ((Component)((Component)array[i]).transform).gameObject.AddComponent<GroundedEffect>(); } hasTriggered = true; } } if (hasTriggered) { hasTriggered = false; canTrigger = false; ResetEffectTimer(); } } }; } private void ResetTimer() { startTime = Time.time; numcheck = 0; } private void ResetEffectTimer() { timeOfLastEffect = Time.time; } } internal class HealingVeilMono : ShieldTemplateMono { public static float HealingVeilHealth; public static float HealingVeilSize; public static readonly float abilityCooldown = 15f; public static readonly float abilityRadius = 3.65f; public static readonly float HealingVeilInitialHealth = 75f; public static readonly float HealingVeilHealthFadingNormalized = 0.01f; public static float HealingVeilCurrentAliveTime; public static readonly bool FollowPlayer = true; public static readonly float SizeAffectedByPlayer = 1f; public static readonly float InvincibilityTime = 0.02f; public static readonly float abilitybaseThickness = 0.25f; public static float abilityThickness = 0.275f; public static float HealingVeilCanHitAgainTime; public static float TimeUntilCanHeal; private static MethodInfo destroyProjectileMethod = typeof(ProjectileHit).GetMethod("DestroyMe", BindingFlags.Instance | BindingFlags.NonPublic); protected override void Start() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) baseAbilityCooldown = abilityCooldown; baseAbilityRadius = abilityRadius; baseFollowPlayer = FollowPlayer; baseSizeAffectedByPlayer = SizeAffectedByPlayer; baseThickness = abilityThickness; base.Start(); setColor(Color.green); } protected override void FixedUpdate() { //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) if (base.player.data.dead || base.player.data.health <= 0f || !((Component)base.player).gameObject.activeInHierarchy) { HealingVeilHealth = -1f; base.abilityActive = false; } if (base.abilityActive) { float healingVeilMaxHealth = getHealingVeilMaxHealth(); HealingVeilHealth -= HealingVeilHealthFadingNormalized * (1f + (HealingVeilCurrentAliveTime + 1f) * (HealingVeilCurrentAliveTime + 1f) / 2f) * healingVeilMaxHealth * Time.fixedDeltaTime; setRadius(abilityRadius); HealingVeilSize = abilityRadius; abilityThickness = abilitybaseThickness * HealingVeilHealth / healingVeilMaxHealth; baseThickness = abilityThickness; HealingVeilCurrentAliveTime += Time.fixedDeltaTime; } else { HealingVeilCurrentAliveTime = 0f; } if (HealingVeilHealth > 0f && !base.player.data.dead && !(base.player.data.health <= 0f) && ((Component)base.player).gameObject.activeInHierarchy) { float healingVeilMaxHealth2 = getHealingVeilMaxHealth(); Player[] array = PlayerManager.instance.players.ToArray(); if (Time.time > TimeUntilCanHeal) { for (int i = 0; i < array.Length; i++) { if (Vector2.Distance(Vector2.op_Implicit(((Component)base.player).transform.position), Vector2.op_Implicit(((Component)array[i]).transform.position)) < 0.5f + HealingVeilHealth / healingVeilMaxHealth2 * (abilityRadius - 0.5f)) { ((Component)array[i]).gameObject.GetComponent<CharacterData>(); Player component = ((Component)array[i]).gameObject.GetComponent<Player>(); ((Component)array[i]).gameObject.GetComponent<HealthHandler>(); component.data.healthHandler.Heal(1.15f * (0.5f + HealingVeilHealth / healingVeilMaxHealth2 / 2f)); component.data.healthHandler.Heal(array[i].data.maxHealth * 0.0115f * (0.5f + HealingVeilHealth / healingVeilMaxHealth2 / 2f)); TimeUntilCanHeal = Time.time + 0.15f; } } } } base.FixedUpdate(); } protected override IEnumerator abilityWaitDuration() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown return (IEnumerator)new WaitUntil((Func<bool>)(() => HealingVeilHealth <= 0f || base.player.data.dead || base.player.data.health <= 0f || !((Component)base.player).gameObject.activeInHierarchy)); } protected override bool bulletValidation(ProjectileHit projectile) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) return projectile.ownPlayer.teamID != base.player.teamID && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)projectile).transform.position), base.player).canSee; } protected override void affectBullet(ProjectileHit projectile) { if (HealingVeilHealth > projectile.damage) { if (Time.time > HealingVeilCanHitAgainTime && !(BarrierMono.barrierSize > HealingVeilSize)) { HealingVeilCanHitAgainTime = Time.time + InvincibilityTime; HealingVeilHealth -= projectile.damage; } ProjectileCollision componentInChildren = ((Component)projectile).GetComponentInChildren<ProjectileCollision>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.Die(); } destroyProjectileMethod.Invoke(projectile, new object[0]); } else { projectile.damage -= HealingVeilHealth; HealingVeilHealth = 0f; } } protected override void onShieldEnable() { HealingVeilHealth = getHealingVeilMaxHealth(); } private float getHealingVeilMaxHealth() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) return ((Component)base.player).transform.localScale.x / base.player.data.stats.sizeMultiplier * HealingVeilInitialHealth + 75f; } } internal class HornyMonoChase : MonoBehaviour { public static readonly float speedPercentBonus = 100f; private Player player; private bool isActive; private LineEffect lineEffect; private LineRenderer lineRenderer; private Vector3 target; private Vector3 myPosition; private Vector3 myOffset; private bool drawLine; private static FieldInfo playerVelocityField = typeof(PlayerVelocity).GetField("velocity", BindingFlags.Instance | BindingFlags.NonPublic); private void Start() { //IL_0019: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) player = ((Component)this).GetComponentInParent<Player>(); myPosition = ((Component)player).transform.position; lineRenderer = ((Component)this).gameObject.AddComponent<LineRenderer>(); lineRenderer.startWidth = 0.15f; lineRenderer.endWidth = lineRenderer.startWidth; lineRenderer.positionCount = 2; ((Renderer)lineRenderer).material = new Material(Shader.Find("Sprites/Default")); lineRenderer.startColor = new Color(255f, 0f, 255f); lineRenderer.endColor = new Color(255f, 0f, 255f); } private void OnDisable() { turnOff(); } private void FixedUpdate() { //IL_001a: 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_0134: 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_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) bool flag = false; drawLine = false; if (player.data.input.direction != Vector3.zero) { foreach (Player player in PlayerManager.instance.players) { if (player.teamID != this.player.teamID && Vector2.Angle(Vector2.op_Implicit(((Component)player).transform.position - ((Component)this.player).transform.position), Vector2.op_Implicit(this.player.data.input.direction)) <= 70f && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)this.player).transform.position), player).canSee) { flag = true; drawLine = true; break; } } } foreach (Player player2 in PlayerManager.instance.players) { target = ((Component)this.player).transform.position; myOffset = ((Component)player2).transform.position; if (drawLine) { ((Renderer)lineRenderer).enabled = true; lineRenderer.SetPosition(0, target); lineRenderer.SetPosition(1, myOffset); } else { ((Renderer)lineRenderer).enabled = false; } } if (flag) { turnOn(); } else { turnOff(); } } private void turnOn() { if (!isActive) { isActive = true; CharacterStatModifiers stats = player.data.stats; stats.movementSpeed *= 1f + speedPercentBonus * 0.01f; } } private void turnOff() { if (isActive) { isActive = false; CharacterStatModifiers stats = player.data.stats; stats.movementSpeed /= 1f + speedPercentBonus * 0.01f; } } } internal class HornyMonoFlee : MonoBehaviour { public static readonly float speedPercentBonus = 100f; private Player player; private bool isActive; private LineEffect lineEffect; private LineRenderer lineRenderer; private Vector3 target; private Vector3 myPosition; private Vector3 myOffset; private bool drawLine; private static FieldInfo playerVelocityField = typeof(PlayerVelocity).GetField("velocity", BindingFlags.Instance | BindingFlags.NonPublic); private void Start() { //IL_0019: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) player = ((Component)this).GetComponentInParent<Player>(); myPosition = ((Component)player).transform.position; lineRenderer = ((Component)this).gameObject.AddComponent<LineRenderer>(); lineRenderer.startWidth = 0.15f; lineRenderer.endWidth = lineRenderer.startWidth; lineRenderer.positionCount = 2; ((Renderer)lineRenderer).material = new Material(Shader.Find("Sprites/Default")); lineRenderer.startColor = new Color(255f, 16f, 240f); lineRenderer.endColor = new Color(255f, 16f, 240f); } private void OnDisable() { turnOff(); } private void FixedUpdate() { //IL_001a: 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_0134: 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_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0185: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) bool flag = false; drawLine = false; if (player.data.input.direction != Vector3.zero) { foreach (Player player in PlayerManager.instance.players) { if (player.teamID != this.player.teamID && Vector2.Angle(Vector2.op_Implicit(((Component)player).transform.position - ((Component)this.player).transform.position), Vector2.op_Implicit(this.player.data.input.direction)) <= 70f && PlayerManager.instance.CanSeePlayer(Vector2.op_Implicit(((Component)this.player).transform.position), player).canSee) { flag = true; drawLine = true; break; } } } foreach (Player player2 in PlayerManager.instance.players) { target = ((Component)this.player).transform.position; myOffset = ((Component)player2).transform.position; if (drawLine) { ((Renderer)lineRenderer).enabled = true; lineRenderer.SetPosition(0, target); lineRenderer.SetPosition(1, myOffset); } else { ((Renderer)lineRenderer).enabled = false; } } if (flag) { turnOn(); } else { turnOff(); } } private void turnOn() { if (!isActive) { isActive = true; CharacterStatModifiers stats = player.data.stats; stats.movementSpeed *= 1f + speedPercentBonus * 0.01f; } } private void turnOff() { if (isActive) { isActive = false; CharacterStatModifiers stats = player.data.stats; stats.movementSpeed /= 1f + speedPercentBonus * 0.01f; } } } internal class LandmineMono : MonoBehaviour { [CompilerGenerated] private sealed class <useAbility>d__4 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LandmineMono <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <useAbility>d__4(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_015e: 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_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) if (<>1__state != 0) { return false; } <>1__state = -1; if (!<>4__this.LocationSet) { <>4__this.position = ((Component)<>4__this.player).transform.position; <>4__this.position2 = ((Component)<>4__this.player).transform; <>4__this.LocationSet = true; <>4__this.lineEffect.Play(((Component)<>4__this.player).transform); <>4__this.lineEffect.Play((Transform)null); ((Renderer)<>4__this.lineRenderer).material.color = Color.red; return false; } <>4__this.LocationSet = false; <>4__this.lineEffect.Stop(); ((Component)<>4__this.lineEffect).gameObject.SetActive(false); <>4__this.explosion.damage = 100f; <>4__this.explosion.force = 10000f; <>4__this.explosion.range = <>4__this.lineEffect.radius; Object.Instantiate<GameObject>(((Component)<>4__this.explosion).gameObject, <>4__this.position, Quaternion.identity).transform.localScale = Vector3.one * 2f; if ((Object)(object)<>4__this.soundDamage != (Object)null) { SoundManager.Instance.Play(<>4__this.soundDamage, ((Component)<>4__this.player).transform); } <>4__this.player.data.block.DoBlockAtPosition(fa