void OnCollisionEnter2D(Collision2D col)
    {
        MiniHoovers_Slime slime = col.gameObject.GetComponent <MiniHoovers_Slime>();

        if (slime == null)
        {
            collideGrowCurrent = CollideGrowAmount;
            Vector3 normal = (Vector3)col.GetContact(0).normal;
            if (player.IsActionButtonPressed() && MoveSpeed > 0f)
            {
                transform.up = transform.up - normal * 2f * Vector3.Dot(transform.up, normal);
                r.velocity   = transform.up * BounceVelocity;
            }
            else
            {
                MiniHoovers_Player player = col.gameObject.GetComponent <MiniHoovers_Player>();
                if (player != null)
                {
                    // Bounce away.
                    r.constraints = RigidbodyConstraints2D.FreezeRotation;
                    Vector3 fromPlayer = (transform.position - player.transform.position).normalized;
                    r.velocity = fromPlayer * BounceVelocity;
                }
                else
                {
                    r.velocity += col.GetContact(0).normal *BounceVelocity;
                }
            }
        }
    }
Exemple #2
0
    public void GetSucked(MiniHoovers_Player player, bool spawned)
    {
        if (claimed)
        {
            return;
        }
        claimed = true;

        if (!spawned)
        {
            Destroy(gameObject);
            slimeCounter.MinusSlime();
            return;
        }

        GameObject leftover = GameObject.Instantiate(SlimeLeftover);

        leftover.transform.localScale = transform.localScale;
        leftover.transform.position   = transform.position + Vector3.forward * 0.1f;

        offset       = transform.position - player.transform.position;
        offset.z     = 0f;
        targetPlayer = player;
        slimeCounter.MinusSlime();
        Destroy(GetComponent <Rigidbody2D>());
        Destroy(GetComponent <CircleCollider2D>());
    }