Esempio n. 1
0
        private void CalcTileDimensions()
        {
            Paifu.PaifuTileImage Img = new Paifu.PaifuTileImage(-1, Scale, Red);

            int ExtraTiles = 0;

            TileWidth = Img.Bmp.Width;
            TileHeight = Img.Bmp.Height;

            int CircleCount = 0;

            for (int i = 0; i < Rnd.Steps.Count; i++)
            {
                if (Rnd.Steps[i].Player != Player) continue;

                if ((Rnd.Steps[i].Type == Mahjong.StepType.STEP_RIICHI) && RiichiLimit) break;
                if (Rnd.Steps[i].Type == Mahjong.StepType.STEP_DISCARDTILE) CircleCount++;
            }
            if(HowManyDraw != -1) CircleCount = Math.Min(CircleCount, HowManyDraw);

            if (CircleCount > 18)
            {
                ExtraTiles = CircleCount - 18;
            }
            else
            {
                if (Rnd.Riichi[Player] != 0) ExtraTiles += 1;
            }

            int Rows = ((CircleCount / 6) + 1);
            if (Rows > 3) Rows = 3;

            Width = PaddingH * 2 + (TileWidth) * (6 + ExtraTiles);
            Height = 2 * PaddingV + (TileHeight * Rows);
        }
Esempio n. 2
0
        private void CalcTileDimensions()
        {
            Paifu.PaifuTileImage Img = new Paifu.PaifuTileImage(-1, Scale, Red);

            TileWidth = Img.Bmp.Width;
            TileHeight = Img.Bmp.Height;

            Width = PaddingH * 2 + (TileWidth) * (28); // crop after drawing
            Height = 2 * PaddingV + TileHeight;
        }
Esempio n. 3
0
        private int DrawTile(int Tile, int X, int Y, RotateFlipType Rotate)
        {
            Paifu.PaifuTileImage TileImage = new Paifu.PaifuTileImage(Tile, Scale, Red);
            Bitmap TileBitmap = TileImage.Bmp;

            switch (Rotate)
            {
                case RotateFlipType.Rotate90FlipNone: TileBitmap.RotateFlip(Rotate); Y += (TileHeight - TileWidth); break;
                case RotateFlipType.Rotate270FlipNone: TileBitmap.RotateFlip(Rotate); Y += (TileHeight - TileWidth); break;
            }

            G.DrawImage(TileBitmap, new Point(X, Y));

            return TileBitmap.Width;
        }
Esempio n. 4
0
        private void DrawTile(int Tile, bool Riichi, bool Nakied, bool Tsumogiri)
        {
            Paifu.PaifuTileImage TileImage = new Paifu.PaifuTileImage(Tile, Scale, Red);
            if (Nakied && HighlightNaki)
                TileImage.Colorize(NakiColor);
            if (Tsumogiri && HighlightTsumogiri)
                TileImage.Colorize(GiriColor);
            Bitmap TileBitmap = TileImage.Bmp;

            if (Riichi)
                TileBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);

            int tX = PaddingH + X;
            int tY = PaddingV + Y;

            if (Riichi)
            {
                tY += TileBitmap.Width - TileBitmap.Height;
            }

            Counter++;
            X += TileBitmap.Width;
            if ((Counter == 6) || (Counter == 12))
            {
                Y += TileBitmap.Height;
                X = 0;
            }

            G.DrawImage(TileBitmap, new Point(tX, tY));
        }