private static IEnumerator HandleBlinkTeleport(PlayerController Owner, Vector2 targetPoint, Vector2 targetDirection) { //targetPoint = (targetPoint - new Vector2(0.30f, 0.125f)); //Owner.PlayEffectOnActor(BloodiedScarfPoofVFX, Vector3.zero, false, true, false); AkSoundEngine.PostEvent("Play_ENM_wizardred_vanish_01", Owner.gameObject); List <AIActor> m_rollDamagedEnemies = Stuff.ReflectGetField <List <AIActor> >(typeof(PlayerController), "m_rollDamagedEnemies", Owner); if (m_rollDamagedEnemies != null) { m_rollDamagedEnemies.Clear(); FieldInfo m_rollDamagedEnemiesClear = typeof(PlayerController).GetField("m_rollDamagedEnemies", BindingFlags.Instance | BindingFlags.NonPublic); m_rollDamagedEnemiesClear.SetValue(Owner, m_rollDamagedEnemies); } if (Owner.knockbackDoer) { Owner.knockbackDoer.ClearContinuousKnockbacks(); } Owner.IsEthereal = true; Owner.IsVisible = false; float RecoverySpeed = GameManager.Instance.MainCameraController.OverrideRecoverySpeed; bool IsLerping = GameManager.Instance.MainCameraController.IsLerping; yield return(new WaitForSeconds(0.1f)); GameManager.Instance.MainCameraController.OverrideRecoverySpeed = 80f; GameManager.Instance.MainCameraController.IsLerping = true; if (Owner.IsPrimaryPlayer) { GameManager.Instance.MainCameraController.UseOverridePlayerOnePosition = true; GameManager.Instance.MainCameraController.OverridePlayerOnePosition = targetPoint; yield return(new WaitForSeconds(0.12f)); Owner.specRigidbody.Velocity = Vector2.zero; Owner.specRigidbody.Position = new Position(targetPoint); GameManager.Instance.MainCameraController.UseOverridePlayerOnePosition = false; } else { GameManager.Instance.MainCameraController.UseOverridePlayerTwoPosition = true; GameManager.Instance.MainCameraController.OverridePlayerTwoPosition = targetPoint; yield return(new WaitForSeconds(0.12f)); Owner.specRigidbody.Velocity = Vector2.zero; Owner.specRigidbody.Position = new Position(targetPoint); GameManager.Instance.MainCameraController.UseOverridePlayerTwoPosition = false; } GameManager.Instance.MainCameraController.OverrideRecoverySpeed = RecoverySpeed; GameManager.Instance.MainCameraController.IsLerping = IsLerping; Owner.IsEthereal = false; Owner.IsVisible = true; //Owner.PlayEffectOnActor(BloodiedScarfPoofVFX, Vector3.zero, false, true, false); //m_CurrentlyBlinking = false; if (Owner.CurrentFireMeterValue <= 0f) { yield break; } Owner.CurrentFireMeterValue = Mathf.Max(0f, Owner.CurrentFireMeterValue -= 0.5f); if (Owner.CurrentFireMeterValue == 0f) { Owner.IsOnFire = false; yield break; } // yield return null; //CorrectForWalls(Owner); yield break; }