Beispiel #1
0
    public bool AddItem(BaseItemData newItem)
    {
        ItemListItem lastExistingItem = Items.FindLast(item => item.Data.ItemName == newItem.ItemName);

        // If this item does not exist, just add to our inventory
        if (lastExistingItem == null)
        {
            Items.Add(new ItemListItem(newItem));
            return(true);
        }
        else
        {
            int countSum = Items.FindAll(item => item.Data.ItemName == newItem.ItemName).Select(x => x.Count).Sum();
            if (countSum == newItem.MaxCount)
            {
                GameManager.SendSystemMessage($"You cannot pickup any more of this item.");
                return(false);
            }

            if (lastExistingItem.Count < newItem.MaxCount || newItem.MaxCount == -1)
            {
                if (lastExistingItem.Count == newItem.MaxPerStack)
                {
                    Items.Add(new ItemListItem(newItem));
                }
                else
                {
                    lastExistingItem.Count++;
                }
            }

            return(true);
        }
    }
        public void TestAnalyseDataItem_服务器返回错误信息()
        {
            string xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
                         + "<error_rsp>"
                         + "  <args>"
                         + "    <arg name=\"api_key\"><![CDATA[12003014]]></arg>"
                         + "  </args>"
                         + "  <code>551</code>"
                         + "  <msg><![CDATA[Item service unavailable:获取单个商品失败]]></msg>"
                         + "</error_rsp>"
                         + "<!--top50.cm1-->";

            AnalyseData analyser = new AnalyseData(defaultAppKey, defaultAppSecret);

            try
            {
                ItemListItem item = analyser.AnalyseDataItem <ItemListItem>(xml);
            }
            catch (ResponseException ex)
            {
                string errorXml = "<error_rsp>"
                                  + "<args>"
                                  + "<arg name=\"api_key\"><![CDATA[12003014]]></arg>"
                                  + "</args>"
                                  + "<code>551</code>"
                                  + "<msg><![CDATA[Item service unavailable:获取单个商品失败]]></msg>"
                                  + "</error_rsp>";
                Assert.AreEqual(errorXml, ex.ErrorXml);
            }
            catch (Exception ex)
            {
                Assert.Fail("应该抛出服务器返回错误信息的异常,而不是" + ex.GetType().ToString() + "异常");
            }
        }
        public void TestRequestTOPDataItem_测试请求服务器_卖家不存在()
        {
            string nick = "不存在的卖家";
            string id   = "102a0499bf58d002de05da07f523f3f1";

            AnalyseData analyser          = new AnalyseData(defaultAppKey, defaultAppSecret);
            Dictionary <string, string> q = new Dictionary <string, string>();

            q.Add("nick", nick);
            q.Add("iid", id);
            try
            {
                ItemListItem item = analyser.RequestTOPDataItem <ItemListItem>("taobao.item.get", q);
            }
            catch (ResponseException ex)
            {
                Assert.AreEqual("服务器返回错误响应消息", ex.Message);
                Assert.AreEqual("601", ex.ErrorCode);
                Assert.AreEqual("User not exist:不存在的卖家", ex.ErrorDescription);
            }
            catch (Exception ex)
            {
                Assert.Fail("应该抛出服务器返回错误信息的异常,而不是" + ex.GetType().ToString() + "异常");
            }
        }
