void RemoveJunk(BounceableObject g)
    {
        if (g is Junk)
        {
            var junk = (Junk)g;

            if (m_junkSpawned.Contains(junk))
            {
                Instantiate(junkDestroyPrefab, junk.transform.position, junkDestroyPrefab.transform.rotation);
                m_junkSpawned.Remove(junk);
            }
        }
    }
Example #2
0
    void OnCollisionEnter(Collision coll)
    {
        if (!myPlayers.Contains(coll.gameObject) && coll.rigidbody.GetComponent <PlayerMoves>())
        {
            coll.rigidbody.GetComponent <Rigidbody>().velocity = Vector3.zero;
            coll.rigidbody.GetComponent <Rigidbody>().AddForce((coll.transform.position - transform.position).normalized * 5 * repulseMultiplier, ForceMode.VelocityChange);
            return;
        }

        BounceableObject bounceable = coll.rigidbody.GetComponent <BounceableObject>();

        if (bounceable == null)
        {
            return;
        }

        if (bounceable is Junk)
        {
            TakeDamage();
            if (onShock != null)
            {
                onShock();
            }
        }
        else if (bounceable is ShieldBonus)
        {
            collectibles.GetShield();
            PlayersAddReward(.4f, myPlayers);
            PlayersAddReward(-.1f, ennemies);

            if (onBonus != null)
            {
                onBonus();
            }
        }
        else if (bounceable is ShrinkBonus)
        {
            collectibles.ShrinkBase();
            PlayersAddReward(.3f, myPlayers);
            PlayersAddReward(-.1f, ennemies);

            if (onBonus != null)
            {
                onBonus();
            }
        }
        else if (bounceable is GrowMalus)
        {
            collectibles.GrowBase();
            PlayersAddReward(-.1f, myPlayers);
            PlayersAddReward(.3f, ennemies);

            if (onMalus != null)
            {
                onMalus();
            }
        }
        else if (bounceable is InverseInputsMalus)
        {
            collectibles.InverseInputs();
            PlayersAddReward(-.1f, myPlayers);
            PlayersAddReward(.4f, ennemies);

            if (onMalus != null)
            {
                onMalus();
            }
        }
        else if (bounceable is AttractAsteroidBonus)
        {
            collectibles.EnableAttract();
            PlayersAddReward(.1f, myPlayers);
            PlayersAddReward(-.1f, ennemies);

            if (onBonus != null)
            {
                onBonus();
            }
        }
        else
        {
            return;
        }

        bounceable.RemoveObject();
    }