Exemplo n.º 1
0
        protected override void DrawContents(Gdk.Drawable d)
        {
            Cairo.Context g = Gdk.CairoHelper.Create(d);

            g.SelectFontFace("Lucida Console", FontSlant.Normal, FontWeight.Bold);
            g.SetFontSize(24);

            TextExtents te;


            if (IsControl || MateriaArrange.Instance.IsControl || MateriaPrompt.Instance.IsControl)
            {
                int j = Math.Min(rows + topRow, Materiatory.MATERIATORY_SIZE);

                for (int i = topRow; i < j; i++)
                {
                    Materia orb = Materiatory.Get(i);
                    if (orb != null)
                    {
                        Graphics.RenderCircle(g, new Color(1, 1, 1), 9, X + x1, Y + cy + (i - topRow) * y);
                        Graphics.RenderCircle(g, orb.Color, 7, X + x1, Y + cy + (i - topRow) * y);

                        Graphics.ShadowedText(g, orb.Name, X + x2, Y + (i - topRow + 1) * y);
                    }
                }
            }

            if (IsControl)
            {
                Graphics.RenderCursor(g, X + cx, Y + cy + (option - topRow) * y);
            }

            ((IDisposable)g.Target).Dispose();
            ((IDisposable)g).Dispose();
        }
Exemplo n.º 2
0
        public override void ControlHandle(Key k)
        {
            switch (k)
            {
            case Key.Up:
                if (option > 0)
                {
                    option--;
                }
                if (topRow > option)
                {
                    topRow--;
                }
                break;

            case Key.Down:
                if (option < Materiatory.MATERIATORY_SIZE - 1)
                {
                    option++;
                }
                if (topRow < option - rows + 1)
                {
                    topRow++;
                }
                break;

            case Key.X:
                if (trashing)
                {
                    MenuScreen.MateriaScreen.ChangeControl(MateriaArrange.Instance);
                }
                else
                {
                    MenuScreen.MateriaScreen.ChangeToDefaultControl();
                }
                trashing = false;
                break;

            case Key.Circle:
                if (Trashing)
                {
                    MenuScreen.MateriaScreen.ChangeControl(MateriaPrompt.Instance);
                    break;
                }
                Materia neworb = Materiatory.Get(option);
                Materia oldorb;
                switch (MateriaTop.Instance.OptionY)
                {
                case 0:
                    oldorb = Selected.Weapon.Slots[MateriaTop.Instance.OptionX];
                    if (oldorb != null)
                    {
                        oldorb.Detach(Selected);
                    }
                    Materiatory.Put(oldorb, option);
                    if (neworb != null)
                    {
                        neworb.Attach(Selected);
                    }
                    Selected.Weapon.AttachMateria(neworb, MateriaTop.Instance.OptionX);
                    MenuScreen.MateriaScreen.ChangeToDefaultControl();
                    break;

                case 1:
                    oldorb = Selected.Armor.Slots[MateriaTop.Instance.OptionX];
                    if (oldorb != null)
                    {
                        oldorb.Detach(Selected);
                    }
                    Materiatory.Put(oldorb, option);
                    if (neworb != null)
                    {
                        neworb.Attach(Selected);
                    }
                    Selected.Armor.AttachMateria(neworb, MateriaTop.Instance.OptionX);
                    MenuScreen.MateriaScreen.ChangeToDefaultControl();
                    break;

                default: break;
                }
                break;

            default:
                break;
            }
        }