Beispiel #4
0
        public override void Setup()
        {
            base.Setup();
            ItemsContainer = new InventoryItemsContainer(_UIManager);
            this.AddChild(ItemsContainer);
            ItemsContainer.OffsetPos = Vector2.Zero;
            ItemsContainer._Size     = new Vector2(adJustedWidth - 5, adjustedHeight - 5);
            ItemsContainer._Name     = "InventoryContainer";
            ItemsContainer.LoadContent("Panel");
            ItemsContainer.bufferX = 62;
            ItemsContainer.bufferY = 47;

            for (int i = 0; i < 28; i++)
            {
                ItemListItem ili = new ItemListItem(_UIManager);
                ili._Size = new Vector2(60, 45);
                ili.LoadContent("Inventory3BG");
                ili.Setup();

                ItemsContainer.InvenItems.Add(ili);
            }

            foreach (ItemListItem ili in ItemsContainer.InvenItems)
            {
                ili.Reset();
            }

            int c = 0;

            foreach (GameObjects.ItemSlot s in _InvenManager.itemSlots)
            {
                ItemsContainer.InvenItems[c].SetItem(s);
                c++;
            }
        }
 public void UpdateSlot(ItemListItem referenceItem)
 {
     if (referenceItem != null)
     {
         ReferenceItem    = referenceItem;
         _itemIcon.sprite = ReferenceItem.Data.Icon;
         _itemCount.text  = "" + referenceItem.Count;
     }
     else
     {
         ReferenceItem    = null;
         _itemCount.text  = "";
         _itemIcon.sprite = null;
     }
 }
 private void RefreshItems()
 {
     for (int i = 0; i < _slots.Count; i++)
     {
         if (i < _inventoryItemList.Items.Count)
         {
             ItemListItem item = _inventoryItemList.Items[i];
             _slots[i].UpdateSlot(item);
         }
         else
         {
             _slots[i].UpdateSlot(null);
         }
     }
 }
        public void TestRequestTOPDataItem_测试请求服务器_正确()
        {
            string nick = "fengxiangxia";
            string id   = "302a0499bf58d002de05da07f523f3f9";

            AnalyseData analyser          = new AnalyseData(defaultAppKey, defaultAppSecret);
            Dictionary <string, string> q = new Dictionary <string, string>();

            q.Add("nick", nick);
            q.Add("iid", id);
            ItemListItem item = analyser.RequestTOPDataItem <ItemListItem>("taobao.item.get", q);

            Assert.AreEqual("302a0499bf58d002de05da07f523f3f9", item.Id);
            Assert.AreEqual("韩国代购THURSDAY ISLAND专柜正品&mdash;TB3TS05AU粉色短袖T恤", item.Title);
        }
        public void SetRoom(string name, Point3 location, IEnumerable <RdlActor> actors)
        {
            this.Location       = location;
            PlaceNameLabel.Text = name;

            foreach (var actor in actors)
            {
                if (_actors.ContainsKey(actor.ID))
                {
                    _actors[actor.ID] = actor;
                }
                else
                {
                    _actors.Add(actor.ID, actor);
                }
            }

            // Remove any actors not in the current location.
            var removes = _actors.Where(a => new Point3(a.Value.Properties.GetValue <int>("X"),
                                                        a.Value.Properties.GetValue <int>("Y"),
                                                        a.Value.Properties.GetValue <int>("Z")) != this.Location).Select(a => a.Value.ID).ToList();

            foreach (var id in removes)
            {
                _actors.Remove(id);
            }

            ctlItems.Children.Clear();
            foreach (var actor in _actors.Values)
            {
                ObjectType type = (ObjectType)Enum.Parse(typeof(ObjectType), actor.Properties.GetValue <string>("ObjectType"), true);
                if (type == ObjectType.Mobile || type == ObjectType.Player)
                {
                    AvatarListItem avatarItem = AvatarListItem.Create(actor);
                    avatarItem.Action += Action;
                    ctlItems.Children.Add(avatarItem);
                }
                else if (type == ObjectType.Actor)
                {
                    ItemListItem listItem = ItemListItem.Create(actor);
                    listItem.Action += Action;
                    ctlItems.Children.Add(listItem);
                }
            }
        }
