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 )
{
SkillsGumpGroup newSelection = m_Groups[index];
if ( m_Selected != newSelection )
m_From.SendGump( new SkillsGump( m_From, m_Target, newSelection ) );
else
m_From.SendGump( new SkillsGump( 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.GameMaster )
{
m_From.SendGump( new EditSkillGump( m_From, m_Target, sk, m_Selected ) );
}
else
{
m_From.SendMessage( "You may not change that." );
m_From.SendGump( new SkillsGump( m_From, m_Target, m_Selected ) );
}
}
else
{
m_From.SendGump( new SkillsGump( 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 SkillsGump( m_From, m_Target, m_Selected ) );
}
}
break;
}
}
}