Example #1
0
        public static IEnumerator DoSteamEffect(IPortraitable portrait, Color color)
        {
            ExplosionView ev = ObjectPoolManager.Instance.Get(EffectsManager.Instance.SteamBurst);

            ev.Play();
            portrait.ParentToEffects(ev.gameObject);
            yield return(new WaitUntil(() => ev.IsDone));

            ObjectPoolManager.Instance.Return(ev);
        }
Example #2
0
        public static IEnumerator DoSteamEffect(IPortraitable portrait, Color color)
        {
            ExplosionView ev = ObjectPoolManager.Instance.Get(EffectsManager.Instance.SteamBurst);

            ev.Play();
            ev.Color = color;
            portrait.ParentToEffects(ev.gameObject);
            yield return(new WaitUntil(() => portrait.RectTransform != null));

            Main.Instance.StartCoroutine(Shake(portrait.RectTransform, 100, 0.5f));
            yield return(new WaitUntil(() => ev.IsDone));

            ObjectPoolManager.Instance.Return(ev);
        }
Example #3
0
        /// <summary>
        /// Death effect for a portrait.
        /// </summary>
        /// <param name="portrait">The portrait.</param>
        /// <param name="effectHolder">The effect holder.</param>
        /// <param name="fadeDuration">Duration of the fade.</param>
        /// <returns></returns>
        public static IEnumerator DoDeathEffect(IPortraitable portrait, float fadeDuration)
        {
            Rect    rect       = portrait.RectTransform.rect;
            Vector2 dimensions = new Vector2(rect.width, rect.height);

            ExplosionView ev = ObjectPoolManager.Instance.Get(EffectsManager.Instance.Explosion);

            ev.Dimensions = dimensions;
            portrait.ParentToEffects(ev.gameObject);
            ev.Play();
            yield return(DoHitSplat(portrait, "DEFEAT", Color.red, Util.GetSprite("skull-crossed-bones")));

            yield return(new WaitUntil(() => ev));

            ObjectPoolManager.Instance.Return(ev);
        }