private static void SecondaryPanelControl_MouseLeave(object sender, EventArgs e) { EncounterRenderer.IsSecondaryPanelMouseDown = false; EncounterRenderer.IsHoveringSecondaryPanel = false; EncounterRenderer.DrawSecondaryPanel(); EncounterRenderer.DrawField(); }
private static void FieldControl_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (!EncounterRenderer.FieldMouseDownPosition.HasValue) { EncounterRenderer.FieldMouseDownPosition = e.Location; EncounterRenderer.DrawField(); } }
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(); }
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(); }
private static void FieldControl_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { EncounterRenderer.FieldMousePosition = e.Location; EncounterRenderer.DrawField(); }
private static void SecondaryPanelControl_MouseEnter(object sender, EventArgs e) { EncounterRenderer.IsHoveringSecondaryPanel = true; EncounterRenderer.DrawSecondaryPanel(); EncounterRenderer.DrawField(); }