| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- using Microsoft.VisualBasic.PowerPacks;
- using Server.MirForms.VisualMapInfo.Class;
- using Server.MirEnvir;
- using Server.MirDatabase;
- namespace Server.MirForms.VisualMapInfo.Control
- {
- public partial class RespawnEntry : UserControl
- {
- public List<int> IndexList = new List<int>();
- public Envir Envir => SMain.EditEnvir;
- public RectangleShape RegionHighlight = new RectangleShape();
- public int MonsterIndex;
- public bool RegionHidden = false;
- Point MouseDownLocation;
- public int X, Y;
- public byte Direction;
- public ushort RandomDelay;
- public ushort tempRange;
- public ushort Range
- {
- get => (ushort)(tempRange);
- set
- {
- tempRange = 0;
- if (value > 0)
- tempRange = (ushort)(value);
- RegionHighlight.Size = new Size(
- (tempRange * 2) * VisualizerGlobal.ZoomLevel,
- (tempRange * 2) * VisualizerGlobal.ZoomLevel);
- RegionHighlight.Left = (X - value) * VisualizerGlobal.ZoomLevel;
- RegionHighlight.Top = (Y - value) * VisualizerGlobal.ZoomLevel;
- Details.Text =
- $"C D X: {X.ToString()} | Y: {Y.ToString()} | Range: {Range.ToString()}";
- }
- }
- public string RoutePath = string.Empty;
- public RespawnEntry()
- {
- InitializeComponent();
- InitializeRegionHighlight();
- }
- private void InitializeRegionHighlight()
- {
- RegionHighlight.Visible = false;
- RegionHighlight.BorderColor = Color.Lime;
- RegionHighlight.FillColor = Color.FromArgb(30, 200, 0, 200);
- RegionHighlight.BorderWidth = 2;
- RegionHighlight.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Region_MouseMove);
- RegionHighlight.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Region_MouseDown);
- RegionHighlight.MouseEnter += new System.EventHandler(this.Region_MouseEnter);
- RegionHighlight.MouseLeave += new System.EventHandler(this.Region_MouseLeave);
- RegionHighlight.MouseClick += new System.Windows.Forms.MouseEventHandler(RegionHighlight_MouseClick);
- RegionHighlight.MouseHover += RegionHighlight_MouseHover;
- }
- #region "Start RegionHighlight Methods"
- private void Region_MouseLeave(object sender, EventArgs e)
- {
- if (RegionHighlight.Visible)
- this.BackColor = Color.White;
- else
- this.BackColor = Color.Silver;
- RegionHighlight.BorderColor = Color.Lime;
- RegionHighlight.FillStyle = FillStyle.Transparent;
- }
- private void Region_MouseEnter(object sender, EventArgs e)
- {
- if (!RegionHighlight.Visible) return;
- this.BackColor = Color.MediumOrchid;
- RegionHighlight.BorderColor = Color.MediumOrchid;
- RegionHighlight.FillStyle = FillStyle.Solid;
- RegionHighlight.Cursor = VisualizerGlobal.Cursor;
- }
- private void Region_MouseDown(object sender, MouseEventArgs e)
- {
- RegionHighlight.BringToFront();
- this.BackColor = Color.Orange;
- RegionHighlight.BorderColor = Color.Orange;
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Select) return;
- MouseDownLocation = e.Location;
- }
- private void Region_MouseMove(object sender, MouseEventArgs e)
- {
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Select) return;
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Add) return;
- if (e.Button == System.Windows.Forms.MouseButtons.Left)
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Move)
- {
- RegionHighlight.Left = e.X + RegionHighlight.Left - MouseDownLocation.X;
- RegionHighlight.Top = e.Y + RegionHighlight.Top - MouseDownLocation.Y;
- X = (RegionHighlight.Left + Range) / VisualizerGlobal.ZoomLevel;
- Y = (RegionHighlight.Top + Range) / VisualizerGlobal.ZoomLevel;
- Range = tempRange;
- }
- else if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Resize)
- Range += (ushort)((MouseDownLocation.X - e.Location.X) / VisualizerGlobal.ZoomLevel);
- if (e.Button == System.Windows.Forms.MouseButtons.Right)
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Move)
- Range += (ushort)((MouseDownLocation.X - e.Location.X) / VisualizerGlobal.ZoomLevel);
- else
- return;
- }
- private void RegionHighlight_MouseClick(object sender, MouseEventArgs e)
- {
- if (VisualizerGlobal.SelectedTool == VisualizerGlobal.Tool.Focus)
- {
- VisualizerGlobal.SelectedFocusType = VisualizerGlobal.FocusType.Respawn;
- VisualizerGlobal.FocusRespawnEntry = this;
- VisualizerGlobal.FocusModeActive = true;
- }
- MonsterComboBox.Focus();
- }
- private void RegionHighlight_MouseHover(object sender, EventArgs e)
- {
- RegionHighlight.Cursor = VisualizerGlobal.Cursor;
- }
- #endregion "End RegionHighlight Methods"
- public void UpdateForFocus()
- {
- RegionHighlight.Left = X * VisualizerGlobal.ZoomLevel;
- RegionHighlight.Top = Y * VisualizerGlobal.ZoomLevel;
- Range = tempRange;
- }
- public void RemoveEntry()
- {
- RegionHighlight.Dispose();
- this.Dispose();
- }
- public void HideControl()
- {
- RegionHighlight.Visible = false;
- }
- public void ShowControl()
- {
- RegionHighlight.Visible = true;
- }
- public void HideRegion()
- {
- RegionHighlight.Visible = false;
- this.BackColor = Color.Silver;
- RegionHidden = true;
- }
- public void ShowRegion()
- {
- RegionHighlight.Visible = true;
- this.BackColor = Color.White;
- RegionHidden = false;
- }
- private void RespawnEntry_Load(object sender, EventArgs e)
- {
- for (int i = 0; i < Envir.MonsterInfoList.Count; i++) MonsterComboBox.Items.Add(Envir.MonsterInfoList[i]);
- MonsterComboBox.SelectedItem = Envir.MonsterInfoList.FirstOrDefault(x => x.Index == MonsterIndex);
- Details.Text =
- $"C D X: {X.ToString()} | Y: {Y.ToString()} | Range: {Range.ToString()}";
- }
- private void MonsterComboBox_SelectedIndexChanged(object sender, EventArgs e)
- {
- MonsterInfo info = MonsterComboBox.SelectedItem as MonsterInfo;
- if (info == null) return;
- MonsterIndex = info.Index;
- }
- private void Details_DoubleClick(object sender, EventArgs e)
- {
- Forms.RespawnsDetailForm RespawnDetail = new Forms.RespawnsDetailForm();
- RespawnDetail.X.Text = X.ToString();
- RespawnDetail.Y.Text = Y.ToString();
- RespawnDetail.Spread.Text = Range.ToString();
- RespawnDetail.Count.Text = Count.Text;
- RespawnDetail.Delay.Text = Delay.Text;
- RespawnDetail.RoutePath.Text = RoutePath;
- RespawnDetail.Direction.Text = Direction.ToString();
- RespawnDetail.RDelay.Text = RandomDelay.ToString();
- RespawnDetail.ShowDialog();
- X = Convert.ToInt16(RespawnDetail.X.Text);
- Y = Convert.ToInt16(RespawnDetail.Y.Text);
- Range = Convert.ToUInt16(RespawnDetail.Spread.Text);
- Count.Text = RespawnDetail.Count.Text;
- Delay.Text = RespawnDetail.Delay.Text;
- RoutePath = RespawnDetail.RoutePath.Text;
- Direction = byte.Parse(RespawnDetail.Direction.Text);
- RandomDelay = ushort.Parse(RespawnDetail.RDelay.Text);
- RespawnDetail.Dispose();
- }
- }
- }
|