using UnityEngine; using RR.Game2D.Core.Managers; using RR.Game2D.Behaviour; namespace RR.Game2D.Entities.Projectiles { public class EnemyBasicProjectile : BasicProjectile { [SerializeField] public bool despawnInstantly = false; [SerializeField] public float fallGravityScale = 3f; protected override void Awake() { base.Awake(); _rb.bodyType = RigidbodyType2D.Dynamic; _rb.gravityScale = 0; } private void Update() { if (Time.time - _launchTime>= maxLifetime) { if (despawnInstantly) Despawn(); else { _rb.bodyType = RigidbodyType2D.Dynamic; _rb.gravityScale = fallGravityScale; } } } protected override void OnHit(Collision2D target, Vector2 point, Vector2 relativeVelocity) { var player = GameManager.Instance.PlayerObj; if (target.collider.CompareTag("Player")) { player.GetComponent().TakeDamage(projectileDamage); } else if (target.collider.CompareTag("Projectile") || target.collider.CompareTag("Enemy")) Despawn(); base.OnHit(target, point, relativeVelocity); } } }