示例#1
0
        public static bool UseDropItem(ItemConsumerConfig itemConfig)
        {
            if (itemConfig.DropId > 0)
            {
                var itemList  = DropBook.GetDropItemList(itemConfig.DropId);
                var countList = new List <int>();
                foreach (var itemId in itemList)
                {
                    var isEquip = ConfigIdManager.IsEquip(itemId);
                    if (isEquip)
                    {
                        UserProfile.InfoEquip.AddEquip(itemId, 60);
                    }
                    else
                    {
                        UserProfile.InfoBag.AddItem(itemId, 1);
                    }
                    countList.Add(1);
                }
                var form = new ItemPackageForm();
                ((ItemPackageForm)form).SetItem(itemList.ToArray(), countList.ToArray());
                PanelManager.DealPanel(form);
            }

            return(true);
        }
示例#2
0
        private void MessageBoxEx_Paint(object sender, PaintEventArgs e)
        {
            virtualRegion.Draw(e.Graphics);

            string itemname;
            var    isEquip = ConfigIdManager.IsEquip(itemid);

            if (!isEquip)
            {
                itemname = ConfigDatas.ConfigData.GetHItemConfig(itemid).Name;
            }
            else
            {
                itemname = ConfigDatas.ConfigData.GetEquipConfig(itemid).Name;
            }
            Font  font  = new Font("微软雅黑", 10 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel);
            Brush brush = new SolidBrush(Color.FromName(fontcolor));

            e.Graphics.DrawString(itemname, font, brush, 134, 52);
            brush.Dispose();
            e.Graphics.DrawString("数量", font, Brushes.White, 69, 106);
            e.Graphics.DrawString("总价", font, Brushes.White, 69, 138);
            font.Dispose();
            e.Graphics.DrawImage(HSIcons.GetIconsByEName("res8"), 212, 140, 16, 16);
        }
示例#3
0
        public void Draw(Graphics g)
        {
            g.DrawRectangle(Pens.White, x, y, width - 1, height - 1);

            if (show)
            {
                Font font    = new Font("微软雅黑", 10 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel);
                var  isEquip = ConfigIdManager.IsEquip(itemId);
                if (!isEquip)
                {
                    HItemConfig itemConfig = ConfigData.GetHItemConfig(itemId);

                    Brush brush = new SolidBrush(Color.FromName(HSTypes.I2RareColor(itemConfig.Rare)));
                    g.DrawString(itemConfig.Name, font, brush, x + 50, y + 7);
                    brush.Dispose();
                }
                else
                {
                    EquipConfig equipConfig = ConfigData.GetEquipConfig(itemId);

                    Brush brush = new SolidBrush(Color.FromName(HSTypes.I2RareColor(equipConfig.Quality)));
                    g.DrawString(equipConfig.Name, font, brush, x + 50, y + 7);
                    brush.Dispose();
                }
                g.DrawString(price.ToString(), font, Brushes.Gold, x + 50, y + 30);
                g.DrawImage(HSIcons.GetIconsByEName("res" + (priceType + 1)), g.MeasureString(price.ToString(), font).Width + 50 + x, 32 + y, 16, 16);
                font.Dispose();

                virtualRegion.Draw(g);
            }
        }
示例#4
0
        public void RefreshData(int id)
        {
            bitmapButtonBuy.Visible = id != 0;
            show   = id != 0;
            itemId = id;
            if (id != 0)
            {
                var isEquip = ConfigIdManager.IsEquip(id);
                virtualRegion.SetRegionKey(1, id);
                virtualRegion.SetRegionType(1, !isEquip ? PictureRegionCellType.Item : PictureRegionCellType.Equip);
                if (!isEquip)
                {
                    var itmConfig = ConfigData.GetHItemConfig(itemId);
                    price = (int)GameResourceBook.OutGoldSellItem(itmConfig.Rare, itmConfig.ValueFactor);
                }
                else
                {
                    price = ConfigData.GetEquipConfig(itemId).Value;
                }
            }

            if (priceType > 0) //非金币购买
            {
                price = price / 10 + 1;
            }

            parent.Invalidate(new Rectangle(x, y, width, height));
        }
