79 lines
2.6 KiB
C#
79 lines
2.6 KiB
C#
using Server;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Server.Items;
|
|
using Server.Mobiles;
|
|
using Server.Spells.SkillMasteries;
|
|
using System.Linq;
|
|
using Server.Network;
|
|
|
|
namespace Server.Gumps
|
|
{
|
|
public class MasterySelectionGump : BaseGump
|
|
{
|
|
//public const int Red = 0x4800;
|
|
//public const int Blue = 0x000F;
|
|
public const int Red = 0x8e2525;
|
|
public const int Blue = 0x000066;
|
|
|
|
public BookOfMasteries Book { get; private set; }
|
|
|
|
public MasterySelectionGump(PlayerMobile user, BookOfMasteries book)
|
|
: base(user, 75, 25)
|
|
{
|
|
Book = book;
|
|
}
|
|
|
|
public override void AddGumpLayout()
|
|
{
|
|
AddBackground(0, 0, 404, 550, 9380);
|
|
|
|
AddHtmlLocalized(0, 40, 404, 16, CenterLoc, "#1151948", 0, false, false); // Switch Mastery
|
|
|
|
int y = 58;
|
|
SkillName current = User.Skills.CurrentMastery;
|
|
|
|
foreach (SkillName skName in MasteryInfo.Skills)
|
|
{
|
|
Skill sk = User.Skills[skName];
|
|
|
|
if (sk != null && sk.IsMastery && sk.VolumeLearned > 0)
|
|
{
|
|
AddButton(30, y, 4005, 4007, (int)skName + 1, GumpButtonType.Reply, 0);
|
|
|
|
AddHtmlLocalized(72, y, 200, 16, MasteryInfo.GetLocalization(skName), skName == current ? C32216(Red) : C32216(Blue), false, false);
|
|
AddHtmlLocalized(265, y, 100, 16, 1156052, MasteryInfo.GetMasteryLevel(User, skName).ToString(), 0, false, false);
|
|
|
|
y += 24;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnResponse(RelayInfo info)
|
|
{
|
|
if (info.ButtonID == 0)
|
|
return;
|
|
|
|
SkillName n = (SkillName)info.ButtonID - 1;
|
|
SkillName current = User.Skills.CurrentMastery;
|
|
|
|
if (n == current)
|
|
{
|
|
User.Skills.CurrentMastery = SkillName.Alchemy;
|
|
MasteryInfo.OnMasteryChanged(User, current);
|
|
}
|
|
else if (User.Skills[n].Base >= MasteryInfo.MinSkillRequirement)
|
|
{
|
|
User.SendLocalizedMessage(1155886, User.Skills[n].Info.Name); // Your active skill mastery is now set to ~1_MasterySkill~!
|
|
User.Skills.CurrentMastery = n;
|
|
|
|
MasteryInfo.OnMasteryChanged(User, current);
|
|
|
|
BookOfMasteries.AddToCooldown(User);
|
|
}
|
|
else
|
|
User.SendLocalizedMessage(1156236, String.Format("{0}\t{1}", MasteryInfo.MinSkillRequirement.ToString(), User.Skills[n].Info.Name)); // You need at least ~1_SKILL_REQUIREMENT~ ~2_SKILL_NAME~ skill to use that mastery.
|
|
}
|
|
}
|
|
}
|