Exemplo n.º 1
0
        IEnumerator Clean(BalloonsHooks hooks, float duration, BubbleSystemData data)
        {
            yield return(new WaitForSeconds(duration));

            if (hooks)
            {
                if (hooks.Content != null)
                {
                    hooks.Hide();

                    var   animationClips = hooks.GetComponent <Animator>().runtimeAnimatorController.animationClips;
                    float length         = balloonData.GetClipsDuration(hooks) * 2; //times 2, to give it a little more time
                    KeyValuePair <Emotion, float> emotionPair = BubbleSystemUtility.GetHighestEmotion(data.emotions);
                    float    sum = BubbleSystemUtility.GetEmotionsSum(data.emotions);
                    TextData textData;
                    if (balloonData.options)
                    {
                        textData = DefaultData.Instance.GetDefaultTextData(data.tutor.GetString(), emotionPair.Value);
                    }
                    else
                    {
                        textData = DefaultData.Instance.GetDefaultTextData(emotionPair.Key.GetString(), emotionPair.Value);
                    }
                    Dictionary <AbstractTextEffect.TextEffectEnum, AnimationCurve> hideEffects = data.balloonData.effects.hideEffects.Count != 0 ? data.balloonData.effects.hideEffects : textData.hideEffect;

                    foreach (AbstractTextEffect.TextEffectEnum effect in hideEffects.Keys)
                    {
                        SetTextEffects(hooks, hideEffects[effect], sum, length, false);
                        coroutines.Add(balloonData.SetEffects(effect, textEffectsData));
                    }
                }
            }
        }
        public void SetAnimators(BalloonsHooks hooks, Dictionary <Emotion, float> emotions)
        {
            Animator animator = hooks.GetComponent <Animator>();

            if (!(animator && animator.isActiveAndEnabled))
            {
                return;
            }
            float sum = 0;

            ResetAllFloats(animator);

            foreach (Emotion emotion in emotions.Keys)
            {
                if (emotion.Get().Equals(Emotion.EmotionEnum.Neutral))
                {
                    continue;
                }

                sum += emotions[emotion];
                animator.SetFloat(emotion.GetString(), emotions[emotion]);
            }
            animator.SetFloat(Emotion.EmotionEnum.Neutral.ToString(), 1.0f - sum);
            animator.SetFloat(DefaultData.Instance.Default, 1.0f);
        }
Exemplo n.º 3
0
 private void SetTextEffects(BalloonsHooks hooks, AnimationCurve curve, float intensity, float duration, bool show)
 {
     textEffectsData.Clear();
     textEffectsData.hooks     = hooks;
     textEffectsData.curve     = curve;
     textEffectsData.intensity = intensity;
     textEffectsData.duration  = duration;
     textEffectsData.show      = show;
 }
        public void SetAnimators(BalloonsHooks hooks, Emotion emotion)
        {
            Animator animator = hooks.GetComponent <Animator>();

            if (!(animator && animator.isActiveAndEnabled))
            {
                return;
            }
            ResetAllFloats(animator);
            animator.SetFloat(emotion.GetString(), 1.0f);
            animator.SetFloat(DefaultData.Instance.Default, 1.0f);
        }
        public void SetTexts(BalloonsHooks hooks, TextData textData, Color color, Emotion emotion)
        {
            if (!hooks.text)
            {
                return;
            }
            DefaultData.PositionData positionData = DefaultData.Instance.GetTextSizes(emotion.Get());
            RectTransform            rect         = hooks.text.GetComponent <RectTransform>();

            hooks.text.font  = textData.font;
            hooks.text.color = color;
            rect.anchorMin   = positionData.anchorMin;
            rect.anchorMax   = positionData.anchorMax;
        }
        public void SetSprites(Emotion emotion, BalloonsHooks hooks, SpriteData spriteData, float intensity, Color color, bool options)
        {
            if (!hooks || options)
            {
                return;
            }
            Image image = hooks.balloon.GetComponent <Image>();

            DefaultData.PositionData positionData = DefaultData.Instance.GetDefaultPositions(emotion.Get(), intensity, hooks.balloon.name);
            RectTransform            rect         = hooks.balloon.GetComponent <RectTransform>();

            image.sprite   = spriteData.sprite;
            image.color    = color;
            rect.anchorMin = positionData.anchorMin;
            rect.anchorMax = positionData.anchorMax;

            SetTails(emotion, hooks.tailTopLeft, spriteData.tail, intensity, color);
            SetTails(emotion, hooks.tailBotLeft, spriteData.tail, intensity, color);
            SetTails(emotion, hooks.tailTopRight, spriteData.tail, intensity, color);
            SetTails(emotion, hooks.tailBotRight, spriteData.tail, intensity, color);
        }
 // ANIMATIONS SHOULD BE NORMALIZED (LENGTH OF 1)
 public float GetClipsDuration(BalloonsHooks hooks)
 {
     return(1);
 }
 public void SetCallback(BalloonsHooks hooks, IntFunc callback, int index)
 {
     hooks.onClick = () => {
         callback(index);
     };
 }
 public void SetContent(BalloonsHooks hooks, string text)
 {
     hooks.Content = text;
 }