示例#5
0
        public void CardLevelUp(int n, int type)
        {
            foreach (ActiveCard activeCard in cards)
            {
                if (type != 0 && ConfigIdManager.GetCardType(activeCard.CardId) != (CardTypes)type)
                {
                    continue;
                }

                activeCard.Level = (byte)(activeCard.Level + n);
                if (activeCard.Level < 1)
                {
                    activeCard.Level = 1;
                }
                else if (activeCard.Level > GameConstants.CardMaxLevel)
                {
                    activeCard.Level = GameConstants.CardMaxLevel;
                }
            }

            if (self.CardsDesk != null)
            {
                self.CardsDesk.UpdateSlot(cards);
            }
        }
示例#6
0
 public static bool IsTrap(int id)
 {
     if (ConfigIdManager.GetCardType(id) != CardTypes.Spell)
     {
         return(false);
     }
     return(ConfigData.GetSpellConfig(id).Remark.Contains("陷阱"));
 }
示例#7
0
        public static void Show(int id, int price)
        {
            var isEquip = ConfigIdManager.IsEquip(id);

            PopBuyProduct mb = new PopBuyProduct();

            mb.itemid    = id;
            mb.itemprice = price;
            mb.virtualRegion.AddRegion(new PictureRegion(1, 68, 44, 40, 40, !isEquip ? PictureRegionCellType.Item : PictureRegionCellType.Equip, id));
            mb.ShowDialog();
        }
示例#8
0
        public static Image GetCardImage(int cid, int width, int height)
        {
            switch (ConfigIdManager.GetCardType(cid))
            {
            case CardTypes.Monster: return(MonsterBook.GetMonsterImage(cid, width, height));

            case CardTypes.Weapon: return(WeaponBook.GetWeaponImage(cid, width, height));

            case CardTypes.Spell: return(SpellBook.GetSpellImage(cid, width, height));
            }
            return(SpecialCards.NullCard.GetCardImage(width, height));
        }
示例#9
0
        public static Card GetCard(int cid)
        {
            switch (ConfigIdManager.GetCardType(cid))
            {
            case CardTypes.Monster: return(new MonsterCard(new Monster(cid)));

            case CardTypes.Weapon: return(new WeaponCard(new Weapon(cid)));

            case CardTypes.Spell: return(new SpellCard(new Spell(cid)));
            }
            return(SpecialCards.NullCard);
        }
示例#10
0
        void virtualRegion_RegionEntered(int id, int x, int y, int key)
        {
            Image image   = null;
            var   isEquip = ConfigIdManager.IsEquip(itemid);

            if (!isEquip)
            {
                image = HItemBook.GetPreview(itemid);
            }
            else
            {
                Equip equip = new Equip(itemid);
                image = equip.GetPreview();
            }
            toolTip.Show(image, this, 108, 44);
        }
示例#11
0
        public void RefreshData(int id)//商品id
        {
            productId = id;
            GameShopConfig gameShopConfig = ConfigData.GetGameShopConfig(id);

            bitmapButtonBuy.Visible = id != 0;
            show = id != 0;

            if (id != 0)
            {
                virtualRegion.SetRegionKey(1, gameShopConfig.ItemId);
                var isEquip = ConfigIdManager.IsEquip(gameShopConfig.ItemId);
                virtualRegion.SetRegionType(1, !isEquip ? PictureRegionCellType.Item : PictureRegionCellType.Equip);
            }

            parent.Invalidate(new Rectangle(x, y, width, height));
        }
示例#12
0
        internal int GetCardCountByType(CardTypes type)
        {
            if (type == CardTypes.Null)
            {
                return(Cards.Count);
            }
            int count = 0;

            foreach (var cd in Cards.Values)
            {
                if (ConfigIdManager.GetCardType(cd.BaseId) == type)
                {
                    count++;
                }
            }
            return(count);
        }
示例#13
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (UserProfile.InfoBag.PayDiamond(itemprice * count))
            {
                var isEquip = ConfigIdManager.IsEquip(itemid);
                if (!isEquip)
                {
                    UserProfile.InfoBag.AddItem(itemid, count);
                }
                else
                {
                    UserProfile.InfoEquip.AddEquip(itemid, 0);
                }

                Close();
            }
        }
