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;
 | |
| 		}
 | |
| 	}
 | |
| }
 |