using UnityEngine; public class ItemPickup : MonoBehaviour { private ScoreManager scoreManager; private AudioSource audioSource; private PlayerInvulnAbility pInvulnAbility; public Animator spriteAnim; //on the sprite child object public Animator objectAnim; //on the parent object public ParticleSystem mainParticles; public ParticleSystem cloudParticles; public ParticleSystem etherParticles; private ApplyForceToPlayer applyForce; private ApplyForceTouch applyForceTouch; private ApplyForceController applyForceController; private AchievementSystem achSys; public int itemWorth; public int scoreBoostAmount; public int speedBoostAmount; //150 + x public int invulnTime; private int waitTime = 10; [Header("Item Type")] public bool coinItem; public bool boostItem; public bool speedItem; public bool invulnItem; public bool speedReduceItem; private bool audioActive; private float timeSinceAudioActive; private void Awake() { scoreManager = ObjectManager.GetObject(4).GetComponent<ScoreManager>(); pInvulnAbility = ObjectManager.GetObject(0).GetComponent<PlayerInvulnAbility>(); audioSource = GetComponent<AudioSource>(); applyForce = ObjectManager.GetObject(3).GetComponent<ApplyForceToPlayer>(); applyForceTouch = ObjectManager.GetObject(3).GetComponent<ApplyForceTouch>(); applyForceController = ObjectManager.GetObject(3).GetComponent<ApplyForceController>(); achSys = ObjectManager.GetObject(4).GetComponent<AchievementSystem>(); etherParticles.Play(); } private void Update() { if (audioActive) { timeSinceAudioActive += Time.deltaTime; if (timeSinceAudioActive > waitTime) Destroy(this.gameObject); } } private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.name == "Player" && !audioActive) { if (coinItem) { scoreManager.IncrementScore(itemWorth); } if (boostItem) { scoreManager.SetTempBoostAmount(scoreBoostAmount); } if (speedItem) { if (applyForce.enabled) applyForce.AdjustForceMultiplier(speedBoostAmount); if (applyForceTouch.enabled) applyForceTouch.AdjustForceMultiplier(speedBoostAmount); if (applyForceController.enabled) applyForceController.AdjustForceMultiplier(speedBoostAmount); } if (invulnItem) { pInvulnAbility.ActivateInvulnAbility(invulnTime); } if (speedReduceItem) { if (applyForce.enabled) applyForce.AdjustForceMultiplier(speedBoostAmount); if (applyForceTouch.enabled) applyForceTouch.AdjustForceMultiplier(speedBoostAmount); if (applyForceController.enabled) applyForceController.AdjustForceMultiplier(speedBoostAmount); } achSys.IncrementItemsPickedUp(); audioSource.pitch = Random.Range(1, 1.25f); audioSource.Play(); mainParticles.Play(); cloudParticles.Play(); audioActive = true; spriteAnim.Play("Coin Fade", 1); objectAnim.Play("Coin Light Fade"); } } }