public EditCapGump(Mobile from, Mobile target, Skill skill, CapsGumpGroup selected) : base(GumpOffsetX, GumpOffsetY) { m_From = from; m_Target = target; m_Skill = skill; m_Selected = selected; string initialText = m_Skill.Cap.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 CapsGump(Mobile from, Mobile target, CapsGumpGroup selected) : base(GumpOffsetX, GumpOffsetY) { m_From = from; m_Target = target; m_Groups = CapsGumpGroup.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; CapsGumpGroup 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.Cap.ToString("F1")); y -= 2; } } AddImageTiled(indentMaskX, indentMaskY, IndentWidth + OffsetSize, (group.Skills.Length * (EntryHeight + OffsetSize)) - (i < (m_Groups.Length - 1) ? OffsetSize : 0), BackGumpID + 4); } } }
public override void OnResponse(NetState sender, RelayInfo info) { int buttonID = info.ButtonID - 1; int index = buttonID / 3; int type = buttonID % 3; switch (type) { case 0: { if (index >= 0 && index < m_Groups.Length) { CapsGumpGroup newSelection = m_Groups[index]; if (m_Selected != newSelection) { m_From.SendGump(new CapsGump(m_From, m_Target, newSelection)); } else { m_From.SendGump(new CapsGump(m_From, m_Target, null)); } } break; } case 1: { if (m_Selected != null && index >= 0 && index < m_Selected.Skills.Length) { Skill sk = m_Target.Skills[m_Selected.Skills[index]]; if (sk != null) { if (m_From.AccessLevel >= AccessLevel.Seer) { m_From.SendGump(new EditCapGump(m_From, m_Target, sk, m_Selected)); } else { m_From.SendMessage("You may not change that."); m_From.SendGump(new CapsGump(m_From, m_Target, m_Selected)); } } else { m_From.SendGump(new CapsGump(m_From, m_Target, m_Selected)); } } break; } case 2: { if (m_Selected != null && index >= 0 && index < m_Selected.Skills.Length) { Skill sk = m_Target.Skills[m_Selected.Skills[index]]; if (sk != null) { if (m_From.AccessLevel >= AccessLevel.GameMaster) { switch (sk.Lock) { case SkillLock.Up: sk.SetLockNoRelay(SkillLock.Down); sk.Update(); break; case SkillLock.Down: sk.SetLockNoRelay(SkillLock.Locked); sk.Update(); break; case SkillLock.Locked: sk.SetLockNoRelay(SkillLock.Up); sk.Update(); break; } } else { m_From.SendMessage("You may not change that."); } m_From.SendGump(new CapsGump(m_From, m_Target, m_Selected)); } } break; } } }
public CapsGump( Mobile from, Mobile target, CapsGumpGroup selected ) : base(GumpOffsetX, GumpOffsetY) { m_From = from; m_Target = target; m_Groups = CapsGumpGroup.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; CapsGumpGroup 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.Cap.ToString( "F1" ) ); y -= 2; } } AddImageTiled( indentMaskX, indentMaskY, IndentWidth + OffsetSize, ( group.Skills.Length * ( EntryHeight + OffsetSize ) ) - ( i < ( m_Groups.Length - 1 ) ? OffsetSize : 0 ), BackGumpID + 4 ); } } }
public EditCapGump( Mobile from, Mobile target, Skill skill, CapsGumpGroup selected ) : base(GumpOffsetX, GumpOffsetY) { m_From = from; m_Target = target; m_Skill = skill; m_Selected = selected; string initialText = m_Skill.Cap.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 ); }