Exemple #1
0
        public override SKSurface Draw(GameState currentState, long frame)
        {
            Clear();

            for (int i = 0; i < Math.Min(currentState.PlayerCharacter.Skills.Count, MaxNumberOfSkills); ++i)
            {
                Skill  skill = currentState.PlayerCharacter.Skills [i];
                SKRect rect  = RectForSkill(i);

                Canvas.DrawRect(rect, CellBorder);

                SKRect bitmapRect = new SKRect(rect.Left + Padding, rect.Top + Padding, rect.Right - Padding, rect.Bottom - Padding);
                Canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(IDForSkill(skill)), bitmapRect, Styles.AntialiasPaint);

                if (skill.UnderCooldown)
                {
                    DrawCooldownOverlay(skill, bitmapRect);
                }

                if (ShowHotkey)
                {
                    DrawHotkeyOverlay(i, rect, skill.UnderCooldown);
                }
            }

            return(Surface);
        }
        public void Render(SKCanvas canvas, GameState state, Character c, int x, int y, long frame)
        {
            if (StartingFrame == long.MinValue)
            {
                StartingFrame = frame;
            }

            if (ShouldShow(frame))
            {
                Point  offset     = OffsetForSlot(c.GetSlot(state));
                SKRect bitmapRect = SKRect.Create(x + offset.X, y + offset.Y, 32, 32);
                canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(26), bitmapRect, Styles.AntialiasPaint);
            }
        }
Exemple #3
0
        static void DrawBackgroundLayer(SKSurface surface, MapLoader mapLoader, TilesetLoader tilesetLoader, int index, float scale)
        {
            var terrainTiles = mapLoader.GetTiles(index);

            for (int x = 0; x < terrainTiles.GetLength(0); ++x)
            {
                for (int y = 0; y < terrainTiles.GetLength(1); ++y)
                {
                    int id          = terrainTiles [x, y] - 1;
                    var tilesetRect = tilesetLoader.GetRect(id);
                    var renderRect  = GetRenderRect(x, y, mapLoader.TileSize, scale);

                    surface.Canvas.DrawBitmap(tilesetLoader.Tileset, tilesetRect, renderRect);
                }
            }
        }
        public override SKSurface Draw(GameState currentState, long frame)
        {
            State = currentState;
            Canvas.Clear(SKColors.Transparent);

            if (IsEnabled(currentState))
            {
                Character activeCharacter = currentState.ActiveCharacter;
                for (int i = 0; i < activeCharacter.Skills.Length; ++i)
                {
                    Skill s = activeCharacter.Skills[i];
                    int   y = 50 + (25 * i);
                    if (i == Selected)
                    {
                        SKRect bitmapRect = SKRect.Create(15, y - 22, 32, 32);
                        Canvas.DrawBitmap(Loader.Tileset, Loader.GetRect(296), bitmapRect, Styles.AntialiasPaint);
                    }
                    Canvas.DrawText(s.CosmeticName, new SKPoint(50, y), s.Available ? Styles.TextPaint : Styles.DarkTextPaint);
                }
            }

            return(Surface);
        }
        void DrawHUD(SKCanvas canvas, Character c, int x, int y)
        {
            const int BackgroundOffsetX   = 5;
            const int BackgroundOffsetY   = 15;
            const int HUDWidth            = 105;
            int       HUDHeight           = c.StatusEffects.Length > 0 ? 60 : 40;
            const int LineHeight          = 18;
            const int StatusIconHeightGap = 4;
            const int StatusIconWidthGap  = 20;

            canvas.DrawRect(SKRect.Create(x + StyleInfo.TextXOffset - BackgroundOffsetX, y + StyleInfo.TextYOffset - BackgroundOffsetY, HUDWidth, HUDHeight), Styles.TextBackground);
            canvas.DrawText(c.Name, new SKPoint(x + StyleInfo.TextXOffset, y + StyleInfo.TextYOffset), Styles.TextPaint);
            canvas.DrawText($"HP {c.Health.Current}/{c.Health.Max}", new SKPoint(x + StyleInfo.TextXOffset, LineHeight + y + StyleInfo.TextYOffset), Styles.TextPaint);

            int iconOffset = 0;

            foreach (StatusEffect effect in c.StatusEffects)
            {
                var bitmapRect = SKRect.Create(x + StyleInfo.TextXOffset + (iconOffset * StatusIconWidthGap), LineHeight + StatusIconHeightGap + y + StyleInfo.TextYOffset, 16, 16);
                canvas.DrawBitmap(StatusIconLoader.Tileset, StatusIconLoader.GetRect(GetStatusEffectNumber(effect)), bitmapRect, Styles.AntialiasPaint);
                iconOffset++;
            }
        }
Exemple #6
0
        void DrawHUD(SKCanvas canvas, Character c, int x, int y)
        {
            const int BackgroundOffsetX   = 5;
            const int BackgroundOffsetY   = 15;
            const int HUDWidth            = 85;
            const int HUDHeight           = 60;
            const int LineHeight          = 18;
            const int StatusIconHeightGap = 4;
            const int StatusIconWidthGap  = 20;

            canvas.DrawRect(SKRect.Create(x + StyleInfo.TextXOffset - BackgroundOffsetX, y + StyleInfo.TextYOffset - BackgroundOffsetY, HUDWidth, HUDHeight), Styles.TextBackground);
            canvas.DrawText(c.Name, new SKPoint(x + StyleInfo.TextXOffset, y + StyleInfo.TextYOffset), Styles.TextPaint);
            canvas.DrawText($"HP {c.Health.Current}/{c.Health.Maximum}", new SKPoint(x + StyleInfo.TextXOffset, LineHeight + y + StyleInfo.TextYOffset), Styles.TextPaint);

            // TestData - Status Icons
            int iconOffset = 0;

            foreach (int i in new int [] { 33, 42, 148, 36 })
            {
                var bitmapRect = SKRect.Create(x + StyleInfo.TextXOffset + (iconOffset * StatusIconWidthGap), LineHeight + StatusIconHeightGap + y + StyleInfo.TextYOffset, 16, 16);
                canvas.DrawBitmap(StatusIconLoader.Tileset, StatusIconLoader.GetRect(i), bitmapRect, Styles.AntialiasPaint);
                iconOffset++;
            }
        }
Exemple #7
0
        void DrawCharacter(SKCanvas canvas, int x, int y, long frame)
        {
            var tilesetRect = CharacterLoader.GetRect(StartingID + CalculateAnimationOffset(frame));

            canvas.DrawBitmap(CharacterLoader.Tileset, tilesetRect, SKRect.Create(x + StyleInfo.RenderXOffset, y + StyleInfo.RenderYOffset, StyleInfo.RenderWidth, StyleInfo.RenderHeight));
        }