Ejemplo n.º 1
0
 protected virtual void DrawLevel(Graphics2D g, Point2I position, int lightOrDark)
 {
     Color color = (lightOrDark == GameData.VARIANT_LIGHT ? new Color(16, 16, 16) : Color.Black);
     g.DrawSprite(GameData.SPR_HUD_LEVEL, lightOrDark, position + new Point2I(8, 8));
     g.DrawString(GameData.FONT_SMALL, (level + 1).ToString(), position + new Point2I(16, 8), color);
 }
Ejemplo n.º 2
0
        // Draws the ruppes and dungeon keys.
        private void DrawRupees(Graphics2D g, int lightDark)
        {
            Color black = (lightDark == GameData.VARIANT_LIGHT ? new Color(16, 16, 16) : Color.Black);
            int advancedOffset = (gameControl.IsAdvancedGame ? 8 : 0);
            Dungeon dungeon = gameControl.RoomControl.Dungeon;

            if (dungeon != null) {
                // Display the small key count.
                g.DrawSprite(GameData.SPR_HUD_KEY, lightDark, new Point2I(80 - advancedOffset, 0));
                g.DrawSprite(GameData.SPR_HUD_X, lightDark, new Point2I(88 - advancedOffset, 0));
                g.DrawString(GameData.FONT_SMALL, dungeon.NumSmallKeys.ToString(), new Point2I(96 - advancedOffset, 0), black);
            }
            else {
                // Display rupee icon.
                g.DrawSprite(GameData.SPR_HUD_RUPEE, lightDark, new Point2I(80 - advancedOffset, 0));
            }

            g.DrawString(GameData.FONT_SMALL, dynamicRupees.ToString("000"), new Point2I(80 - advancedOffset, 8), black);
        }
Ejemplo n.º 3
0
 protected virtual void DrawAmmo(Graphics2D g, Point2I position, int lightOrDark)
 {
     Color color = (lightOrDark == GameData.VARIANT_LIGHT ? new Color(16, 16, 16) : Color.Black);
     g.DrawString(GameData.FONT_SMALL, ammo[currentAmmo].Amount.ToString("00"), position + new Point2I(8, 8), color);
 }
Ejemplo n.º 4
0
        //-----------------------------------------------------------------------------
        // Drawing
        //-----------------------------------------------------------------------------
        public void DrawHeartPieces(Graphics2D g)
        {
            for (int i = 0; i < 4; i++) {
                if (i < GameControl.Inventory.PiecesOfHeart)
                    g.DrawSprite(GameData.SPR_HUD_HEART_PIECES_FULL[i], new Point2I(112, 8));
                else
                    g.DrawSprite(GameData.SPR_HUD_HEART_PIECES_EMPTY[i], new Point2I(112, 8));
            }

            g.DrawString(GameData.FONT_SMALL, GameControl.Inventory.PiecesOfHeart.ToString() + "/4", new Point2I(120, 40), new Color(16, 16, 16));
        }
Ejemplo n.º 5
0
        // Draws the ruppes and dungeon keys.
        private void DrawRupees(Graphics2D g, int lightDark)
        {
            Color black = (lightDark == GameData.VARIANT_LIGHT ? new Color(16, 16, 16) : Color.Black);
            bool inDungeon = false;
            int advancedOffset = (gameControl.IsAdvancedGame ? 8 : 0);
            int numKeys = 0;

            if (inDungeon) {
                g.DrawSprite(GameData.SPR_HUD_KEY, lightDark, new Point2I(80 - advancedOffset, 0));
                g.DrawSprite(GameData.SPR_HUD_X, lightDark, new Point2I(88 - advancedOffset, 0));
                g.DrawString(GameData.FONT_SMALL, numKeys.ToString(), new Point2I(96 - advancedOffset, 0), black);
            }
            else {
                g.DrawSprite(GameData.SPR_HUD_RUPEE, lightDark, new Point2I(80 - advancedOffset, 0));
            }
            g.DrawString(GameData.FONT_SMALL, dynamicRupees.ToString("000"), new Point2I(80 - advancedOffset, 8), black);
        }