Beispiel #9
0
    IEnumerator GetDataImage(WWW www, int index, string jsonDataItem)
    {
        //Wait for request to complete
        yield return(www);

        if (www.error == null)
        {
            jsonData = www.text;
            Debug.Log(jsonData);

            //Data is in json format, we need to parse the Json.
            JSONObject jsonObjectItem       = JSONObject.Parse(jsonDataItem);
            JSONObject jsonObjectItemInShop = JSONObject.Parse(jsonDataObjects[index]);

            Texture2D texture     = www.texture;
            Sprite    spriteImage = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f));
            foundImage.Image = spriteImage;

            //now we can get the values from json of any attribute.
            foundItem.Id       = Convert.ToInt32(jsonObjectItem["id"].Number);
            foundItem.Name     = jsonObjectItem["name"].Str;
            foundItem.Image    = foundImage;
            foundItem.Category = foundCategory;

            foundItemInShop.Id    = Convert.ToInt32(jsonObjectItemInShop["id"].Number);
            foundItemInShop.Item  = foundItem;
            foundItemInShop.Shop  = foundShop;
            foundItemInShop.Price = jsonObjectItemInShop["price"].Number;

            GameObject newItemListItem = itemObjectPool.GetObject();
            newItemListItem.transform.SetParent(contentPanel);

            ItemListItem itemListItem = newItemListItem.GetComponent <ItemListItem>();
            itemListItem.ShowItemInfo(foundItemInShop);
        }
        else
        {
            Debug.Log(www.error);
        }
    }
        static List <ItemListItem> GetItems(string url)
        {
            List <ItemListItem> items = new List <ItemListItem>();

            HtmlWeb web = new HtmlWeb();

            HtmlAgilityPack.HtmlDocument doc = web.Load(url);
            HtmlNode table = doc.GetElementbyId("GridView2");

            if (null != table)
            {
                int th_index = 0;
                foreach (HtmlNode th in table.ChildNodes)
                {
                    if (th_index++ > 1)
                    {
                        int          index = 0;
                        ItemListItem item  = new ItemListItem();
                        //string date = "", title = "";
                        foreach (HtmlNode tr in th.ChildNodes)
                        {
                            if (index++ == 1)
                            {
                                item.date = tr.InnerText;
                            }
                            if (index == 6)
                            {
                                item.title = tr.InnerText;
                            }
                        }
                        if (item.date != "" && item.title != "")
                        {
                            items.Add(item);
                        }
                    }
                }
            }
            return(items);
        }
        public void TestAnalyseDataItem_解析正确的XML文本()
        {
            string xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
                         + "<rsp>"
                         + "  <item>"
                         + "    <iid><![CDATA[302a0499bf58d002de05da07f523f3f9]]></iid>"
                         + "    <detail_url><![CDATA[http://item.taobao.com/auction/item_detail.jhtml?item_id=302a0499bf58d002de05da07f523f3f9&x_id=0xid]]></detail_url>"
                         + "    <title><![CDATA[韩国代购THURSDAY ISLAND专柜正品&mdash;TB3TS05AU粉色短袖T恤]]></title>"
                         + "    <nick><![CDATA[fengxiangxia]]></nick>"
                         + "    <type><![CDATA[fixed]]></type>"
                         + "    <cid><![CDATA[50011150]]></cid>"
                         + "    <desc><![CDATA[商品描述]]></desc>"
                         + "    <pic_path><![CDATA[http://img06.taobaocdn.com/bao/uploaded/i6/T1h.ljXoUrvJN81.sV_021900.jpg]]></pic_path>"
                         + "    <num>6</num>"
                         + "    <approve_status><![CDATA[onsale]]></approve_status>"
                         + "  </item>"
                         + "</rsp>"
                         + "<!--top14.cm3-->";

            AnalyseData  analyser = new AnalyseData(defaultAppKey, defaultAppSecret);
            ItemListItem item     = analyser.AnalyseDataItem <ItemListItem>(xml);

            Assert.AreEqual("302a0499bf58d002de05da07f523f3f9", item.Id);
        }
        public AddCharacterItemsModel GetAvailableEquipment(int characterID)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var character = ctx.Characters.Single(c => c.CharacterID == characterID);
                List <ItemListItem> itemList         = new List <ItemListItem>();
                List <ItemListItem> itemsToBeRemoved = new List <ItemListItem>();

                if (character.CharacterClass == CharacterClass.Fighter)
                {
                    var entity = ctx.Items.Where(e => e.UsableBy.HasFlag(UsableBy.Fighter));
                    foreach (var item in entity)
                    {
                        var listItem = new ItemListItem
                        {
                            ItemID          = item.ItemID,
                            ItemName        = item.ItemName,
                            UsableBy        = item.UsableBy,
                            ItemType        = item.ItemType,
                            IsEquipped      = item.IsEquipped,
                            Damage          = item.Damage,
                            DamageType      = item.DamageType,
                            WeaponType      = item.WeaponType,
                            Size            = item.Size,
                            ArmorClassBonus = item.ArmorClassBonus,
                            ItemNotes       = item.ItemNotes
                        };
                        if (!itemList.Contains(listItem))
                        {
                            itemList.Add(listItem);
                        }
                    }
                }
                if (character.CharacterClass == CharacterClass.Cleric)
                {
                    var entity = ctx.Items.Where(e => e.UsableBy.HasFlag(UsableBy.Cleric));
                    foreach (var item in entity)
                    {
                        var listItem = new ItemListItem
                        {
                            ItemID          = item.ItemID,
                            ItemName        = item.ItemName,
                            UsableBy        = item.UsableBy,
                            ItemType        = item.ItemType,
                            WeaponType      = item.WeaponType,
                            IsEquipped      = item.IsEquipped,
                            Damage          = item.Damage,
                            DamageType      = item.DamageType,
                            Size            = item.Size,
                            ArmorClassBonus = item.ArmorClassBonus,
                            ItemNotes       = item.ItemNotes
                        };
                        if (!itemList.Contains(listItem))
                        {
                            itemList.Add(listItem);
                        }
                    }
                }
                if (character.CharacterClass == CharacterClass.Thief)
                {
                    var entity = ctx.Items.Where(e => e.UsableBy.HasFlag(UsableBy.Thief));
                    foreach (var item in entity)
                    {
                        var listItem = new ItemListItem
                        {
                            ItemID          = item.ItemID,
                            ItemName        = item.ItemName,
                            UsableBy        = item.UsableBy,
                            ItemType        = item.ItemType,
                            WeaponType      = item.WeaponType,
                            IsEquipped      = item.IsEquipped,
                            Damage          = item.Damage,
                            DamageType      = item.DamageType,
                            Size            = item.Size,
                            ArmorClassBonus = item.ArmorClassBonus,
                            ItemNotes       = item.ItemNotes
                        };
                        if (!itemList.Contains(listItem))
                        {
                            itemList.Add(listItem);
                        }
                    }
                }
                if (character.CharacterClass == CharacterClass.MagicUser)
                {
                    var entity = ctx.Items.Where(e => e.UsableBy.HasFlag(UsableBy.MagicUser));
                    foreach (var item in entity)
                    {
                        var listItem = new ItemListItem
                        {
                            ItemID          = item.ItemID,
                            ItemName        = item.ItemName,
                            UsableBy        = item.UsableBy,
                            ItemType        = item.ItemType,
                            WeaponType      = item.WeaponType,
                            IsEquipped      = item.IsEquipped,
                            Damage          = item.Damage,
                            DamageType      = item.DamageType,
                            Size            = item.Size,
                            ArmorClassBonus = item.ArmorClassBonus,
                            ItemNotes       = item.ItemNotes
                        };
                        if (!itemList.Contains(listItem))
                        {
                            itemList.Add(listItem);
                        }
                    }
                }

                if (character.CharacterRace == CharacterRace.Halfling)
                {
                    foreach (var item in itemList)
                    {
                        if (!item.UsableBy.HasFlag(UsableBy.Halfling))
                        {
                            itemsToBeRemoved.Add(item);
                        }
                    }
                }
                if (character.CharacterRace == CharacterRace.Dwarf)
                {
                    foreach (var item in itemList)
                    {
                        if (!item.UsableBy.HasFlag(UsableBy.Dwarf))
                        {
                            itemsToBeRemoved.Add(item);
                        }
                    }
                }
                if (character.CharacterRace == CharacterRace.Elf)
                {
                    foreach (var item in itemList)
                    {
                        if (!item.UsableBy.HasFlag(UsableBy.Elf))
                        {
                            itemsToBeRemoved.Add(item);
                        }
                    }
                }
                if (character.CharacterRace == CharacterRace.Human)
                {
                    foreach (var item in itemList)
                    {
                        if (!item.UsableBy.HasFlag(UsableBy.Human))
                        {
                            itemsToBeRemoved.Add(item);
                        }
                    }
                }

                foreach (var item in itemsToBeRemoved)
                {
                    itemList.Remove(item);
                }

                AddCharacterItemsModel model = new AddCharacterItemsModel
                {
                    CharacterID          = character.CharacterID,
                    OwnerID              = character.OwnerID,
                    CharacterName        = character.CharacterName,
                    CharacterStr         = character.CharacterStr,
                    CharacterDex         = character.CharacterDex,
                    CharacterCon         = character.CharacterCon,
                    CharacterInt         = character.CharacterInt,
                    CharacterWis         = character.CharacterWis,
                    CharacterCha         = character.CharacterCha,
                    CharacterRace        = character.CharacterRace,
                    CharacterClass       = character.CharacterClass,
                    CharacterAbilities   = character.CharacterAbilities,
                    CharacterXP          = character.CharacterXP,
                    CharacterLevel       = character.CharacterLevel,
                    CharacterAC          = character.CharacterAC,
                    CharacterHP          = character.CharacterHP,
                    CharacterAttackBonus = character.CharacterAttackBonus,
                    CharacterNotes       = character.CharacterNotes,
                    Items = itemList
                };

                return(model);
            }
        }