示例#14
0
 private void virtualRegion_RegionEntered(int info, int mx, int my, int key)
 {
     if (info == 1 && itemId > 0)
     {
         Image image   = null;
         var   isEquip = ConfigIdManager.IsEquip(itemId);
         if (!isEquip)
         {
             image = HItemBook.GetPreview(itemId);
         }
         else
         {
             Equip equip = new Equip(itemId);
             image = equip.GetPreview();
         }
         tooltip.Show(image, parent, mx, my, itemId);
     }
 }
示例#15
0
        private void PopBuyProduct_Load(object sender, EventArgs e)
        {
            count             = 1;
            textBoxTotal.Text = (count * itemprice).ToString();
            var isEquip = ConfigIdManager.IsEquip(itemid);

            if (!isEquip)
            {
                fontcolor = HSTypes.I2RareColor(ConfigDatas.ConfigData.GetHItemConfig(itemid).Rare);
            }
            else
            {
                fontcolor             = HSTypes.I2QualityColor(ConfigDatas.ConfigData.GetEquipConfig(itemid).Quality);
                buttonAdd.Enabled     = false;
                buttonMinus.Enabled   = false;
                textBoxCount.ReadOnly = true;
            }
        }
示例#16
0
 private void virtualRegion_RegionEntered(int info, int mx, int my, int key)
 {
     if (info == 1 && productId > 0)
     {
         GameShopConfig gameShopConfig = ConfigData.GetGameShopConfig(productId);
         Image          image          = null;
         var            isEquip        = ConfigIdManager.IsEquip(gameShopConfig.ItemId);
         if (!isEquip)
         {
             image = HItemBook.GetPreview(gameShopConfig.ItemId);
         }
         else
         {
             Equip equip = new Equip(gameShopConfig.ItemId);
             image = equip.GetPreview();
         }
         tooltip.Show(image, parent, mx, my, gameShopConfig.ItemId);
     }
 }
示例#17
0
        private void RewardItem(ref int index)
        {
            if (config.RewardItem > 0)
            {
                var isEquip = ConfigIdManager.IsEquip(config.RewardItem);
                if (isEquip)
                {
                    UserProfile.InfoEquip.AddEquip(config.RewardItem, 60);
                    vRegion.AddRegion(new PictureRegion(index, pos.X + 3 + 20 + (index - 1) * 70, pos.Y + 3 + 25, 60, 60,
                                                        PictureRegionCellType.Equip, config.RewardItem));
                }
                else
                {
                    UserProfile.InfoBag.AddItem(config.RewardItem, 1);
                    vRegion.AddRegion(new PictureRegion(index, pos.X + 3 + 20 + (index - 1) * 70, pos.Y + 3 + 25, 60, 60,
                                                        PictureRegionCellType.Item, config.RewardItem));
                }

                index++;
            }
            if (config.RewardDrop > 0)
            {
                var itemList = DropBook.GetDropItemList(config.RewardDrop);
                foreach (var itemId in itemList)
                {
                    var isEquip = ConfigIdManager.IsEquip(itemId);
                    if (isEquip)
                    {
                        UserProfile.InfoEquip.AddEquip(itemId, 60);
                        vRegion.AddRegion(new PictureRegion(index, pos.X + 3 + 20 + (index - 1) * 70, pos.Y + 3 + 25,
                                                            60, 60, PictureRegionCellType.Equip, itemId));
                    }
                    else
                    {
                        UserProfile.InfoBag.AddItem(itemId, 1);
                        vRegion.AddRegion(new PictureRegion(index, pos.X + 3 + 20 + (index - 1) * 70, pos.Y + 3 + 25,
                                                            60, 60, PictureRegionCellType.Item, itemId));
                    }
                    index++;
                }
            }
        }
示例#18
0
        private void pictureBoxBuy_Click(object sender, EventArgs e)
        {
            if (!UserProfile.InfoBag.HasResource((GameResourceType)priceType, (uint)price))
            {
                parent.AddFlowCenter("资源不足", "Red");
                return;
            }

            UserProfile.InfoBag.SubResource((GameResourceType)priceType, (uint)price);
            var isEquip = ConfigIdManager.IsEquip(itemId);

            if (!isEquip)
            {
                UserProfile.InfoBag.AddItem(itemId, 1);
            }
            else
            {
                UserProfile.InfoEquip.AddEquip(itemId, 0);
            }
        }
