public override object Complete { get { return 1150903; } }     /*You have returned! I cannot thank you enough for the service you have done me, 
                                                                         * adventurer. <br><br>	The documents that you have retrieved may seem unimportant 
                                                                         * to you, as they are naught but random letters and doctrines. But they each 
                                                                         * represent an echo of the past, musings of our ancestors. I had always meant to 
                                                                         * return to the former library and retrieve all that I could, but I had thought they
                                                                         * were safe, gathering dust in the ruins. I will immediately have these cleaned and
                                                                         * placed in the Great Library here in the Royal City.<br><br>	As thanks, I offer 
                                                                         * you this book. It is the chronicle of my life, of the arrival of the Defiler, and 
                                                                         * a history of my people. In hopes that you will be granted further understanding of
                                                                         * the impending danger we suffer, I offer it to you as a gesture of friendship and 
                                                                         * goodwill.<br><br>	Thank you again, on behalf of the Gargoyle people. I may have
                                                                         * need of your assistance at another time, should you be willing to come to my aid 
                                                                         * again.<br><br>	Until then, farewell.*/
		
		public JourneyToTheAthenaeumIsleQuest()
		{
			AddObjective( new SlayObjective ( typeof( MinionOfScelestus), "Minion of Scelestus", 10 ) );

            for(int i = 0; i < m_Types.Length; i++)
            {
                ObtainObjective obtain = new ObtainObjective(m_Types[i], m_Names[i], 1);

                AddObjective(obtain);
            }

			//AddObjective( new InternalObjective() );
            AddReward(new BaseReward(typeof(ChronicleOfTheGargoyleQueen1), 1, "Chronicle of the Gargoyle Queen Vol. I"));
		}
Ejemplo n.º 2
0
        public virtual void OnResign(bool resignChain)
        {
            m_Owner.PlaySound(ResignSound);

            // update chain
            if (!resignChain && !QuestHelper.FirstChainQuest(this, Quester))
            {
                UpdateChain();
            }

            // delete items	that were given on quest start
            for (int i = 0; i < m_Objectives.Count; i++)
            {
                if (m_Objectives[i] is ObtainObjective)
                {
                    ObtainObjective obtain = (ObtainObjective)m_Objectives[i];

                    QuestHelper.RemoveStatus(m_Owner, obtain.Obtain);
                }
                else if (m_Objectives[i] is DeliverObjective)
                {
                    DeliverObjective deliver = (DeliverObjective)m_Objectives[i];

                    QuestHelper.DeleteItems(m_Owner, deliver.Delivery, deliver.MaxProgress, true);
                }
            }

            // delete escorter
            if (m_Quester is BaseEscort)
            {
                BaseEscort escort = (BaseEscort)m_Quester;

                escort.Say(1005653);                   // Hmmm.  I seem to have lost my master.
                escort.PlaySound(0x5B3);
                escort.BeginDelete(m_Owner);
            }

            RemoveQuest(resignChain);
        }
