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(); }