47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using Lights;
|
||
using UnityEngine;
|
||
|
||
public class PlayerIndicatorsController : MonoBehaviour
|
||
{
|
||
[SerializeField] Weapon torpedo;
|
||
[SerializeField] Weapon missile;
|
||
|
||
private bool initialized = false;
|
||
public void Init()
|
||
{
|
||
G.PlayerStateModel.PlayerHealthComponent.HealthChanged += PlayerHealthComponent_HealthChanged;
|
||
torpedo.AmmoChanged += Torpedo_AmmoChanged;
|
||
missile.AmmoChanged += Missile_AmmoChanged;
|
||
|
||
initialized = true;
|
||
}
|
||
|
||
private void OnDestroy()
|
||
{
|
||
if( initialized )
|
||
{
|
||
G.PlayerStateModel.PlayerHealthComponent.HealthChanged -= PlayerHealthComponent_HealthChanged;
|
||
torpedo.AmmoChanged -= Torpedo_AmmoChanged;
|
||
missile.AmmoChanged -= Missile_AmmoChanged;
|
||
}
|
||
}
|
||
|
||
private void Missile_AmmoChanged(int obj)
|
||
{
|
||
LightSystem.SetIndicator(Indiсator.MissileAmmo, missile.AmmoPercent);
|
||
}
|
||
|
||
private void Torpedo_AmmoChanged(int obj)
|
||
{
|
||
LightSystem.SetIndicator(Indiсator.TorpedoAmmo, torpedo.AmmoPercent);
|
||
}
|
||
|
||
private void PlayerHealthComponent_HealthChanged(float obj)
|
||
{
|
||
LightSystem.SetIndicator(Indiсator.Life, G.PlayerStateModel.PlayerHealthComponent.HpPercent);
|
||
}
|
||
|
||
|
||
|
||
}
|