public override void OnMouseClick(MouseEventArgs e) { if (!Enabled) { return; } if (Buttons == e.Button) { if (LastClickTime + SystemInformation.DoubleClickTime >= Main.Time) { OnMouseDoubleClick(e); return; } } else { LastClickTime = 0; } if (ActiveControl != null && ActiveControl.IsMouseOver(e.Location) && ActiveControl != this) { ActiveControl.OnMouseClick(e); } else { base.OnMouseClick(e); } ClickedControl = ActiveControl; LastClickTime = Main.Time; Buttons = e.Button; }
public override void OnMouseClick(MouseEventArgs e) { if (!Enabled) { return; } if (_buttons == e.Button) { if (_lastClickTime + SystemInformation.DoubleClickTime >= CMain.Time) { OnMouseDoubleClick(e); return; } } else { _lastClickTime = 0; } if (ActiveControl != null && ActiveControl.IsMouseOver(CMain.MPoint) && ActiveControl != this) { ActiveControl.OnMouseClick(e); } else { base.OnMouseClick(e); } _clickedControl = ActiveControl; _lastClickTime = CMain.Time; _buttons = e.Button; }
private void RemoveControl(MirControl Control) { Controls.Remove(Control); OnControlRemoved(); if (Controls.Count == 0) { Controls = null; } }
private void AddControl(MirControl Control) { if (Controls == null) { Controls = new List <MirControl>(); } Controls.Add(Control); OnControlAdded(); }
protected virtual void Deactivate() { if (ActiveControl != this) { return; } ActiveControl = null; Moving = false; _movePoint = Point.Empty; }
protected virtual void Activate() { if (ActiveControl == this) { return; } if (ActiveControl != null) { ActiveControl.Deactivate(); } ActiveControl = this; }
public void InsertControl(int index, MirControl control) { if (control.Parent != this) { control.Parent = null; control._parent = this; } if (index >= Controls.Count) { Controls.Add(control); } else { Controls.Insert(index, control); OnControlAdded(); } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (!disposing) { return; } if (ActiveScene == this) { ActiveScene = null; } _buttons = 0; _lastClickTime = 0; _clickedControl = null; }
public void InsertControl(int Index, MirControl Control) { if (Controls == null) { Controls = new List <MirControl>(); } if (Control.Parent != this) { Control.Parent = null; Control._Parent = this; } if (Index >= Controls.Count) { Controls.Add(Control); } else { Controls.Insert(Index, Control); OnControlAdded(); } }
public MirControl NeedInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region LEVEL if (realItem.RequiredAmount > 0) { count++; string text; Color colour = Color.White; switch (realItem.RequiredType) { case RequiredType.Level: text = string.Format("Required Level : {0}", realItem.RequiredAmount); if (MapObject.User.Level < realItem.RequiredAmount) colour = Color.Red; break; case RequiredType.AC: text = string.Format("Required AC : {0}", realItem.RequiredAmount); if (MapObject.User.MaxAC < realItem.RequiredAmount) colour = Color.Red; break; case RequiredType.MAC: text = string.Format("Required MAC : {0}", realItem.RequiredAmount); if (MapObject.User.MaxMAC < realItem.RequiredAmount) colour = Color.Red; break; case RequiredType.DC: text = string.Format("Required DC : {0}", realItem.RequiredAmount); if (MapObject.User.MaxDC < realItem.RequiredAmount) colour = Color.Red; break; case RequiredType.MC: text = string.Format("Required MC : {0}", realItem.RequiredAmount); if (MapObject.User.MaxMC < realItem.RequiredAmount) colour = Color.Red; break; case RequiredType.SC: text = string.Format("Required SC : {0}", realItem.RequiredAmount); if (MapObject.User.MaxSC < realItem.RequiredAmount) colour = Color.Red; break; default: text = "Unknown Type Required"; break; } MirLabel LEVELLabel = new MirLabel { AutoSize = true, ForeColour = colour, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, LEVELLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, LEVELLabel.DisplayRectangle.Bottom)); } #endregion #region CLASS if (realItem.RequiredClass != RequiredClass.None) { count++; Color colour = Color.White; switch (MapObject.User.Class) { case MirClass.Warrior: if (!realItem.RequiredClass.HasFlag(RequiredClass.Warrior)) colour = Color.Red; break; case MirClass.Wizard: if (!realItem.RequiredClass.HasFlag(RequiredClass.Wizard)) colour = Color.Red; break; case MirClass.Taoist: if (!realItem.RequiredClass.HasFlag(RequiredClass.Taoist)) colour = Color.Red; break; case MirClass.Assassin: if (!realItem.RequiredClass.HasFlag(RequiredClass.Assassin)) colour = Color.Red; break; case MirClass.Archer: if (!realItem.RequiredClass.HasFlag(RequiredClass.Archer)) colour = Color.Red; break; } MirLabel CLASSLabel = new MirLabel { AutoSize = true, ForeColour = colour, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Class Required : {0}", realItem.RequiredClass) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CLASSLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CLASSLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public MirControl WeightInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; int minValue = 0; int maxValue = 0; int addValue = 0; #region HANDWEIGHT minValue = realItem.HandWeight; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel HANDWEIGHTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Hand Weight + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Hand Weight + {0} (+{1})" : "Hand Weight + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, HANDWEIGHTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, HANDWEIGHTLabel.DisplayRectangle.Bottom)); } #endregion #region WEARWEIGHT minValue = realItem.WearWeight; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel WEARWEIGHTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Wear Weight + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Wear Weight + {0} (+{1})" : "Wear Weight + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, WEARWEIGHTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, WEARWEIGHTLabel.DisplayRectangle.Bottom)); } #endregion #region BAGWEIGHT minValue = realItem.BagWeight; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel BAGWEIGHTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Bag Weight + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Bag Weight + {0} (+{1})" : "Bag Weight + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BAGWEIGHTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BAGWEIGHTLabel.DisplayRectangle.Bottom)); } #endregion #region FASTRUN minValue = realItem.CanFastRun==true?1:0; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel BAGWEIGHTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Instant Run") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BAGWEIGHTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BAGWEIGHTLabel.DisplayRectangle.Bottom)); } #endregion #region TIME & RANGE minValue = 0; maxValue = 0; addValue = 0; if (HoverItem.Info.Type == ItemType.Potion && HoverItem.Info.Durability > 0) { count++; MirLabel TNRLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format(HoverItem.Info.Shape == 3 ? "Time : {0}s" : "Range : {0}", HoverItem.Info.Durability) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, TNRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, TNRLabel.DisplayRectangle.Bottom)); } if (HoverItem.Info.Type == ItemType.Transform && HoverItem.Info.Durability > 0) { count++; MirLabel TNRLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Time : {0}", CreateTimeString(HoverItem.Info.Durability)) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, TNRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, TNRLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public MirControl AttackInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); bool fishingItem = false; switch (HoverItem.Info.Type) { case ItemType.Hook: case ItemType.Float: case ItemType.Bait: case ItemType.Finder: case ItemType.Reel: fishingItem = true; break; case ItemType.Weapon: if (HoverItem.Info.Shape == 49 || HoverItem.Info.Shape == 50) fishingItem = true; break; case ItemType.Pets: if (HoverItem.Info.Shape == 26) return null; break; default: fishingItem = false; break; } int count = 0; int minValue = 0; int maxValue = 0; int addValue = 0; string text = ""; #region Dura gem minValue = realItem.Durability; if (minValue > 0 && realItem.Type == ItemType.Gem) { count++; text = string.Format("Adds {0}Durability", minValue / 1000); MirLabel DuraLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DuraLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DuraLabel.DisplayRectangle.Bottom)); } #endregion #region DC minValue = realItem.MinDC; maxValue = realItem.MaxDC; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.DC : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "DC + {0}~{1} (+{2})" : "DC + {0}~{1}", minValue, maxValue + addValue, addValue); else text = string.Format("Adds {0}DC",minValue + maxValue + addValue); MirLabel DCLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("DC + {0}~{1}", minValue, maxValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DCLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DCLabel.DisplayRectangle.Bottom)); } #endregion #region MC minValue = realItem.MinMC; maxValue = realItem.MaxMC; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.MC : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "MC + {0}~{1} (+{2})" : "MC + {0}~{1}", minValue, maxValue + addValue, addValue); else text = string.Format("Adds {0}MC", minValue + maxValue + addValue); MirLabel MCLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("MC + {0}~{1}", minValue, maxValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MCLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MCLabel.DisplayRectangle.Bottom)); } #endregion #region SC minValue = realItem.MinSC; maxValue = realItem.MaxSC; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.SC : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "SC + {0}~{1} (+{2})" : "SC + {0}~{1}", minValue, maxValue + addValue, addValue); else text = string.Format("Adds {0}SC", minValue + maxValue + addValue); MirLabel SCLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("SC + {0}~{1}", minValue, maxValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, SCLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, SCLabel.DisplayRectangle.Bottom)); } #endregion #region LUCK / SUCCESS minValue = realItem.Luck; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.Luck : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel LUCKLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format(minValue + addValue > 0 ? "Luck + {0} " : "Curse + {0}", minValue + addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, LUCKLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, LUCKLabel.DisplayRectangle.Bottom)); } #endregion #region ACC minValue = realItem.Accuracy; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.Accuracy : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "Accuracy: + {0} (+{1})" : "Accuracy: + {0}", minValue + addValue, addValue); else text = string.Format("Adds {0}Accuracy", minValue + maxValue + addValue); MirLabel ACCLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Accuracy + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, ACCLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, ACCLabel.DisplayRectangle.Bottom)); } #endregion #region HOLY minValue = realItem.Holy; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel HOLYLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Holy + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Holy: + {0} (+{1})" : "Holy: + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, HOLYLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, HOLYLabel.DisplayRectangle.Bottom)); } #endregion #region ASPEED minValue = realItem.AttackSpeed; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.AttackSpeed : 0; if (minValue != 0 || maxValue != 0 || addValue != 0) { string plus = (addValue + minValue < 0) ? "" : "+"; count++; if (HoverItem.Info.Type != ItemType.Gem) { string negative = "+"; if (addValue < 0) negative = ""; text = string.Format(addValue != 0 ? "A.Speed: " + plus + "{0} ({2}{1})" : "A.Speed: " + plus + "{0}", minValue + addValue, addValue, negative); //text = string.Format(addValue > 0 ? "A.Speed: + {0} (+{1})" : "A.Speed: + {0}", minValue + addValue, addValue); } else text = string.Format("Adds {0}A.Speed", minValue + maxValue + addValue); MirLabel ASPEEDLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("A.Speed + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, ASPEEDLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, ASPEEDLabel.DisplayRectangle.Bottom)); } #endregion #region FREEZING minValue = realItem.Freezing; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.Freezing : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "Freezing: + {0} (+{1})" : "Freezing: + {0}", minValue + addValue, addValue); else text = string.Format("Adds {0}Freezing", minValue + maxValue + addValue); MirLabel FREEZINGLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Freezing + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, FREEZINGLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, FREEZINGLabel.DisplayRectangle.Bottom)); } #endregion #region POISON minValue = realItem.PoisonAttack; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.PoisonAttack : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "Poison: + {0} (+{1})" : "Poison: + {0}", minValue + addValue, addValue); else text = string.Format("Adds {0}Poison", minValue + maxValue + addValue); MirLabel POISONLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Poison + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, POISONLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, POISONLabel.DisplayRectangle.Bottom)); } #endregion #region CRITICALRATE / FLEXIBILITY minValue = realItem.CriticalRate; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.CriticalRate : 0; if ((minValue > 0 || maxValue > 0 || addValue > 0) && (realItem.Type != ItemType.Gem)) { count++; MirLabel CRITICALRATELabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Critical Chance + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Critical Chance: + {0} (+{1})" : "Critical Chance: + {0}", minValue + addValue, addValue) }; if(fishingItem) { CRITICALRATELabel.Text = string.Format(addValue > 0 ? "Flexibility: + {0} (+{1})" : "Flexibility: + {0}", minValue + addValue, addValue); } ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CRITICALRATELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CRITICALRATELabel.DisplayRectangle.Bottom)); } #endregion #region CRITICALDAMAGE minValue = realItem.CriticalDamage; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.CriticalDamage : 0; if ((minValue > 0 || maxValue > 0 || addValue > 0) && (realItem.Type != ItemType.Gem)) { count++; MirLabel CRITICALDAMAGELabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Critical Damage + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Critical Damage: + {0} (+{1})" : "Critical Damage: + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CRITICALDAMAGELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CRITICALDAMAGELabel.DisplayRectangle.Bottom)); } #endregion #region Reflect minValue = realItem.Reflect; maxValue = 0; addValue = 0; if ((minValue > 0 || maxValue > 0 || addValue > 0) && (realItem.Type != ItemType.Gem)) { count++; MirLabel ReflectLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Reflect chance: {0}", minValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, ReflectLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, ReflectLabel.DisplayRectangle.Bottom)); } #endregion #region Hpdrain minValue = realItem.HpDrainRate; maxValue = 0; addValue = 0; if ((minValue > 0 || maxValue > 0 || addValue > 0) && (realItem.Type != ItemType.Gem)) { count++; MirLabel HPdrainLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("HP Drain Rate: {0}%", minValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, HPdrainLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, HPdrainLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public void DisposeItemLabel() { if (ItemLabel != null && !ItemLabel.IsDisposed) ItemLabel.Dispose(); ItemLabel = null; }
private void Control_MouseEnter(object sender, EventArgs e) { int selectedCreature = BeforeAfterDraw(); if (selectedCreature < 0) return; if (sender == FullnessMin) { HoverLabel.Visible = true; HoverLabel.Text = "Needed " + GameScene.User.IntelligentCreatures[selectedCreature].CreatureRules.MinimalFullness.ToString(); HoverLabel.Size = new Size(150, 15); HoverLabel.Location = new Point((FullnessMin.Location.X + 8) - (HoverLabel.Size.Width / 2), FullnessFG.Location.Y - 18); } if (sender == FullnessFG || sender == FullnessBG) { HoverLabel.Visible = true; HoverLabel.Text = GameScene.User.IntelligentCreatures[selectedCreature].Fullness.ToString() + " / 10000"; HoverLabel.Size = FullnessFG.Size; HoverLabel.Location = new Point(FullnessFG.Location.X, FullnessFG.Location.Y - 2); HoverLabelParent = FullnessFG; } if (sender == BlackStoneImageBG || sender == BlackStoneImageFG) { HoverLabel.Visible = true; HoverLabel.Text = string.Format("{0}", Functions.PrintTimeSpanFromSeconds(blackstoneProduceTime - GameScene.User.IntelligentCreatures[selectedCreature].BlackstoneTime)); HoverLabel.Size = BlackStoneImageBG.Size; HoverLabel.Location = new Point(BlackStoneImageBG.Location.X + 5, BlackStoneImageBG.Location.Y - 2); HoverLabelParent = BlackStoneImageFG; } }
public FishingDialog() { Index = 1340; Library = Libraries.Prguse; Movable = true; Sort = true; Location = Center; BeforeDraw += FishingDialog_BeforeDraw; TitleLabel = new MirLabel { Location = new Point(10, 5), DrawFormat = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter, Parent = this, NotControl = true, Size = new Size(180, 20), }; FishingRod = new MirControl { Parent = this, Location = new Point(0, 30), NotControl = true, }; FishingRod.BeforeDraw += FishingRod_BeforeDraw; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(175, 3), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => Hide(); Grid = new MirItemCell[Enum.GetNames(typeof(FishingSlot)).Length]; Grid[(int)FishingSlot.Hook] = new MirItemCell { ItemSlot = (int)FishingSlot.Hook, GridType = MirGridType.Fishing, Parent = this, Size = new Size(34, 30), Location = new Point(17, 203), }; Grid[(int)FishingSlot.Float] = new MirItemCell { ItemSlot = (int)FishingSlot.Float, GridType = MirGridType.Fishing, Parent = this, Size = new Size(34, 30), Location = new Point(17, 241), }; Grid[(int)FishingSlot.Bait] = new MirItemCell { ItemSlot = (int)FishingSlot.Bait, GridType = MirGridType.Fishing, Parent = this, Size = new Size(34, 30), Location = new Point(57, 241), }; Grid[(int)FishingSlot.Finder] = new MirItemCell { ItemSlot = (int)FishingSlot.Finder, GridType = MirGridType.Fishing, Parent = this, Size = new Size(34, 30), Location = new Point(97, 241), }; Grid[(int)FishingSlot.Reel] = new MirItemCell { ItemSlot = (int)FishingSlot.Reel, GridType = MirGridType.Fishing, Parent = this, Size = new Size(34, 30), Location = new Point(137, 241), }; }
public MirControl NameInfoLabel(UserItem item, bool Inspect = false) { byte level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); MirLabel nameLabel = new MirLabel { AutoSize = true, ForeColour = GradeNameColor(HoverItem.Info.Grade), Location = new Point(4, 4), OutLine = true, Parent = ItemLabel, Text = HoverItem.Info.Grade != ItemGrade.None ? HoverItem.Info.FriendlyName + "\n" + HoverItem.Info.Grade.ToString() : HoverItem.Info.FriendlyName }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, nameLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, nameLabel.DisplayRectangle.Bottom)); string text = ""; if (HoverItem.Info.StackSize > 1) { text += string.Format(" Count {0}", HoverItem.Count); } if (HoverItem.Info.Durability > 0) { switch (HoverItem.Info.Type) { case ItemType.Amulet: text += string.Format(" Usage {0}/{1}", HoverItem.CurrentDura, HoverItem.MaxDura); break; case ItemType.Ore: text += string.Format(" Purity {0}", Math.Round(HoverItem.CurrentDura / 1000M)); break; case ItemType.Meat: text += string.Format(" Quality {0}", Math.Round(HoverItem.CurrentDura / 1000M)); break; case ItemType.Mount: text += string.Format(" Loyalty {0} / {1}", HoverItem.CurrentDura, HoverItem.MaxDura); break; case ItemType.Food: text += string.Format(" Nutrition {0}", HoverItem.CurrentDura); break; default: text += string.Format(" Durability {0}/{1}", Math.Round(HoverItem.CurrentDura / 1000M), Math.Round(HoverItem.MaxDura / 1000M)); break; } } MirLabel etcLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, nameLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = HoverItem.Info.Type.ToString() + "\n" + "W " + HoverItem.Weight + text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, etcLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, etcLabel.DisplayRectangle.Bottom + 4)); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; }
public MainDialog() { Index = Settings.HighResolution ? 2 : 1; Library = Libraries.Prguse; Location = new Point(0, Settings.ScreenHeight - Size.Height); PixelDetect = true; InventoryButton = new MirButton { HoverIndex = 1904, Index = 1903, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 96, 76), Parent = this, PressedIndex = 1905, Sound = SoundList.ButtonA, }; InventoryButton.Click += (o, e) => { if (GameScene.Scene.InventoryDialog.Visible) GameScene.Scene.InventoryDialog.Hide(); else GameScene.Scene.InventoryDialog.Show(); }; CharacterButton = new MirButton { HoverIndex = 1901, Index = 1900, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 119, 76), Parent = this, PressedIndex = 1902, Sound = SoundList.ButtonA, }; CharacterButton.Click += (o, e) => { if (GameScene.Scene.CharacterDialog.Visible && GameScene.Scene.CharacterDialog.CharacterPage.Visible) GameScene.Scene.CharacterDialog.Hide(); else { GameScene.Scene.CharacterDialog.Show(); GameScene.Scene.CharacterDialog.ShowCharacterPage(); } }; SkillButton = new MirButton { HoverIndex = 1907, Index = 1906, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 73, 76), Parent = this, PressedIndex = 1908, Sound = SoundList.ButtonA, }; SkillButton.Click += (o, e) => { if (GameScene.Scene.CharacterDialog.Visible && GameScene.Scene.CharacterDialog.SkillPage.Visible) GameScene.Scene.CharacterDialog.Hide(); else { GameScene.Scene.CharacterDialog.Show(); GameScene.Scene.CharacterDialog.ShowSkillPage(); } }; QuestButton = new MirButton { HoverIndex = 1910, Index = 1909, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 50, 76), Parent = this, PressedIndex = 1911, Sound = SoundList.ButtonA, }; OptionButton = new MirButton { HoverIndex = 1913, Index = 1912, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 27, 76), Parent = this, PressedIndex = 1914, Sound = SoundList.ButtonA, }; OptionButton.Click += (o, e) => { if (!GameScene.Scene.OptionDialog.Visible) GameScene.Scene.OptionDialog.Show(); else GameScene.Scene.OptionDialog.Hide(); }; MenuButton = new MirButton { HoverIndex = 1961, Index = 1960, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 55, 35), Parent = this, PressedIndex = 1962, Sound = SoundList.ButtonC, }; MenuButton.Click += (o, e) => { if (!GameScene.Scene.MenuDialog.Visible) GameScene.Scene.MenuDialog.Show(); else GameScene.Scene.MenuDialog.Hide(); }; HealthOrb = new MirControl { Parent = this, Location = new Point(0, 30), NotControl = true, }; HealthOrb.BeforeDraw += HealthOrb_BeforeDraw; HealthLabel = new MirLabel { AutoSize = true, Location = new Point(0, 32), Parent = HealthOrb, }; HealthLabel.SizeChanged += Label_SizeChanged; ManaLabel = new MirLabel { AutoSize = true, Location = new Point(0, 50), Parent = HealthOrb, }; ManaLabel.SizeChanged += Label_SizeChanged; LevelLabel = new MirLabel { AutoSize = true, Parent = this, Location = new Point(5, 108), }; CharacterName = new MirLabel { DrawFormat = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter, Parent = this, Location = new Point(6, 122), Size = new Size(90, 16) }; ExperienceBar = new MirImageControl { Index = Settings.HighResolution ? 8 : 7, Library = Libraries.Prguse, Location = new Point(9, 143), Parent = this, DrawImage = false, NotControl = true, }; ExperienceBar.BeforeDraw += ExperienceBar_BeforeDraw; ExperienceLabel = new MirLabel { AutoSize = true, Parent = ExperienceBar, NotControl = true, }; GoldLabel = new MirLabel { DrawFormat = TextFormatFlags.VerticalCenter, Font = new Font(Settings.FontName, 8F), Location = new Point(Settings.ScreenWidth - 105, 119), Parent = this, Size = new Size(99, 13), Sound = SoundList.Gold, }; GoldLabel.Click += (o, e) => { if (GameScene.SelectedCell == null) GameScene.PickedUpGold = !GameScene.PickedUpGold && GameScene.Gold > 0; }; WeightBar = new MirImageControl { Index = 76, Library = Libraries.Prguse, Location = new Point(Settings.ScreenWidth - 105, 103), Parent = this, DrawImage = false, NotControl = true, }; WeightBar.BeforeDraw += WeightBar_BeforeDraw; WeightLabel = new MirLabel { Parent = this, Location = new Point(Settings.ScreenWidth - 30, 101), Size = new Size(26, 14), }; AModeLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, OutLineColour = Color.Black, Parent = this, Location = new Point(115, 125) }; PModeLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, OutLineColour = Color.Black, Parent = this, Location = new Point(230, 125), Visible = false }; TerritoryLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, OutLineColour = Color.Black, Parent = this, Location = new Point(400, 125) }; }
public void CreateItemLabel(UserItem item) { if (item == null) { DisposeItemLabel(); HoverItem = null; return; } if (item == HoverItem && ItemLabel != null && !ItemLabel.IsDisposed) return; HoverItem = item; ItemLabel = new MirControl { BackColour = Color.FromArgb(255, 0, 24, 48), Border = true, BorderColour = Color.FromArgb(144, 148, 48), DrawControlTexture = true, NotControl = true, Parent = this, Opacity = 0.7F, Visible = false }; MirLabel nameLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, 4), OutLine = false, Parent = ItemLabel, Text = HoverItem.Info.Name }; ItemLabel.Size = new Size(nameLabel.DisplayRectangle.Right + 4, nameLabel.DisplayRectangle.Bottom); if (HoverItem.Weight > 0) { MirLabel label = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(ItemLabel.DisplayRectangle.Right, 4), OutLine = false, Parent = ItemLabel, Text = string.Format("W: {0}", HoverItem.Weight) }; ItemLabel.Size = new Size(label.DisplayRectangle.Right + 4, ItemLabel.Size.Height); } if (HoverItem.Info.StackSize > 1) { MirLabel label = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(ItemLabel.DisplayRectangle.Right, 4), OutLine = false, Parent = ItemLabel, Text = string.Format("Count: {0}/{1}", HoverItem.Count, HoverItem.Info.StackSize) }; ItemLabel.Size = new Size(label.DisplayRectangle.Right + 4, ItemLabel.Size.Height); } switch (HoverItem.Info.Type) { case ItemType.Potion: case ItemType.Scroll: PotionItemInfo(); break; default: EquipmentItemInfo(); break; } if (HoverItem.Info.RequiredGender != RequiredGender.None) { Color colour = Color.White; switch (MapObject.User.Gender) { case MirGender.Male: if (!HoverItem.Info.RequiredGender.HasFlag(RequiredGender.Male)) colour = Color.Red; break; case MirGender.Female: if (!HoverItem.Info.RequiredGender.HasFlag(RequiredGender.Female)) colour = Color.Red; break; } MirLabel label = new MirLabel { AutoSize = true, ForeColour = colour, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = false, Parent = ItemLabel, Text = string.Format("Gender Required: {0}", HoverItem.Info.RequiredGender), }; ItemLabel.Size = new Size(label.DisplayRectangle.Right + 4 > ItemLabel.Size.Width ? label.DisplayRectangle.Right + 4 : ItemLabel.Size.Width, label.DisplayRectangle.Bottom > ItemLabel.Size.Height ? label.DisplayRectangle.Bottom : ItemLabel.Size.Height); } if (HoverItem.Info.RequiredClass != RequiredClass.None) { Color colour = Color.White; switch (MapObject.User.Class) { case MirClass.Warrior: if (!HoverItem.Info.RequiredClass.HasFlag(RequiredClass.Warrior)) colour = Color.Red; break; case MirClass.Wizard: if (!HoverItem.Info.RequiredClass.HasFlag(RequiredClass.Wizard)) colour = Color.Red; break; case MirClass.Taoist: if (!HoverItem.Info.RequiredClass.HasFlag(RequiredClass.Taoist)) colour = Color.Red; break; case MirClass.Assassin: if (!HoverItem.Info.RequiredClass.HasFlag(RequiredClass.Assassin)) colour = Color.Red; break; } MirLabel label = new MirLabel { AutoSize = true, ForeColour = colour, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = false, Parent = ItemLabel, Text = string.Format("Class Required: {0}", HoverItem.Info.RequiredClass), }; if (HoverItem.Info.RequiredClass == RequiredClass.WarWizTao) label.Text = string.Format("Class Required: {0}, {1}, {2}", RequiredClass.Warrior, RequiredClass.Wizard, RequiredClass.Taoist); ItemLabel.Size = new Size(label.DisplayRectangle.Right + 4 > ItemLabel.Size.Width ? label.DisplayRectangle.Right + 4 : ItemLabel.Size.Width, label.DisplayRectangle.Bottom > ItemLabel.Size.Height ? label.DisplayRectangle.Bottom : ItemLabel.Size.Height); } if (HoverItem.Info.RequiredAmount > 0) { string text; Color colour = Color.White; switch (HoverItem.Info.RequiredType) { case RequiredType.Level: text = string.Format("Required Level: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.Level < HoverItem.Info.RequiredAmount) colour = Color.Red; break; case RequiredType.AC: text = string.Format("Required AC: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.MaxAC < HoverItem.Info.RequiredAmount) colour = Color.Red; break; case RequiredType.MAC: text = string.Format("Required MAC: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.MaxMAC < HoverItem.Info.RequiredAmount) colour = Color.Red; break; case RequiredType.DC: text = string.Format("Required DC: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.MaxDC < HoverItem.Info.RequiredAmount) colour = Color.Red; break; case RequiredType.MC: text = string.Format("Required MC: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.MaxMC < HoverItem.Info.RequiredAmount) colour = Color.Red; break; case RequiredType.SC: text = string.Format("Required SC: {0}", HoverItem.Info.RequiredAmount); if (MapObject.User.MaxSC < HoverItem.Info.RequiredAmount) colour = Color.Red; break; default: text = "Unknown Type Required"; break; } MirLabel label = new MirLabel { AutoSize = true, ForeColour = colour, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = false, Parent = ItemLabel, Text = text }; ItemLabel.Size = new Size(label.DisplayRectangle.Right + 4 > ItemLabel.Size.Width ? label.DisplayRectangle.Right + 4 : ItemLabel.Size.Width, label.DisplayRectangle.Bottom > ItemLabel.Size.Height ? label.DisplayRectangle.Bottom : ItemLabel.Size.Height); } ItemLabel.Size = ItemLabel.Size.Add(0, 4); ItemLabel.Visible = true; }
public MirAmountBox(string title, int image, string message) { ImageIndex = image; Modal = true; Movable = false; Index = 238; Library = Libraries.CustomPrguse; Location = new Point((800 - Size.Width) / 2, (600 - Size.Height) / 2); TitleLabel = new MirLabel { AutoSize = true, Location = new Point(19, 8), Parent = this, NotControl = true, Text = title }; TextLabel = new MirLabel { AutoSize = true, Location = new Point(60, 43), ForeColour = Color.Yellow, Parent = this, NotControl = true, Text = message }; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(180, 3), Library = Libraries.CustomPrguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => Dispose(); ItemImage = new MirControl { Location = new Point(15, 34), Size = new Size(38, 34), Parent = this, }; ItemImage.AfterDraw += (o, e) => DrawItem(); OKButton = new MirButton { HoverIndex = 201, Index = 200, Library = Libraries.CustomTitle, Location = new Point(23, 76), Parent = this, PressedIndex = 202, }; OKButton.Click += (o, e) => Dispose(); CancelButton = new MirButton { HoverIndex = 204, Index = 203, Library = Libraries.CustomTitle, Location = new Point(110, 76), Parent = this, PressedIndex = 205, }; CancelButton.Click += (o, e) => Dispose(); }
public MirAmountBox(string title, int image, uint max, uint min = 0, uint defaultAmount = 0) { ImageIndex = image; MaxAmount = max; MinAmount = min; Amount = max; Modal = true; Movable = false; Index = 238; Library = Libraries.CustomPrguse; Location = new Point((Settings.ScreenWidth - Size.Width) / 2, (Settings.ScreenHeight - Size.Height) / 2); TitleLabel = new MirLabel { AutoSize = true, Location = new Point(19, 8), Parent = this, NotControl = true, Text = title }; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(180, 3), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => Dispose(); ItemImage = new MirControl { Location = new Point(15, 34), Size = new Size(38, 34), Parent = this, }; ItemImage.AfterDraw += (o, e) => DrawItem(); OKButton = new MirButton { HoverIndex = 201, Index = 200, Library = Libraries.CustomTitle, Location = new Point(23, 76), Parent = this, PressedIndex = 202, }; OKButton.Click += (o, e) => Dispose(); CancelButton = new MirButton { HoverIndex = 204, Index = 203, Library = Libraries.CustomTitle, Location = new Point(110, 76), Parent = this, PressedIndex = 205, }; CancelButton.Click += (o, e) => Dispose(); InputTextBox = new MirTextBox { Parent = this, Border = true, BorderColour = Color.Lime, Location = new Point(58, 43), Size = new Size(132, 19), }; InputTextBox.SetFocus(); InputTextBox.TextBox.KeyPress += MirInputBox_KeyPress; InputTextBox.TextBox.TextChanged += TextBox_TextChanged; InputTextBox.Text = (defaultAmount > 0 && defaultAmount <= MaxAmount) ? defaultAmount.ToString() : MaxAmount.ToString(); InputTextBox.TextBox.SelectionStart = 0; InputTextBox.TextBox.SelectionLength = InputTextBox.Text.Length; }
private static void CreateDebugLabel() { if (!Settings.DebugMode) return; if (DebugBaseLabel == null || DebugBaseLabel.IsDisposed) { DebugBaseLabel = new MirControl { BackColour = Color.FromArgb(50, 50, 50), Border = true, BorderColour = Color.Black, DrawControlTexture = true, Location = new Point(5, 5), NotControl = true, Opacity = 0.5F }; } if (DebugTextLabel == null || DebugTextLabel.IsDisposed) { DebugTextLabel = new MirLabel { AutoSize = true, BackColour = Color.Transparent, ForeColour = Color.White, Parent = DebugBaseLabel, }; DebugTextLabel.SizeChanged += (o, e) => DebugBaseLabel.Size = DebugTextLabel.Size; } if (DebugOverride) return; string text; if (MirControl.MouseControl != null) { text = string.Format("FPS: {0}", FPS); if (MirControl.MouseControl is MapControl) { text += string.Format(", Co Ords: {0}", MapControl.MapLocation); //text += "\r\n"; //var cell = GameScene.Scene.MapControl.M2CellInfo[MapControl.MapLocation.X, MapControl.MapLocation.Y]; //if (cell != null) //{ // text += string.Format("BackImage : {0}. BackIndex : {1}. MiddleImage : {2}. MiddleIndex {3}. FrontImage : {4}. FrontIndex : {5}", cell.BackImage, cell.BackIndex, cell.MiddleImage, cell.MiddleIndex, cell.FrontImage, cell.FrontIndex); //} } if (MirScene.ActiveScene is GameScene) { //text += "\r\n"; text += string.Format(", Objects: {0}", MapControl.Objects.Count); } if (MirObjects.MapObject.MouseObject != null) { text += string.Format(", Target: {0}", MirObjects.MapObject.MouseObject.Name); } else { text += string.Format(", Target: none"); } } else { text = string.Format("FPS: {0}", FPS); } DebugTextLabel.Text = text; }
public MirControl OverlapInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region GEM if (realItem.Type == ItemType.Gem) { string text = ""; switch (realItem.Shape) { case 1: text = "Hold CTRL and left click to repair weapons."; break; case 2: text = "Hold CTRL and left click to repair armour\nand accessory items."; break; case 3: case 4: text = "Hold CTRL and left click to combine with an item."; break; } count++; MirLabel GEMLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GEMLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GEMLabel.DisplayRectangle.Bottom)); } #endregion #region SPLITUP if (realItem.StackSize > 1 && realItem.Type != ItemType.Gem) { count++; MirLabel SPLITUPLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Max Combine Count : {0}\nShift + Left click to split the stack", realItem.StackSize) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, SPLITUPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, SPLITUPLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public MirAmountBox(string title, int image, uint max, uint min = 0, uint defaultAmount = 0) { ImageIndex = image; MaxAmount = max; MinAmount = min; Amount = max; Modal = true; Movable = false; Index = 238; Library = Libraries.Prguse; Location = new Point((Settings.ScreenWidth - Size.Width) / 2, (Settings.ScreenHeight - Size.Height) / 2); TitleLabel = new MirLabel { AutoSize = true, Location = new Point(19, 8), Parent = this, NotControl = true, Text = title }; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(180, 3), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => Dispose(); ItemImage = new MirControl { Location = new Point(15, 34), Size = new Size(38, 34), Parent = this, }; ItemImage.AfterDraw += (o, e) => DrawItem(); OKButton = new MirButton { HoverIndex = 201, Index = 200, Library = Libraries.Title, Location = new Point(23, 76), Parent = this, PressedIndex = 202, }; OKButton.Click += (o, e) => Dispose(); CancelButton = new MirButton { HoverIndex = 204, Index = 203, Library = Libraries.Title, Location = new Point(110, 76), Parent = this, PressedIndex = 205, }; CancelButton.Click += (o, e) => Dispose(); InputTextBox = new MirTextBox { Parent = this, Border = true, BorderColour = Color.Lime, Location = new Point(58, 43), Size = new Size(132, 19), }; InputTextBox.SetFocus(); InputTextBox.TextBox.KeyPress += MirInputBox_KeyPress; InputTextBox.TextBox.TextChanged += TextBox_TextChanged; InputTextBox.Text = (defaultAmount > 0 && defaultAmount <= MaxAmount) ? defaultAmount.ToString() : MaxAmount.ToString(); InputTextBox.TextBox.SelectionStart = 0; InputTextBox.TextBox.SelectionLength = InputTextBox.Text.Length; }
public override void OnMouseClick(MouseEventArgs e) { if (!Enabled) return; if (_buttons == e.Button) { if (_lastClickTime + SystemInformation.DoubleClickTime >= CMain.Time) { OnMouseDoubleClick(e); return; } } else _lastClickTime = 0; if (ActiveControl != null && ActiveControl.IsMouseOver(CMain.MPoint) && ActiveControl != this) ActiveControl.OnMouseClick(e); else base.OnMouseClick(e); _clickedControl = ActiveControl; _lastClickTime = CMain.Time; _buttons = e.Button; }
public MirControl StoryInfoLabel(UserItem item, bool Inspect = false) { byte level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region TOOLTIP if (!string.IsNullOrEmpty(HoverItem.Info.ToolTip)) { count++; MirLabel TOOLTIPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Goldenrod, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = HoverItem.Info.ToolTip }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, TOOLTIPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, TOOLTIPLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (!disposing) return; if (ActiveScene == this) ActiveScene = null; _buttons = 0; _lastClickTime = 0; _clickedControl = null; }
public FishingStatusDialog() { Index = 1341; Library = Libraries.Prguse; Movable = true; Sort = true; Size = new Size(244, 128); Location = new Point((Settings.ScreenWidth - Size.Width) / 2, 300); BeforeDraw += FishingStatusDialog_BeforeDraw; ChanceBar = new MirControl { Parent = this, Location = new Point(14, 64), NotControl = true, }; ChanceBar.BeforeDraw += ChanceBar_BeforeDraw; ChanceLabel = new MirLabel { Location = new Point(14, 62), Size = new Size(216, 12), DrawFormat = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter, Parent = this, NotControl = true, }; ProgressBar = new MirControl { Parent = this, Location = new Point(14, 79), NotControl = true, }; ProgressBar.BeforeDraw += ProgressBar_BeforeDraw; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(216, 4), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => { Cancel(); }; FishDisableButton = new MirImageControl { Index = 149, Location = new Point(47, 95), Library = Libraries.Title, Parent = this, NotControl = true }; FishButton = new MirAnimatedButton() { Animated = true, AnimationCount = 10, Loop = true, AnimationDelay = 130, Index = 170, PressedIndex = 142, Library = Libraries.Title, Parent = this, Location = new Point(47, 95), Sound = SoundList.ButtonA, Visible = false }; FishButton.Click += (o, e) => { Network.Enqueue(new C.FishingCast { CastOut = false }); }; AutoCastButton = new MirButton { Index = 143, HoverIndex = 144, PressedIndex = 145, Location = new Point(110, 95), Library = Libraries.Title, Parent = this, Sound = SoundList.ButtonA, }; AutoCastButton.Click += (o, e) => { if (_canAutoCast) { _autoCast = !_autoCast; //AutoCastTick.Visible = _autoCast; AutoCastBox.Index = _autoCast ? 1344 : 1343; Network.Enqueue(new C.FishingChangeAutocast { AutoCast = _autoCast }); } }; AutoCastBox = new MirImageControl { Index = 1343, Location = new Point(172, 95), Library = Libraries.Prguse, Parent = this }; ESCExitButton = new MirButton { Index = 1346, HoverIndex = 1346, PressedIndex = 1346, Location = new Point(135, 41), Library = Libraries.Prguse, Parent = this, Sound = SoundList.ButtonA, }; ESCExitButton.Click += (o, e) => { bEscExit = !bEscExit; ESCTick.Visible = bEscExit; }; ESCTick = new MirImageControl { Index = 1347, Location = new Point(135, 41), Library = Libraries.Prguse, Parent = this, Visible = false, NotControl = true, }; ESCExit = new MirImageControl { Index = 45, Location = new Point(150, 40), Library = Libraries.Title, Parent = this, NotControl = true, }; }
public MirAmountBox(string title, int image, uint max, uint min = 0) { ImageIndex = image; MaxAmount = max; MinAmount = min; Amount = max; Modal = true; Movable = false; Index = 660; Library = Libraries.Prguse; Location = new Point((800 - Size.Width) / 2, (600 - Size.Height) / 2); TitleLabel = new MirLabel { AutoSize = true, Location = new Point(19 + 2, 8 + 15 + 3), Parent = this, NotControl = true, Text = title }; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(180, 23), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, Visible = false, }; CloseButton.Click += (o, e) => Dispose(); ItemImage = new MirControl { Location = new Point(15, 34), Size = new Size(38, 34), Parent = this, Visible = false, }; ItemImage.AfterDraw += (o, e) => DrawItem(); OKButton = new MirButton { HoverIndex = 383, Index = 382, Library = Libraries.Title, Location = new Point(23 + 120, 76 + 47), Parent = this, PressedIndex = 384, }; OKButton.Click += (o, e) => Dispose(); CancelButton = new MirButton { HoverIndex = 386, Index = 385, Library = Libraries.Title, Location = new Point(110 + 100, 76 + 47), Parent = this, PressedIndex = 387, }; CancelButton.Click += (o, e) => Dispose(); InputTextBox = new MirTextBox { Parent = this, Border = true, BorderColour = Color.Lime, Location = new Point(59 - 37 + 2, 43 + 40 + 4), Size = new Size(238, 19), }; InputTextBox.SetFocus(); //InputTextBox.Font = new Font(Settings.FontName, 10); InputTextBox.TextBox.KeyPress += MirInputBox_KeyPress; InputTextBox.TextBox.TextChanged += TextBox_TextChanged; InputTextBox.Text = MaxAmount.ToString(); InputTextBox.TextBox.SelectionStart = 0; InputTextBox.TextBox.SelectionLength = InputTextBox.Text.Length; }
private void Control_MouseLeave(object sender, EventArgs e) { HoverLabel.Text = ""; HoverLabel.Visible = false; HoverLabel.Parent = this; HoverLabelParent = null; }
protected virtual void Dispose(bool disposing) { if (disposing) { if (Disposing != null) { Disposing.Invoke(this, EventArgs.Empty); } Disposing = null; BackColourChanged = null; _backColour = Color.Empty; BorderChanged = null; _border = false; BorderRectangle = Rectangle.Empty; _borderInfo = null; BorderColourChanged = null; _borderColour = Color.Empty; DrawControlTexture = false; if (ControlTexture != null && !ControlTexture.Disposed) { ControlTexture.Dispose(); } ControlTexture = null; TextureValid = false; ControlAdded = null; ControlRemoved = null; if (Controls != null) { for (int i = Controls.Count - 1; i >= 0; i--) { if (Controls[i] != null && !Controls[i].IsDisposed) { Controls[i].Dispose(); } } Controls = null; } _enabled = false; EnabledChanged = null; HasShown = false; BeforeDraw = null; AfterDraw = null; Shown = null; BeforeShown = null; Click = null; DoubleClick = null; MouseEnter = null; MouseLeave = null; MouseMove = null; MouseDown = null; MouseUp = null; MouseWheel = null; KeyPress = null; KeyUp = null; KeyDown = null; ForeColourChanged = null; _foreColour = Color.Empty; LocationChanged = null; _location = Point.Empty; ModalChanged = null; _modal = false; MovableChanged = null; _movePoint = Point.Empty; Moving = false; OnMoving = null; _movable = false; NotControlChanged = null; _notControl = false; OpacityChanged = null; _opacity = 0F; if (Parent != null && Parent.Controls != null) { Parent.Controls.Remove(this); } ParentChanged = null; _parent = null; SizeChanged = null; _size = Size.Empty; SoundChanged = null; _sound = 0; VisibleChanged = null; _visible = false; if (ActiveControl == this) { ActiveControl = null; } if (MouseControl == this) { MouseControl = null; } } IsDisposed = true; }
public MirControl NameInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); MirLabel nameLabel = new MirLabel { AutoSize = true, ForeColour = GradeNameColor(HoverItem.Info.Grade), Location = new Point(4, 4), OutLine = true, Parent = ItemLabel, Text = HoverItem.Info.Grade != ItemGrade.None ? HoverItem.Info.FriendlyName + "\n" + HoverItem.Info.Grade.ToString() : (HoverItem.Info.Type == ItemType.Pets && HoverItem.Info.Shape == 26 && HoverItem.Info.Effect != 7) ? "WonderDrug" : HoverItem.Info.FriendlyName, }; if (HoverItem.RefineAdded > 0) nameLabel.Text = "(*)" + nameLabel.Text; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, nameLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, nameLabel.DisplayRectangle.Bottom)); string text = ""; if (HoverItem.Info.StackSize > 1) { text += string.Format(" Count {0}", HoverItem.Count); } if (HoverItem.Info.Durability > 0) { switch (HoverItem.Info.Type) { case ItemType.Amulet: text += string.Format(" Usage {0}/{1}", HoverItem.CurrentDura, HoverItem.MaxDura); break; case ItemType.Ore: text += string.Format(" Purity {0}", Math.Round(HoverItem.CurrentDura / 1000M)); break; case ItemType.Meat: text += string.Format(" Quality {0}", Math.Round(HoverItem.CurrentDura / 1000M)); break; case ItemType.Mount: text += string.Format(" Loyalty {0} / {1}", HoverItem.CurrentDura, HoverItem.MaxDura); break; case ItemType.Food: text += string.Format(" Nutrition {0}", HoverItem.CurrentDura); break; case ItemType.Gem: break; case ItemType.Potion: break; case ItemType.Transform: break; case ItemType.Pets: if (HoverItem.Info.Shape == 26)//WonderDrug { string strTime = CreateTimeString((HoverItem.CurrentDura * 3600)); text += "\n" + string.Format(" Duration {0}", strTime); } break; default: text += string.Format(" Durability {0}/{1}", Math.Round(HoverItem.CurrentDura / 1000M), Math.Round(HoverItem.MaxDura / 1000M)); break; } } String WedRingName = ""; if (HoverItem.WeddingRing == -1) { WedRingName = HoverItem.Info.Type.ToString() + "\n" + "W " + HoverItem.Weight + text; } else { WedRingName = "Wedding Ring" + "\n" + "W " + HoverItem.Weight + text; } MirLabel etcLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, nameLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = WedRingName }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, etcLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, etcLabel.DisplayRectangle.Bottom + 4)); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; }
private void AddControl(MirControl control) { Controls.Add(control); OnControlAdded(); }
public MirControl DefenseInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); bool fishingItem = false; switch (HoverItem.Info.Type) { case ItemType.Hook: case ItemType.Float: case ItemType.Bait: case ItemType.Finder: case ItemType.Reel: fishingItem = true; break; case ItemType.Weapon: if (HoverItem.Info.Shape == 49 || HoverItem.Info.Shape == 50) fishingItem = true; break; case ItemType.Pets: if (HoverItem.Info.Shape == 26) return null; break; default: fishingItem = false; break; } int count = 0; int minValue = 0; int maxValue = 0; int addValue = 0; string text = ""; #region AC minValue = realItem.MinAC; maxValue = realItem.MaxAC; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.AC : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "AC + {0}~{1} (+{2})" : "AC + {0}~{1}", minValue, maxValue + addValue, addValue); else text = string.Format("Adds {0} AC", minValue + maxValue + addValue); MirLabel ACLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("AC + {0}~{1}", minValue, maxValue + addValue) Text = text }; if (fishingItem) { if (HoverItem.Info.Type == ItemType.Float) { ACLabel.Text = string.Format("Nibble Chance + " + (addValue > 0 ? "{0}~{1}% (+{2})" : "{0}~{1}%"), minValue, maxValue + addValue); } else if (HoverItem.Info.Type == ItemType.Finder) { ACLabel.Text = string.Format("Finder Increase + " + (addValue > 0 ? "{0}~{1}% (+{2})" : "{0}~{1}%"), minValue, maxValue + addValue); } else { ACLabel.Text = string.Format("Success Chance + " + (addValue > 0 ? "{0}% (+{1})" : "{0}%"), maxValue, maxValue + addValue); } } ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, ACLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, ACLabel.DisplayRectangle.Bottom)); } #endregion #region MAC minValue = realItem.MinMAC; maxValue = realItem.MaxMAC; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.MAC : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "MAC + {0}~{1} (+{2})" : "MAC + {0}~{1}", minValue, maxValue + addValue, addValue); else text = string.Format("Adds {0} MAC", minValue + maxValue + addValue); MirLabel MACLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("MAC + {0}~{1}", minValue, maxValue + addValue) Text = text }; if (fishingItem) { MACLabel.Text = string.Format("AutoReel Chance + {0}%", maxValue + addValue); } ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MACLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MACLabel.DisplayRectangle.Bottom)); } #endregion #region MAXHP minValue = realItem.HP; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.HP : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXHPLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format(realItem.Type == ItemType.Potion ? "HP + {0} Recovery" : "MAXHP + {0}", minValue + addValue) Text = realItem.Type == ItemType.Potion ? string.Format(addValue > 0 ? "HP + {0} Recovery (+{1})" : "HP + {0} Recovery", minValue + addValue, addValue) : string.Format(addValue > 0 ? "Max HP + {0} (+{1})" : "Max HP + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXHPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXHPLabel.DisplayRectangle.Bottom)); } #endregion #region MAXMP minValue = realItem.MP; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.MP : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXMPLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format(realItem.Type == ItemType.Potion ? "MP + {0} Recovery" : "MAXMP + {0}", minValue + addValue) Text = realItem.Type == ItemType.Potion ? string.Format(addValue > 0 ? "MP + {0} Recovery (+{1})" : "MP + {0} Recovery", minValue + addValue, addValue) : string.Format(addValue > 0 ? "Max MP + {0} (+{1})" : "Max MP + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXMPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXMPLabel.DisplayRectangle.Bottom)); } #endregion #region MAXHPRATE minValue = realItem.HPrate; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXHPRATELabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Max HP + {0}%", minValue + addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXHPRATELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXHPRATELabel.DisplayRectangle.Bottom)); } #endregion #region MAXMPRATE minValue = realItem.MPrate; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXMPRATELabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Max MP + {0}%", minValue + addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXMPRATELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXMPRATELabel.DisplayRectangle.Bottom)); } #endregion #region MAXACRATE minValue = realItem.MaxAcRate; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXACRATE = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Max AC + {0}%", minValue + addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXACRATE.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXACRATE.DisplayRectangle.Bottom)); } #endregion #region MAXMACRATE minValue = realItem.MaxMacRate; maxValue = 0; addValue = 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MAXMACRATELabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Max MAC + {0}%", minValue + addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAXMACRATELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAXMACRATELabel.DisplayRectangle.Bottom)); } #endregion #region HEALTH_RECOVERY minValue = realItem.HealthRecovery; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.HealthRecovery : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel HEALTH_RECOVERYLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("HealthRecovery + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Health Recovery + {0} (+{1})" : "Health Recovery + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, HEALTH_RECOVERYLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, HEALTH_RECOVERYLabel.DisplayRectangle.Bottom)); } #endregion #region MANA_RECOVERY minValue = realItem.SpellRecovery; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.ManaRecovery : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel MANA_RECOVERYLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("ManaRecovery + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Mana Recovery + {0} (+{1})" : "Mana Recovery + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MANA_RECOVERYLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MANA_RECOVERYLabel.DisplayRectangle.Bottom)); } #endregion #region POISON_RECOVERY minValue = realItem.PoisonRecovery; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.PoisonRecovery : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel POISON_RECOVERYabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Poison Recovery + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Poison Recovery + {0} (+{1})" : "Poison Recovery + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, POISON_RECOVERYabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, POISON_RECOVERYabel.DisplayRectangle.Bottom)); } #endregion #region AGILITY minValue = realItem.Agility; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.Agility : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel AGILITYLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Agility + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Agility + {0} (+{1})" : "Agility + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, AGILITYLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, AGILITYLabel.DisplayRectangle.Bottom)); } #endregion #region STRONG minValue = realItem.Strong; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.Strong : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; MirLabel STRONGLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Strong + {0}", minValue + addValue) Text = string.Format(addValue > 0 ? "Strong + {0} (+{1})" : "Strong + {0}", minValue + addValue, addValue) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, STRONGLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, STRONGLabel.DisplayRectangle.Bottom)); } #endregion #region POISON_RESIST minValue = realItem.PoisonResist; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.PoisonResist : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "Poison Resist + {0} (+{1})" : "Poison Resist + {0}", minValue + addValue, addValue); else text = string.Format("Adds {0} Poison Resist", minValue + maxValue + addValue); MirLabel POISON_RESISTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Poison Resist + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, POISON_RESISTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, POISON_RESISTLabel.DisplayRectangle.Bottom)); } #endregion #region MAGIC_RESIST minValue = realItem.MagicResist; maxValue = 0; addValue = (!HoverItem.Info.NeedIdentify || HoverItem.Identified) ? HoverItem.MagicResist : 0; if (minValue > 0 || maxValue > 0 || addValue > 0) { count++; if (HoverItem.Info.Type != ItemType.Gem) text = string.Format(addValue > 0 ? "Magic Resist + {0} (+{1})" : "Magic Resist + {0}", minValue + addValue, addValue); else text = string.Format("Adds {0} Magic Resist", minValue + maxValue + addValue); MirLabel MAGIC_RESISTLabel = new MirLabel { AutoSize = true, ForeColour = addValue > 0 ? Color.Cyan : Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, //Text = string.Format("Magic Resist + {0}", minValue + addValue) Text = text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, MAGIC_RESISTLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, MAGIC_RESISTLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public void CreateItemLabel(UserItem item, bool Inspect = false) { if (item == null) { DisposeItemLabel(); HoverItem = null; return; } if (item == HoverItem && ItemLabel != null && !ItemLabel.IsDisposed) return; ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, DrawControlTexture = true, NotControl = true, Parent = this, Opacity = 0.7F, // Visible = false }; //Name Info Label MirControl[] outlines = new MirControl[9]; outlines[0] = NameInfoLabel(item, Inspect); //Attribute Info1 Label - Attack Info outlines[1] = AttackInfoLabel(item, Inspect); //Attribute Info2 Label - Defense Info outlines[2] = DefenseInfoLabel(item, Inspect); //Attribute Info3 Label - Weight Info outlines[3] = WeightInfoLabel(item, Inspect); //Awake Info Label outlines[4] = AwakeInfoLabel(item, Inspect); //need Info Label outlines[5] = NeedInfoLabel(item, Inspect); //Bind Info Label outlines[6] = BindInfoLabel(item, Inspect); //Overlap Info Label outlines[7] = OverlapInfoLabel(item, Inspect); //Story Label outlines[8] = StoryInfoLabel(item, Inspect); foreach (var outline in outlines) { if (outline != null) { outline.Size = new Size(ItemLabel.Size.Width, outline.Size.Height); } } //ItemLabel.Visible = true; }
public MirControl AwakeInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region AWAKENAME if (HoverItem.Awake.getAwakeLevel() > 0) { count++; MirLabel AWAKENAMELabel = new MirLabel { AutoSize = true, ForeColour = GradeNameColor(HoverItem.Info.Grade), Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("{0} Awakening({1})", HoverItem.Awake.type.ToString(), HoverItem.Awake.getAwakeLevel()) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, AWAKENAMELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, AWAKENAMELabel.DisplayRectangle.Bottom)); } #endregion #region AWAKE_TOTAL_VALUE if (HoverItem.Awake.getAwakeValue() > 0) { count++; MirLabel AWAKE_TOTAL_VALUELabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format(realItem.Type != ItemType.Armour ? "{0} + {1}~{2}" : "MAX {0} + {1}", HoverItem.Awake.type.ToString(), HoverItem.Awake.getAwakeValue(), HoverItem.Awake.getAwakeValue()) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, AWAKE_TOTAL_VALUELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, AWAKE_TOTAL_VALUELabel.DisplayRectangle.Bottom)); } #endregion #region AWAKE_LEVEL_VALUE if (HoverItem.Awake.getAwakeLevel() > 0) { count++; for (int i = 0; i < HoverItem.Awake.getAwakeLevel(); i++) { MirLabel AWAKE_LEVEL_VALUELabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format(realItem.Type != ItemType.Armour ? "Level {0} : {1} + {2}~{3}" : "Level {0} : MAX {1} + {2}~{3}", i + 1, HoverItem.Awake.type.ToString(), HoverItem.Awake.getAwakeLevelValue(i), HoverItem.Awake.getAwakeLevelValue(i)) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, AWAKE_LEVEL_VALUELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, AWAKE_LEVEL_VALUELabel.DisplayRectangle.Bottom)); } } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public void CreateMemoLabel(ClientFriend friend) { if (friend == null) { DisposeMemoLabel(); return; } if (MemoLabel != null && !MemoLabel.IsDisposed) return; MemoLabel = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, DrawControlTexture = true, NotControl = true, Parent = this, Opacity = 0.7F }; MirLabel memoLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, 4), OutLine = true, Parent = MemoLabel, Text = Functions.StringOverLines(friend.Memo, 5, 20) }; MemoLabel.Size = new Size(Math.Max(MemoLabel.Size.Width, memoLabel.DisplayRectangle.Right + 4), Math.Max(MemoLabel.Size.Height, memoLabel.DisplayRectangle.Bottom + 4)); }
public MirControl BindInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region DONT_DEATH_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontDeathdrop)) { count++; MirLabel DONT_DEATH_DROPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't drop on death") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DEATH_DROPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DEATH_DROPLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontDrop)) { count++; MirLabel DONT_DROPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't drop") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DROPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DROPLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_UPGRADE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontUpgrade)) { count++; MirLabel DONT_UPGRADELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't upgrade") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_UPGRADELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_UPGRADELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_SELL if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontSell)) { count++; MirLabel DONT_SELLLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't sell") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_SELLLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_SELLLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_TRADE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontTrade)) { count++; MirLabel DONT_TRADELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't trade") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_TRADELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_TRADELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_STORE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontStore)) { count++; MirLabel DONT_STORELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't store") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_STORELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_STORELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_REPAIR if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontRepair)) { count++; MirLabel DONT_REPAIRLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't repair") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_REPAIRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_REPAIRLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_SPECIALREPAIR if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.NoSRepair)) { count++; MirLabel DONT_REPAIRLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't special repair") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_REPAIRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_REPAIRLabel.DisplayRectangle.Bottom)); } #endregion #region BREAK_ON_DEATH if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.BreakOnDeath)) { count++; MirLabel DONT_REPAIRLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Breaks on death") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_REPAIRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_REPAIRLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_DESTROY_ON_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DestroyOnDrop)) { count++; MirLabel DONT_DODLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Destroyed when dropped") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DODLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DODLabel.DisplayRectangle.Bottom)); } #endregion #region BIND_ON_EQUIP if ((HoverItem.Info.Bind.HasFlag(BindMode.BindOnEquip)) & HoverItem.SoulBoundId == -1) { count++; MirLabel BOELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Soulbinds on equip") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BOELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BOELabel.DisplayRectangle.Bottom)); } else if (HoverItem.SoulBoundId != -1) { count++; MirLabel BOELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "Soulbound to: " + GetUserName((uint)HoverItem.SoulBoundId) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BOELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BOELabel.DisplayRectangle.Bottom)); } #endregion #region CURSED if ((!HoverItem.Info.NeedIdentify || HoverItem.Identified) && HoverItem.Cursed) { count++; MirLabel CURSEDLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Cursed") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CURSEDLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CURSEDLabel.DisplayRectangle.Bottom)); } #endregion #region Gems if (HoverItem.Info.Type == ItemType.Gem) { #region UseOn text count++; string Text = ""; if (HoverItem.Info.Unique == SpecialItemMode.None) { Text = "Cannot be used on any item."; } else { Text = "Can be used on: "; } MirLabel GemUseOn = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = Text }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GemUseOn.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GemUseOn.DisplayRectangle.Bottom)); #endregion #region Weapon text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Paralize)) { MirLabel GemWeapon = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Weapon" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GemWeapon.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GemWeapon.DisplayRectangle.Bottom)); } #endregion #region Armour text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Teleport)) { MirLabel GemArmour = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Armour" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GemArmour.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GemArmour.DisplayRectangle.Bottom)); } #endregion #region Helmet text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Clearring)) { MirLabel Gemhelmet = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Helmet" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemhelmet.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemhelmet.DisplayRectangle.Bottom)); } #endregion #region Necklace text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Protection)) { MirLabel Gemnecklace = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Necklace" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemnecklace.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemnecklace.DisplayRectangle.Bottom)); } #endregion #region Bracelet text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Revival)) { MirLabel GemBracelet = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Bracelet" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GemBracelet.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GemBracelet.DisplayRectangle.Bottom)); } #endregion #region Ring text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Muscle)) { MirLabel GemRing = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Ring" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, GemRing.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, GemRing.DisplayRectangle.Bottom)); } #endregion #region Amulet text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Flame)) { MirLabel Gemamulet = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Amulet" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemamulet.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemamulet.DisplayRectangle.Bottom)); } #endregion #region Belt text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Healing)) { MirLabel Gembelt = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Belt" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gembelt.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gembelt.DisplayRectangle.Bottom)); } #endregion #region Boots text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Probe)) { MirLabel Gemboots = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Boots" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemboots.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemboots.DisplayRectangle.Bottom)); } #endregion #region Stone text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.Skill)) { MirLabel Gemstone = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Stone" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemstone.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemstone.DisplayRectangle.Bottom)); } #endregion #region Torch text count++; if (HoverItem.Info.Unique.HasFlag(SpecialItemMode.NoDuraLoss)) { MirLabel Gemtorch = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "-Candle" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, Gemtorch.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, Gemtorch.DisplayRectangle.Bottom)); } #endregion } #endregion #region CANTAWAKEN //if ((HoverItem.Info.CanAwakening != true) && (HoverItem.Info.Type != ItemType.Gem)) //{ // count++; // MirLabel CANTAWAKENINGLabel = new MirLabel // { // AutoSize = true, // ForeColour = Color.Yellow, // Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), // OutLine = true, // Parent = ItemLabel, // Text = string.Format("Can't awaken") // }; // ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CANTAWAKENINGLabel.DisplayRectangle.Right + 4), // Math.Max(ItemLabel.Size.Height, CANTAWAKENINGLabel.DisplayRectangle.Bottom)); //} #endregion #region EXPIRE if (HoverItem.ExpireInfo != null) { double remainingSeconds = (HoverItem.ExpireInfo.ExpiryDate - DateTime.Now).TotalSeconds; count++; MirLabel EXPIRELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = remainingSeconds > 0 ? string.Format("Expires in {0}", Functions.PrintTimeSpanFromSeconds(remainingSeconds)) : "Expired" }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, EXPIRELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, EXPIRELabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
private static void CreateDebugLabel() { if (!Settings.DebugMode) return; if (DebugBaseLabel == null || DebugBaseLabel.IsDisposed) { DebugBaseLabel = new MirControl { BackColour = Color.FromArgb(50, 50, 50), Border = true, BorderColour = Color.Black, DrawControlTexture = true, Location = new Point(5, 5), NotControl = true, Opacity = 0.5F }; } if (DebugTextLabel == null || DebugTextLabel.IsDisposed) { DebugTextLabel = new MirLabel { AutoSize = true, BackColour = Color.Transparent, ForeColour = Color.White, Parent = DebugBaseLabel, }; DebugTextLabel.SizeChanged += (o, e) => DebugBaseLabel.Size = DebugTextLabel.Size; } string text; if (MirControl.MouseControl != null) { text = string.Format("FPS: {0}", FPS); if (MirControl.MouseControl is MapControl) text += string.Format(", Co Ords: {0}", MapControl.MapLocation); if (MirScene.ActiveScene is GameScene) text += string.Format(", Objects: {0}", MapControl.Objects.Count); } else { text = string.Format("FPS: {0}", FPS); } DebugTextLabel.Text = text; }
public MirControl StoryInfoLabel(UserItem item, bool Inspect = false) { ushort level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region TOOLTIP if (realItem.Type == ItemType.Pets && realItem.Shape == 26)//Dynamic wonderDrug { string strTime = CreateTimeString((HoverItem.CurrentDura * 3600)); switch ((int)realItem.Effect) { case 0://exp low/med/high HoverItem.Info.ToolTip = string.Format("Increase experience gained by {0}% for {1}.", HoverItem.Luck + realItem.Luck, strTime); break; case 1://drop low/med/high HoverItem.Info.ToolTip = string.Format("Increase droprate by {0}% for {1}.", HoverItem.Luck + realItem.Luck, strTime); break; case 2://hp low/med/high HoverItem.Info.ToolTip = string.Format("Increase MaxHP +{0} for {1}.", HoverItem.HP + realItem.HP, strTime); break; case 3://mp low/med/high HoverItem.Info.ToolTip = string.Format("Increase MaxMP +{0} for {1}.", HoverItem.MP + realItem.MP, strTime); break; case 4://ac low/med/high HoverItem.Info.ToolTip = string.Format("Increase AC {0}-{0} for {1}.", HoverItem.AC + realItem.MaxAC, strTime); break; case 5://amc low/med/high HoverItem.Info.ToolTip = string.Format("Increase AMC {0}-{0} for {1}.", HoverItem.MAC + realItem.MaxAC, strTime); break; case 6://speed low/med/high HoverItem.Info.ToolTip = string.Format("Increase AttackSpeed by {0} for {1}.", HoverItem.AttackSpeed + realItem.AttackSpeed, strTime); break; case 7://knapsack low/med/high HoverItem.Info.ToolTip = string.Format("Increase BagWeight by {0} for {1}.", HoverItem.Luck + realItem.Luck, strTime); break; } } if (realItem.Type == ItemType.Scroll && realItem.Shape == 7)//Credit Scroll { HoverItem.Info.ToolTip = string.Format("Adds {0} Credits to your Account.", HoverItem.Info.Price); } if (!string.IsNullOrEmpty(HoverItem.Info.ToolTip)) { count++; MirLabel TOOLTIPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Goldenrod, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = HoverItem.Info.ToolTip }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, TOOLTIPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, TOOLTIPLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
public MirAmountBox(string title, int image, string message) { ImageIndex = image; Modal = true; Movable = false; Index = 238; Library = Libraries.Prguse; Location = new Point((800 - Size.Width) / 2, (600 - Size.Height) / 2); TitleLabel = new MirLabel { AutoSize = true, Location = new Point(19, 8), Parent = this, NotControl = true, Text = title }; TextLabel = new MirLabel { AutoSize = true, Location = new Point(60, 43), ForeColour = Color.Yellow, Parent = this, NotControl = true, Text = message }; CloseButton = new MirButton { HoverIndex = 361, Index = 360, Location = new Point(180, 3), Library = Libraries.Prguse2, Parent = this, PressedIndex = 362, Sound = SoundList.ButtonA, }; CloseButton.Click += (o, e) => Dispose(); ItemImage = new MirControl { Location = new Point(15, 34), Size = new Size(38, 34), Parent = this, }; ItemImage.AfterDraw += (o, e) => DrawItem(); OKButton = new MirButton { HoverIndex = 201, Index = 200, Library = Libraries.Title, Location = new Point(23, 76), Parent = this, PressedIndex = 202, }; OKButton.Click += (o, e) => Dispose(); CancelButton = new MirButton { HoverIndex = 204, Index = 203, Library = Libraries.Title, Location = new Point(110, 76), Parent = this, PressedIndex = 205, }; CancelButton.Click += (o, e) => Dispose(); }
public void CreateMailLabel(ClientMail mail) { if (mail == null) { DisposeMailLabel(); return; } if (MailLabel != null && !MailLabel.IsDisposed) return; MailLabel = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, DrawControlTexture = true, NotControl = true, Parent = this, Opacity = 0.7F }; MirLabel nameLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, 4), OutLine = true, Parent = MailLabel, Text = mail.SenderName }; MailLabel.Size = new Size(Math.Max(MailLabel.Size.Width, nameLabel.DisplayRectangle.Right + 4), Math.Max(MailLabel.Size.Height, nameLabel.DisplayRectangle.Bottom)); MirLabel dateLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, MailLabel.DisplayRectangle.Bottom), OutLine = true, Parent = MailLabel, Text = "Date Sent : " + mail.DateSent.ToString("dd/MM/yy H:mm:ss") }; MailLabel.Size = new Size(Math.Max(MailLabel.Size.Width, dateLabel.DisplayRectangle.Right + 4), Math.Max(MailLabel.Size.Height, dateLabel.DisplayRectangle.Bottom)); if (mail.Gold > 0) { MirLabel goldLabel = new MirLabel { AutoSize = true, ForeColour = Color.White, Location = new Point(4, MailLabel.DisplayRectangle.Bottom), OutLine = true, Parent = MailLabel, Text = "Gold: " + mail.Gold }; MailLabel.Size = new Size(Math.Max(MailLabel.Size.Width, goldLabel.DisplayRectangle.Right + 4), Math.Max(MailLabel.Size.Height, goldLabel.DisplayRectangle.Bottom)); } MirLabel openedLabel = new MirLabel { AutoSize = true, ForeColour = Color.Red, Location = new Point(4, MailLabel.DisplayRectangle.Bottom), OutLine = true, Parent = MailLabel, Text = mail.Opened ? "[Old]" : "[New]" }; MailLabel.Size = new Size(Math.Max(MailLabel.Size.Width, openedLabel.DisplayRectangle.Right + 4), Math.Max(MailLabel.Size.Height, openedLabel.DisplayRectangle.Bottom)); }
private void RemoveControl(MirControl control) { Controls.Remove(control); OnControlRemoved(); }
public MainDialog() { Index = Settings.Resolution == 800 ? 0 : Settings.Resolution == 1024 ? 1 : 2; Library = Libraries.Prguse; Location = new Point(((Settings.ScreenWidth / 2) - (Size.Width / 2)), Settings.ScreenHeight - Size.Height); PixelDetect = true; LeftCap = new MirImageControl { Index = 12, Library = Libraries.Prguse, Location = new Point(-67, this.Size.Height - 96), Parent = this, Visible = false }; RightCap = new MirImageControl { Index = 13, Library = Libraries.Prguse, Location = new Point(1024, this.Size.Height - 104), Parent = this, Visible = false }; if (Settings.Resolution > 1024) { LeftCap.Visible = true; RightCap.Visible = true; } InventoryButton = new MirButton { HoverIndex = 1904, Index = 1903, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 96, 76), Parent = this, PressedIndex = 1905, Sound = SoundList.ButtonA, Hint = "Inventory (I)" }; InventoryButton.Click += (o, e) => { if (GameScene.Scene.InventoryDialog.Visible) GameScene.Scene.InventoryDialog.Hide(); else GameScene.Scene.InventoryDialog.Show(); }; CharacterButton = new MirButton { HoverIndex = 1901, Index = 1900, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 119, 76), Parent = this, PressedIndex = 1902, Sound = SoundList.ButtonA, Hint = "Character (C)" }; CharacterButton.Click += (o, e) => { if (GameScene.Scene.CharacterDialog.Visible && GameScene.Scene.CharacterDialog.CharacterPage.Visible) GameScene.Scene.CharacterDialog.Hide(); else { GameScene.Scene.CharacterDialog.Show(); GameScene.Scene.CharacterDialog.ShowCharacterPage(); } }; SkillButton = new MirButton { HoverIndex = 1907, Index = 1906, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 73, 76), Parent = this, PressedIndex = 1908, Sound = SoundList.ButtonA, Hint = "Skills (S)" }; SkillButton.Click += (o, e) => { if (GameScene.Scene.CharacterDialog.Visible && GameScene.Scene.CharacterDialog.SkillPage.Visible) GameScene.Scene.CharacterDialog.Hide(); else { GameScene.Scene.CharacterDialog.Show(); GameScene.Scene.CharacterDialog.ShowSkillPage(); } }; QuestButton = new MirButton { HoverIndex = 1910, Index = 1909, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 50, 76), Parent = this, PressedIndex = 1911, Sound = SoundList.ButtonA, Hint = "Quests (Q)" }; QuestButton.Click += (o, e) => { if (!GameScene.Scene.QuestLogDialog.Visible) GameScene.Scene.QuestLogDialog.Show(); else GameScene.Scene.QuestLogDialog.Hide(); }; OptionButton = new MirButton { HoverIndex = 1913, Index = 1912, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 27, 76), Parent = this, PressedIndex = 1914, Sound = SoundList.ButtonA, Hint = "Options (O)" }; OptionButton.Click += (o, e) => { if (!GameScene.Scene.OptionDialog.Visible) GameScene.Scene.OptionDialog.Show(); else GameScene.Scene.OptionDialog.Hide(); }; MenuButton = new MirButton { HoverIndex = 1961, Index = 1960, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 55, 35), Parent = this, PressedIndex = 1962, Sound = SoundList.ButtonC, Hint = "Menu" }; MenuButton.Click += (o, e) => { if (!GameScene.Scene.MenuDialog.Visible) GameScene.Scene.MenuDialog.Show(); else GameScene.Scene.MenuDialog.Hide(); }; GameShopButton = new MirButton { HoverIndex = 827, Index = 826, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 105, 35), Parent = this, PressedIndex = 828, Sound = SoundList.ButtonC, Hint = "Game Shop" }; GameShopButton.Click += (o, e) => { if (!GameScene.Scene.GameShopDialog.Visible) GameScene.Scene.GameShopDialog.Show(); else GameScene.Scene.GameShopDialog.Hide(); }; HealthOrb = new MirControl { Parent = this, Location = new Point(0, 30), NotControl = true, }; HealthOrb.BeforeDraw += HealthOrb_BeforeDraw; HealthLabel = new MirLabel { AutoSize = true, Location = new Point(0, 27), Parent = HealthOrb }; HealthLabel.SizeChanged += Label_SizeChanged; ManaLabel = new MirLabel { AutoSize = true, Location = new Point(0, 42), Parent = HealthOrb }; ManaLabel.SizeChanged += Label_SizeChanged; TopLabel = new MirLabel { Size = new Size(85, 30), DrawFormat = TextFormatFlags.HorizontalCenter, Location = new Point(9, 20), Parent = HealthOrb, }; BottomLabel = new MirLabel { Size = new Size(85, 30), DrawFormat = TextFormatFlags.HorizontalCenter, Location = new Point(9, 50), Parent = HealthOrb, }; LevelLabel = new MirLabel { AutoSize = true, Parent = this, Location = new Point(5, 108) }; CharacterName = new MirLabel { DrawFormat = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter, Parent = this, Location = new Point(6, 120), Size = new Size(90, 16) }; ExperienceBar = new MirImageControl { Index = Settings.Resolution != 800 ? 8 : 7, Library = Libraries.Prguse, Location = new Point(9, 143), Parent = this, DrawImage = false, NotControl = true, }; ExperienceBar.BeforeDraw += ExperienceBar_BeforeDraw; ExperienceLabel = new MirLabel { AutoSize = true, Parent = ExperienceBar, NotControl = true, }; GoldLabel = new MirLabel { DrawFormat = TextFormatFlags.VerticalCenter, Font = new Font(Settings.FontName, 8F), Location = new Point(this.Size.Width - 105, 119), Parent = this, Size = new Size(99, 13), Sound = SoundList.Gold, }; GoldLabel.Click += (o, e) => { if (GameScene.SelectedCell == null) GameScene.PickedUpGold = !GameScene.PickedUpGold && GameScene.Gold > 0; }; WeightBar = new MirImageControl { Index = 76, Library = Libraries.Prguse, Location = new Point(this.Size.Width - 105, 103), Parent = this, DrawImage = false, NotControl = true, }; WeightBar.BeforeDraw += WeightBar_BeforeDraw; WeightLabel = new MirLabel { Parent = this, Location = new Point(this.Size.Width - 30, 101), Size = new Size(26, 14), }; AModeLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, OutLineColour = Color.Black, Parent = this, Location = new Point(Settings.Resolution != 800 ? 899 : 675, Settings.Resolution != 800 ? -448 : -280), }; PModeLabel = new MirLabel { AutoSize = true, ForeColour = Color.Orange, OutLineColour = Color.Black, Parent = this, Location = new Point(230, 125), Visible = false }; SModeLabel = new MirLabel { AutoSize = true, ForeColour = Color.LimeGreen, OutLineColour = Color.Black, Parent = this, Location = new Point(Settings.Resolution != 800 ? 899 : 675, Settings.Resolution != 800 ? -463 : -295), }; }
public MirControl BindInfoLabel(UserItem item, bool Inspect = false) { byte level = Inspect ? InspectDialog.Level : MapObject.User.Level; MirClass job = Inspect ? InspectDialog.Class : MapObject.User.Class; HoverItem = item; ItemInfo realItem = Functions.GetRealItem(item.Info, level, job, ItemInfoList); ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); int count = 0; #region DONT_DEATH_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontDeathdrop)) { count++; MirLabel DONT_DEATH_DROPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't drop on death") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DEATH_DROPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DEATH_DROPLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontDrop)) { count++; MirLabel DONT_DROPLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't drop") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DROPLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DROPLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_UPGRADE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontUpgrade)) { count++; MirLabel DONT_UPGRADELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't upgrade") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_UPGRADELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_UPGRADELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_SELL if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontSell)) { count++; MirLabel DONT_SELLLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't sell") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_SELLLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_SELLLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_TRADE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontTrade)) { count++; MirLabel DONT_TRADELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't trade") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_TRADELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_TRADELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_STORE if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontStore)) { count++; MirLabel DONT_STORELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't store") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_STORELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_STORELabel.DisplayRectangle.Bottom)); } #endregion #region DONT_REPAIR if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DontRepair)) { count++; MirLabel DONT_REPAIRLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't repair") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_REPAIRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_REPAIRLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_SUERREPAIR if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.BindNoSRepair) { count++; MirLabel DONT_SUERREPAIRLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't special repair") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_SUERREPAIRLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_SUERREPAIRLabel.DisplayRectangle.Bottom)); } #endregion #region DONT_DESTROY_ON_DROP if (HoverItem.Info.Bind != BindMode.none && HoverItem.Info.Bind.HasFlag(BindMode.DestroyOnDrop)) { count++; MirLabel DONT_DODLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Destroyed when dropped") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, DONT_DODLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, DONT_DODLabel.DisplayRectangle.Bottom)); } #endregion #region BIND_ON_EQUIP if ((HoverItem.Info.BindOnEquip) & HoverItem.SoulBoundId == -1) { count++; MirLabel BOELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Soulbinds on equip") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BOELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BOELabel.DisplayRectangle.Bottom)); } else if (HoverItem.SoulBoundId != -1) { count++; MirLabel BOELabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = "Soulbound to: " + GetUserName((uint)HoverItem.SoulBoundId) }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, BOELabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, BOELabel.DisplayRectangle.Bottom)); } #endregion #region CURSED if ((!HoverItem.Info.NeedIdentify || HoverItem.Identified) && HoverItem.Cursed) { count++; MirLabel CURSEDLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Cursed") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CURSEDLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CURSEDLabel.DisplayRectangle.Bottom)); } #endregion #region CANTAWAKEN if (HoverItem.Info.CanAwakening != true) { count++; MirLabel CANTAWAKENINGLabel = new MirLabel { AutoSize = true, ForeColour = Color.Yellow, Location = new Point(4, ItemLabel.DisplayRectangle.Bottom), OutLine = true, Parent = ItemLabel, Text = string.Format("Can't awaken") }; ItemLabel.Size = new Size(Math.Max(ItemLabel.Size.Width, CANTAWAKENINGLabel.DisplayRectangle.Right + 4), Math.Max(ItemLabel.Size.Height, CANTAWAKENINGLabel.DisplayRectangle.Bottom)); } #endregion if (count > 0) { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height + 4); #region OUTLINE MirControl outLine = new MirControl { BackColour = Color.FromArgb(255, 50, 50, 50), Border = true, BorderColour = Color.Gray, NotControl = true, Parent = ItemLabel, Opacity = 0.4F, Location = new Point(0, 0) }; outLine.Size = ItemLabel.Size; #endregion return outLine; } else { ItemLabel.Size = new Size(ItemLabel.Size.Width, ItemLabel.Size.Height - 4); } return null; }
private static void CreateHintLabel() { if (HintBaseLabel == null || HintBaseLabel.IsDisposed) { HintBaseLabel = new MirControl { BackColour = Color.FromArgb(128, 128, 50), Border = true, DrawControlTexture = true, BorderColour = Color.Yellow, ForeColour = Color.Yellow, Parent = MirScene.ActiveScene, NotControl = true, Opacity = 0.5F }; } if (HintTextLabel == null || HintTextLabel.IsDisposed) { HintTextLabel = new MirLabel { AutoSize = true, BackColour = Color.Transparent, ForeColour = Color.White, Parent = HintBaseLabel, }; HintTextLabel.SizeChanged += (o, e) => HintBaseLabel.Size = HintTextLabel.Size; } if (MirControl.MouseControl == null || string.IsNullOrEmpty(MirControl.MouseControl.Hint)) { HintBaseLabel.Visible = false; return; } HintBaseLabel.Visible = true; HintTextLabel.Text = MirControl.MouseControl.Hint; Point point = MPoint.Add(-HintTextLabel.Size.Width, 20); if (point.X + HintBaseLabel.Size.Width >= Settings.ScreenWidth) point.X = Settings.ScreenWidth - HintBaseLabel.Size.Width - 1; if (point.Y + HintBaseLabel.Size.Height >= Settings.ScreenHeight) point.Y = Settings.ScreenHeight - HintBaseLabel.Size.Height - 1; if (point.X < 0) point.X = 0; if (point.Y < 0) point.Y = 0; HintBaseLabel.Location = point; }
protected virtual void Dispose(bool Disposing) { if (Disposing) { BackColorChanged = null; _BackColor = Color.Empty; BorderChanged = null; _Border = false; BorderRectangle = Rectangle.Empty; _BorderInfo = null; BorderColorChanged = null; _BorderColor = Color.Empty; DrawControlTexture = false; if (ControlTexture != null && !ControlTexture.Disposed) { ControlTexture.Dispose(); } ControlTexture = null; TextureValid = false; ControlAdded = null; ControlRemoved = null; if (Controls != null) { //Reverse because control will remove it's self from list changing list count. for (int I = Controls.Count - 1; I >= 0; I--) { if (Controls[I] != null && !Controls[I].IsDisposed) { Controls[I].Dispose(); } } Controls = null; } _Enabled = false; EnabledChanged = null; HasShown = false; BeforeDraw = null; AfterDraw = null; Shown = null; Click = null; DoubleClick = null; MouseEnter = null; MouseLeave = null; MouseMove = null; MouseDown = null; MouseUp = null; KeyPress = null; KeyUp = null; KeyDown = null; ForeColorChanged = null; _ForeColor = Color.Empty; LocationChanged = null; _Location = Point.Empty; ModalChanged = null; _Modal = false; MovableChanged = null; MovePoint = Point.Empty; Moving = false; _Movable = false; NotControlChanged = null; _NotControl = false; OpacityChanged = null; _Opacity = 0F; if (Parent != null && Parent.Controls != null) { Parent.Controls.Remove(this); } ParentChanged = null; _Parent = null; SizeChanged = null; _Size = Size.Empty; SoundChanged = null; _Sound = SoundList.None; VisibleChanged = null; _Visible = false; } IsDisposed = true; }