using Unity.VisualScripting; using UnityEngine; [RequireComponent(typeof(Collider), typeof(BezierRunner))] public class AmmoBox : MonoBehaviour { [SerializeField] private BezierRunner runner; private int torpedoAmmo; private int missileAmmo; private bool configured = false; private bool droppedAmmo = false; public void Configure(int torpedoAmmo, int missileAmmo, BezierWay bezierWay) { this.torpedoAmmo = torpedoAmmo; this.missileAmmo = missileAmmo; runner.BezierWay = bezierWay; configured = true; } private void OnTriggerEnter(Collider other) { if (!configured) return; if (IsPlayer(other)) { DropAmmo(); } else { DestroyBox(); } } bool IsPlayer(Collider other) { if (other.TryGetComponent(out Hitbox h) && h.Owner == G.PlayerStateModel.PlayerComponent.gameObject) { return true; } return false; } private void DropAmmo() { var torpedoWeapon = G.WeaponModel.Weapons[0]; var missileWeapon = G.WeaponModel.Weapons[1]; torpedoWeapon.AddAmmo(torpedoAmmo); missileWeapon.AddAmmo(missileAmmo); droppedAmmo = true; DestroyBox(); } private void DestroyBox() { } }