Ejemplo n.º 3
0
        public static void RemoveStatus(PlayerMobile from, Item item)
        {
            for (int i = from.Quests.Count - 1; i >= 0; i--)
            {
                BaseQuest quest = from.Quests[i];

                for (int j = quest.Objectives.Count - 1; j >= 0; j--)
                {
                    if (quest.Objectives[j] is ObtainObjective)
                    {
                        ObtainObjective obtain = (ObtainObjective)quest.Objectives[j];

                        if (obtain.Obtain != null && obtain.Obtain.IsAssignableFrom(item.GetType()))
                        {
                            obtain.CurProgress -= item.Amount;
                            item.QuestItem      = false;
                            from.SendLocalizedMessage(1074769);                               // An item must be in your backpack (and not in a container within) to be toggled as a quest item.
                            return;
                        }
                    }
                    else if (quest.Objectives[j] is DeliverObjective)
                    {
                        DeliverObjective deliver = (DeliverObjective)quest.Objectives[j];

                        if (deliver.Delivery != null && deliver.Delivery.IsAssignableFrom(item.GetType()))
                        {
                            from.SendLocalizedMessage(1074813);                                // You have failed to complete your delivery.
                            DeleteItems(from, deliver.Delivery, deliver.MaxProgress, false);
                            deliver.Fail();
                            item.Delete();
                            return;
                        }
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public virtual void SecObjectives()
        {
            if (m_Quest == null)
            {
                return;
            }

            if (!m_Quest.RenderObjective(this, m_Offer))
            {
                if (m_Offer)
                {
                    AddHtmlLocalized(130, 45, 270, 16, 1049010, 0xFFFFFF, false, false); // Quest Offer
                }
                else
                {
                    AddHtmlLocalized(130, 45, 270, 16, 1046026, 0xFFFFFF, false, false); // Quest Log
                }
                AddHtmlObject(160, 70, 200, 40, m_Quest.Title, DarkGreen, false, false);
                AddHtmlLocalized(98, 140, 312, 16, 1049073, 0x2710, false, false); // Objective:

                if (m_Quest.AllObjectives)
                {
                    AddHtmlLocalized(98, 156, 312, 16, 1072208, 0x2710, false, false); // All of the following
                }
                else
                {
                    AddHtmlLocalized(98, 156, 312, 16, 1072209, 0x2710, false, false); // Only one of the following
                }
                int offset = 172;

                for (int i = 0; i < m_Quest.Objectives.Count; i++)
                {
                    BaseObjective objective = m_Quest.Objectives[i];

                    if (objective is SlayObjective)
                    {
                        SlayObjective slay = (SlayObjective)objective;

                        if (slay != null)
                        {
                            AddHtmlLocalized(98, offset, 30, 16, 1072204, 0x15F90, false, false); // Slay
                            AddLabel(133, offset, 0x481, slay.MaxProgress + " " + slay.Name);     // %count% + %name%

                            offset += 16;

                            if (m_Offer)
                            {
                                if (slay.Timed)
                                {
                                    AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                    AddLabel(223, offset, 0x481, FormatSeconds(slay.Seconds));              // %est. time remaining%

                                    offset += 16;
                                }
                                continue;
                            }

                            if (slay.Region != null)
                            {
                                AddHtmlLocalized(103, offset, 312, 20, 1018327, 0x15F90, false, false);     // Location
                                AddHtmlObject(223, offset, 312, 20, slay.Region.Name, White, false, false); // %location%

                                offset += 16;
                            }

                            AddHtmlLocalized(103, offset, 120, 16, 3000087, 0x15F90, false, false); // Total
                            AddLabel(223, offset, 0x481, slay.CurProgress.ToString());              // %current progress%

                            offset += 16;

                            if (ReturnTo() != null)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1074782, 0x15F90, false, false); // Return to
                                AddLabel(223, offset, 0x481, ReturnTo());                               // %return to%

                                offset += 16;
                            }

                            if (slay.Timed)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                AddLabel(223, offset, 0x481, FormatSeconds(slay.Seconds));              // %est. time remaining%

                                offset += 16;
                            }
                        }
                    }
                    else if (objective is ObtainObjective)
                    {
                        ObtainObjective obtain = (ObtainObjective)objective;

                        if (obtain != null)
                        {
                            AddHtmlLocalized(98, offset, 40, 16, 1072205, 0x15F90, false, false); // Obtain
                            AddLabel(143, offset, 0x481, obtain.MaxProgress + " " + obtain.Name); // %count% + %name%

                            if (obtain.Image > 0)
                            {
                                AddItem(350, offset, obtain.Image, obtain.Hue); // Image
                            }
                            offset += 16;

                            if (m_Offer)
                            {
                                if (obtain.Timed)
                                {
                                    AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                    AddLabel(223, offset, 0x481, FormatSeconds(obtain.Seconds));            // %est. time remaining%

                                    offset += 16;
                                }
                                else if (obtain.Image > 0)
                                {
                                    offset += 16;
                                }

                                continue;
                            }
                            AddHtmlLocalized(103, offset, 120, 16, 3000087, 0x15F90, false, false); // Total
                            AddLabel(223, offset, 0x481, obtain.CurProgress.ToString());            // %current progress%

                            offset += 16;

                            if (ReturnTo() != null)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1074782, 0x15F90, false, false); // Return to
                                AddLabel(223, offset, 0x481, ReturnTo());                               // %return to%

                                offset += 16;
                            }

                            if (obtain.Timed)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                AddLabel(223, offset, 0x481, FormatSeconds(obtain.Seconds));            // %est. time remaining%

                                offset += 16;
                            }
                        }
                    }
                    else if (objective is DeliverObjective)
                    {
                        DeliverObjective deliver = (DeliverObjective)objective;

                        if (deliver != null)
                        {
                            AddHtmlLocalized(98, offset, 40, 16, 1072207, 0x15F90, false, false);           // Deliver
                            AddLabel(143, offset, 0x481, deliver.MaxProgress + " " + deliver.DeliveryName); // %name%

                            offset += 16;

                            AddHtmlLocalized(103, offset, 120, 16, 1072379, 0x15F90, false, false); // Deliver to
                            AddLabel(223, offset, 0x481, deliver.DestName);                         // %deliver to%

                            offset += 16;

                            if (deliver.Timed)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                AddLabel(223, offset, 0x481, FormatSeconds(deliver.Seconds));           // %est. time remaining%

                                offset += 16;
                            }
                        }
                    }
                    else if (objective is EscortObjective)
                    {
                        EscortObjective escort = (EscortObjective)objective;

                        if (escort != null)
                        {
                            AddHtmlLocalized(98, offset, 50, 16, 1072206, 0x15F90, false, false); // Escort to
                            AddHtmlObject(153, offset, 200, 16, escort.Region.Name, White, false, false);

                            offset += 16;

                            if (escort.Timed)
                            {
                                AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                                AddLabel(223, offset, 0x481, FormatSeconds(escort.Seconds));            // %est. time remaining%

                                offset += 16;
                            }
                        }
                    }
                    else if (objective is ApprenticeObjective)
                    {
                        ApprenticeObjective apprentice = (ApprenticeObjective)objective;

                        if (apprentice != null)
                        {
                            AddHtmlLocalized(98, offset, 200, 16, 1077485, "#" + (1044060 + (int)apprentice.Skill) + "\t" + apprentice.MaxProgress, 0x15F90, false, false); // Increase ~1_SKILL~ to ~2_VALUE~

                            offset += 16;
                        }
                    }
                    else if (objective is SimpleObjective && ((SimpleObjective)objective).Descriptions != null)
                    {
                        SimpleObjective obj = (SimpleObjective)objective;

                        for (int j = 0; j < obj.Descriptions.Count; j++)
                        {
                            offset += 16;
                            AddLabel(98, offset, 0x481, obj.Descriptions[j]);
                        }

                        if (obj.Timed)
                        {
                            offset += 16;
                            AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false); // Est. time remaining:
                            AddLabel(223, offset, 0x481, FormatSeconds(obj.Seconds));               // %est. time remaining%
                        }
                    }
                }
            }

            if (m_Offer)
            {
                AddButton(95, 455, 0x2EE0, 0x2EE2, (int)Buttons.AcceptQuest, GumpButtonType.Reply, 0);
                AddButton(313, 455, 0x2EF2, 0x2EF4, (int)Buttons.RefuseQuest, GumpButtonType.Reply, 0);
            }
            else
            {
                AddButton(95, 455, 0x2EF5, 0x2EF7, (int)Buttons.ResignQuest, GumpButtonType.Reply, 0);
                AddButton(313, 455, 0x2EEC, 0x2EEE, (int)Buttons.CloseQuest, GumpButtonType.Reply, 0);
            }

            AddButton(130, 430, 0x2EEF, 0x2EF1, (int)Buttons.PreviousPage, GumpButtonType.Reply, 0);
            AddButton(275, 430, 0x2EE9, 0x2EEB, (int)Buttons.NextPage, GumpButtonType.Reply, 0);
        }