示例#19
0
 public void Recalculate()
 {
     Mcount = 0;
     Wcount = 0;
     for (int i = 0; i < GameConstants.DeckCardCount; i++)
     {
         if (CardIds[i] != -1)
         {
             var cardType = ConfigIdManager.GetCardType(CardIds[i]);
             if (cardType == CardTypes.Monster)
             {
                 Mcount = Mcount + 1;
             }
             else
             {
                 Wcount = Wcount + 1;
             }
         }
     }
 }
示例#20
0
        private void RegetCards()
        {
            List <DeckCard> cards = new List <DeckCard>();

            foreach (int cid in cids)
            {
                if ((int)ConfigIdManager.GetCardType(cid) == fil_type)
                {
                    DeckCard card = new DeckCard(UserProfile.InfoCard.GetDeckCardById(cid));
                    cards.Add(card);
                }
            }

            if (cards.Count <= 0)
            {
                sel = -1;
            }
            else
            {
                switch (fil_order)
                {
                case 0: cards.Sort(new CompareDeckCardByLevel()); break;

                case 1: cards.Sort(new CompareDeckCardByLevel()); cards.Reverse(); break;

                case 2: cards.Sort(new CompareDeckCardByExp()); cards.Reverse(); break;

                case 3: cards.Sort(new CompareDeckCardByExp()); break;
                }

                activeCids = new int[cards.Count];
                for (int i = 0; i < activeCids.Length; i++)
                {
                    activeCids[i] = cards[i].BaseId;
                }
                sel = 0;
            }

            Invalidate();
        }
示例#21
0
        public void Draw(Graphics g)
        {
            Image back = PicLoader.Read("System", "ShopItemBack.JPG");

            g.DrawImage(back, x, y, width - 1, height - 1);
            back.Dispose();

            if (show)
            {
                GameShopConfig gameShopConfig = ConfigData.GetGameShopConfig(productId);
                string         name;
                string         fontcolor;
                var            isEquip = ConfigIdManager.IsEquip(gameShopConfig.ItemId);
                if (!isEquip)
                {
                    HItemConfig itemConfig = ConfigData.GetHItemConfig(gameShopConfig.ItemId);
                    name      = itemConfig.Name;
                    fontcolor = HSTypes.I2RareColor(itemConfig.Rare);
                }
                else
                {
                    EquipConfig equipConfig = ConfigData.GetEquipConfig(gameShopConfig.ItemId);
                    name      = equipConfig.Name;
                    fontcolor = HSTypes.I2QualityColor(equipConfig.Quality);
                }
                Font  fontsong = new Font("宋体", 9 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel);
                Brush brush    = new SolidBrush(Color.FromName(fontcolor));
                g.DrawString(name, fontsong, brush, x + 76, y + 9);
                brush.Dispose();
                var itmConfig = ConfigData.GetHItemConfig(gameShopConfig.ItemId);
                var price     = GameResourceBook.OutGoldSellItem(itmConfig.Rare, itmConfig.ValueFactor);
                g.DrawString(string.Format("{0,3:D}", Math.Max(1, price / GameConstants.DiamondToGold)), fontsong, Brushes.PaleTurquoise, x + 80, y + 37);
                fontsong.Dispose();
                g.DrawImage(HSIcons.GetIconsByEName("res8"), x + 110, y + 35, 16, 16);

                virtualRegion.Draw(g);
            }
        }
示例#22
0
        internal DbCardProduct[] GetCardProductsByType(CardTypes type)
        {
            int time = TimeTool.DateTimeToUnixTime(DateTime.Now);

            if (CardProducts == null || UserProfile.InfoRecord.GetRecordById((int)MemPlayerRecordTypes.LastCardShopTime) < time - GameConstants.CardShopDura)
            {
                CardProducts = new List <DbCardProduct>();
                ReinstallCardProducts();
                UserProfile.InfoRecord.SetRecordById((int)MemPlayerRecordTypes.LastCardShopTime, TimeManager.GetTimeOnNextInterval(UserProfile.InfoRecord.GetRecordById((int)MemPlayerRecordTypes.LastCardShopTime), time, GameConstants.CardShopDura));
            }

            List <DbCardProduct> pros = new List <DbCardProduct>();

            foreach (DbCardProduct cardProduct in CardProducts)
            {
                if (ConfigIdManager.GetCardType(cardProduct.Cid) == type)
                {
                    pros.Add(cardProduct);
                }
            }

            return(pros.ToArray());
        }