Ejemplo n.º 1
0
 void renderPartyRoot(Blitter b, bool selActive)
 {
     b.PushWindow();
     wr.render(b, new Rectangle(0, 0, 200, 66), WindowRenderer.Mode.Light);
     cabedge.font_v3_2_black.Render(b, 25, 15, "XP");
     cabedge.font_v3_2_black.Render(b, 25, 35, "GP");
     cabedge.font_v3_2_black.Render(b, 55, 15, string.Format("{0}/{1}",cabedge.party.xp,cabedge.party.xpt));
     cabedge.font_v3_2_black.Render(b, 55, 35, cabedge.party.gp.ToString());
     cabedge.font_v3_1_black.RenderRight(b, 192, 10, "Level");
     cabedge.font_v3_3_black.RenderRight(b, 192, 20, cabedge.party.level.ToString());
     b.OffsetWindow(0,66);
     renderItemList(b, partyRoot.items, mainMenuNavigator.selectionAt(1), selActive, 190);
     b.PopWindow();
 }
Ejemplo n.º 2
0
            void renderEnhancementsMenu(Blitter b)
            {
                //render the tooltip
                Enhancement selEnh = null;
                if(mainMenuNavigator.submenuAt(2) != null)
                    selEnh = (mainMenuNavigator.submenuAt(2) as EnhancementSubMenu).enh;

                if(selEnh != null) {
                    b.PushWindow();

                    int targetWidth = 140;
                    V3Sysfont.StringLayoutInfo sli = cabedge.font_v3_1_black.layoutRectangle(targetWidth-25, -1, selEnh.tooltip);

                    b.OffsetWindow(140+1, 33 + locateSubmenu(b.window, mainMenuNavigator.selectionAt(2), 16, sli.size.Height + 20));
                    wr.render(b, new Rectangle(0, 0, 25+sli.size.Width+10, 10+sli.size.Height+10), WindowRenderer.Mode.Light);
                    cabedge.font_v3_1_black.renderLayout(b, 25, 10, sli);
                    b.PopWindow();
                }

                b.PushWindow();
                wr.render(b, new Rectangle(0, 0, 140, 33), WindowRenderer.Mode.Light);
                cabedge.font_v3_2_black.Render(b, 25, 10, "Equipped");
                b.OffsetWindow(0, 33);
                renderItemList(b, partyRoot.enhancements.items, mainMenuNavigator.selectionAt(2), selEnh != null, 130);
                b.PopWindow();
            }
Ejemplo n.º 3
0
            void renderItemList(Blitter b, List<Menu> items, int selIndex, bool selActive, int width)
            {
                int indent = 10;

                //indent the list
                b.OffsetWindow(indent, 0);

                int overallWidth = width + SelectionOverhang;

                //the tie
                FrameRenderer fr = new FrameRenderer(cabedge.img_ui, new Chunk[]{
                    new Chunk(75, 82, 4, 3),
                    new Chunk(75, 86, 4, 42),
                    new Chunk(75, 129, 4, 3),
                    new Chunk(80, 131, 1, 1),
                    Chunk.empty,
                    Chunk.empty,
                    Chunk.empty,
                    new Chunk(80, 82, 1, 1)});

                //the bar
                FrameRenderer fr_gray = new FrameRenderer(cabedge.img_ui, new Chunk[]{
                    new Chunk(94, 83, 5, 6),
                    new Chunk(94, 90, 5, 1),
                    new Chunk(94, 92, 5, 6),
                    new Chunk(100, 92, 1, 6),
                    new Chunk(102, 92, 5, 6),
                    new Chunk(102, 90, 5, 1),
                    new Chunk(102, 83, 5, 6),
                    new Chunk(100, 83, 1, 6)});

                FrameRenderer fr_sel = fr_gray.offset(0, 17);

                //the selActive renderer is same as green but with an endcap
                FrameRenderer fr_selActive = fr_sel.clone();
                fr_selActive.NE = new Chunk(108, 100, 5, 5);
                fr_selActive.E = new Chunk(108, 106, 5, 3);
                fr_selActive.SE = new Chunk(108, 110, 5, 5);

                //render the tie (the left,top,and bottom border)
                int tie_height = 16*items.Count+2;
                fr.render(b,new Rectangle(0,0,width,tie_height));

                //render items
                for(int i=0;i<items.Count;i++) {
                    int x = 4;
                    int y = i*16+1;
                    int w = width-4;
                    int h = 16;

                    //(render fill first so the green endcap can overlap)
                    if(i == selIndex) {
                        b.Color = MakeColor(225, 255, 208);
                        if(selActive) {
                            b.RectFill(x+5, y+6, w-10+SelectionOverhang, h-12);
                            fr_selActive.render(b, new Rectangle(x, y, w + SelectionOverhang, h));
                        } else {
                            b.RectFill(x+5, y+6, w-10, h-12);
                            fr_sel.render(b, new Rectangle(x, y, w, h));
                        }
                    } else {
                        b.Color = MakeColor(232, 232, 232);
                        b.RectFill(x+5, y+6, w-10, h-12);
                        fr_gray.render(b, new Rectangle(x, y, w, h));
                    }

                    if(items[i].label != null) {
                        int textOffset = 5;
                        //offset for aesthetics and/or icon
                        textOffset += 8;
                        cabedge.font_v3_1_black.Render(b, x+textOffset, y+5, items[i].label);
                    }
                }
            }
