Exemple #1
0
 private void Awake()
 {
     _brain     = GetComponent <RatBrain>();
     _playerID  = GetComponent <RatPlayer>().PlayerID;
     _ratPlayer = GetComponent <RatPlayer>();
 }
Exemple #2
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (IsHeld == true)
        {
            return;
        }

        if (IsPlayer)
        {
            RatBrain brain = GetComponent <RatBrain>();
            if (brain.IsYote == false)
            {
                return;
            }
        }

        if (_killMode == true)
        {
            Debug.Log("killhit " + collision.collider.gameObject.name);
        }

        if (collision.collider.CompareTag("Player") && _killMode && Kills)
        {
            RatPlayer yeeter = this.LastYeeter.GetComponent <RatPlayer>();
            RatPlayer hit    = collision.collider.GetComponent <RatPlayer>();
            hit.Kill();
            if (hit != yeeter)
            {
                yeeter.AwardPoint();
            }
            Cinemachine.CinemachineImpulseSource impulse = GetComponent <Cinemachine.CinemachineImpulseSource>();
            impulse?.GenerateImpulse(this.MyRigidbody.velocity);
            AudioManager.Instance.PlaySound(HitSFX, this.transform.position);

            if (!IsPlayer)
            {
                PoolManager.Instance.releaseObject(this.gameObject);
            }

            Cloud.Spawn(collision.contacts[0].point, Cloud.Size.Large);
            _killMode = false;
        }
        else
        {
            if (_killMode)
            {
                AudioManager.Instance.PlaySound(HitGroundSFX, collision.contacts[0].point, AudioManager.MixerGroup.SFX, 0.8f);
                Cloud.Spawn(collision.contacts[0].point, Cloud.Size.Small);
            }
            _killMode = false;
        }


        if (SpinOnThrow)
        {
            this.Animator?.Play("ItemSpin");
        }
        else
        {
            this.Animator?.Play("ItemIdle");
        }

        if (collision.collider.CompareTag("Planet"))
        {
            var r2d = GetComponent <Rigidbody2D>();
            r2d.velocity = Vector3.zero;
            r2d.Sleep();
        }

        if (IsPlayer)
        {
            ReleaseAndSetKinematic();
        }
    }