77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| 
 | |
| namespace TPSBR
 | |
| {
 | |
| 	public enum EAnnouncementChannel
 | |
| 	{
 | |
| 		None,
 | |
| 		TimeRemaining,
 | |
| 		PlayersRemaining,
 | |
| 		KillsRemaining,
 | |
| 		KillsDone,
 | |
| 	}
 | |
| 	
 | |
| 	[Serializable]
 | |
| 	public struct AnnouncementData
 | |
| 	{
 | |
| 		public int                  Priority;
 | |
| 		public EAnnouncementChannel Channel;
 | |
| 		public string               TextMessage;
 | |
| 		public AudioSetup           AudioMessage;
 | |
| 		public float                Cooldown;
 | |
| 		public float                Duration;
 | |
| 		public float                ValidTime;
 | |
| 		public Color                Color;
 | |
| 		public string               FeedMessage;
 | |
| 		
 | |
| 		public float                ValidCooldown { get; set; }
 | |
| 	}
 | |
| 	
 | |
| 	public abstract class Announcement : ScriptableObject
 | |
| 	{
 | |
| 		// PUBLIC MEMBERS
 | |
| 		
 | |
| 		public bool IsFinished { get; set; }
 | |
| 		
 | |
| 		// PROTECTED MEMBERS
 | |
| 		
 | |
| 		[SerializeField]
 | |
| 		protected bool _oneTimeAnnouncement = true;
 | |
| 		[SerializeField]
 | |
| 		protected AnnouncementData _defaultSetup;
 | |
| 
 | |
| 		// PUBLIC METHODS
 | |
| 		
 | |
| 		public virtual void Activate(AnnouncerContext context)
 | |
| 		{
 | |
| 			
 | |
| 		}
 | |
| 		
 | |
| 		public virtual void Tick(AnnouncerContext context, List<AnnouncementData> collectedAnnouncements)
 | |
| 		{
 | |
| 			if (CheckCondition(context) == true)
 | |
| 			{
 | |
| 				collectedAnnouncements.Add(_defaultSetup);
 | |
| 				
 | |
| 				if (_oneTimeAnnouncement == true)
 | |
| 				{
 | |
| 					IsFinished = true;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 		public virtual void Deactivate()
 | |
| 		{
 | |
| 			
 | |
| 		}
 | |
| 		
 | |
| 		// PROTECTED METHODS
 | |
| 		
 | |
| 		protected virtual bool CheckCondition(AnnouncerContext context)
 | |
| 		{
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| } |