Danro/Assets/Scripts/Behaviour/Projectiles/EnemyBasicProjectile.cs
Danil Iarosh 5bafc385da feat(audio): increase SFX pool size and preload audio data
- Increased SFX pool size from 8 to 16 in AudioManager
- Enabled preloadAudioData for multiple SFX files
- Removed unused VisualScripting import from Checkpoint script
- Reordered using statements in several scripts for consistency
- Added CoinCollectible component to Coin prefab with pickup effects
- Updated sorting layers and mesh LOD settings in Coin prefabs
- Fixed typo in Interfaces.cs: optionaAttachPoint to optionalAttachPoint
- Modified AddCoin method to accept count parameter and handle coin overflow
- Moved projectile scripts (BasicProjectile, EnemyBasicProjectile, PhysicsProjectile, PickableProjectile)
- Cleaned up unused namespaces and imports across various scripts
2025-10-30 16:39:15 +03:00

48 lines
1.4 KiB
C#

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<PlayerController>().TakeDamage(projectileDamage);
}
else if (target.collider.CompareTag("Projectile") || target.collider.CompareTag("Enemy"))
Despawn();
base.OnHit(target, point, relativeVelocity);
}
}
}