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