Beispiel #1
0
    public static void AnimateGoldenStars(int count, Vector3 fromViewportSpace, Vector3 toViewportSpace, int countPerSprite = 1, Action <int> onLeaveTick = null, Action <int> onArriveTick = null)
    {
        AudioMap.PlayClipAt(AudioMap.instance["starCollect"], Vector3.zero, AudioMap.instance.uiMixerGroup);
        AnimatedCurrencySettings animatedCurrencySettings = default(AnimatedCurrencySettings);

        animatedCurrencySettings.onLeave           = onLeaveTick;
        animatedCurrencySettings.onArrive          = onArriveTick;
        animatedCurrencySettings.count             = count;
        animatedCurrencySettings.countPerSprite    = countPerSprite;
        animatedCurrencySettings.audioName         = "starCollected";
        animatedCurrencySettings.icon              = instance.goldenStarSprite;
        animatedCurrencySettings.fromViewportSpace = fromViewportSpace;
        animatedCurrencySettings.toViewportSpace   = toViewportSpace;
        AnimatedCurrencySettings settings = animatedCurrencySettings;

        instance.AnimateCurrencies(settings);
    }
Beispiel #2
0
    public static void AnimateCoins(int count, Vector3 fromViewportSpace, Vector3 toViewportSpace, int countPerSprite = 1, Action <int> onLeaveTick = null, Action <int> onArriveTick = null, bool departureSound = true)
    {
        if (departureSound)
        {
            AudioMap.PlayClipAt("coinDeparture", Vector3.zero, AudioMap.instance.uiMixerGroup);
        }
        AnimatedCurrencySettings animatedCurrencySettings = default(AnimatedCurrencySettings);

        animatedCurrencySettings.onLeave           = onLeaveTick;
        animatedCurrencySettings.onArrive          = onArriveTick;
        animatedCurrencySettings.count             = count;
        animatedCurrencySettings.countPerSprite    = countPerSprite;
        animatedCurrencySettings.audioName         = "coinroll";
        animatedCurrencySettings.icon              = instance.coinSprite;
        animatedCurrencySettings.fromViewportSpace = fromViewportSpace;
        animatedCurrencySettings.toViewportSpace   = toViewportSpace;
        AnimatedCurrencySettings settings = animatedCurrencySettings;

        instance.AnimateCurrencies(settings);
    }
Beispiel #3
0
    private void AnimateCurrencies(AnimatedCurrencySettings settings)
    {
        if (animatedCurrencies.Count == 0)
        {
            return;
        }
        Vector3 vector  = MenuController.UICamera.ViewportToWorldPoint(settings.fromViewportSpace);
        Vector3 vector2 = MenuController.UICamera.ViewportToWorldPoint(settings.toViewportSpace);

        vector.z  = base.transform.position.z;
        vector2.z = base.transform.position.z;
        Vector3  vector3    = vector - vector2;
        Vector3  normalized = vector3.normalized;
        int      count      = settings.count;
        int      num        = count / settings.countPerSprite;
        int      num2       = 0;
        LTSpline spline;

        while (true)
        {
            if (num2 < num)
            {
                spline = new LTSpline(new Vector3[6]
                {
                    vector,
                    vector,
                    vector + (Vector3)UnityEngine.Random.insideUnitCircle * 2.5f + normalized * vector3.magnitude * 0.2f,
                    vector + (Vector3)UnityEngine.Random.insideUnitCircle * 2.5f + normalized * vector3.magnitude * 0.05f,
                    vector2,
                    vector2
                });
                if (animatedCurrencies.Count > 1)
                {
                    AnimatedCurrency animatedCurrency = animatedCurrencies[animatedCurrencies.Count - 1];
                    animatedCurrencies.RemoveAt(animatedCurrencies.Count - 1);
                    animatedCurrency.onArrive     = settings.onArrive;
                    animatedCurrency.onLeave      = settings.onLeave;
                    animatedCurrency.image.sprite = settings.icon;
                    animatedCurrency.image.SetNativeSize();
                    animatedCurrency.time      = (float)(-num2) * 0.01f;
                    animatedCurrency.value     = ((num2 == num - 1) ? (count - settings.countPerSprite * num2) : settings.countPerSprite);
                    animatedCurrency.spline    = spline;
                    animatedCurrency.audioName = settings.audioName;
                    animatedCurrenciesInFlight.Insert(0, animatedCurrency);
                }
                else if (animatedCurrencies.Count == 1)
                {
                    break;
                }
                num2++;
                continue;
            }
            return;
        }
        AnimatedCurrency animatedCurrency2 = animatedCurrencies[animatedCurrencies.Count - 1];

        animatedCurrencies.RemoveAt(animatedCurrencies.Count - 1);
        animatedCurrency2.onArrive     = settings.onArrive;
        animatedCurrency2.onLeave      = settings.onLeave;
        animatedCurrency2.image.sprite = settings.icon;
        animatedCurrency2.image.SetNativeSize();
        animatedCurrency2.time      = (float)(-num2) * 0.01f;
        animatedCurrency2.value     = count - settings.countPerSprite * num2;
        animatedCurrency2.spline    = spline;
        animatedCurrency2.audioName = settings.audioName;
        animatedCurrenciesInFlight.Insert(0, animatedCurrency2);
    }