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