CharBag.Goods CreateGoods() { CharBag.Goods goods = new CharBag.Goods(); goods.Property = new int[4]; for (int i = 0; i < PropertyBox.Count; i++) { //如果大于最大个数则忽略 if (i >= 4) { break; } PropertyElementBase p = (PropertyElementBase)PropertyBox[i]; goods.Property[i] = p.Property.ID; } goods.Quality = Quality; goods.Number = 1; goods.Name = recipe.Name; string target = recipe.Target; if (target[0] == char.Parse("0")) { string mat_str = target.Substring(target.IndexOf(",") + 1); goods.MateriralType = 0; goods.ID = int.Parse(mat_str); } else if (target[0] == char.Parse("1")) { string mat_str = target.Substring(target.IndexOf(",") + 1); goods.MateriralType = 1; goods.ID = int.Parse(mat_str); } goods.Type = Materiral.GetTypeByMaterialID(goods.MateriralType, goods.ID); goods.MaterialEffet = QualityEffectID; //计算价格 goods.Price = Materiral.GetMaterialPrice(goods.MateriralType, goods.ID); goods = CharBag.SetPrice(goods); //添加道具 goods.UID = CharBag.AddGoods(goods); questManager.CheckQuestListWithGoods(QuestManager.QuestTypeList.ComposeGoods, goods, 0); //更新物品信息 PlayerInfo.AddGoodsInfo(goods.MateriralType, goods.ID, PlayerInfo.GoodsInfoType.RecipeCount); //删除道具 foreach (SlotBox slot in SlotList.Values) { CharBag.RemoveGoods(slot.slot.UID); } return(goods); }
//上架商品 void ClickInBag(GameObject go, object parameter) { Parameter.Box p = (Parameter.Box)parameter; CharBag.Goods goods = (CharBag.Goods)p.obj; //如果货架上有商品,则添加道具到背包 if (goodslist[p.ID - 1].Name != null && goodslist[p.ID - 1].ID != 0) { CharBag.AddGoods(goodslist[p.ID - 1]); } //添加选中的商品到商品列 goodslist[p.ID - 1] = goods; string path = p.ID.ToString() + "/itemIcon"; transform.Find(path).GetComponent <SpriteRenderer>().sprite = Materiral.GetMaterialIcon(goods.MateriralType, goods.ID); //显示商品价格 string priceiconpath = p.ID.ToString() + "/price/icon"; string pricepath = p.ID.ToString() + "/price/text"; transform.Find(priceiconpath).gameObject.SetActive(true); transform.Find(pricepath).gameObject.SetActive(true); transform.Find(pricepath).GetComponent <TextMesh>().text = goods.Price.ToString(); //移除背包中的商品 CharBag.RemoveGoods(goods.UID); _bagInstance.CloseBagMenu(gameObject); ChangeRecipeUiState(); PlayerData.ShopGoodsData.SaveShopGoods(goodslist); CharBag.SaveBagGoods(); questManager.CheckQuestListWithGoods(QuestManager.QuestTypeList.PutGoods, goods, 0); //更新物品信息 PlayerInfo.AddGoodsInfo(goods.MateriralType, goods.ID, PlayerInfo.GoodsInfoType.PutCount); }