Ejemplo n.º 6
0
        public override void Draw(Graphics2D g)
        {
            if (dungeon == null)
                return;

            // Draw the background.
            g.DrawImage(backgroundImage, Point2I.Zero);

            // TODO: Draw the dungeon name panel.

            // Draw the floors.
            Point2I floorBasePos = new Point2I();
            if (floors.Count < 6)
                floorBasePos.Y = 72 + (8 * (floors.Count / 2));
            else
                floorBasePos.Y = 88 + (4 * (floors.Count - 6));

            for (int i = 0; i < floors.Count; i++) {
                DungeonMapFloor floor = floors[i];

                if (discoveredFloors.Contains(floor)) {
                    // Draw the floor's label box on the left side of the screen.
                    Point2I floorPos = floorBasePos - new Point2I(0, i * 8);
                    string floorName = floor.FloorNumberText;
                    g.DrawString(GameData.FONT_SMALL, floorName, floorPos, new Color(248, 248, 216)); // drop shadow
                    g.DrawString(GameData.FONT_SMALL, floorName, floorPos + new Point2I(0, -1), new Color(56, 32, 16));
                    g.DrawSprite(GameData.SPR_UI_MAP_FLOOR_BOX_LEFT, GameData.VARIANT_LIGHT, floorPos + new Point2I(32, 0));
                    g.DrawSprite(GameData.SPR_UI_MAP_FLOOR_BOX_RIGHT, GameData.VARIANT_LIGHT, floorPos + new Point2I(40, 0));

                    // Draw the icons around the name box.
                    if (viewFloor == floor)
                        g.DrawSprite(GameData.SPR_UI_MAP_FLOOR_INDICATOR, GameData.VARIANT_LIGHT, floorPos + new Point2I(24, 0));
                    if (playerFloorNumber == floor.FloorNumber)
                        g.DrawSprite(GameData.SPR_UI_MAP_PLAYER, GameData.VARIANT_LIGHT, floorPos + new Point2I(36, 0));
                    if (floor.IsBossFloor && dungeon.HasCompass)
                        g.DrawSprite(GameData.SPR_UI_MAP_BOSS_FLOOR, GameData.VARIANT_LIGHT, floorPos + new Point2I(48, 0));

                    // Draw the floor's room display on the right side of the screen.
                    int discoveredFloorIndex = discoveredFloors.IndexOf(floor);
                    Point2I floorRoomDisplayPos = new Point2I(80, 40 - (80 * discoveredFloorIndex) + floorViewPosition);
                    if (floorRoomDisplayPos.Y < GameSettings.SCREEN_HEIGHT && floorRoomDisplayPos.Y > -80)
                        DrawFloor(g, floor, floorRoomDisplayPos);

                    // Draw room display cursor.
                    if (!isChangingFloors && viewFloor == floor && cursorTimer < 32) {
                        Point2I drawPos = floorRoomDisplayPos + (playerRoomLocation * 8);
                        g.DrawSprite(GameData.SPR_UI_MAP_CURSOR, GameData.VARIANT_LIGHT, drawPos);
                    }
                }
            }

            // Draw floor view traversal arrows.
            if (!isChangingFloors) {
                if (viewFloorIndex > 0)
                    g.DrawSprite(GameData.SPR_UI_MAP_ARROW_DOWN, GameData.VARIANT_LIGHT, 108, 108);
                if (viewFloorIndex < discoveredFloors.Count - 1)
                    g.DrawSprite(GameData.SPR_UI_MAP_ARROW_UP, GameData.VARIANT_LIGHT, 108, 28);
            }

            // Draw the items panel.
            if (dungeon.HasMap)
                g.DrawSprite(GameData.SPR_REWARD_MAP, GameData.VARIANT_LIGHT, 8, 110);
            if (dungeon.HasCompass)
                g.DrawSprite(GameData.SPR_REWARD_COMPASS, GameData.VARIANT_LIGHT, 32, 110);
            if (dungeon.HasBossKey)
                g.DrawSprite(GameData.SPR_REWARD_BOSS_KEY, GameData.VARIANT_LIGHT, 8, 128);
            if (dungeon.NumSmallKeys > 0) {
                g.DrawSprite(GameData.SPR_REWARD_SMALL_KEY, GameData.VARIANT_LIGHT, 32, 128);
                g.DrawString(GameData.FONT_SMALL, "X" + dungeon.NumSmallKeys.ToString(), new Point2I(40, 136), new Color(144, 136, 16)); // drop shadow
                g.DrawString(GameData.FONT_SMALL, "X" + dungeon.NumSmallKeys.ToString(), new Point2I(40, 136 - 1), new Color(32, 24, 16));
            }
        }
Ejemplo n.º 7
0
 //-----------------------------------------------------------------------------
 // Virtual
 //-----------------------------------------------------------------------------
 // Draws the item inside the inventory.
 public override void DrawSlot(Graphics2D g, Point2I position, int lightOrDark)
 {
     g.DrawSprite(sprite, position + new Point2I(4, 0));
     g.DrawString(GameData.FONT_SMALL, Amount.ToString("00"), position + new Point2I(0, 12), new Color(248, 248, 248));
 }