Files
abysmal-isle/Scripts/Services/Town Cryer/Gumps/TownCryerNewsGump.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

88 lines
2.9 KiB
C#

using Server;
using System;
using System.Collections.Generic;
using Server.Mobiles;
using Server.Engines.Quests;
using Server.Gumps;
namespace Server.Services.TownCryer
{
public class TownCryerNewsGump : BaseTownCryerGump
{
public TownCryerNewsEntry Entry { get; private set; }
public TownCryerNewsGump(PlayerMobile pm, TownCrier cryer, TownCryerNewsEntry entry)
: base(pm, cryer)
{
Entry = entry;
}
public override void AddGumpLayout()
{
base.AddGumpLayout();
//AddPage(1);
//AddImageTiled(58, 213, 397, 271, 0x24B2);
if (Entry.Body.Number > 0)
{
AddHtmlLocalized(58, 213, 397, 271, Entry.Body.Number, C32216(0x080808), false, true);
}
else
{
AddHtml(58, 213, 397, 271, Color("#080808", Entry.Body.String), false, true);
}
AddHtmlLocalized(0, 150, 854, 20, CenterLoc, Entry.Title.ToString(), 0, false, false);
AddHtmlLocalized(0, 180, 854, 20, CenterLoc, "#1158084", 0, false, false); // The Town Cryer News Network
AddImage(468, 213, Entry.GumpImage);
AddImage(50, 532, 0x60C);
if (!String.IsNullOrEmpty(Entry.InfoUrl))
{
AddButton(147, 600, 0x627, 0x628, 1, GumpButtonType.Reply, 0);
}
if (Entry.QuestType != null)
{
AddButton(545, 600, 0x629, 0x62A, 2, GumpButtonType.Reply, 0);
}
}
public override void OnResponse(RelayInfo info)
{
switch (info.ButtonID)
{
case 0:
var gump = new TownCryerGump(User, Cryer);
gump.Category = TownCryerGump.GumpCategory.News;
BaseGump.SendGump(gump);
break;
case 1:
User.LaunchBrowser(Entry.InfoUrl);
Refresh();
break;
case 2:
if (QuestHelper.HasQuest(User, Entry.QuestType))
{
Cryer.SayTo(User, 1080107, 1150); // I'm sorry, I have nothing for you at this time.
}
else
{
BaseQuest quest = QuestHelper.Construct(Entry.QuestType) as BaseQuest;
if (quest != null && (!QuestHelper.CheckDoneOnce(User, quest, Cryer, true) || User.AccessLevel > AccessLevel.Player))
{
quest.Owner = User;
quest.Quester = Cryer;
User.CloseGump(typeof(MondainQuestGump));
User.SendGump(new MondainQuestGump(quest));
}
}
break;
}
}
}
}