Aura.Channel.Scripting.Scripts.DialogPtjDesc.Render C# (CSharp) Метод

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

public Render ( StringBuilder &sb ) : void
sb StringBuilder
Результат void
		public override void Render(ref StringBuilder sb)
		{
			var quest = ChannelServer.Instance.ScriptManager.QuestScripts.Get(this.QuestId);
			if (quest == null)
				throw new ArgumentException("DialogPtjDesc: Unknown quest '" + this.QuestId + "'.");

			var objective = quest.Objectives.First().Value;

			var now = ErinnTime.Now;
			var remainingHours = Math.Max(0, quest.DeadlineHour - now.Hour);
			var remainingJobs = Math2.Clamp(0, this.MaxAvailableJobs, this.RemainingJobs);

			sb.Append("<arbeit>");
			sb.AppendFormat("<name>{0}</name>", this.Name);
			sb.AppendFormat("<id>{0}</id>", this.QuestId);
			sb.AppendFormat("<title>{0}</title>", this.Title);
			foreach (var group in quest.RewardGroups.Values)
			{
				sb.AppendFormat("<rewards id=\"{0}\" type=\"{1}\">", group.Id, (int)group.Type);

				foreach (var reward in group.Rewards.Where(a => a.Result == QuestResult.Perfect))
					sb.AppendFormat("<reward>* {0}</reward>", reward.ToString());

				sb.AppendFormat("</rewards>");
			}
			sb.AppendFormat("<desc>{0}</desc>", quest.Description);
			sb.AppendFormat("<values maxcount=\"{0}\" remaincount=\"{1}\" remaintime=\"{2}\" history=\"{3}\"/>", this.MaxAvailableJobs, this.RemainingJobs, remainingHours, this.History);
			sb.Append("</arbeit>");
		}
	}