2025-09-24 11:24:38 +05:00

69 lines
1.8 KiB
C#

using UnityEngine;
namespace TPSBR.UI
{
using Fusion;
public class UIShrinkingArea : UIBehaviour
{
// PRIVATE MEMBERS
[SerializeField]
private GameObject _remainingProgressGroup;
[SerializeField]
private GameObject _remainingTimeGroup;
[SerializeField]
private GameObject _areaShrinkingGroup;
[SerializeField]
private UIValue _remainingProgressValue;
[SerializeField]
private UIValue _remainingProgressTimeValue;
[SerializeField]
private UIValue _remainingTimeValue;
[SerializeField]
private AudioEffect _shrinkingSound;
// PUBLIC METHODS
public void UpdateArea(NetworkRunner runner, ShrinkingArea area)
{
var remainingTimeValue = area.NextShrinking.RemainingTime(runner);
float remainingTime = remainingTimeValue.HasValue == true ? remainingTimeValue.Value : 0f;
if (area.IsShrinking == true)
{
_areaShrinkingGroup.SetActive(true);
_remainingProgressGroup.SetActive(false);
_remainingTimeGroup.SetActive(false);
_shrinkingSound.Play(EForceBehaviour.ForceDifferentSetup);
}
else if (area.IsAnnounced == true)
{
_shrinkingSound.Stop();
_areaShrinkingGroup.SetActive(false);
_remainingProgressGroup.SetActive(true);
_remainingTimeGroup.SetActive(true);
_remainingProgressValue.SetValue(area.ShrinkDelay - remainingTime, area.ShrinkDelay);
_remainingProgressTimeValue.SetValue(remainingTime);
_remainingTimeValue.SetValue(remainingTime);
}
else
{
_shrinkingSound.Stop();
_areaShrinkingGroup.SetActive(false);
_remainingProgressGroup.SetActive(remainingTime > 0f);
_remainingTimeGroup.SetActive(false);
_remainingProgressValue.SetValue(area.ShrinkDelay - remainingTime, area.ShrinkDelay);
_remainingProgressTimeValue.SetValue(remainingTime);
}
}
}
}