Aura.Channel.World.Cutscene.LoadActorsFromData C# (CSharp) Метод

LoadActorsFromData() публичный Метод

Loads actors from the cutscene's data.
public LoadActorsFromData ( ) : void
Результат void
		public void LoadActorsFromData()
		{
			var leader = this.Leader;

			foreach (var cutsceneActorData in this.Data.Actors)
			{
				Creature actor = null;

				var actorName = cutsceneActorData.Name;
				var defaultActorName = cutsceneActorData.Default;

				// Retrieve actor
				if (actorName.StartsWith("#"))
				{
					var actorData = AuraData.ActorDb.Find(actorName);
					if (actorData == null)
						Log.Warning("Cutscene.FromData: Unknown actor '{0}'.", actorData);
					else
						actor = new NPC(actorData);
				}
				else if (actorName == "me")
				{
					actor = leader;
				}
				else if (actorName == "leader")
				{
					actor = _viewers[0];
				}
				else if (actorName.StartsWith("player"))
				{
					int idx;
					if (!int.TryParse(actorName.Substring("player".Length), out idx))
					{
						Log.Warning("Cutscene.FromData: Invalid party member actor name '{0}'.", actorName);
					}
					else if (idx > _viewers.Length - 1)
					{
						if (!string.IsNullOrWhiteSpace(defaultActorName))
						{
							var actorData = AuraData.ActorDb.Find(defaultActorName);
							if (actorData == null)
								Log.Warning("Cutscene.FromData: Unknown default actor '{0}'.", defaultActorName);
							else
								actor = new NPC(actorData);
						}
						else
							Log.Warning("Cutscene.FromData: Index out of party member range '{0}/{1}'.", idx, _viewers.Length);
					}
					else
					{
						actor = _viewers[idx];
					}
				}
				else
				{
					Log.Warning("Cutscene.FromData: Unknown kind of actor ({0}).", actorName);
				}

				if (actor == null)
				{
					var dummy = new NPC();
					actor = dummy;
				}

				this.AddActor(actorName, actor);
			}
		}

Usage Example

Пример #1
0
        /// <summary>
        /// Loads cutscene from data and plays it.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="leader"></param>
        /// <param name="onFinish"></param>
        /// <param name="viewers"></param>
        public static void Play(string name, Creature leader, Action <Cutscene> onFinish, params Creature[] viewers)
        {
            var cutscene = new Cutscene(name, leader, viewers);

            cutscene.LoadActorsFromData();
            cutscene.Play(onFinish);
        }
All Usage Examples Of Aura.Channel.World.Cutscene::LoadActorsFromData