Files
abysmal-isle/Scripts/Gumps/ApplySkillBonusGump.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

85 lines
2.8 KiB
C#

using System;
using Server.Mobiles;
using Server.Items;
namespace Server.Gumps
{
public class ApplySkillBonusGump : BaseGump
{
public Item Item { get; set; }
public AosSkillBonuses Bonuses { get; set; }
public SkillName[] Skills { get; set; }
public SkillName Selection { get; set; }
public double Value { get; set; }
public int Index { get; set; }
public ApplySkillBonusGump(PlayerMobile pm, AosSkillBonuses bonuses, SkillName[] skills, double value, int index)
: base(pm, 50, 50)
{
Item = bonuses.Owner;
Bonuses = bonuses;
Skills = skills;
Value = value;
Index = index;
}
public override void AddGumpLayout()
{
AddBackground(0, 0, 400, (Skills.Length * 22) + 65, 83);
AddHtmlLocalized(15, 15, 400, 20, 1155610, 0x7FFF, false, false); // Please Chooose a Skill
int y = 40;
for (int i = 0; i < Skills.Length; i++)
{
var skill = Skills[i];
AddButton(15, y, 4005, 4007, i + 100, GumpButtonType.Reply, 0);
AddHtmlLocalized(50, y, 200, 20, SkillInfo.Table[(int)skill].Localization, 0x7FFF, false, false);
y += 22;
}
}
public override void OnResponse(RelayInfo info)
{
if (info.ButtonID >= 100)
{
int id = info.ButtonID - 100;
if (id >= 0 && id < Skills.Length)
{
Selection = Skills[id];
TextDefinition text;
if (Item is BaseWeapon)
{
text = 1155611; // Are you sure you wish to apply the selected skill bonus to this weapon?
}
else
{
text = 1155611; // Are you sure you wish to apply the selected skill bonus to this item?
}
BaseGump.SendGump(new GenericConfirmCallbackGump<ApplySkillBonusGump>(User, User.Skills[Selection].Info.Name, text, this, null,
(m, gump) =>
{
if (gump.Item.IsChildOf(gump.User.Backpack) || gump.User.Items.Contains(gump.Item))
{
gump.User.SendLocalizedMessage(1155612); // A skill bonus has been applied to the item!
Bonuses.SetValues(gump.Index, gump.Selection, gump.Value);
gump.Item.InvalidateProperties();
}
},
(m, gump) =>
{
gump.Refresh();
}));
}
}
}
}
}