Ejemplo n.º 4
0
            public void renderMainMenu(Blitter b)
            {
                //title safe area offsets
                int mxofs = 20;
                int myofs = 20;

                int listwidth = 100;
                int rootMenuHeight = 66;

                listwidth++; //leave a gap before the next menus

                //title safe area
                b.ApplyWindow(mxofs, myofs, 640-mxofs*2, 480-myofs*2);

                //identify location of root menu
                int rootMenuVertOfs = locateSubmenu(b.window, mainMenuNavigator.selectionAt(0), 22, rootMenuHeight);

                //top-level party menu
                if(mainMenuNavigator.submenuAt(0) is PartyRootMenu) {
                    b.PushWindow();
                    b.OffsetWindow(listwidth, rootMenuVertOfs);

                    bool selectionA = false;
                    //if(mainMenuNavigator.menuAt(2) != null) {
                    if(mainMenuNavigator.selectionAt(1) == 1) {
                        selectionA = true;
                        int submenuOffset = 200+1;
                        b.PushWindow();
                        b.OffsetWindow(submenuOffset, rootMenuHeight + locateSubmenu(b.window, mainMenuNavigator.selectionAt(1), 16, 33));
                        renderEnhancementsMenu(b);
                        b.PopWindow();
                    }

                    renderPartyRoot(b, selectionA);
                    b.PopWindow();
                } else {
                    b.PushWindow();
                    b.OffsetWindow(listwidth, rootMenuVertOfs);
                    renderPlayerRoot(b);
                    b.PopWindow();
                }

                //--------------
                //main list

                //party item in main list
                if(mainMenuNavigator.submenuAt(0) is PartyRootMenu)
                    wr.render(b, new Rectangle(0, 0, 100+SelectionOverhang, 22), WindowRenderer.Mode.BigSelected);
                else
                    wr.render(b, new Rectangle(0, 0, 100, 22), WindowRenderer.Mode.Medium);

                string partyText = string.Format("P A R T Y  Lv. {0}",cabedge.party.level);
                cabedge.font_v3_1_black.Render(b, 7, 8, partyText);

                int level = Lib.TimerSin((int)DateTime.Now.Ticks, 12000, 8) + 8;

                int yofs = 22;
                for(int i=0;i<cabedge.party.chars.Count;i++) {
                    clr.render(b, new Point(0, yofs), i+1==mainMenuNavigator.selectionAt(0), level, cabedge.party.chars[i].name);
                    yofs+=22;
                }

                b.PopWindow();
                //----------------
            }