public void RedrawItems() { int x = 20; int y = 20; foreach (GridLootItem gridLootItem in Children.OfType <GridLootItem>()) { gridLootItem.Dispose(); } int count = 0; _pagesCount = 1; foreach (Item item in _corpse.Items) { if (item == null || item.ItemData.Layer == (int)Layer.Hair || item.ItemData.Layer == (int)Layer.Beard || item.ItemData.Layer == (int)Layer.Face) { continue; } GridLootItem gridItem = new GridLootItem(item); if (x >= _background.Width - 20) { x = 20; y += gridItem.Height + 40; if (y >= _background.Height - 40) { _pagesCount++; y = 20; _buttonNext.IsEnabled = true; _buttonNext.IsVisible = true; } } gridItem.X = x; gridItem.Y = y; Add(gridItem, _pagesCount); x += gridItem.Width + 20; count++; } if (count == 0) { GameActions.Print("[GridLoot]: Corpse is empty!"); Dispose(); } }
public void RedrawItems() { int x = 20; int y = 20; foreach (GridLootItem gridLootItem in Children.OfType <GridLootItem>()) { gridLootItem.Dispose(); } int count = 0; _pagesCount = 1; foreach (Item item in _corpse.Items.Where(s => s != null && s.IsLootable)) { GridLootItem gridItem = new GridLootItem(item); if (x >= _background.Width - 20) { x = 20; y += gridItem.Height + 40; if (y >= _background.Height - 40) { _pagesCount++; y = 20; _buttonNext.IsEnabled = true; _buttonNext.IsVisible = true; } } gridItem.X = x; gridItem.Y = y; Add(gridItem, _pagesCount); x += gridItem.Width + 20; count++; } if (count == 0) { GameActions.Print("[GridLoot]: Corpse is empty!"); Dispose(); } }
protected override void UpdateContents() { const int GRID_ITEM_SIZE = 50; int x = 20; int y = 20; foreach (GridLootItem gridLootItem in Children.OfType <GridLootItem>()) { gridLootItem.Dispose(); } int count = 0; _pagesCount = 1; _background.Width = x; _background.Height = y; int line = 1; int row = 0; for (LinkedObject i = _corpse.Items; i != null; i = i.Next) { Item it = (Item)i; if (it.IsLootable) { GridLootItem gridItem = new GridLootItem(it, GRID_ITEM_SIZE); if (x >= MAX_WIDTH - 20) { x = 20; ++line; y += gridItem.Height + 20; if (y >= MAX_HEIGHT - 40) { _pagesCount++; y = 20; //line = 1; } } gridItem.X = x; gridItem.Y = y; Add(gridItem, _pagesCount); x += gridItem.Width + 20; ++row; ++count; } } _background.Width = (GRID_ITEM_SIZE + 20) * row + 20; _background.Height = 20 + 40 + (GRID_ITEM_SIZE + 20) * line + 20; if (_background.Height >= MAX_HEIGHT - 40) { _background.Height = MAX_HEIGHT; } _background.Width = MAX_WIDTH; if (ActivePage <= 1) { ActivePage = 1; _buttonNext.IsVisible = _pagesCount > 1; _buttonPrev.IsVisible = false; } else if (ActivePage >= _pagesCount) { ActivePage = _pagesCount; _buttonNext.IsVisible = false; _buttonPrev.IsVisible = _pagesCount > 1; } else if (ActivePage > 1 && ActivePage < _pagesCount) { _buttonNext.IsVisible = true; _buttonPrev.IsVisible = true; } if (count == 0) { GameActions.Print(ResGumps.CorpseIsEmpty); Dispose(); } else if (_hideIfEmpty && !IsVisible) { IsVisible = true; } }
public void RedrawItems() { int st = 10 * ProfileManager.Current.CorpseScale; int size = (int)((Width - 10 * ProfileManager.Current.CorpseScale) / ProfileManager.Current.ItemScale - 10 * ProfileManager.Current.CorpseScale); int x = st; int y = st; foreach (GridLootItem gridLootItem in Children.OfType <GridLootItem>()) { gridLootItem.Dispose(); } uint curtime = Time.Ticks; int count = 0; _pagesCount = 1; //_corpse.Items.Added -= ItemsOnAdded; ////_corpse.Items.Removed -= ItemsOnRemoved; //_corpse.Items.Added += ItemsOnAdded; ////_corpse.Items.Removed += ItemsOnRemoved; foreach (Item item in _corpse.Items) { //if (item.IsCoin && ProfileManager.Current.AutoLootGold && ProfileManager.Current.GridLootType < 2) //{ // //if (curtime - DELAY > time) // GameActions.GrabItem(item, (ushort)item.Amount); // //GameActions.Print("[格柵拾取]: 拾取" + item.Amount.ToString() + "金币。"); // looting = true; // //time = curtime; // return; //} //bool contain = false; //if (ProfileManager.Current.LootList == null) // ProfileManager.Current.LootList = new List<ushort[]>(); //foreach (ushort[] i in ProfileManager.Current.LootList) //{ // if (item.Graphic == i[0] && item.Hue == i[1]) // { // contain = true; // break; // } //} //if (contain && ProfileManager.Current.AutoLootItem && ProfileManager.Current.GridLootType < 2) //{ // //if (curtime - DELAY > time) // GameActions.GrabItem(item, (ushort)item.Amount); // //time = curtime; // looting = true; // return; //} //looting = false; if (item == null || item.ItemData.Layer == (int)Layer.Hair || item.ItemData.Layer == (int)Layer.Beard || item.ItemData.Layer == (int)Layer.Face) { continue; } GridLootItem gridItem = new GridLootItem(item, size); if (x > _background.Width - gridItem.Width - st) { x = st; y += gridItem.Height + st; if (y > _background.Height - gridItem.Width - 2 * st - 20) { _pagesCount++; y = st; _buttonNext.IsEnabled = true; _buttonNext.IsVisible = true; } } gridItem.X = x; gridItem.Y = y; Add(gridItem, _pagesCount); x += gridItem.Width + st; count++; } //if (count == 0) //{ // //GameActions.Print("[格柵拾取]: 尸體是空的!"); // Dispose(); //} }
protected override void UpdateContents() { int x = 20; int y = 20; foreach (GridLootItem gridLootItem in Children.OfType <GridLootItem>()) { gridLootItem.Dispose(); } int count = 0; _pagesCount = 1; for (var i = _corpse.Items; i != null; i = i.Next) { Item it = (Item)i; if (it.IsLootable) { GridLootItem gridItem = new GridLootItem(it); if (x >= _background.Width - 20) { x = 20; y += gridItem.Height + 20; if (y >= _background.Height - 40) { _pagesCount++; y = 20; } } gridItem.X = x; gridItem.Y = y; Add(gridItem, _pagesCount); x += gridItem.Width + 20; count++; } } if (ActivePage <= 1) { ActivePage = 1; _buttonNext.IsVisible = _pagesCount > 1; _buttonPrev.IsVisible = false; } else if (ActivePage >= _pagesCount) { ActivePage = _pagesCount; _buttonNext.IsVisible = false; _buttonPrev.IsVisible = _pagesCount > 1; } else if (ActivePage > 1 && ActivePage < _pagesCount) { _buttonNext.IsVisible = true; _buttonPrev.IsVisible = true; } if (count == 0) { GameActions.Print("[GridLoot]: Corpse is empty!"); Dispose(); } else if ((_hideIfEmpty && !IsVisible)) { IsVisible = true; } }