Exemple #1
0
        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;
            }
            }
        }
Exemple #4
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 );
                }
            }
        }
Exemple #5
0
        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 );
        }