Exemple #1
0
 private static void SecondaryPanelControl_MouseLeave(object sender, EventArgs e)
 {
     EncounterRenderer.IsSecondaryPanelMouseDown = false;
     EncounterRenderer.IsHoveringSecondaryPanel  = false;
     EncounterRenderer.DrawSecondaryPanel();
     EncounterRenderer.DrawField();
 }
Exemple #2
0
 private static void FieldControl_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     if (!EncounterRenderer.FieldMouseDownPosition.HasValue)
     {
         EncounterRenderer.FieldMouseDownPosition = e.Location;
         EncounterRenderer.DrawField();
     }
 }
Exemple #3
0
        private static void DrawPanels()
        {
            var cols         = 4;
            var startPoint   = new Point(10, 10);
            var margin       = 5;
            var optionsCount = 10;

            for (int panel = 0; panel < optionsCount; panel++)
            {
                var topLeft = new Point(startPoint.X + (panel % cols) * (40 + margin * 2), startPoint.Y + (panel / cols) * (32 + margin * 2));

                EncounterRenderer.PanelSelectionRenderer.Draw(new Sprite
                {
                    Position = new Point(topLeft.X, topLeft.Y),
                    TexX     = 0,
                    TexY     = 32 * panel,
                    Width    = 40,
                    Height   = 32,
                    Texture  = $"battleobjects"
                }.WithTopLeftPosition(), 0);
            }

            {
                var selectedPanel = (int)(EncounterRenderer.IsSettingPrimaryPanel ? EncounterRenderer.CurrentEncounter.PrimaryPanel : EncounterRenderer.CurrentEncounter.SecondaryPanel);
                var topLeft       = new Point(startPoint.X - margin + (selectedPanel % cols) * (40 + margin * 2), startPoint.Y - margin + (selectedPanel / cols) * (32 + margin * 2));
                var bottomRight   = new Point(topLeft.X + 40 + margin * 2, topLeft.Y + 32 + margin * 2);
                EncounterRenderer.PanelSelectionRenderer.DrawQuad(new Quad
                {
                    A     = new Point(bottomRight.X, topLeft.Y),
                    B     = new Point(bottomRight.X, bottomRight.Y),
                    C     = new Point(topLeft.X, bottomRight.Y),
                    D     = new Point(topLeft.X, topLeft.Y),
                    Color = Color.FromArgb(125, Color.Wheat),
                    Type  = DrawType.Outline | DrawType.Fill
                }, 4);
            }

            var selectedPosition = EncounterRenderer.PanelSelectionMouseClickConfirmPosition ?? EncounterRenderer.PanelSelectionMouseClickPosition ?? EncounterRenderer.PanelSelectionMousePosition;

            if (selectedPosition != null)
            {
                var highlightedPanel = (selectedPosition.Value.X / (40 + 2 * margin)) + cols * (selectedPosition.Value.Y / (32 + 2 * margin));
                if (highlightedPanel < optionsCount)
                {
                    var topLeft     = new Point(startPoint.X - margin + (highlightedPanel % cols) * (40 + margin * 2), startPoint.Y - margin + (highlightedPanel / cols) * (32 + margin * 2));
                    var bottomRight = new Point(topLeft.X + 40 + margin * 2, topLeft.Y + 32 + margin * 2);
                    var color       = EncounterRenderer.PanelSelectionMouseClickPosition.HasValue ? Color.FromArgb(128, Color.DarkBlue) : Color.FromArgb(128, Color.AliceBlue);
                    EncounterRenderer.PanelSelectionRenderer.DrawQuad(new Quad
                    {
                        A     = new Point(bottomRight.X, topLeft.Y),
                        B     = new Point(bottomRight.X, bottomRight.Y),
                        C     = new Point(topLeft.X, bottomRight.Y),
                        D     = new Point(topLeft.X, topLeft.Y),
                        Color = color,
                        Type  = DrawType.Outline | DrawType.Fill
                    }, 4);
                }
                if (EncounterRenderer.PanelSelectionMouseClickConfirmPosition.HasValue && EncounterRenderer.PanelSelectionMouseClickPosition.HasValue)
                {
                    var selectedPanel = (EncounterRenderer.PanelSelectionMouseClickPosition.Value.X / (40 + 2 * margin)) + cols * (EncounterRenderer.PanelSelectionMouseClickPosition.Value.Y / (32 + 2 * margin));
                    var confirmPanel  = (EncounterRenderer.PanelSelectionMouseClickConfirmPosition.Value.X / (40 + 2 * margin)) + cols * (EncounterRenderer.PanelSelectionMouseClickConfirmPosition.Value.Y / (32 + 2 * margin));
                    if (confirmPanel < optionsCount && confirmPanel == selectedPanel)
                    {
                        if (EncounterRenderer.IsSettingPrimaryPanel)
                        {
                            EncounterRenderer.CurrentEncounter.PrimaryPanel = (Panel.PANEL)highlightedPanel;
                        }
                        else
                        {
                            EncounterRenderer.CurrentEncounter.SecondaryPanel = (Panel.PANEL)highlightedPanel;
                        }
                        EncounterRenderer.DrawField();
                        EncounterRenderer.DrawPrimaryPanel();
                        EncounterRenderer.DrawSecondaryPanel();
                    }
                    EncounterRenderer.PanelSelectionMouseClickPosition        = null;
                    EncounterRenderer.PanelSelectionMouseClickConfirmPosition = null;
                }
            }
            EncounterRenderer.PanelSelectionRenderer.Render();
        }
