Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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();
            //}
        }
Esempio n. 5
0
        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;
            }
        }