65 lines
1.3 KiB
C#

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