public EditSkillGump( Mobile from, Mobile target, Skill skill, SkillsGumpGroup selected ) : base(GumpOffsetX, GumpOffsetY) { m_From = from; m_Target = target; m_Skill = skill; m_Selected = selected; string initialText = m_Skill.Base.ToString( "F1" ); AddPage( 0 ); AddBackground( 0, 0, BackWidth, BackHeight, BackGumpID ); AddImageTiled( BorderSize, BorderSize, TotalWidth - ( OldStyle ? SetWidth + OffsetSize : 0 ), TotalHeight, OffsetGumpID ); int x = BorderSize + OffsetSize; int y = BorderSize + OffsetSize; AddImageTiled( x, y, EntryWidth, EntryHeight, EntryGumpID ); AddLabelCropped( x + TextOffsetX, y, EntryWidth - TextOffsetX, EntryHeight, TextHue, skill.Name ); x += EntryWidth + OffsetSize; if ( SetGumpID != 0 ) { AddImageTiled( x, y, SetWidth, EntryHeight, SetGumpID ); } x = BorderSize + OffsetSize; y += EntryHeight + OffsetSize; AddImageTiled( x, y, EntryWidth, EntryHeight, EntryGumpID ); AddTextEntry( x + TextOffsetX, y, EntryWidth - TextOffsetX, EntryHeight, TextHue, 0, initialText ); x += EntryWidth + OffsetSize; if ( SetGumpID != 0 ) { AddImageTiled( x, y, SetWidth, EntryHeight, SetGumpID ); } AddButton( x + SetOffsetX, y + SetOffsetY, SetButtonID1, SetButtonID2, 1, GumpButtonType.Reply, 0 ); }
public SkillsGump( Mobile from, Mobile target, SkillsGumpGroup selected ) : base( GumpOffsetX, GumpOffsetY ) { m_From = from; m_Target = target; m_Groups = SkillsGumpGroup.Groups; m_Selected = selected; int count = m_Groups.Length; if ( selected != null ) count += selected.Skills.Length; int totalHeight = OffsetSize + ((EntryHeight + OffsetSize) * (count + 1)); AddPage( 0 ); AddBackground( 0, 0, BackWidth, BorderSize + totalHeight + BorderSize, BackGumpID ); AddImageTiled( BorderSize, BorderSize, TotalWidth - (OldStyle ? SetWidth + OffsetSize : 0), totalHeight, OffsetGumpID ); int x = BorderSize + OffsetSize; int y = BorderSize + OffsetSize; int emptyWidth = TotalWidth - PrevWidth - NextWidth - (OffsetSize * 4) - (OldStyle ? SetWidth + OffsetSize : 0); if ( OldStyle ) AddImageTiled( x, y, TotalWidth - (OffsetSize * 3) - SetWidth, EntryHeight, HeaderGumpID ); else AddImageTiled( x, y, PrevWidth, EntryHeight, HeaderGumpID ); x += PrevWidth + OffsetSize; if ( !OldStyle ) AddImageTiled( x - (OldStyle ? OffsetSize : 0), y, emptyWidth + (OldStyle ? OffsetSize * 2 : 0), EntryHeight, HeaderGumpID ); x += emptyWidth + OffsetSize; if ( !OldStyle ) AddImageTiled( x, y, NextWidth, EntryHeight, HeaderGumpID ); for ( int i = 0; i < m_Groups.Length; ++i ) { x = BorderSize + OffsetSize; y += EntryHeight + OffsetSize; SkillsGumpGroup group = m_Groups[i]; AddImageTiled( x, y, PrevWidth, EntryHeight, HeaderGumpID ); if ( group == selected ) AddButton( x + PrevOffsetX, y + PrevOffsetY, 0x15E2, 0x15E6, GetButtonID( 0, i ), GumpButtonType.Reply, 0 ); else AddButton( x + PrevOffsetX, y + PrevOffsetY, 0x15E1, 0x15E5, GetButtonID( 0, i ), GumpButtonType.Reply, 0 ); x += PrevWidth + OffsetSize; x -= (OldStyle ? OffsetSize : 0); AddImageTiled( x, y, emptyWidth + (OldStyle ? OffsetSize * 2 : 0), EntryHeight, EntryGumpID ); AddLabel( x + TextOffsetX, y, TextHue, group.Name ); x += emptyWidth + (OldStyle ? OffsetSize * 2 : 0); x += OffsetSize; if ( SetGumpID != 0 ) AddImageTiled( x, y, SetWidth, EntryHeight, SetGumpID ); if ( group == selected ) { int indentMaskX = BorderSize; int indentMaskY = y + EntryHeight + OffsetSize; for ( int j = 0; j < group.Skills.Length; ++j ) { Skill sk = target.Skills[group.Skills[j]]; x = BorderSize + OffsetSize; y += EntryHeight + OffsetSize; x += OffsetSize; x += IndentWidth; AddImageTiled( x, y, PrevWidth, EntryHeight, HeaderGumpID ); AddButton( x + PrevOffsetX, y + PrevOffsetY, 0x15E1, 0x15E5, GetButtonID( 1, j ), GumpButtonType.Reply, 0 ); x += PrevWidth + OffsetSize; x -= (OldStyle ? OffsetSize : 0); AddImageTiled( x, y, emptyWidth + (OldStyle ? OffsetSize * 2 : 0) - OffsetSize - IndentWidth, EntryHeight, EntryGumpID ); AddLabel( x + TextOffsetX, y, TextHue, sk == null ? "(null)" : sk.Name ); x += emptyWidth + (OldStyle ? OffsetSize * 2 : 0) - OffsetSize - IndentWidth; x += OffsetSize; if ( SetGumpID != 0 ) AddImageTiled( x, y, SetWidth, EntryHeight, SetGumpID ); if ( sk != null ) { int buttonID1, buttonID2; int xOffset, yOffset; switch ( sk.Lock ) { default: case SkillLock.Up: buttonID1 = 0x983; buttonID2 = 0x983; xOffset = 6; yOffset = 4; break; case SkillLock.Down: buttonID1 = 0x985; buttonID2 = 0x985; xOffset = 6; yOffset = 4; break; case SkillLock.Locked: buttonID1 = 0x82C; buttonID2 = 0x82C; xOffset = 5; yOffset = 2; break; } AddButton( x + xOffset, y + yOffset, buttonID1, buttonID2, GetButtonID( 2, j ), GumpButtonType.Reply, 0 ); y += 1; x -= OffsetSize; x -= 1; x -= 50; AddImageTiled( x, y, 50, EntryHeight - 2, OffsetGumpID ); x += 1; y += 1; AddImageTiled( x, y, 48, EntryHeight - 4, EntryGumpID ); AddLabelCropped( x + TextOffsetX, y - 1, 48 - TextOffsetX, EntryHeight - 3, TextHue, sk.Base.ToString( "F1" ) ); y -= 2; } } AddImageTiled( indentMaskX, indentMaskY, IndentWidth + OffsetSize, (group.Skills.Length * (EntryHeight + OffsetSize)) - (i < (m_Groups.Length - 1) ? OffsetSize : 0), BackGumpID + 4 ); } } }