Esempio n. 1
0
        private Ball CreateBall(BallId ballId, int side)
        {
            var instance = PrefabsHelper.Instantiate("Balls/" + ballId, Balls);
            var ball     = instance.GetComponent <Ball>();

            ball.Initialize(side);
            Destroy(instance, 5);

            return(ball);
        }
Esempio n. 2
0
        public void OnTriggerEnter2D(Collider2D c)
        {
            if (_hit != 0)
            {
                return;
            }

            var sign = Math.Sign(c.GetComponent <Rigidbody2D>().velocity.x);
            var ball = c.name.Split('/')[1].ToEnum <BallId>();

            if (Math.Sign(_evasion) == sign)
            {
                UI.UpdateScore(++Score);
                AudioPlayer.Instance.PlayEffect(AudioPlayer.Instance.Swing);
            }
            else
            {
                Hearts -= 1;

                if (ball == BallId.Rugby)
                {
                    Hearts -= 1;
                }

                UI.UpdateHearts(Hearts);
                c.gameObject.GetComponent <Ball>().Recoil(-sign);
                _hit = -sign;
                SetReflection(_hit);

                if (Hearts >= 0)
                {
                    TaskScheduler.Kill(Id);
                    Animator.Play(HitAnimation.name);
                    AudioPlayer.Instance.PlayEffect(AudioPlayer.Instance.Hit);
                    TaskScheduler.CreateTask(Stand, Id, HitAnimation.length);
                }
                else
                {
                    Item = ball;
                    TaskScheduler.Kill(Id);
                    Animator.Play(FallAnimation.name);
                    AudioPlayer.Instance.PlayEffect(AudioPlayer.Instance.Fall);
                    Beads.Fall();
                    TaskScheduler.CreateTask(() => Engine.Stop(Score), Id, 2);
                }
            }
        }