Ejemplo n.º 5
0
        public MLQuestLogGump(BaseQuest quest)
            : base(75, 25)
        {
            m_Quest = quest;

            Intern("");

            AddPage(1);

            Closable = false;

            AddImageTiled(50, 20, 400, 400, 0x1404);
            AddImageTiled(50, 29, 30, 390, 0x28DC);
            AddImageTiled(34, 140, 17, 279, 0x242F);
            AddImage(48, 135, 0x28AB);
            AddImage(-16, 285, 0x28A2);
            AddImage(0, 10, 0x28B5);
            AddImage(25, 0, 0x28B4);
            AddImageTiled(83, 15, 350, 15, 0x280A);
            AddImage(34, 419, 0x2842);
            AddImage(442, 419, 0x2840);
            AddImageTiled(51, 419, 392, 17, 0x2775);
            AddImageTiled(415, 29, 44, 390, 0xA2D);
            AddImageTiled(415, 29, 30, 390, 0x28DC);
            AddLabelIntern(100, 50, 0x481, 0);
            AddImage(370, 50, 0x589);
            AddImage(379, 60, 0x15A9);
            AddImage(425, 0, 0x28C9);
            AddImage(90, 33, 0x232D);
            AddHtmlLocalized(130, 45, 270, 16, 1046026, 0xFFFFFF, false, false);          // Quest Log
            AddImageTiled(130, 65, 175, 1, 0x238D);
            AddButton(95, 395, 0x2EF5, 0x2EF7, 1, GumpButtonType.Reply, 0);               // Resign
            AddButton(313, 395, 0x2EEC, 0x2EEE, 2, GumpButtonType.Reply, 0);              // Okay

            if (m_Quest.Failed)
            {
                AddHtmlLocalized(160, 80, 250, 16, 500039, 0x3C00, false, false);                   // Failed!
            }
            AddHtmlLocalized(130, 68, 220, 48, 1114513, String.Format("#{0}", quest.Title.ToString()), 0x2710, false, false);

            if (m_Quest.ChainID != QuestChain.None)
            {
                AddHtmlLocalized(98, 140, 312, 16, 1075024, 0x2710, false, false);                   // Description (quest chain)
            }
            else
            {
                AddHtmlLocalized(98, 140, 312, 16, 1072202, 0x2710, false, false);                   // Description
            }
            AddHtmlObject(98, 156, 312, 180, quest.Description, LightGreen, false, true);
            AddButton(275, 370, 0x2EE9, 0x2EEB, 0, GumpButtonType.Page, 2);               // Continue

            AddPage(2);

            Closable = false;

            AddImageTiled(50, 20, 400, 400, 0x1404);
            AddImageTiled(50, 29, 30, 390, 0x28DC);
            AddImageTiled(34, 140, 17, 279, 0x242F);
            AddImage(48, 135, 0x28AB);
            AddImage(-16, 285, 0x28A2);
            AddImage(0, 10, 0x28B5);
            AddImage(25, 0, 0x28B4);
            AddImageTiled(83, 15, 350, 15, 0x280A);
            AddImage(34, 419, 0x2842);
            AddImage(442, 419, 0x2840);
            AddImageTiled(51, 419, 392, 17, 0x2775);
            AddImageTiled(415, 29, 44, 390, 0xA2D);
            AddImageTiled(415, 29, 30, 390, 0x28DC);
            AddLabelIntern(100, 50, 0x481, 0);
            AddImage(370, 50, 0x589);
            AddImage(379, 60, 0x15A9);
            AddImage(425, 0, 0x28C9);
            AddImage(90, 33, 0x232D);

            AddHtmlLocalized(130, 45, 270, 16, 1046026, 0xFFFFFF, false, false);               // Quest Log

            AddImageTiled(130, 65, 175, 1, 0x238D);

            AddButton(95, 395, 0x2EF5, 0x2EF7, 1, GumpButtonType.Reply, 0);
            AddButton(313, 395, 0x2EEC, 0x2EEE, 2, GumpButtonType.Reply, 0);

            AddHtmlLocalized(130, 68, 220, 48, 1114513, String.Format("#{0}", quest.Title.ToString()), 0x2710, false, false);

            AddButton(275, 370, 0x2EE9, 0x2EEB, 0, GumpButtonType.Page, 2);
            AddButton(130, 370, 0x2EEF, 0x2EF1, 0, GumpButtonType.Page, 1);

            AddHtmlLocalized(98, 140, 312, 16, 1049073, 0x2710, false, false);               // Objective:

            if (m_Quest.AllObjectives)
            {
                AddHtmlLocalized(98, 156, 312, 16, 1072208, 0x2710, false, false);                   // All of the following
            }
            else
            {
                AddHtmlLocalized(98, 156, 312, 16, 1072209, 0x2710, false, false);                   // Only one of the following
            }
            int offset    = 172;
            int internidx = 0;

            for (int i = 0; i < m_Quest.Objectives.Count; i++)
            {
                int field = 1;

                BaseObjective objective = m_Quest.Objectives[i];

                if (objective is ObtainObjective)
                {
                    ObtainObjective obtain   = (ObtainObjective)objective;
                    string          returnTo = ReturnTo();

                    AddKRHtmlLocalized(0, 0, 0, 0, -3, false, false);

                    /*1*/
                    Intern(obtain.MaxProgress.ToString());
                    /*2*/
                    Intern(obtain.Name);
                    /*3*/
                    Intern(obtain.Timed ? obtain.Seconds.ToString() : "");
                    /*4*/
                    Intern("");
                    /*5*/
                    Intern("");
                    /*6*/
                    Intern(obtain.CurProgress.ToString());
                    /*7*/
                    Intern(returnTo);

                    AddHtmlLocalized(98, offset, 350, 16, 1072205, 0x15F90, false, false);                       // Obtain
                    AddLabelIntern(143, offset, 0x481, 1 + (internidx * 7));

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddLabelIntern(173, offset, 0x481, 2 + (internidx * 7));

                    if (obtain.Image > 0)
                    {
                        AddItem(350, offset, obtain.Image);                           // Image
                    }
                    offset += 16;

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);

                    if (obtain.Timed)
                    {
                        AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false);              // Est. time remaining:
                        AddLabelIntern(223, offset, 0x481, 3 + (internidx * 7));                             // %est. time remaining%

                        offset += 16;
                    }
                    else
                    {
                        AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                        AddKRLabel(0, 0, 0, 0, 3 + (internidx * 7), false, false);
                    }

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRLabel(0, 0, 0, 0, 4 + (internidx * 7), false, false);


                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRLabel(0, 0, 0, 0, 5 + (internidx * 7), false, false);

                    AddHtmlLocalized(103, offset, 120, 16, 3000087, 0x15F90, false, false);                       // Total
                    AddLabelIntern(223, offset, 0x481, 6 + (internidx * 7));

                    offset += 16;

                    AddHtmlLocalized(103, offset, 120, 16, 1074782, 0x15F90, false, false);                       // Return to
                    AddLabelIntern(223, offset, 0x481, 7 + (internidx * 7));

                    offset += 16;
                }
                else if (objective is SlayObjective)
                {
                    SlayObjective slay         = (SlayObjective)objective;
                    int           internOffset = internidx * 8;
                    string        returnTo     = ReturnTo();

                    AddKRHtmlLocalized(0, 0, 0, 0, -2, false, false);

                    /*1*/
                    Intern(slay.MaxProgress.ToString());
                    /*2*/
                    Intern(slay.Name);
                    /*3*/
                    Intern(slay.Timed ? slay.Seconds.ToString() : "");
                    /*4*/
                    Intern(slay.Region != null ? slay.Region.Name : "");
                    /*5*/
                    Intern("");
                    /*6*/
                    Intern("");
                    /*7*/
                    Intern(slay.CurProgress.ToString());
                    /*8*/
                    Intern(returnTo);

                    AddHtmlLocalized(98, offset, 312, 16, 1072204, 0x15F90, false, false);      // Slay
                    AddLabelIntern(133, offset, 0x481, 1 + internOffset);                       // Amount

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddLabelIntern(slay.MaxProgress > 10 ? 163 : 148, offset, 0x481, 2 + internOffset);                       // Type

                    offset += 16;

                    if (slay.Timed)
                    {
                        AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false);         // Est. time remaining:
                        AddLabelIntern(223, offset, 0x481, 3 + internOffset);                           // %est. time remaining%

                        offset += 16;
                    }
                    else
                    {
                        AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                        AddKRLabel(0, 0, 0, 0, 3 + internOffset, false, false);
                    }

                    if (slay.Region != null)
                    {
                        AddHtmlLocalized(103, offset, 312, 20, 1018327, 0x15F90, false, false);         // Location
                        AddLabelIntern(223, offset, 0x481, 4 + internOffset);                           // %est. time remaining%

                        offset += 16;
                    }
                    else
                    {
                        AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                        AddKRLabel(0, 0, 0, 0, 4 + internOffset, false, false);
                    }

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRLabel(0, 0, 0, 0, 5 + internOffset, false, false);

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRLabel(0, 0, 0, 0, 6 + internOffset, false, false);

                    AddHtmlLocalized(103, offset, 120, 16, 3000087, 0x15F90, false, false);                       // Total
                    AddLabelIntern(223, offset, 0x481, 7 + internOffset);

                    offset += 16;

                    AddHtmlLocalized(103, offset, 120, 16, 1074782, 0x15F90, false, false);                       // Return to
                    AddLabelIntern(223, offset, 0x481, 8 + internOffset);

                    offset += 16;
                }
                else if (objective is DeliverObjective)
                {
                    DeliverObjective deliver = (DeliverObjective)objective;
                    int internOffset         = internidx * 5;

                    AddKRHtmlLocalized(0, 0, 0, 0, -5, false, false);

                    AddHtmlLocalized(98, offset, 312, 16, 1072207, 0x15F90, false, false);                       // Deliver

                    Intern(deliver.MaxProgress.ToString());
                    Intern(deliver.DeliveryName);

                    AddLabelIntern(143, offset, 0x481, internOffset + 1);
                    AddLabelIntern(158, offset, 0x481, internOffset + 2);

                    offset += 16;

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);

                    if (deliver.Timed)
                    {
                        AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false);         // Est. time remaining:
                        Intern(deliver.Seconds.ToString());
                        AddLabelIntern(223, offset, 0x481, internOffset + 3);                           // %est. time remaining%

                        offset += 16;
                    }
                    else
                    {
                        AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                        AddKRLabel(0, 0, 0, 0, internOffset + 3, false, false);
                        Intern("");
                    }

                    AddHtmlLocalized(103, offset, 120, 16, 1072379, 0x15F90, false, false);                       // Deliver to
                    Intern(deliver.DestName);
                    AddLabelIntern(223, offset, 0x481, internOffset + 4);

                    offset += 16;

                    AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                    AddKRLabel(0, 0, 0, 0, internOffset + 5, false, false);
                    Intern("");
                }
                else if (objective is EscortObjective)
                {
                    EscortObjective escort = (EscortObjective)objective;

                    AddKRHtmlLocalized(0, 0, 0, 0, -4, false, false);

                    AddHtmlLocalized(98, offset, 312, 16, 1072206, 0x15F90, false, false);                       // Escort to
                    AddHtmlObject(173, offset, 312, 20, escort.Region.Name, 0xFFFFFF, false, false);

                    offset += 16;

                    if (escort.Timed)
                    {
                        AddHtmlLocalized(103, offset, 120, 16, 1062379, 0x15F90, false, false);                           // Est. time remaining:

                        Intern(escort.Seconds.ToString());

                        AddLabelIntern(223, offset, 0x481, (internidx * 3) + (field++));                               // %est. time remaining%

                        offset += 16;
                    }

                    for (int j = field; j < 3; j++)
                    {
                        AddKRHtmlLocalized(0, 0, 0, 0, 1078089, false, false);
                        AddKRLabel(0, 0, 0, 0, j, false, false);
                        Intern("");
                    }
                }
                else if (objective is ApprenticeObjective)
                {
                    ApprenticeObjective apprentice = (ApprenticeObjective)objective;

                    AddKRHtmlLocalized(0, 0, 0, 0, -9, false, false);

                    AddHtmlLocalized(98, offset, 200, 16, 1077485, "#" + (1044060 + (int)apprentice.Skill) + "\t" + apprentice.MaxProgress, 0x15F90, false, false);                          // Increase ~1_SKILL~ to ~2_VALUE~

                    offset += 16;
                }
                else if (objective is BaseBardObjective)
                {
                    BaseBardObjective bardObjective = (BaseBardObjective)objective;

                    AddHtmlLocalized(98, offset, 200, 16, bardObjective.Cliloc, 0x15F90, false, false);

                    offset += 16;
                }

                internidx++;
            }

            AddButton(275, 370, 0x2EE9, 0x2EEB, 0, GumpButtonType.Page, 3);

            AddPage(3);

            Closable = false;

            AddImageTiled(50, 20, 400, 400, 0x1404);
            AddImageTiled(50, 29, 30, 390, 0x28DC);
            AddImageTiled(34, 140, 17, 279, 0x242F);
            AddImage(48, 135, 0x28AB);
            AddImage(-16, 285, 0x28A2);
            AddImage(0, 10, 0x28B5);
            AddImage(25, 0, 0x28B4);
            AddImageTiled(83, 15, 350, 15, 0x280A);
            AddImage(34, 419, 0x2842);
            AddImage(442, 419, 0x2840);
            AddImageTiled(51, 419, 392, 17, 0x2775);
            AddImageTiled(415, 29, 44, 390, 0xA2D);
            AddImageTiled(415, 29, 30, 390, 0x28DC);
            AddLabelIntern(100, 50, 0x481, 0);
            AddImage(370, 50, 0x589);
            AddImage(379, 60, 0x15A9);
            AddImage(425, 0, 0x28C9);
            AddImage(90, 33, 0x232D);
            AddHtmlLocalized(130, 45, 270, 16, 1046026, 0xFFFFFF, false, false);               // Quest Log
            AddImageTiled(130, 65, 175, 1, 0x238D);
            AddButton(95, 395, 0x2EF5, 0x2EF7, 1, GumpButtonType.Reply, 0);
            AddButton(313, 395, 0x2EEC, 0x2EEE, 2, GumpButtonType.Reply, 0);
            AddHtmlLocalized(130, 68, 220, 48, 1114513, String.Format("#{0}", quest.Title.ToString()), 0x2710, false, false);
            AddButton(130, 370, 0x2EEF, 0x2EF1, 0, GumpButtonType.Page, 2);
            AddHtmlLocalized(98, 140, 312, 16, 1072201, 0x2710, false, false);               // Reward

            if (quest.Rewards.Count == 1)
            {
                BaseReward reward = m_Quest.Rewards[0];

                AddImage(105, 163, 0x4B9);
                AddHtmlObject(133, 162, 280, 32, reward.Name, 0x15F90, false, false);
            }
            else
            {
                AddHtmlLocalized(98, 156, 312, 16, 1072208, 0x2710, false, false);                   // All of the following

                for (int n = 0; n < quest.Rewards.Count; ++n)
                {
                    BaseReward reward = m_Quest.Rewards[n];

                    AddImage(105, 179 + (n * 16), 0x4B9);
                    AddHtmlObject(133, 178 + (n * 16), 280, 32, reward.Name, 0x15F90, false, false);
                }
            }
        }