public static void FillStorage(List <ClientUserItem> items, bool observer) { Storage = new ClientUserItem[1000]; PartsStorage = new ClientUserItem[1000]; if (!observer) { MainStorage = Storage; MainPartsStorage = PartsStorage; } foreach (ClientUserItem item in items) { if (item.Slot >= 2000) { PartsStorage[item.Slot - Globals.PartsStorageOffset] = item; } else { Storage[item.Slot] = item; } } }
public DXItemAmountWindow(string caption, ClientUserItem item) { HasFooter = true; TitleLabel.Text = caption; SetClientSize(new Size(200, DXItemCell.CellHeight + 10)); Parent = ActiveScene; MessageBoxList.Add(this); Modal = true; Location = new Point((ActiveScene.DisplayArea.Width - DisplayArea.Width) / 2, (ActiveScene.DisplayArea.Height - DisplayArea.Height) / 2); ConfirmButton = new DXButton { Location = new Point(Size.Width / 2 + 10, Size.Height - 43), Size = new Size(80, DefaultHeight), Parent = this, Label = { Text = "Confirm" } }; ConfirmButton.MouseClick += (o, e) => Dispose(); AmountBox = new DXNumberBox { Parent = this, MaxValue = item.Count, Change = Math.Max(1, item.Count / 5), }; AmountBox.ValueTextBox.ValueChanged += (o, e) => { Amount = AmountBox.Value; if (Amount <= 0) { AmountBox.ValueTextBox.BorderColour = Color.Red; } else if (Amount == AmountBox.MaxValue) { AmountBox.ValueTextBox.BorderColour = Color.Orange; } else { AmountBox.ValueTextBox.BorderColour = Color.Green; } ConfirmButton.Enabled = Amount > 0; if (item.Info.Effect == ItemEffect.Gold) { item.Count = Amount; ItemCell.RefreshItem(); } }; ItemCell = new DXItemCell { Location = new Point(ClientArea.Location.X + (ClientArea.Width - DXItemCell.CellWidth - AmountBox.Size.Width - 5) / 2, ClientArea.Location.Y + 5), Parent = this, FixedBorder = true, Border = true, ItemGrid = new[] { item }, Slot = 0, GridType = GridType.None, ReadOnly = true, }; AmountBox.Location = new Point(ItemCell.Location.X + ItemCell.Size.Width + 10, ItemCell.Location.Y + (ItemCell.Size.Height - AmountBox.Size.Height) / 2); AmountBox.Value = 1; AmountBox.ValueTextBox.KeepFocus = true; AmountBox.ValueTextBox.SetFocus(); AmountBox.ValueTextBox.TextBox.KeyPress += AmountBox_KeyPress; }
public ItemObject(S.ObjectItem info) { ObjectID = info.ObjectID; Item = info.Item; ItemInfo itemInfo = info.Item.Info; if (info.Item.Info.Effect == ItemEffect.ItemPart) { itemInfo = Globals.ItemInfoList.Binding.First(x => x.Index == Item.AddedStats[Stat.ItemIndex]); Title = "[Part]"; } Name = Item.Count > 1 ? $"{itemInfo.ItemName} ({Item.Count})" : itemInfo.ItemName; if ((Item.Flags & UserItemFlags.QuestItem) == UserItemFlags.QuestItem) { Title = "(Quest)"; } switch (itemInfo.Rarity) { case Rarity.Common: if (Item.AddedStats.Values.Count > 0 && Item.Info.Effect != ItemEffect.ItemPart) { NameColour = Color.LightSkyBlue; Effects.Add(new MirEffect(110, 10, TimeSpan.FromMilliseconds(100), LibraryFile.ProgUse, 60, 60, Color.DeepSkyBlue) { Target = this, Loop = true, Blend = true, BlendRate = 0.5F, }); } else { NameColour = Color.White; } break; case Rarity.Superior: NameColour = Color.PaleGreen; Effects.Add(new MirEffect(100, 10, TimeSpan.FromMilliseconds(100), LibraryFile.ProgUse, 60, 60, Color.PaleGreen) { Target = this, Loop = true, Blend = true, BlendRate = 0.5F, }); break; case Rarity.Elite: NameColour = Color.MediumPurple; Effects.Add(new MirEffect(120, 10, TimeSpan.FromMilliseconds(100), LibraryFile.ProgUse, 60, 60, Color.MediumPurple) { Target = this, Loop = true, Blend = true, BlendRate = 0.5F, }); break; } CurrentLocation = info.Location; UpdateLibraries(); SetFrame(new ObjectAction(MirAction.Standing, Direction, CurrentLocation)); GameScene.Game.MapControl.AddObject(this); }