Exemple #4
0
        private static void DrawEnemies()
        {
            var cols         = 10;
            var startPoint   = new Point(10, 10);
            var margin       = 5;
            var optionsCount = LoadingWindowViewModel.Settings.EnemyCount;

            for (int enemyID = 0; enemyID < optionsCount; enemyID++)
            {
                if (enemyID == 0)
                {
                    var offX = 5;
                    var offY = -3;
                    EncounterRenderer.EnemySelectionRenderer.DrawQuad(new Quad
                    {
                        A     = new Point(70 + offX, 15 + offY),
                        B     = new Point(80 + offX, 25 + offY),
                        C     = new Point(20 + offX, 85 + offY),
                        D     = new Point(10 + offX, 75 + offY),
                        Color = Color.Red,
                        Type  = DrawType.Fill
                    }, 1);

                    continue;
                }

                var x = (enemyID % cols);
                var y = (enemyID / cols);

                var renderPass = y * RenderPassPadding;

                var enemyDef = Constants.BaseEnemyDefinitions[enemyID];

                if (enemyDef == null)
                {
                    continue;
                }

                foreach (var drawCall in enemyDef.DrawCalls)
                {
                    var drawnSprite = new Sprite
                    {
                        Position = new Point(drawCall.Position.X + x * (80 + margin * 2) + 40 - 10, drawCall.Position.Y + y * (80 + margin * 2) - 20),
                        TexX     = drawCall.TexturePosition.X,
                        TexY     = drawCall.TexturePosition.Y,
                        Width    = drawCall.Size.Width,
                        Height   = drawCall.Size.Height,
                        Texture  = drawCall.TextureName,
                        Scale    = new Vector2((float)(drawCall.IsReversed ? -drawCall.Scale : drawCall.Scale), (float)drawCall.Scale),
                        Rotate   = (float)drawCall.Rotate
                    };
                    if (drawCall.IsFromTopLeft)
                    {
                        drawnSprite = drawnSprite.WithTopLeftPosition();
                    }
                    EncounterRenderer.EnemySelectionRenderer.Draw(drawnSprite, renderPass);
                }
            }

            if (EncounterRenderer.CurrentEnemy != null)
            {
                var selectedEnemy = EncounterRenderer.CurrentEnemy.ID;
                var topLeft       = new Point(startPoint.X - margin + (selectedEnemy % cols) * (80 + margin * 2), startPoint.Y - margin + (selectedEnemy / cols) * (80 + margin * 2));
                var bottomRight   = new Point(topLeft.X + 80 + margin * 2, topLeft.Y + 80 + margin * 2);
                EncounterRenderer.EnemySelectionRenderer.DrawQuad(new Quad
                {
                    A     = new Point(bottomRight.X, topLeft.Y),
                    B     = new Point(bottomRight.X, bottomRight.Y),
                    C     = new Point(topLeft.X, bottomRight.Y),
                    D     = new Point(topLeft.X, topLeft.Y),
                    Color = Color.FromArgb(125, Color.Wheat),
                    Type  = DrawType.Outline | DrawType.Fill
                }, 4);
            }

            var selectedPosition = EncounterRenderer.EnemySelectionMouseClickConfirmPosition ?? EncounterRenderer.EnemySelectionMouseClickPosition ?? EncounterRenderer.EnemySelectionMousePosition;

            if (selectedPosition != null)
            {
                var highlightedEnemy = (selectedPosition.Value.X / (80 + 2 * margin)) + cols * (selectedPosition.Value.Y / (80 + 2 * margin));
                if (highlightedEnemy < optionsCount && (highlightedEnemy == 0 || Constants.BaseEnemyDefinitions[highlightedEnemy] != null))
                {
                    var topLeft     = new Point(startPoint.X - margin + (highlightedEnemy % cols) * (80 + margin * 2), startPoint.Y - margin + (highlightedEnemy / cols) * (80 + margin * 2));
                    var bottomRight = new Point(topLeft.X + 80 + margin * 2, topLeft.Y + 80 + margin * 2);
                    var color       = EncounterRenderer.EnemySelectionMouseClickPosition.HasValue ? Color.FromArgb(128, Color.DarkBlue) : Color.FromArgb(128, Color.AliceBlue);
                    EncounterRenderer.EnemySelectionRenderer.DrawQuad(new Quad
                    {
                        A     = new Point(bottomRight.X, topLeft.Y),
                        B     = new Point(bottomRight.X, bottomRight.Y),
                        C     = new Point(topLeft.X, bottomRight.Y),
                        D     = new Point(topLeft.X, topLeft.Y),
                        Color = color,
                        Type  = DrawType.Outline | DrawType.Fill
                    }, 4);
                }
                if (EncounterRenderer.EnemySelectionMouseClickConfirmPosition.HasValue && EncounterRenderer.EnemySelectionMouseClickPosition.HasValue)
                {
                    var selectedEnemy = (EncounterRenderer.EnemySelectionMouseClickPosition.Value.X / (80 + 2 * margin)) + cols * (EncounterRenderer.EnemySelectionMouseClickPosition.Value.Y / (80 + 2 * margin));
                    var confirmEnemy  = (EncounterRenderer.EnemySelectionMouseClickConfirmPosition.Value.X / (80 + 2 * margin)) + cols * (EncounterRenderer.EnemySelectionMouseClickConfirmPosition.Value.Y / (80 + 2 * margin));
                    if (confirmEnemy < optionsCount && confirmEnemy == selectedEnemy && (highlightedEnemy == 0 || Constants.BaseEnemyDefinitions[highlightedEnemy] != null))
                    {
                        EncounterRenderer.CurrentEnemy.ID = highlightedEnemy;
                        EncounterRenderer.DrawField();
                        EncounterRenderer.DrawEnemy();
                    }
                    EncounterRenderer.EnemySelectionMouseClickPosition        = null;
                    EncounterRenderer.EnemySelectionMouseClickConfirmPosition = null;
                }
            }
            EncounterRenderer.EnemySelectionRenderer.Render();
        }
Exemple #5
0
 private static void FieldControl_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     EncounterRenderer.FieldMousePosition = e.Location;
     EncounterRenderer.DrawField();
 }
Exemple #6
0
 private static void SecondaryPanelControl_MouseEnter(object sender, EventArgs e)
 {
     EncounterRenderer.IsHoveringSecondaryPanel = true;
     EncounterRenderer.DrawSecondaryPanel();
     EncounterRenderer.DrawField();
 }