Aura.Channel.World.Cutscene.Cutscene C# (CSharp) Method

Cutscene() public method

Creates new cutscene.
public Cutscene ( string name, Creature leader ) : System
name string
leader Aura.Channel.World.Entities.Creature
return System
		public Cutscene(string name, Creature leader, params Creature[] viewers)
		{
			if (string.IsNullOrWhiteSpace(name))
				throw new ArgumentNullException("name");

			if (leader == null)
				throw new ArgumentNullException("leader");

			if ((this.Data = AuraData.CutscenesDb.Find(name)) == null)
				throw new ArgumentException("Unknown cutscene '" + name + "'.");

			this.Name = name;
			this.Leader = leader;

			this.Actors = new Dictionary<string, Creature>();

			// Create list of viewers, with the leader being the first one
			// (index 0), followed by the leader's party members and then
			// the other viewers.
			// Using List and Distinct to maintain the order, while getting
			// each viewer only once. This is never gonna be a performance
			// problem for us, but if it were we'd need a custom type.
			var viewersList = new List<Creature>();

			viewersList.Add(leader);
			viewersList.AddRange(leader.Party.GetSortedMembers(a => a.Region == leader.Region));

			if (viewers != null)
				viewersList.AddRange(viewers);

			_viewers = viewersList.Distinct().ToArray();
		}