protected override void DoEffect(PlayerController user) { AkSoundEngine.PostEvent("Play_BOSS_doormimic_vanish_01", base.gameObject); IPlayerInteractable nearestInteractable = user.CurrentRoom.GetNearestInteractable(user.CenterPosition, 1f, user); this.EatenBullet += 1; bool flag = nearestInteractable is PassiveItem; if (flag) { LootEngine.DoDefaultSynergyPoof((nearestInteractable as PassiveItem).sprite.WorldCenter, false); UnityEngine.Object.Destroy((nearestInteractable as PassiveItem).gameObject); } }
private IEnumerator HandleSpawnAnimation(PlayerController user, Vector3?overridePosition = null) { Vector3 SpawnFXPosition = (user.transform.position + new Vector3(0, 1.25f)); if (overridePosition.HasValue) { SpawnFXPosition = overridePosition.Value; } GameObject targetObject = Instantiate(hammerSpawnFX, SpawnFXPosition, Quaternion.identity); yield return(null); tk2dSpriteAnimator hammerAnimator = targetObject.GetComponent <tk2dSpriteAnimator>(); if (hammerAnimator != null) { if (!overridePosition.HasValue) { LootEngine.DoDefaultSynergyPoof(targetObject.transform.position + new Vector3(0.1f, 0.1f)); LootEngine.DoDefaultItemPoof(targetObject.transform.position + new Vector3(0.1f, 0.1f)); } hammerAnimator.Play("HammerSpawn"); while (hammerAnimator.Playing) { targetObject.transform.position += new Vector3(0, 0.02f); yield return(null); } Destroy(targetObject); } else { Destroy(targetObject); yield break; } }