Exemplo n.º 1
0
    public IEnumerator Spawn(int gemType, LevelData.Power power, bool hero, int hudIndex, float time)
    {
        _hudIndex   = hudIndex;
        _hero       = hero;
        _power      = power;
        PowerCharge = _power._turns;
        _spawned    = true;

        _gem.SetData(hudIndex);
        _gem.SetGemType(gemType);
        _gem.SetOnTop();
        _gem.EnableLabelR(_hero ? GameManager.Instance.Definitions.HeroLifeColor :
                          GameManager.Instance.Definitions.EnemyLifeColor);
        if (_power._type != LevelData.Power.Types.NONE)
        {
            _gem.EnableLabelL(Color.white);
        }

        _gem.ForceDepth(Gem.SortLayer4);

        Color color = new Color(1, 1, 1, 0);

        _gem.TweenColor(0, color, Tweener.Method.EaseIn);
        _gem.TweenScale(0, Vector3.one * 2.0f, Tweener.Method.EaseIn);
        _gem.TweenPosition(0, _hero ? GameManager.Instance.HUD.Heroes.GetPosition(_hudIndex) :
                           GameManager.Instance.HUD.Waves.GetEnemyPosition(_hudIndex), Tweener.Method.EaseInOut, false);

        color.a = 1;
        _gem.TweenColor(time / 5, color, Tweener.Method.EaseIn);
        _gem.TweenScale(time, Vector3.one, Tweener.Method.EaseIn);
        _gem.TweenPosition(time, Grid.CalculatePosition(_gem.GetGridPosition()), Tweener.Method.EaseInOut, false);

        yield return(new WaitForSeconds(time));

        _gem.TweenColor(0, color, Tweener.Method.EaseIn);
        _gem.TweenScale(0, Vector3.one, Tweener.Method.EaseIn);
        _gem.TweenPosition(0, Grid.CalculatePosition(_gem.GetGridPosition()), Tweener.Method.EaseInOut, false);
        _gem.UpdateDepth();
    }