Esempio n. 1
0
        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;
            }
        }