65 lines
1.3 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|