Decompiled source of Expanded Bossfights v1.0.3
plugins/ExpandedBossfights.dll
Decompiled 7 months 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.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using Alexandria; using Alexandria.Assetbundle; using Alexandria.DungeonAPI; using Alexandria.EnemyAPI; using Alexandria.ItemAPI; using Alexandria.Misc; using Alexandria.PrefabAPI; using BepInEx; using Brave.BulletScript; using Dungeonator; using ExpandBosses.Code; using ExpandBosses.Code.Enemies.Abomination; using ExpandBosses.Code.Enemies.Behaviors; using ExpandBosses.Code.Objects; using ExpandBosses.Code.Weapons; using ExpandBosses.SoundAPI; using ExpandBosses.Storage; using ExpandTheGungeon.ExpandPrefab; using ExpandTheGungeon.ItemAPI; using FullInspector; using Gungeon; using MonoMod.Cil; using MonoMod.RuntimeDetour; using Pathfinding; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("Mod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Mod")] [assembly: AssemblyCopyright("Copyright © 2020")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("d6d7a494-722e-4763-959b-c2d6b6a42b01")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace ExpandBosses { public class AdvancedBodyPartController : BraveBehaviour { public enum AimFromType { Transform = 10, ActorHitBoxCenter = 20 } public Action<AIActor, Vector2> OnHostPreDeath; public Action<AIActor, Vector2> OnHostDeath; public Action<AIActor, float, float, CoreDamageTypes, DamageCategory, Vector2> OnHostDamaged; public bool FlashesOnHit = true; private bool currentlyFlashing = false; public float FlashDuration = 0.05f; public float FlashPause = 0.25f; public bool Render = true; public string Name = "BodyPart"; public SpeculativeRigidbody ownBody; public HealthHaver ownHealthHaver; public Action<SpeculativeRigidbody, HealthHaver, Vector2> OnBodyPartPreDeath; public Action<SpeculativeRigidbody, HealthHaver, Vector2> OnBodyPartDeath; public Action<HealthHaver, SpeculativeRigidbody, float, float, CoreDamageTypes, DamageCategory, Vector2> OnBodyPartDamaged; public int intPixelCollider; public bool hasOutlines; public bool faceTarget; [ShowInInspectorIf("faceTarget", true)] public float faceTargetTurnSpeed = -1f; [ShowInInspectorIf("faceTarget", true)] public AimFromType aimFrom = (AimFromType)10; public bool autoDepth = true; public bool redirectHealthHaver; public bool independentFlashOnDamage; public AIActor MainBody; private float m_heightOffBody; public bool HostBodyIsDead = false; public bool OverrideFacingDirection { get; set; } private void HealthHaver_OnPreDeathAIActor(Vector2 obj) { //IL_002e: 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) HostBodyIsDead = true; if ((Object)(object)ownHealthHaver != (Object)null) { ownHealthHaver.ApplyDamage(2.1474836E+09f, new Vector2(0f, 0f), "get fucked", (CoreDamageTypes)0, (DamageCategory)0, false, (PixelCollider)null, false); } if (OnHostPreDeath != null) { OnHostPreDeath(MainBody, obj); } } private void OwnHealthHaver_OnDeathAIActor(Vector2 obj) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (OnHostDeath != null) { OnHostDeath(MainBody, obj); } } private void OwnHealthHaver_OnDamagedAIActor(float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (OnHostDamaged != null) { OnHostDamaged.Invoke(MainBody, resultValue, maxValue, damageTypes, damageCategory, damageDirection); } } public virtual void Start() { //IL_00a1: 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_01a8: Expected O, but got Unknown //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Expected O, but got Unknown ((BraveBehaviour)this).renderer.enabled = Render; if (!Object.op_Implicit((Object)(object)ownBody)) { ownBody = ((Component)this).gameObject.GetComponent<SpeculativeRigidbody>(); } if (!Object.op_Implicit((Object)(object)ownHealthHaver)) { ownHealthHaver = ((Component)this).gameObject.GetComponent<HealthHaver>(); } AIAnimator component = ((Component)this).gameObject.GetComponent<AIAnimator>(); if (Object.op_Implicit((Object)(object)component)) { ((Behaviour)component).enabled = true; } m_heightOffBody = ((BraveBehaviour)this).sprite.HeightOffGround; if (hasOutlines) { SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)this).sprite, Color.black, ((BraveBehaviour)this).sprite.HeightOffGround + 0.1f, 0f, (OutlineType)0); if (Object.op_Implicit((Object)(object)MainBody)) { ObjectVisibilityManager component2 = ((Component)MainBody).GetComponent<ObjectVisibilityManager>(); if (Object.op_Implicit((Object)(object)component2)) { component2.ResetRenderersList(); } } } if (!Object.op_Implicit((Object)(object)((BraveBehaviour)this).specRigidbody)) { ((BraveBehaviour)this).specRigidbody = ((BraveBehaviour)MainBody).specRigidbody; } if ((Object)(object)((Component)this).gameObject.transform.parent != (Object)null) { MainBody = ((Component)((Component)this).gameObject.transform.parent).GetComponent<AIActor>(); } if ((Object)(object)MainBody != (Object)null) { ((BraveBehaviour)MainBody).healthHaver.OnPreDeath += HealthHaver_OnPreDeathAIActor; ((BraveBehaviour)MainBody).healthHaver.OnDamaged += new OnDamagedEvent(OwnHealthHaver_OnDamagedAIActor); ((BraveBehaviour)MainBody).healthHaver.OnDeath += OwnHealthHaver_OnDeathAIActor; } if ((Object)(object)ownBody != (Object)null && (Object)(object)ownHealthHaver != (Object)null) { ownHealthHaver.OnDamaged += new OnDamagedEvent(OwnHealthHaver_OnDamaged); ownHealthHaver.OnPreDeath += OwnHealthHaver_OnPreDeath; ownHealthHaver.OnDeath += OwnHealthHaver_OnDeath; } } private void OwnHealthHaver_OnDeath(Vector2 obj) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (OnBodyPartDeath != null) { OnBodyPartDeath(ownBody, ownHealthHaver, obj); } } private void OwnHealthHaver_OnPreDeath(Vector2 obj) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) if (OnBodyPartPreDeath != null) { OnBodyPartPreDeath(ownBody, ownHealthHaver, obj); } } private void OwnHealthHaver_OnDamaged(float resultValue, float maxValue, CoreDamageTypes damageTypes, DamageCategory damageCategory, Vector2 damageDirection) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) if (OnBodyPartDamaged != null) { OnBodyPartDamaged.Invoke(ownHealthHaver, ownBody, resultValue, maxValue, damageTypes, damageCategory, damageDirection); } if (FlashesOnHit && !currentlyFlashing) { currentlyFlashing = true; ((MonoBehaviour)this).StartCoroutine(DoFlash()); } } private IEnumerator DoFlash() { float e = 0.01f; while (e < FlashDuration) { e += BraveTime.DeltaTime; float t = e / FlashDuration; if (ownHealthHaver.currentHealth > 0f || ownHealthHaver.Armor > 0f) { float g = 25f - t * 25f; if (((BraveBehaviour)((BraveBehaviour)ownHealthHaver).sprite).renderer.material.shaderKeywords.Contains("_OverrideColor")) { ((BraveBehaviour)((BraveBehaviour)ownHealthHaver).sprite).renderer.material.SetColor("_OverrideColor", new Color(g, g, g, 1f)); } } yield return null; } if (((BraveBehaviour)((BraveBehaviour)ownHealthHaver).sprite).renderer.material.shaderKeywords.Contains("_OverrideColor")) { ((BraveBehaviour)((BraveBehaviour)ownHealthHaver).sprite).renderer.material.SetColor("_OverrideColor", new Color(0f, 0f, 0f, 0f)); } e = 0f; while (e < FlashPause) { e += BraveTime.DeltaTime; yield return null; } currentlyFlashing = false; } public virtual void Update() { //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)ownBody != (Object)null) { ownBody.Reinitialize(); ((BraveBehaviour)ownBody).sprite.collectionInst = null; } ((BraveBehaviour)this).renderer.enabled = Render; if (!OverrideFacingDirection && faceTarget && TryGetAimAngle(out var angle)) { if (faceTargetTurnSpeed > 0f) { float num = ((!Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator)) ? ((BraveBehaviour)this).transform.eulerAngles.z : ((BraveBehaviour)this).aiAnimator.FacingDirection); angle = Mathf.MoveTowardsAngle(num, angle, faceTargetTurnSpeed * BraveTime.DeltaTime); } if (Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator)) { ((BraveBehaviour)this).aiAnimator.LockFacingDirection = true; ((BraveBehaviour)this).aiAnimator.FacingDirection = angle; } else { ((BraveBehaviour)this).transform.rotation = Quaternion.Euler(0f, 0f, angle); } } if (autoDepth && Object.op_Implicit((Object)(object)((BraveBehaviour)this).aiAnimator)) { float num2 = BraveMathCollege.ClampAngle180(((Object)(object)MainBody != (Object)null) ? ((BraveBehaviour)MainBody).aiAnimator.FacingDirection : ((BraveBehaviour)ownBody).aiAnimator.FacingDirection); float num3 = BraveMathCollege.ClampAngle180(((BraveBehaviour)this).aiAnimator.FacingDirection); bool flag = num2 <= 155f && num2 >= 25f && num3 <= 155f && num3 >= 25f; ((BraveBehaviour)this).sprite.HeightOffGround = ((!flag) ? m_heightOffBody : (0f - m_heightOffBody)); } } public override void OnDestroy() { ((BraveBehaviour)this).OnDestroy(); } public virtual bool TryGetAimAngle(out float angle) { //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Invalid comparison between Unknown and I4 //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0063: 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_005e: Unknown result type (might be due to invalid IL or missing references) angle = 0f; if (Object.op_Implicit((Object)(object)MainBody)) { Vector2 unitCenter = ((Component)MainBody).GetComponent<SpeculativeRigidbody>().GetUnitCenter((ColliderType)2); Vector2 val = Vector3Extensions.XY(((BraveBehaviour)this).transform.position); if ((int)aimFrom == 20) { val = ((Component)MainBody).GetComponent<SpeculativeRigidbody>().GetUnitCenter((ColliderType)2); } angle = Vector2Extensions.ToAngle(unitCenter - val); if (Object.op_Implicit((Object)(object)((BraveBehaviour)MainBody).aiAnimator)) { angle = ((BraveBehaviour)MainBody).aiAnimator.FacingDirection; return true; } return true; } Vector2 unitCenter2 = ownBody.GetUnitCenter((ColliderType)2); Vector2 val2 = Vector3Extensions.XY(((BraveBehaviour)this).transform.position); if ((int)aimFrom == 20) { val2 = ownBody.GetUnitCenter((ColliderType)2); } angle = Vector2Extensions.ToAngle(unitCenter2 - val2); if (Object.op_Implicit((Object)(object)((BraveBehaviour)ownBody).aiAnimator)) { angle = ((BraveBehaviour)ownBody).aiAnimator.FacingDirection; return true; } return true; } } public class MaintainDamageOnPierce : MonoBehaviour { public Action<Projectile, SpeculativeRigidbody> OnPierce; public float AmountOfPiercesBeforeFalloff; public float damageMultOnPierce; private Projectile m_projectile; public MaintainDamageOnPierce() { damageMultOnPierce = 1f; AmountOfPiercesBeforeFalloff = -1f; } public void Start() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown m_projectile = ((Component)this).GetComponent<Projectile>(); if (Object.op_Implicit((Object)(object)m_projectile)) { SpeculativeRigidbody specRigidbody = ((BraveBehaviour)m_projectile).specRigidbody; specRigidbody.OnPreRigidbodyCollision = (OnPreRigidbodyCollisionDelegate)Delegate.Combine((Delegate?)(object)specRigidbody.OnPreRigidbodyCollision, (Delegate?)new OnPreRigidbodyCollisionDelegate(HandlePierce)); } } private void HandlePierce(SpeculativeRigidbody myRigidbody, PixelCollider myPixelCollider, SpeculativeRigidbody otherRigidbody, PixelCollider otherPixelCollider) { if (AmountOfPiercesBeforeFalloff != 0f) { AmountOfPiercesBeforeFalloff -= 1f; FieldInfo field = typeof(Projectile).GetField("m_hasPierced", BindingFlags.Instance | BindingFlags.NonPublic); field.SetValue(((BraveBehaviour)myRigidbody).projectile, false); if (OnPierce != null) { OnPierce(m_projectile, otherRigidbody); } if (Object.op_Implicit((Object)(object)myRigidbody)) { ((MonoBehaviour)myRigidbody).StartCoroutine(FrameDelay()); } } } public IEnumerator FrameDelay() { yield return null; if (!((Object)(object)m_projectile == (Object)null)) { ProjectileData baseData = ((BraveBehaviour)m_projectile).projectile.baseData; baseData.damage *= damageMultOnPierce; } } } public class ParasiticAbominationIntro : SpecificIntroDoer { public ParasiticAbomination.AbominationBehaviour abominationBehaviour; public override void EndIntro() { //IL_007a: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)abominationBehaviour)) { foreach (AbominationPart bodyPart in abominationBehaviour.BodyParts) { bodyPart.bodyPart.Render = true; bodyPart.aIAnimator.Play(bodyPart.DefaultIdleAnimation, (StateEndType)0, -1f, -1f, false, ""); SpriteOutlineManager.AddOutlineToSprite(((BraveBehaviour)bodyPart.bodyPart).sprite, new Color(0.4f, 0f, 0f), 0.1f, 0f, (OutlineType)0); } } ((BraveBehaviour)((BraveBehaviour)this).aiActor).aiAnimator.Play("idle", (StateEndType)0, -1f, -1f, false, ""); ((SpecificIntroDoer)this).EndIntro(); } public override void PlayerWalkedIn(PlayerController player, List<tk2dSpriteAnimator> animators) { ((BraveBehaviour)this).aiActor.HasBeenEngaged = true; if (Object.op_Implicit((Object)(object)abominationBehaviour)) { foreach (AbominationPart bodyPart in abominationBehaviour.BodyParts) { bodyPart.bodyPart.Render = false; ((BraveBehaviour)((BraveBehaviour)bodyPart.bodyPart).sprite).renderer.enabled = false; ((BraveBehaviour)bodyPart.bodyPart).sprite.Awake(); SpriteOutlineManager.RemoveOutlineFromSprite(((BraveBehaviour)bodyPart.bodyPart).sprite, false); } } ((SpecificIntroDoer)this).PlayerWalkedIn(player, animators); } } public class ParasiticAbomination : AIActor { public class SpawnChandeliers : Script { public override IEnumerator Top() { List<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition> p = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>().potentialFleshballs; AkSoundEngine.PostEvent("Play_ParasiteGroan", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(105); IEnumerable<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition> t = p.Where((RoomObjects_ParasiticAbomination.PotentialFleshBallPosition self) => !self.Occupied); if (t.Count() <= 0) { yield break; } List<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition> list = t.ToList(); BraveUtility.Shuffle<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition>(list); if (((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>().DeadParts == 2) { for (int j = 0; j < Mathf.Min(6, list.Count()); j++) { AkSoundEngine.PostEvent("Play_ENM_blobulord_bubble_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); GameObject o2 = Object.Instantiate<GameObject>(RoomObjects_ParasiticAbomination.Chandelier, ((Component)list[j]).transform.position, Quaternion.identity); o2.GetComponent<RoomObjects_ParasiticAbomination.FleshBombController>().Pos = list[j]; list[j].Occupied = true; ((MonoBehaviour)GameManager.Instance).StartCoroutine(Delay(o2.GetComponent<RoomObjects_ParasiticAbomination.FleshBombController>())); PickupObject byId = PickupObjectDatabase.GetById(207); GameObject g2 = Object.Instantiate<GameObject>(((Gun)((byId is Gun) ? byId : null)).muzzleFlashEffects.effects[0].effects[0].effect, Vector2.op_Implicit(((Bullet)this).Position), Quaternion.Euler(0f, 0f, Vector2Extensions.ToAngle(Vector2.up))); Object.Destroy((Object)(object)g2, 3f); for (int h = -3; h < 4; h++) { ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction((12f + (float)(10 + j)) * (float)h, (DirectionType)0, -1f), new Speed(1f, (SpeedType)0), (Bullet)(object)new LeftEye_1.Teeth(25f, 90 + 45 * j)); ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction((12f + (float)(10 + j)) * (float)h, (DirectionType)0, -1f), new Speed(2f, (SpeedType)0), (Bullet)(object)new LeftEye_1.Teeth(25f, 90 + 45 * j)); ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction((12f + (float)(10 + j)) * (float)h, (DirectionType)0, -1f), new Speed(3f, (SpeedType)0), (Bullet)(object)new LeftEye_1.Teeth(25f, 90 + 45 * j)); } yield return ((Bullet)this).Wait(25); } } else { for (int i = 0; i < Mathf.Min(2 + ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>().DeadParts * 2, list.Count()); i++) { AkSoundEngine.PostEvent("Play_ENM_blobulord_bubble_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); GameObject o = Object.Instantiate<GameObject>(RoomObjects_ParasiticAbomination.Chandelier, ((Component)list[i]).transform.position, Quaternion.identity); o.GetComponent<RoomObjects_ParasiticAbomination.FleshBombController>().Pos = list[i]; list[i].Occupied = true; ((MonoBehaviour)GameManager.Instance).StartCoroutine(Delay(o.GetComponent<RoomObjects_ParasiticAbomination.FleshBombController>())); PickupObject byId2 = PickupObjectDatabase.GetById(207); GameObject g = Object.Instantiate<GameObject>(((Gun)((byId2 is Gun) ? byId2 : null)).muzzleFlashEffects.effects[0].effects[0].effect, Vector2.op_Implicit(((Bullet)this).Position), Quaternion.Euler(0f, 0f, Vector2Extensions.ToAngle(Vector2.up))); Object.Destroy((Object)(object)g, 3f); yield return ((Bullet)this).Wait(30); } } } public IEnumerator Delay(RoomObjects_ParasiticAbomination.FleshBombController fuck) { float a = Random.Range(4.1f, 40f); float e = 0f; while (e < a) { e += BraveTime.DeltaTime; yield return null; } if ((Object)(object)fuck != (Object)null) { fuck.Call(((Component)fuck).gameObject, "FleshFall"); } } } public class DumpsterDive : Script { public virtual bool IsHard => false; public override IEnumerator Top() { if (IsHard) { DeadlyDeadlyGoopManager goopManagerForGoopType2 = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(GoopUtility.PoisonDef); goopManagerForGoopType2.TimedAddGoopCircle(((Bullet)this).Position, 12f, 2.4f, false); Exploder.DoDistortionWave(((Bullet)this).Position, 0.1f, 0.1f, 30f, 3f); for (int e2 = 0; e2 < 3; e2++) { for (int j = 0; j < 60; j++) { ((Bullet)this).Fire(new Direction((float)(6 * j + 3 * e2), (DirectionType)1, -1f), new Speed(7f + 1.25f * (float)e2, (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", 6f, 120, -1, false)); } yield return ((Bullet)this).Wait(3); } yield break; } Exploder.DoDistortionWave(((Bullet)this).Position, 0.1f, 0.1f, 30f, 3f); DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(GoopUtility.PoisonDef); goopManagerForGoopType.TimedAddGoopCircle(((Bullet)this).Position, 10f, 1f, false); for (int e = 0; e < 2; e++) { for (int i = 0; i < 90; i++) { ((Bullet)this).Fire(new Direction((float)(4 * i + 2 * e), (DirectionType)1, -1f), new Speed(10f, (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", (float)(6 + e), 120, -1, false)); } yield return ((Bullet)this).Wait(5); } } } public class DumpsterDiveHard : DumpsterDive { public override bool IsHard => true; } public class CenterEye_1 : Script { public class HelixBullet : Bullet { private float Power; private float NegativePower; private bool reverse; private int Delay; private string bullettype; public HelixBullet(bool reverse, int delay, string BulletType, float Power, float NegativePower) : base(BulletType, false, false, false) { this.reverse = reverse; Delay = delay; bullettype = BulletType; ((Bullet)this).SuppressVfx = true; this.Power = Power; this.NegativePower = NegativePower; } public override IEnumerator Top() { ((Bullet)this).ManualControl = true; yield return ((Bullet)this).Wait(Delay); Vector2 truePosition = ((Bullet)this).Position; float startVal = 1f; for (int i = 0; i < 360; i++) { float offsetMagnitude = Mathf.SmoothStep(NegativePower, Power, Mathf.PingPong(startVal + (float)i / 90f * 3f, 1f)); truePosition += BraveMathCollege.DegreesToVector(base.Direction, base.Speed / 90f); ((Bullet)this).Position = truePosition + (reverse ? BraveMathCollege.DegreesToVector(base.Direction + 90f, offsetMagnitude) : BraveMathCollege.DegreesToVector(base.Direction - 90f, offsetMagnitude)); yield return ((Bullet)this).Wait(1); } ((Bullet)this).Vanish(false); } } public override IEnumerator Top() { AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); AkSoundEngine.PostEvent("Play_ParasiteScream", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(75); AkSoundEngine.PostEvent("Play_BOSS_doormimic_vomit_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(30); if (behavior.DeadParts == 2) { for (int e4 = 0; e4 < 9; e4++) { ((Bullet)this).Fire(new Direction(0f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(-96f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(96f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(-64f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(64f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(-32f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); ((Bullet)this).Fire(new Direction(32f, (DirectionType)0, -1f), new Speed(15f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 15 + e4 * 15, -1, false)); } for (int e3 = 0; e3 < 6; e3++) { for (int j = 0; j < 24; j++) { ((Bullet)this).Fire(new Direction(15f * (float)j + 7.5f * (float)e3, (DirectionType)0, -1f), new Speed((float)behavior.DeadParts, (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", 15f, 60 + 60 * e3, -1, false)); } } } else { for (int e2 = 0; e2 < 4 + behavior.DeadParts * 2; e2++) { ((Bullet)this).Fire(new Direction(0f, (DirectionType)0, -1f), new Speed(20f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 90 - e2 * 15, -1, false)); ((Bullet)this).Fire(new Direction((float)(-(90 + behavior.DeadParts * 2)), (DirectionType)0, -1f), new Speed(20f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 90 - e2 * 15, -1, false)); ((Bullet)this).Fire(new Direction((float)(90 + behavior.DeadParts * 2), (DirectionType)0, -1f), new Speed(20f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 90 - e2 * 15, -1, false)); ((Bullet)this).Fire(new Direction((float)(-(90 + behavior.DeadParts * 2) / 2), (DirectionType)0, -1f), new Speed(20f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 90 - e2 * 15, -1, false)); ((Bullet)this).Fire(new Direction((float)((90 + behavior.DeadParts * 2) / 2), (DirectionType)0, -1f), new Speed(20f, (SpeedType)0), (Bullet)new SpeedChangingBullet("big", 8f, 90 - e2 * 15, -1, false)); } for (int e = 0; e < behavior.DeadParts + 1; e++) { ((Bullet)this).Fire(new Direction(0f, (DirectionType)0, -1f), new Speed((float)(5 - behavior.DeadParts * 2), (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", 15f, 240 - 60 * e, -1, false)); for (int i = 1; i < 9; i++) { ((Bullet)this).Fire(new Direction(10f * (float)i, (DirectionType)0, -1f), new Speed((float)(5 - behavior.DeadParts * 2), (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", 15f, 240 - 60 * e, -1, false)); ((Bullet)this).Fire(new Direction(0f - 10f * (float)i, (DirectionType)0, -1f), new Speed((float)(5 - behavior.DeadParts * 2), (SpeedType)0), (Bullet)new SpeedChangingBullet("gross", 15f, 240 - 60 * e, -1, false)); } } } yield return ((Bullet)this).Wait(75); } } public class CenterEye_2 : Script { public class SnakeBullet : Bullet { public Vector2 position; private bool Hoames = false; private int A; private int m_delay; public SnakeBullet(string t, int delay, bool Homes, Vector2 vector, int D = 0) : base(t, false, false, false) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) m_delay = delay; Hoames = Homes; A = D; position = vector; } public override IEnumerator Top() { ((Bullet)this).ManualControl = true; yield return ((Bullet)this).Wait(m_delay); Vector2 truePosition = ((Bullet)this).Position; for (int i = 0; i < 720; i++) { float offsetMagnitude = Mathf.SmoothStep(-0.75f, 0.75f, Mathf.PingPong(0.5f + (float)i / 60f * 3f, 1f)); if (i > 60 + A && i < 100 + A && Hoames) { float num = Vector2Extensions.ToAngle(position - truePosition); float value = BraveMathCollege.ClampAngle180(num - base.Direction); base.Direction += Mathf.Clamp(value, -6f, 6f); } truePosition += BraveMathCollege.DegreesToVector(base.Direction, base.Speed / 60f); ((Bullet)this).Position = truePosition + BraveMathCollege.DegreesToVector(base.Direction - 90f, offsetMagnitude); yield return ((Bullet)this).Wait(1); } ((Bullet)this).Vanish(false); } } public override IEnumerator Top() { AkSoundEngine.PostEvent("Play_ParasiteTell", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); yield return ((Bullet)this).Wait(60); AkSoundEngine.PostEvent("Play_ENM_creecher_charge_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(45); AkSoundEngine.PostEvent("Play_ENM_creecher_burst_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); if (behavior.DeadParts == 2) { for (int g = 0; g < 5 + behavior.DeadParts; g++) { Vector2 c4 = ((Bullet)this).GetPredictedTargetPosition(0.7f, 6f); float v4 = Vector2Extensions.ToAngle(Vector2.down) + (float)Random.Range(-90, 90); float t2 = Random.Range(16, 24); for (int u4 = 0; (float)u4 < t2; u4++) { ((Bullet)this).Fire(new Direction(v4, (DirectionType)1, -1f), new Speed(9f, (SpeedType)0), (Bullet)(object)new SnakeBullet((u4 == 0) ? "spore1" : "spore2", u4 * 3, Homes: false, c4)); } } yield return ((Bullet)this).Wait(30); for (int g2 = 0; g2 < 8; g2++) { yield return ((Bullet)this).Wait(10); float v2 = Vector2Extensions.ToAngle(Vector2.down) + (float)Random.Range(-75, 75); int f2 = Random.Range(20, 120); Vector2 c3 = ((Bullet)this).GetPredictedTargetPosition(0.7f, 6f); for (int u3 = 0; u3 < 5; u3++) { ((Bullet)this).Fire(new Direction(v2, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), (Bullet)(object)new SnakeBullet("gross", u3 * 4, Homes: true, c3, f2)); } } yield break; } for (int g4 = 0; g4 < 5 + behavior.DeadParts; g4++) { Vector2 c = ((Bullet)this).GetPredictedTargetPosition(0.7f, 6f); float v = Vector2Extensions.ToAngle(Vector2.down) + (float)Random.Range(-75, 75); float t1 = Random.Range(12, 20); for (int u = 0; (float)u < t1; u++) { ((Bullet)this).Fire(new Direction(v, (DirectionType)1, -1f), new Speed(9f, (SpeedType)0), (Bullet)(object)new SnakeBullet((u == 0) ? "spore1" : "spore2", u * 3, Homes: false, c)); } } yield return ((Bullet)this).Wait(30); float p = 25 + behavior.DeadParts; for (int g3 = 0; g3 < 3 + behavior.DeadParts; g3++) { yield return ((Bullet)this).Wait(p); float v3 = Vector2Extensions.ToAngle(Vector2.down) + (float)Random.Range(-75, 75); int f = Random.Range(20, 120); Vector2 c2 = ((Bullet)this).GetPredictedTargetPosition(0.7f, 6f); for (int u2 = 0; u2 < 6; u2++) { ((Bullet)this).Fire(new Direction(v3, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), (Bullet)(object)new SnakeBullet("gross", u2 * 4, Homes: true, c2, f)); } } } } public class LeftEye_1 : Script { private class ArmBullet : Bullet { public const int BulletDelay = 60; private const float WiggleMagnitude = 0.4f; public const int WiggleTime = 30; private const int NumBulletsToPreShake = 5; private LeftEye_1 m_parentScript; private HandBullet m_handBullet; private int m_index; public ArmBullet(LeftEye_1 parentScript, HandBullet handBullet, int index) : base("gross", false, false, false) { m_parentScript = parentScript; m_handBullet = handBullet; m_index = index; } public override IEnumerator Top() { ((Bullet)this).ManualControl = true; while (!((Bullet)m_parentScript).IsEnded && !((Bullet)m_handBullet).IsEnded && !m_handBullet.HasStopped && Object.op_Implicit((Object)(object)((Bullet)this).BulletBank)) { ((Bullet)this).Position = Vector2.Lerp(((Bullet)m_parentScript).Position, ((Bullet)m_handBullet).Position, (float)m_index / 50f); yield return ((Bullet)this).Wait(1); } if (((Bullet)m_parentScript).IsEnded) { ((Bullet)this).Vanish(false); yield break; } int delay = 20 - m_index - 5; if (delay > 0) { yield return ((Bullet)this).Wait(delay); } int halfWiggleTime = 10; for (int i = 0; i < 30; i++) { Vector2 truePosition = Vector2.Lerp(((Bullet)m_parentScript).Position, ((Bullet)m_handBullet).Position, (float)m_index / 50f); if (i == 0 && delay < 0) { i = -delay; } float magnitude4 = 0.4f; magnitude4 = Mathf.Min(magnitude4, Mathf.Lerp(0.2f, 0.4f, (float)m_index / 8f)); magnitude4 = Mathf.Min(magnitude4, Mathf.Lerp(0.2f, 0.4f, (float)(20 - m_index - 1) / 3f)); magnitude4 = Mathf.Lerp(magnitude4, 0f, (float)i / (float)halfWiggleTime - 2f); float currentOffset = Mathf.SmoothStep(0f - magnitude4, magnitude4, Mathf.PingPong(0.5f + (float)i / (float)halfWiggleTime, 1f)); ((Bullet)this).Position = truePosition + BraveMathCollege.DegreesToVector(base.Direction - 90f, currentOffset); yield return ((Bullet)this).Wait(1); } while (!m_handBullet.HasTrulyStopped) { ((Bullet)this).Position = Vector2.Lerp(((Bullet)m_parentScript).Position, ((Bullet)m_handBullet).Position, (float)m_index / 50f); yield return ((Bullet)this).Wait(1); } ((Bullet)this).Vanish(false); } } private class HandBullet : Bullet { public bool HasTrulyStopped = false; private bool FUCK = false; private LeftEye_1 m_parentScript; public bool HasStopped { get; set; } public HandBullet(LeftEye_1 parentScript) : base("gross", false, false, false) { m_parentScript = parentScript; } public override IEnumerator Top() { ((Bullet)this).ChangeSpeed(new Speed(100f, (SpeedType)0), 120); base.Projectile.BulletScriptSettings.surviveRigidbodyCollisions = true; base.Projectile.BulletScriptSettings.surviveTileCollisions = true; SpeculativeRigidbody specRigidbody = ((BraveBehaviour)base.Projectile).specRigidbody; specRigidbody.OnCollision = (Action<CollisionData>)Delegate.Combine(specRigidbody.OnCollision, new Action<CollisionData>(OnCollision)); while (!((Bullet)m_parentScript).IsEnded && !HasStopped) { yield return ((Bullet)this).Wait(1); } if (((Bullet)m_parentScript).IsEnded) { ((Bullet)this).Vanish(false); yield break; } yield return ((Bullet)this).Wait(200); ((Bullet)this).Vanish(false); } private void OnCollision(CollisionData collision) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: 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_00ad: 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_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) bool flag = (int)collision.collisionType == 1; SpeculativeRigidbody otherRigidbody = collision.OtherRigidbody; if (Object.op_Implicit((Object)(object)otherRigidbody) && (Object)(object)((Component)otherRigidbody).GetComponent<PlayerController>() != (Object)null) { ((Bullet)this).Position = collision.MyRigidbody.UnitCenter + PhysicsEngine.PixelToUnit(collision.NewPixelsToMove); base.Speed = 0f; HasStopped = true; base.Projectile.BulletScriptSettings.surviveRigidbodyCollisions = true; ((Bullet)this).StartTask(DoPull(PlayerCollision: true)); } else if (flag) { HasStopped = true; ((Bullet)this).Position = collision.MyRigidbody.UnitCenter + PhysicsEngine.PixelToUnit(collision.NewPixelsToMove); base.Speed = 0f; HasStopped = true; PhysicsEngine.PostSliceVelocity = new Vector2(0f, 0f); SpeculativeRigidbody specRigidbody = ((BraveBehaviour)base.Projectile).specRigidbody; specRigidbody.OnCollision = (Action<CollisionData>)Delegate.Remove(specRigidbody.OnCollision, new Action<CollisionData>(OnCollision)); ((Bullet)this).StartTask(DoPull()); } else { HasStopped = true; base.Speed = 0f; PhysicsEngine.PostSliceVelocity = new Vector2(0f, 0f); PhysicsEngine.PostSliceVelocity = collision.MyRigidbody.Velocity; ((Bullet)this).StartTask(DoPull()); } } public IEnumerator DoPull(bool PlayerCollision = false) { if (FUCK) { yield break; } FUCK = true; AkSoundEngine.PostEvent("Play_BOSS_lichA_stop_01", ((Component)((Bullet)this).BulletBank).gameObject); AkSoundEngine.PostEvent("Play_BOSS_doormimic_lick_02", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); if (!PlayerCollision) { yield return ((Bullet)this).Wait(45); for (int k = 0; k < 32; k++) { ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction(((Bullet)this).RandomAngle(), (DirectionType)0, -1f), new Speed(7f, (SpeedType)0), (Bullet)(object)new Teeth(Random.Range(7, 11), Random.Range(60, 180))); } } AkSoundEngine.PostEvent("Play_ITM_Crisis_Stone_Impact_02", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); Vector2 Self = ((Bullet)this).Position; for (int j = 0; j < 45; j++) { ((Bullet)this).Position = Vector2.Lerp(Self, ((Bullet)m_parentScript).Position, (float)j / 45f); yield return ((Bullet)this).Wait(1); } AkSoundEngine.PostEvent("Play_BOSS_dragun_blade_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); for (int i = 0; i < 16; i++) { ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction(22.5f * (float)i, (DirectionType)0, -1f), new Speed(1f, (SpeedType)0), (Bullet)(object)new Teeth(20f, 90)); ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction(22.5f * (float)i, (DirectionType)0, -1f), new Speed(2f, (SpeedType)0), (Bullet)(object)new Teeth(20f, 90)); ((Bullet)this).Fire(Offset.OverridePosition(((Bullet)this).Position), new Direction(22.5f * (float)i, (DirectionType)0, -1f), new Speed(3f, (SpeedType)0), (Bullet)(object)new Teeth(20f, 90)); } HasTrulyStopped = true; ((Bullet)this).Vanish(false); } } public class Teeth : Bullet { private float S; private int T; public Teeth(float newSpeed, int t) : base("teeth_wave", false, false, false) { S = newSpeed; T = t; } public override IEnumerator Top() { ((Bullet)this).ChangeSpeed(new Speed(S, (SpeedType)0), T); base.Projectile.IgnoreTileCollisionsFor(90f); yield return ((Bullet)this).Wait(90 + T); } } public override IEnumerator Top() { AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); AkSoundEngine.PostEvent("Play_ParasiteScream", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(105); List<HandBullet> handBullets = new List<HandBullet>(); if (behavior.DeadParts == 2) { for (int j = -2; j < 3; j++) { HandBullet handBullet2 = FireVolleySpecial(28f, 37.5f * (float)j); handBullets.Add(handBullet2); yield return ((Bullet)this).Wait(12); } } else { for (int i = 0; i < behavior.DeadParts + 1; i++) { HandBullet handBullet = FireVolley(28f, 20 * i); handBullets.Add(handBullet); yield return ((Bullet)this).Wait(30); } } bool allEnded = false; while (!allEnded) { allEnded = true; foreach (HandBullet entry in handBullets) { if (!entry.HasTrulyStopped) { allEnded = false; } } yield return ((Bullet)this).Wait(1); } } private HandBullet FireVolleySpecial(float speed, float Special) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0048: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown AkSoundEngine.PostEvent("Play_BOSS_Rat_Tail_Whip_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); HandBullet handBullet = new HandBullet(this); ((Bullet)this).Fire(new Direction(((Bullet)this).AimDirection + Special, (DirectionType)1, -1f), new Speed(5f, (SpeedType)0), (Bullet)(object)handBullet); for (int i = 0; i < 50; i++) { ((Bullet)this).Fire(new Direction(((Bullet)this).AimDirection, (DirectionType)1, -1f), (Bullet)(object)new ArmBullet(this, handBullet, i)); } return handBullet; } private HandBullet FireVolley(float speed, float RNG) { //IL_0039: 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_004f: Expected O, but got Unknown //IL_004f: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown AkSoundEngine.PostEvent("Play_BOSS_Rat_Tail_Whip_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); HandBullet handBullet = new HandBullet(this); ((Bullet)this).Fire(new Direction(((Bullet)this).AimDirection + Random.Range(0f - RNG, RNG), (DirectionType)1, -1f), new Speed(5f, (SpeedType)0), (Bullet)(object)handBullet); for (int i = 0; i < 50; i++) { ((Bullet)this).Fire(new Direction(((Bullet)this).AimDirection, (DirectionType)1, -1f), (Bullet)(object)new ArmBullet(this, handBullet, i)); } return handBullet; } } public class LeftEye_2 : Script { public class RotatingBullet : Bullet { public float del; private float pred; private const float ExpandSpeed = 4.5f; private const float SpinSpeed = 40f; private LeftEye_2 m_parent; private float m_angle; private float m_spinSpeed; private float m_radius; private string m_bulletype; public RotatingBullet(float spinspeed, string BulletType, LeftEye_2 parent, float angle = 0f, float aradius = 0f, float predRadius = 10f, float delay = 0f) : base(BulletType, false, false, false) { m_parent = parent; m_angle = angle; m_radius = aradius; m_bulletype = BulletType; ((Bullet)this).SuppressVfx = true; m_spinSpeed = spinspeed; pred = predRadius; del = delay; } public override IEnumerator Top() { ((Bullet)this).ManualControl = true; Vector2 centerPosition = ((Bullet)this).Position; float radius = 0f; for (int i = 0; i < 900; i++) { if ((float)i == 150f + del) { ((Bullet)this).ChangeSpeed(new Speed(base.Speed + 9f, (SpeedType)0), 240); ((Bullet)this).ChangeDirection(new Direction(((Bullet)m_parent).GetAimDirection(1f, pred), (DirectionType)1, -1f), 20); ((Bullet)this).StartTask(ChangeSpinSpeedTask(60f, 240)); } ((Bullet)this).UpdateVelocity(); centerPosition += base.Velocity / 60f; if ((float)i < 120f + del) { radius = Mathf.Lerp(0f, m_radius, Toolbox.SinLerpTValue((float)i / 120f + del)); } m_angle += m_spinSpeed / 60f; ((Bullet)this).Position = centerPosition + BraveMathCollege.DegreesToVector(m_angle, radius); yield return ((Bullet)this).Wait(1); } ((Bullet)this).Vanish(false); } private IEnumerator ChangeSpinSpeedTask(float newSpinSpeed, int term) { float delta = (newSpinSpeed - m_spinSpeed) / (float)term; for (int i = 0; i < term; i++) { m_spinSpeed += delta; yield return ((Bullet)this).Wait(1); } } } public override IEnumerator Top() { AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); AkSoundEngine.PostEvent("Play_ParasiteTell", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); AkSoundEngine.PostEvent("Play_CHR_muncher_chew_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(60); float startDirection = ((Bullet)this).AimDirection; if (behavior.DeadParts == 2) { for (int g3 = 0; g3 < 2; g3++) { for (int j = 0; j < 30 / (g3 + 1); j++) { ((Bullet)this).Fire(new Direction((float)(12 * (g3 + 1) * j), (DirectionType)1, -1f), new Speed(0f, (SpeedType)0), (Bullet)(object)new RotatingBullet(30f, "teeth_football", this, startDirection + (float)(12 * (g3 + 1)) * (float)j, 12f - 9f * (float)g3)); } } for (int g2 = 0; g2 < 2; g2++) { for (int k = 0; k < 30 / (g2 + 1); k++) { ((Bullet)this).Fire(new Direction((float)(12 * (g2 + 1) * k), (DirectionType)1, -1f), new Speed(0f, (SpeedType)0), (Bullet)(object)new RotatingBullet(30f, "teeth_football", this, startDirection + (float)(12 * (g2 + 1)) * (float)k, 10f - 8f * (float)g2, 10f, 75f)); } } } else { for (int g = 0; g < 1 + behavior.DeadParts; g++) { for (int i = 0; i < 60 / (g + 1); i++) { ((Bullet)this).Fire(new Direction((float)(6 * (g + 1) * i), (DirectionType)1, -1f), new Speed(0f, (SpeedType)0), (Bullet)(object)new RotatingBullet(30f, "teeth_football", this, startDirection + (float)(6 * (g + 1)) * (float)i, 11f - 7f * (float)g)); } } } yield return ((Bullet)this).Wait(150); AkSoundEngine.PostEvent("Play_ENM_blobulord_leap_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); } } public class RightEye_1 : Script { public class SnakeBullet : Bullet { private string name; public Vector2 Pos; private int delay; public SnakeBullet(string t, int delay, Vector2 vector2) : base(t, false, false, false) { //IL_0014: 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) this.delay = delay; Pos = vector2; name = t; } public override IEnumerator Top() { ((Bullet)this).ManualControl = true; yield return ((Bullet)this).Wait(delay); Vector2 truePosition = ((Bullet)this).Position; for (int q = 0; q < 5; q++) { for (int i = 0; i < 150; i++) { float offsetMagnitude = Mathf.SmoothStep(-0.5f, 0.5f, Mathf.PingPong(0.5f + (float)i / 60f * 3f, 1f)); if (i > 75 && i < 125) { float num = Vector2Extensions.ToAngle(Pos - truePosition); float value = BraveMathCollege.ClampAngle180(num - base.Direction); base.Direction += Mathf.Clamp(value, -7f, 7f); } truePosition += BraveMathCollege.DegreesToVector(base.Direction, base.Speed / 90f); ((Bullet)this).Position = truePosition + BraveMathCollege.DegreesToVector(base.Direction - 120f, offsetMagnitude); yield return ((Bullet)this).Wait(1); } if (name == "donut") { AkSoundEngine.PostEvent("Play_ENM_critter_poof_01", ((Component)base.Projectile).gameObject); ((Bullet)this).Fire(Offset.OverridePosition(Vector2.op_Implicit(((BraveBehaviour)base.Projectile).transform.position)), new Direction(0f, (DirectionType)0, -1f), new Speed(0f, (SpeedType)0), (Bullet)new SpeedChangingBullet("spore2", 13f, 120, -1, false)); ((Bullet)this).Fire(Offset.OverridePosition(Vector2.op_Implicit(((BraveBehaviour)base.Projectile).transform.position)), new Direction(0f, (DirectionType)0, -1f), new Speed(0f, (SpeedType)0), (Bullet)new SpeedChangingBullet("spore2", 15f, 120, -1, false)); } } ((Bullet)this).Vanish(false); } } public override IEnumerator Top() { AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); AkSoundEngine.PostEvent("Play_ParasiteScream", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(75); AkSoundEngine.PostEvent("Play_BOSS_spacebaby_charge_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); if (behavior.DeadParts == 2) { float v = Vector2Extensions.ToAngle(Vector2.right) + (float)Random.Range(-60, 60); for (int g2 = 0; g2 < 5; g2++) { Vector2 vvv2 = ((Bullet)this).GetPredictedTargetPosition(1f, (float)(5 + g2 * 5)); AkSoundEngine.PostEvent("Play_BOSS_spacebaby_vomit_01", ((Component)((Bullet)this).BulletBank).gameObject); for (int u2 = 0; u2 < 42; u2++) { ((Bullet)this).Fire(new Direction(v, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), (Bullet)(object)new SnakeBullet((u2 == 0) ? "donut" : "gross", u2 * 3 + 3, vvv2)); } yield return ((Bullet)this).Wait(15); } yield break; } float v2 = Vector2Extensions.ToAngle(Vector2.right) + (float)Random.Range(-75, 75); for (int g = 0; g < 2 + behavior.DeadParts; g++) { Vector2 vvv = ((Bullet)this).GetPredictedTargetPosition(Random.Range(0.1f, 1f), (float)Random.Range(3, 30)); AkSoundEngine.PostEvent("Play_BOSS_spacebaby_vomit_01", ((Component)((Bullet)this).BulletBank).gameObject); for (int u = 0; u < 16 + behavior.DeadParts * 8; u++) { ((Bullet)this).Fire(new Direction(v2, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), (Bullet)(object)new SnakeBullet((u == 0) ? "donut" : "gross", u * 3 + 3, vvv)); } yield return ((Bullet)this).Wait(37 + behavior.DeadParts); } } } public class RightEye_2 : Script { public class WaveBullet : Bullet { public WaveBullet() : base("gross", false, false, false) { } public override IEnumerator Top() { yield return ((Bullet)this).Wait(20); for (int i = 0; i < 10; i++) { ((Bullet)this).ChangeSpeed(new Speed(-3f, (SpeedType)0), 50); yield return ((Bullet)this).Wait(80); ((Bullet)this).ChangeSpeed(new Speed(10f, (SpeedType)0), 50); yield return ((Bullet)this).Wait(80); } ((Bullet)this).Vanish(false); } } public override IEnumerator Top() { AbominationBehaviour behavior = ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).GetComponent<AbominationBehaviour>(); AkSoundEngine.PostEvent("Play_ParasiteTell", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); yield return ((Bullet)this).Wait(75); AkSoundEngine.PostEvent("Play_BOSS_spacebaby_charge_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); if (behavior.DeadParts == 2) { AkSoundEngine.PostEvent("Play_BOSS_doormimic_vomit_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); for (int g4 = 0; g4 < 5; g4++) { float v2 = Vector2Extensions.ToAngle(Vector2.right) + (float)Random.Range(-75, 75); ((Bullet)this).Fire(new Direction(v2, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), new Bullet("homing", false, false, false)); } for (int g3 = 0; g3 < 5; g3++) { AkSoundEngine.PostEvent("Play_ENM_blobulord_bubble_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); for (int r2 = 0; r2 < 8; r2++) { ((Bullet)this).Fire(new Direction((float)(45 * r2) + (float)g3 * 22.5f, (DirectionType)1, -1f), new Speed(4f + (float)(g3 * 2), (SpeedType)0), (Bullet)(object)new WaveBullet()); } yield return ((Bullet)this).Wait(15); } yield break; } AkSoundEngine.PostEvent("Play_BOSS_doormimic_vomit_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); for (int g2 = 0; g2 < 3 + behavior.DeadParts; g2++) { float v = Vector2Extensions.ToAngle(Vector2.right) + (float)Random.Range(-60, 60); ((Bullet)this).Fire(new Direction(v, (DirectionType)1, -1f), new Speed(6f, (SpeedType)0), new Bullet("homing", false, false, false)); } for (int g = 0; g < 2 + behavior.DeadParts; g++) { AkSoundEngine.PostEvent("Play_ENM_blobulord_bubble_01", ((Component)((BraveBehaviour)((Bullet)this).BulletBank).aiActor).gameObject); for (int r = 0; r < 24; r++) { ((Bullet)this).Fire(new Direction(15f * (float)r + (float)g * 7.5f, (DirectionType)1, -1f), new Speed(6f + (float)(g * 3), (SpeedType)0), (Bullet)(object)new WaveBullet()); } yield return ((Bullet)this).Wait(75 + behavior.DeadParts); } } } public class AbominationBehaviour : BraveBehaviour { public List<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition> potentialFleshballs = new List<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition>(); private RoomHandler m_StartRoom; public int DeadParts = 0; public bool PartDiedThisLoop = false; public bool CanAttack = false; public Action OnAnimationLoop; public List<AbominationPart> BodyParts = new List<AbominationPart>(); public void Update() { m_StartRoom = ((DungeonPlaceableBehaviour)((BraveBehaviour)this).aiActor).GetAbsoluteParentRoom(); } private void Start() { m_StartRoom = ((DungeonPlaceableBehaviour)((BraveBehaviour)this).aiActor).GetAbsoluteParentRoom(); ((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite.IsPerpendicular = false; ((BraveBehaviour)((BraveBehaviour)this).aiActor).healthHaver.OnPreDeath += delegate { //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_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) foreach (AbominationPart bodyPart in BodyParts) { bodyPart.bodyPart.Render = false; } GlobalMessageRadio.BroadcastMessage("RetractFleshSpikes"); GameObject val = Object.Instantiate<GameObject>(ExpandedModule.AssetBundle.LoadAsset<GameObject>("MeatFleshParticles"), Vector2.op_Implicit(((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite.WorldCenter), Quaternion.identity); GameObjectExtensions.SetLayerRecursively(val, LayerMask.NameToLayer("Unoccluded")); Transform transform = val.transform; transform.localScale *= 0.5f; Object.Destroy((Object)(object)val, 4f); }; ((BraveBehaviour)((BraveBehaviour)this).aiActor).healthHaver.OnDeath += delegate { //IL_0011: Unknown result type (might be due to invalid IL or missing references) ((MonoBehaviour)GameManager.Instance).StartCoroutine(DoKeyLaunch(((BraveBehaviour)((BraveBehaviour)this).aiActor).sprite.WorldBottomCenter)); }; tk2dSpriteAnimator spriteAnimator = ((BraveBehaviour)((BraveBehaviour)this).aiActor).spriteAnimator; spriteAnimator.AnimationEventTriggered = (Action<tk2dSpriteAnimator, tk2dSpriteAnimationClip, int>)Delegate.Combine(spriteAnimator.AnimationEventTriggered, new Action<tk2dSpriteAnimator, tk2dSpriteAnimationClip, int>(EventTriggered)); potentialFleshballs = ((DungeonPlaceableBehaviour)((BraveBehaviour)this).aiActor).GetAbsoluteParentRoom().GetComponentsInRoom<RoomObjects_ParasiticAbomination.PotentialFleshBallPosition>(); } public static IEnumerator DoKeyLaunch(Vector2 vector2) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) GameObject effect = Object.Instantiate<GameObject>(RoomObjects_ParasiticAbomination.GoeyBlast.effect, Vector2.op_Implicit(vector2), Quaternion.identity); Object.Destroy((Object)(object)effect); GameObject item = ((Component)PickupObjectDatabase.GetById(ExpandKeyBulletPickup.OldKeyID)).gameObject; if (GameStatsManager.HasInstance && GameStatsManager.Instance.GetFlag((GungeonFlags)190000)) { PickupObject component = item.GetComponent<PickupObject>(); if (Object.op_Implicit((Object)(object)component) && component.PickupObjectId == GlobalItemIds.UnfinishedGun) { item = ((Component)PickupObjectDatabase.GetById(GlobalItemIds.FinishedGun)).gameObject; } } GameObject gameObject = Object.Instantiate<GameObject>(item, Vector2.op_Implicit(vector2), Quaternion.identity); SpriteOutlineManager.AddOutlineToSprite((tk2dBaseSprite)(object)gameObject.GetComponent<tk2dSprite>(), Color.black, 0.1f, 0f, (OutlineType)0); AkSoundEngine.PostEvent("Play_BOSS_doormimic_vomit_01", gameObject.gameObject); PickupObject byId = PickupObjectDatabase.GetById(207); GameObject g = Object.Instantiate<GameObject>(((Gun)((byId is Gun) ? byId : null)).muzzleFlashEffects.effects[0].effects[0].effect, Vector2.op_Implicit(vector2), Quaternion.Euler(0f, 0f, Vector2Extensions.ToAngle(Vector2.up))); Transform transform = g.transform; transform.localScale *= 1.3f; Object.Destroy((Object)(object)g, 3f); SpeculativeRigidbody body = gameObject.GetComponent<SpeculativeRigidbody>(); RoomHandler room = Vector3Extensions.GetAbsoluteRoom(vector2); IntVector2 intVector = IntVector2.Zero; intVector = room.GetBestRewardLocation(new IntVector2(1, 1), (RewardLocationStyle)1, false); Vector3 direction = ((IntVector2)(ref intVector)).ToCenterVector3(0f) - Vector2Extensions.ToVector3XUp(vector2, 0f); float e1 = 0f; float duration = 1.5f; while (e1 < duration) { e1 += BraveTime.DeltaTime; Vector3 position2 = Vector2.op_Implicit(Vector2.Lerp(vector2, Vector2.op_Implicit(((IntVector2)(ref intVector)).ToCenterVector3(0f) + new Vector3(0f, -6f)), e1 / duration)); position2 += new Vector3(0f, 10f * Toolbox.SinLerpTValueFull(e1 / duration)); gameObject.transform.position = position2; gameObject.transform.Rotate(new Vector3(0f, 0f, 1f), gameObject.transform.localRotation.z + 420f * BraveTime.DeltaTime); body.Reinitialize(); yield return null; } LootEngine.SpawnInternal(gameObject, gameObject.transform.position, Vector2.op_Implicit(direction), 0f, true, false, false, false); AkSoundEngine.PostEvent("Play_BOSS_blobulord_burst_01", gameObject.gameObject); DeadlyDeadlyGoopManager goopManagerForGoopType = DeadlyDeadlyGoopManager.GetGoopManagerForGoopType(GoopUtility.PoisonDef); goopManagerForGoopType.TimedAddGoopCircle(Vector2.op_Implicit(gameObject.transform.position), 2f, 0.5f, false); Exploder.DoDistortionWave(TransformExtensions.PositionVector2(gameObject.transform), 0.15f, 0.05f, 30f, 1f); GameObject effect2 = Object.Instantiate<GameObject>(RoomObjects_ParasiticAbomination.GoeyBlast.effect, gameObject.transform.position, Quaternion.identity); Object.Destroy((Object)(object)effect2); gameObject.transform.rotation = Quaternion.Euler(0f, 0f, 0f); gameObject.GetComponent<PickupObject>().RespawnsIfPitfall = true; } public void EventTriggered(tk2dSpriteAnimator animator, tk2dSpriteAnimationClip clip, int frame) { if (clip.GetFrame(frame).eventInfo == "CheckAnimationData") { CanAttack = true; if (OnAnimationLoop != null) { OnAnimationLoop(); } } if (clip.GetFrame(frame).eventInfo == "RESET") { CanAttack = false; PartDiedThisLoop = false; } } } public static GameObject prefab; public static readonly string guid = "ParasiticAbomination_exb"; public static void BuildPrefab() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Expected O, but got Unknown //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_032c: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0381: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Expected O, but got Unknown //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Expected O, but got Unknown //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Expected O, but got Unknown //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_077f: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Expected O, but got Unknown //IL_07c4: Unknown result type (might be due to invalid IL or missing references) //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_087a: Unknown result type (might be due to invalid IL or missing references) //IL_0881: Expected O, but got Unknown //IL_0884: Unknown result type (might be due to invalid IL or missing references) //IL_098e: Unknown result type (might be due to invalid IL or missing references) //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09ba: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09d1: Unknown result type (might be due to invalid IL or missing references) //IL_09d9: Unknown result type (might be due to invalid IL or missing references) //IL_09e1: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Expected O, but got Unknown //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0c98: Unknown result type (might be due to invalid IL or missing references) //IL_0c9f: Expected O, but got Unknown //IL_0cdd: Unknown result type (might be due to invalid IL or missing references) //IL_0ce2: Unknown result type (might be due to invalid IL or missing references) //IL_0d93: Unknown result type (might be due to invalid IL or missing references) //IL_0d9a: Expected O, but got Unknown //IL_0d9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0eae: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eb5: Unknown result type (might be due to invalid IL or missing references) //IL_0eba: Unknown result type (might be due to invalid IL or missing references) //IL_0ec1: Unknown result type (might be due to invalid IL or missing references) //IL_0ec8: Unknown result type (might be due to invalid IL or missing references) //IL_0ed3: Unknown result type (might be due to invalid IL or missing references) //IL_0eda: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0eea: Unknown result type (might be due to invalid IL or missing references) //IL_0ef2: Unknown result type (might be due to invalid IL or missing references) //IL_0efa: Unknown result type (might be due to invalid IL or missing references) //IL_0f01: Unknown result type (might be due to invalid IL or missing references) //IL_0f08: Unknown result type (might be due to invalid IL or missing references) //IL_0f0f: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f22: Expected O, but got Unknown //IL_0f95: Unknown result type (might be due to invalid IL or missing references) //IL_11c6: Unknown result type (might be due to invalid IL or missing references) //IL_11cd: Expected O, but got Unknown //IL_120b: Unknown result type (might be due to invalid IL or missing references) //IL_1210: Unknown result type (might be due to invalid IL or missing references) //IL_12c1: Unknown result type (might be due to invalid IL or missing references) //IL_12c8: Expected O, but got Unknown //IL_12cb: Unknown result type (might be due to invalid IL or missing references) //IL_13d5: Unknown result type (might be due to invalid IL or missing references) //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13dc: Unknown result type (might be due to invalid IL or missing references) //IL_13e1: Unknown result type (might be due to invalid IL or missing references) //IL_13e3: Unknown result type (might be due to invalid IL or missing references) //IL_13e8: Unknown result type (might be due to invalid IL or missing references) //IL_13ef: Unknown result type (might be due to invalid IL or missing references) //IL_13f6: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1408: Unknown result type (might be due to invalid IL or missing references) //IL_1410: Unknown result type (might be due to invalid IL or missing references) //IL_1418: Unknown result type (might be due to invalid IL or missing references) //IL_1420: Unknown result type (might be due to invalid IL or missing references) //IL_1428: Unknown result type (might be due to invalid IL or missing references) //IL_142f: Unknown result type (might be due to invalid IL or missing references) //IL_1436: Unknown result type (might be due to invalid IL or missing references) //IL_143d: Unknown result type (might be due to invalid IL or missing references) //IL_1444: Unknown result type (might be due to invalid IL or missing references) //IL_1450: Expected O, but got Unknown //IL_14c3: Unknown result type (might be due to invalid IL or missing references) //IL_167c: Unknown result type (might be due to invalid IL or missing references) //IL_1681: Unknown result type (might be due to invalid IL or missing references) //IL_168c: Unknown result type (might be due to invalid IL or missing references) //IL_1693: Unknown result type (might be due to invalid IL or missing references) //IL_169a: Unknown result type (might be due to invalid IL or missing references) //IL_16a5: Unknown result type (might be due to invalid IL or missing references) //IL_16ac: Unknown result type (might be due to invalid IL or missing references) //IL_16bc: Expected O, but got Unknown //IL_16de: Unknown result type (might be due to invalid IL or missing references) //IL_16e5: Expected O, but got Unknown //IL_1736: Unknown result type (might be due to invalid IL or missing references) //IL_1740: Expected O, but got Unknown //IL_174c: Unknown result type (might be due to invalid IL or missing references) //IL_1756: Expected O, but got Unknown //IL_178d: Unknown result type (might be due to invalid IL or missing references) //IL_1794: Expected O, but got Unknown //IL_17c1: Unknown result type (might be due to invalid IL or missing references) //IL_17cb: Expected O, but got Unknown //IL_1811: Unknown result type (might be due to invalid IL or missing references) //IL_1818: Expected O, but got Unknown //IL_1845: Unknown result type (might be due to invalid IL or missing references) //IL_184f: Expected O, but got Unknown //IL_189e: Unknown result type (might be due to invalid IL or missing references) //IL_18a5: Expected O, but got Unknown //IL_18d2: Unknown result type (might be due to invalid IL or missing references) //IL_18dc: Expected O, but got Unknown //IL_192b: Unknown result type (might be due to invalid IL or missing references) //IL_1932: Expected O, but got Unknown //IL_195f: Unknown result type (might be due to invalid IL or missing references) //IL_1969: Expected O, but got Unknown //IL_19b8: Unknown result type (might be due to invalid IL or missing references) //IL_19bf: Expected O, but got Unknown //IL_19ec: Unknown result type (might be due to invalid IL or missing references) //IL_19f6: Expected O, but got Unknown //IL_1a45: Unknown result type (might be due to invalid IL or missing references) //IL_1a4c: Expected O, but got Unknown //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1a83: Expected O, but got Unknown //IL_1ad2: Unknown result type (might be due to invalid IL or missing references) //IL_1ad9: Expected O, but got Unknown //IL_1b06: Unknown result type (might be due to invalid IL or missing references) //IL_1b10: Expected O, but got Unknown //IL_1c5b: Unknown result type (might be due to invalid IL or missing references) //IL_1c62: Expected O, but got Unknown //IL_1ca9: Unknown result type (might be due to invalid IL or missing references) //IL_1cae: Unknown result type (might be due to invalid IL or missing references) //IL_1d3f: Unknown result type (might be due to invalid IL or missing references) //IL_1d49: Expected O, but got Unknown //IL_2049: Unknown result type (might be due to invalid IL or missing references) //IL_20cd: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20fd: Unknown result type (might be due to invalid IL or missing references) //IL_2102: Unknown result type (might be due to invalid IL or missing references) //IL_210d: Unknown result type (might be due to invalid IL or missing references) //IL_2118: Unknown result type (might be due to invalid IL or missing references) //IL_2123: Unknown result type (might be due to invalid IL or missing references) //IL_2124: Unknown result type (might be due to invalid IL or missing references) //IL_2129: Unknown result type (might be due to invalid IL or missing references) //IL_212e: Unknown result type (might be due to invalid IL or missing references) //IL_212f: Unknown result type (might be due to invalid IL or missing references) //IL_2134: Unknown result type (might be due to invalid IL or missing references) //IL_2139: Unknown result type (might be due to invalid IL or missing references) //IL_213a: Unknown result type (might be due to invalid IL or missing references) //IL_213f: Unknown result type (might be due to invalid IL or missing references) //IL_2144: Unknown result type (might be due to invalid IL or missing references) //IL_2145: Unknown result type (might be due to invalid IL or missing references) //IL_214a: Unknown result type (might be due to invalid IL or missing references) //IL_2154: Expected O, but got Unknown //IL_21b2: Unknown result type (might be due to invalid IL or missing references) //IL_2195: Unknown result type (might be due to invalid IL or missing references) //IL_2202: Unknown result type (might be due to invalid IL or missing references) //IL_2219: Unknown result type (might be due to invalid IL or missing references) //IL_2230: Unknown result type (might be due to invalid IL or missing references) //IL_2247: Unknown result type (might be due to invalid IL or missing references) //IL_225e: Unknown result type (might be due to invalid IL or missing references) //IL_2275: Unknown result type (might be due to invalid IL or missing references) //IL_228c: Unknown result type (might be due to invalid IL or missing references) //IL_22a3: Unknown result type (might be due to invalid IL or missing references) //IL_22ba: Unknown result type (might be due to invalid IL or missing references) //IL_22d2: Unknown result type (might be due to invalid IL or missing references) //IL_22ea: Unknown result type (might be due to invalid IL or missing references) //IL_2302: Unknown result type (might be due to invalid IL or missing references) //IL_231a: Unknown result type (might be due to invalid IL or missing references) //IL_2332: Unknown result type (might be due to invalid IL or missing references) //IL_234a: Unknown result type (might be due to invalid IL or missing references) //IL_2379: Unknown result type (might be due to invalid IL or missing references) //IL_2390: Unknown result type (might be due to invalid IL or missing references) //IL_23a7: Unknown result type (might be due to invalid IL or missing references) //IL_23be: Unknown result type (might be due to invalid IL or missing references) //IL_23d5: Unknown result type (might be due to invalid IL or missing references) //IL_23ec: Unknown result type (might be due to invalid IL or missing references) //IL_2403: Unknown result type (might be due to invalid IL or missing references) //IL_241a: Unknown result type (might be due to invalid IL or missing references) //IL_2431: Unknown result type (might be due to invalid IL or missing references) //IL_2449: Unknown result type (might be due to invalid IL or missing references) //IL_2461: Unknown result type (might be due to invalid IL or missing references) //IL_2479: Unknown result type (might be due to invalid IL or missing references) //IL_2491: Unknown result type (might be due to invalid IL or missing references) //IL_24a9: Unknown result type (might be due to invalid IL or missing references) //IL_24c1: Unknown result type (might be due to invalid IL or missing references) //IL_24f0: Unknown result type (might be due to invalid IL or missing references) //IL_2507: Unknown result type (might be due to invalid IL or missing references) //IL_251e: Unknown result type (might be due to invalid IL or missing references) //IL_2535: Unknown result type (might be due to invalid IL or missing references) //IL_254c: Unknown result type (might be due to invalid IL or missing references) //IL_2563: Unknown result type (might be due to invalid IL or missing references) //IL_257a: Unknown result type (might be due to invalid IL or missing references) //IL_2591: Unknown result type (might be due to invalid IL or missing references) //IL_25a8: Unknown result type (might be due to invalid IL or missing references) //IL_25c0: Unknown result type (might be due to invalid IL or missing references) //IL_25d8: Unknown result type (might be due to invalid IL or missing references) //IL_25f0: Unknown result type (might be due to invalid IL or missing references) //IL_2608: Unknown result type (might be due to invalid IL or missing references) //IL_2620: Unknown result type (might be due to invalid IL or missing references) //IL_2638: Unknown result type (might be due to invalid IL or missing references) //IL_2667: Unknown result type (might be due to invalid IL or missing references) //IL_267e: Unknown result type (might be due to invalid IL or missing references) //IL_2695: Unknown result type (might be due to invalid IL or missing references) //IL_26ac: Unknown result type (might be due to invalid IL or missing references) //IL_26c3: Unknown result type (might be due to invalid IL or missing references) //IL_26da: Unknown result type (might be due to invalid IL or missing references) //IL_26f1: Unknown result type (might be due to invalid IL or missing references) //IL_2708: Unknown result type (might be due to invalid IL or missing references) //IL_271f: Unknown result type (might be due to invalid IL or missing references) //IL_2737: Unknown result type (might be due to invalid IL or missing references) //IL_274f: Unknown result type (might be due to invalid IL or missing references) //IL_2767: Unknown result type (might be due to invalid IL or missing references) //IL_277f: Unknown result type (might be due to invalid IL or missing references) //IL_2797: Unknown result type (might be due to invalid IL or missing references) //IL_27af: Unknown result type (might be due to invalid IL or missing references) //IL_27de: Unknown result type (might be due to invalid IL or missing references) //IL_27f5: Unknown result type (might be due to invalid IL or missing references) //IL_280c: Unknown result type (might be due to invalid IL or missing references) //IL_2823: Unknown result type (might be due to invalid IL or missing references) //IL_283a: Unknown result type (might be due to invalid IL or missing references) //IL_2851: Unknown result type (might be due to invalid IL or missing references) //IL_2868: Unknown result type (might be due to invalid IL or missing references) //IL_287f: Unknown result type (might be due to invalid IL or missing references) //IL_2896: Unknown result type (might be due to invalid IL or missing references) //IL_28ae: Unknown result type (might be due to invalid IL or missing references) //IL_28c6: Unknown result type (might be due to invalid IL or missing references) //IL_28de: Unknown result type (might be due to invalid IL or missing references) //IL_28f6: Unknown result type (might be due to invalid IL or missing references) //IL_290e: Unknown result type (might be due to invalid IL or missing references) //IL_2926: Unknown result type (might be due to invalid IL or missing references) //IL_2955: Unknown result type (might be due to invalid IL or missing references) //IL_296c: Unknown result type (might be due to invalid IL or missing references) //IL_2983: Unknown result type (might be due to invalid IL or missing references) //IL_299a: Unknown result type (might be due to invalid IL or missing references) //IL_29b1: Unknown result type (might be due to invalid IL or missing references) //IL_29c8: Unknown result type (might be due to invalid IL or missing references) //IL_29df: Unknown result type (might be due to invalid IL or missing references) //IL_29f6: Unknown result type (might be due to invalid IL or missing references) //IL_2a0d: Unknown result type (might be due to invalid IL or missing references) //IL_2a25: Unknown result type (might be due to invalid IL or missing references) //IL_2a3d: Unknown result type (might be due to invalid IL or missing references) //IL_2a55: Unknown result type (might be due to invalid IL or missing references) //IL_2a6d: Unknown result type (might be due to invalid IL or missing references) //IL_2a85: Unknown result type (might be due to invalid IL or missing references) //IL_2a9d: Unknown result type (might be due to invalid IL or missing references) //IL_2acc: Unknown result type (might be due to invalid IL or missing references) //IL_2ae3: Unknown result type (might be due to invalid IL or missing references) //IL_2afa: Unknown result type (might be due to invalid IL or missing references) //IL_2b11: Unknown result type (might be due to invalid IL or missing references) //IL_2b28: Unknown result type (might be due to invalid IL or missing references) //IL_2b3f: Unknown result type (might be due to invalid IL or missing references) //IL_2b56: Unknown result type (might be due to invalid IL or missing references) //IL_2b6d: Unknown result type (might be due to invalid IL or missing references) //IL_2b84: Unknown result type (might be due to invalid IL or missing references) //IL_2b9c: Unknown result type (might be due to invalid IL or missing references) //IL_2bb4: Unknown result type (might be due to invalid IL or missing references) //IL_2bcc: Unknown result type (might be due to invalid IL or missing references) //IL_2be4: Unknown result type (might be due to invalid IL or missing references) //IL_2bfc: Unknown result type (might be due to invalid IL or missing references) //IL_2c14: Unknown result type (might be due to invalid IL or missing references) tk2dSpriteCollectionData abominationBossCollection = StaticCollections.AbominationBossCollection; if ((Object)(object)prefab == (Object)null || !EnemyBuilder.Dictionary.ContainsKey(guid)) { prefab = EnemyBuilder.BuildPrefabBundle("ParasiticAbomination_exb", guid, abominationBossCollection, 49, new IntVector2(0, 0), new IntVector2(8, 9), HasAiShooter: false, UsesAttackGroup: true); AbominationBehaviour abominationBehaviour = prefab.AddComponent<AbominationBehaviour>(); ((BraveBehaviour)abominationBehaviour).sprite.collection = abominationBossCollection; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).spriteAnimator.Library = StaticCollections.AbominationBossAnimation; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).spriteAnimator.library = StaticCollections.AbominationBossAnimation; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiAnimator).spriteAnimator = ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).spriteAnimator; ((BraveBehaviour)abominationBehaviour).sprite.IsPerpendicular = false; ((BraveBehaviour)abominationBehaviour).sprite.IsPerpendicular = true; ((BraveBehaviour)abominationBehaviour).sprite.HeightOffGround = -0.5f; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).knockbackDoer.weight = 100000f; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).knockbackDoer.knockbackMultiplier = 0f; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).knockbackDoer.SetImmobile(true, "Tetehr"); ((BraveBehaviour)abominationBehaviour).aiActor.MovementSpeed = 0f; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).healthHaver.PreventAllDamage = true; ((BraveBehaviour)abominationBehaviour).aiActor.CollisionDamage = 1f; ((BraveBehaviour)abominationBehaviour).aiActor.IgnoreForRoomClear = false; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).aiAnimator.HitReactChance = 0f; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).specRigidbody.CollideWithOthers = true; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).specRigidbody.CollideWithTileMap = true; ((Behaviour)((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).aiAnimator).enabled = true; ((BraveBehaviour)abominationBehaviour).aiActor.PreventFallingInPitsEver = true; ((BraveBehaviour)abominationBehaviour).aiActor.procedurallyOutlined = true; ObjectVisibilityManager component = ((Component)abominationBehaviour).gameObject.GetComponent<ObjectVisibilityManager>(); Object.Destroy((Object)(object)component); AIActor aiActor = ((BraveBehaviour)abominationBehaviour).aiActor; ((GameActor)aiActor).EffectResistances = (ActorEffectResistance[])(object)new ActorEffectResistance[1] { new ActorEffectResistance { resistAmount = 1f, resistType = (EffectResistanceType)2 } }; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).healthHaver.ForceSetCurrentHealth(6000f); ((BraveBehaviour)abominationBehaviour).aiActor.CollisionKnockbackStrength = 0f; ((BraveBehaviour)abominationBehaviour).aiActor.CanTargetPlayers = true; ((BraveBehaviour)abominationBehaviour).aiActor.reinforceType = (ReinforceType)0; ((BraveBehaviour)abominationBehaviour).aiActor.PathableTiles = (CellTypes)6; ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).healthHaver.SetHealthMaximum(6000f, (float?)null, false); ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).specRigidbody.PixelColliders.Clear(); ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)3, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 44, ManualOffsetY = 80, ManualWidth = 30, ManualHeight = 11, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0 }); ((BraveBehaviour)((BraveBehaviour)abominationBehaviour).aiActor).specRigidbody.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Empty, BagelColliderNumber = 0, ManualOffsetX = 44, ManualOffsetY = 80, ManualWidth = 30, ManualHeight = 11, ManualDiameter = 0, ManualLeftX = 0, ManualLeftY = 0, ManualRightX = 0, ManualRightY = 0, Enabled = true }); ((BraveBehaviour)abominationBehaviour).aiActor.PreventBlackPhantom = false; AIAnimator aiAnimator = ((BraveBehaviour)abominationBehaviour).aiAnimator; DirectionalAnimation val = new DirectionalAnimation(); val.Type = (DirectionType)1; val.Prefix = "idle"; val.AnimNames = new string[1] { "idle" }; val.Flipped = (FlipType[])(object)new FlipType[1]; aiAnimator.IdleAnimation = val; val = new DirectionalAnimation(); val.Type = (DirectionType)1; val.Flipped = (FlipType[])(object)new FlipType[1]; val.AnimNames = new string[1] { "idle" }; aiAnimator.MoveAnimation = val; Tk2dSpriteAnimatorUtility.AddEventTriggersToAnimation(((BraveBehaviour)abominationBehaviour).spriteAnimator, "idle", new Dictionary<int, string> { { 0, "CheckAnimationData" } }); Tk2dSpriteAnimatorUtility.AddEventTriggersToAnimation(((BraveBehaviour)abominationBehaviour).spriteAnimator, "idle", new Dictionary<int, string> { { 1, "RESET" } }); EnemyBuildingTools.AddNewDirectionAnimation(((BraveBehaviour)abominationBehaviour).aiAnimator, "attackMainBody", new string[1] { "attackMainBody" }, (FlipType[])(object)new FlipType[1], (DirectionType)1); EnemyBuildingTools.AddNewDirectionAnimation(((BraveBehaviour)abominationBehaviour).aiAnimator, "death", new string[1] { "death" }, (FlipType[])(object)new FlipType[1], (DirectionType)1); EnemyBuildingTools.AddNewDirectionAnimation(((BraveBehaviour)abominationBehaviour).aiAnimator, "attackdud", new string[1] { "attackdud" }, (FlipType[])(object)new FlipType[1], (DirectionType)1); Tk2dSpriteAnimatorUtility.AddSoundsToAnimationFrame(((BraveBehaviour)abominationBehaviour).spriteAnimator, "emerge_body", new Dictionary<int, string> { { 2, "Play_ENM_beholster_melt_01" } }); Tk2dSpriteAnimatorUtility.AddSoundsToAnimationFrame(((BraveBehaviour)abominationBehaviour).spriteAnimator, "submerge_body", new Dictionary<int, string> { { 0, "Play_ENM_blobulord_death_01" } }); GameObject val2 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldCenter, "Dive"); GameObject shootPoint = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(3.625f, 7f), "Dive2"); GameObject shootPoint2 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(3.625f, 2.8125f), "CenterEyePoint"); GameObject shootPoint3 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(1.9375f, 3.625f), "LeftEyePoint"); GameObject shootPoint4 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(6.1875f, 3.625f), "RightEyePoint"); GameObject trans = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(3.625f, 3.5f), "Particle_CenterEyePoint"); GameObject trans2 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(2.4375f, 3.625f), "Particle_LeftEyePoint"); GameObject trans3 = Toolbox.GenerateTransformPoint(((Component)abominationBehaviour).gameObject, ((BraveBehaviour)abominationBehaviour).sprite.WorldBottomLeft + new Vector2(5.75f, 3.625f), "Particle_RightEyePoint"); GameObject val3 = PrefabBuilder.BuildObject("CenterEye"); val3.transform.parent = ((Component)abominationBehaviour).gameObject.transform; tk2dSprite orAddComponent = GameObjectExtensions.GetOrAddComponent<tk2dSprite>(val3); val3.layer = LayerMask.NameToLayer("FG_Critical"); ((tk2dBaseSprite)orAddComponent).SortingOrder = 2; ((tk2dBaseSprite)orAddComponent).HeightOffGround = 0.05f; ((tk2dBaseSprite)orAddComponent).ShouldDoTilt = true; ((tk2dBaseSprite)orAddComponent).IsPerpendicular = false; ((tk2dBaseSprite)orAddComponent).collection = StaticCollections.AbominationBossCollection; GameObjectExtensions.GetOrAddComponent<tk2dBaseSprite>(val3); tk2dSpriteAnimator orAddComponent2 = GameObjectExtensions.GetOrAddComponent<tk2dSpriteAnimator>(val3); ((BraveBehaviour)orAddComponent2).sprite = (tk2dBaseSprite)(object)orAddComponent; orAddComponent2.alwaysUpdateOffscreen = true; orAddComponent2.AnimateDuringBossIntros = true; AIAnimator val4 = val3.AddComponent<AIAnimator>(); ((BraveBehaviour)orAddComponent).sprite.usesOverrideMaterial = true; Material val5 = new Material(((BraveBehaviour)((BraveBehaviour)EnemyDatabase.GetOrLoadByGuid(EnemyGUIDs.Gun_Nut_GUID)).sprite).renderer.material); val5.mainTexture = ((BraveBehaviour)orAddComponent).renderer.material.mainTexture; val5.EnableKeyword("BRIGHTNESS_CLAMP_ON"); val5.DisableKeyword("BRIGHTNESS_CLAMP_OFF"); val5.SetColor("_EmissiveColor", Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, (byte)0))); val5.SetFloat("_EmissiveColorPower", 0f); val5.SetFloat("_EmissivePower", 0f); val5.SetFloat("_EmissiveThresholdSensitivity", 0f); ((BraveBehaviour)((BraveBehaviour)orAddComponent).sprite).renderer.material = val5; tk2dBaseSprite orAddComponent3 = GameObjectExtensions.GetOrAddComponent<tk2dBaseSprite>(val3); orAddComponent3.SortingOrder = 2; orAddComponent3.HeightOffGround = 0.05f; orAddComponent3.ShouldDoTilt = true; orAddComponent3.IsPerpendicular = false; ((BraveBehaviour)orAddComponent3).sprite.usesOverrideMaterial = true; ((BraveBehaviour)orAddComponent3).renderer.material = val5; orAddComponent3.collection = StaticCollections.AbominationBossCollection; val = new DirectionalAnimation(); val.Type = (DirectionType)2; val.Flipped = (FlipType[])(object)new FlipType[2]; val.AnimNames = new string[2] { "centereyealive_idle", "centereyealive_idle" }; val4.IdleAnimation = val; EnemyBuildingTools.AddNewDirectionAnimation(val4, "centereyedead_idle", new string[1] { "centereyedead_idle" }, (FlipType[])(object)new FlipType[1], (DirectionType)1); EnemyBuildingTools.AddNewDirectionAnimation(val4, "centerEye_attack", new string[1] { "centerEye_attack" }, (FlipType[])(object)new FlipType[1], (DirectionType)1); val3.AddComponent<MeshFilter>(); val3.AddComponent<MeshRenderer>(); orAddComponent2.Library = StaticCollections.AbominationBossAnimation; orAddComponent2.DefaultClipId = orAddComponent2.GetClipIdByName("centereyealive_idle"); orAddComponent2.playAutomatically = true; AdvancedBodyPartController advancedBodyPartController = val3.AddComponent<AdvancedBodyPartController>(); advancedBodyPartController.Name = "Eye_Center"; advancedBodyPartController.Render = true; ((BraveBehaviour)advancedBodyPartController).renderer.enabled = true; SpeculativeRigidbody val6 = val3.AddComponent<SpeculativeRigidbody>(); val6.CollideWithOthers = true; val6.CollideWithTileMap = false; val6.PixelColliders = new List<PixelCollider>(); val6.PixelColliders.Add(new PixelCollider { ColliderGenerationMode = (PixelColliderGeneration)0, CollisionLayer = (CollisionLayer)2, IsTrigger = false, BagleUseFirstFrameOnly = false, SpecifyBagelFrame = string.Em