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) { LokaiSkillsGumpGroup newSelection = m_Groups[index]; if (m_Selected != newSelection) { m_From.SendGump(new LokaiSkillsGump(m_From, m_Target, newSelection)); } else { m_From.SendGump(new LokaiSkillsGump(m_From, m_Target, null)); } } break; } case 1: { if (m_Selected != null && index >= 0 && index < m_Selected.LokaiSkills.Length) { LokaiSkill skil = (LokaiSkillUtilities.XMLGetSkills(m_Target))[m_Selected.LokaiSkills[index]]; if (skil != null) { if (m_From.AccessLevel >= AccessLevel.GameMaster) { m_From.SendGump(new EditLokaiSkillGump(m_From, m_Target, skil, m_Selected)); } else { m_From.SendMessage("You may not change that."); m_From.SendGump(new LokaiSkillsGump(m_From, m_Target, m_Selected)); } } else { m_From.SendGump(new LokaiSkillsGump(m_From, m_Target, m_Selected)); } } break; } case 2: { if (m_Selected != null && index >= 0 && index < m_Selected.LokaiSkills.Length) { LokaiSkill skil = (LokaiSkillUtilities.XMLGetSkills(m_Target))[m_Selected.LokaiSkills[index]]; if (skil != null) { if (m_From.AccessLevel >= AccessLevel.GameMaster) { switch (skil.Lock) { case LokaiSkillLock.Up: skil.SetLockNoRelay(LokaiSkillLock.Down); skil.Update(); break; case LokaiSkillLock.Down: skil.SetLockNoRelay(LokaiSkillLock.Locked); skil.Update(); break; case LokaiSkillLock.Locked: skil.SetLockNoRelay(LokaiSkillLock.Up); skil.Update(); break; } } else { m_From.SendMessage("You may not change that."); } m_From.SendGump(new LokaiSkillsGump(m_From, m_Target, m_Selected)); } } break; } } }