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() + "异常"); } }
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专柜正品—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); } } }
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专柜正品—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); } }