37 lines
950 B
C#
37 lines
950 B
C#
|
using UnityEngine;
|
|||
|
|
|||
|
namespace TPSBR
|
|||
|
{
|
|||
|
[CreateAssetMenu(menuName = "TPSBR/Announcements/Remaining Players")]
|
|||
|
public class RemainingPlayersAnnouncement : Announcement
|
|||
|
{
|
|||
|
// PRIVATE MEMBERS
|
|||
|
|
|||
|
[SerializeField]
|
|||
|
private int _remainingPlayers;
|
|||
|
[SerializeField]
|
|||
|
private float _minNextAnnouncementTime = 30f;
|
|||
|
|
|||
|
private int _lastActivePlayers;
|
|||
|
private float _lastAnnouncedTime;
|
|||
|
|
|||
|
// Announcement INTERFACE
|
|||
|
|
|||
|
protected override bool CheckCondition(AnnouncerContext context)
|
|||
|
{
|
|||
|
// Number of players could be increased during gameplay (new player join)
|
|||
|
// so we need to announce again after some time
|
|||
|
|
|||
|
if (_lastActivePlayers > _remainingPlayers && context.ActivePlayers <= _remainingPlayers && _lastAnnouncedTime + _minNextAnnouncementTime < Time.timeSinceLevelLoad)
|
|||
|
{
|
|||
|
_lastAnnouncedTime = Time.timeSinceLevelLoad;
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
_lastActivePlayers = context.ActivePlayers;
|
|||
|
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|