private void UpdateGoodsDisplay()
        {
            goodsPool.AddChildInstancesToPool(goodsContainer);

            List <HLHNPCGoods> itemsAsGoods = npc.GetCurrentLevelGoods();

            for (int i = 0; i < itemsAsGoods.Count; i++)
            {
                HLHNPCGoods goods = itemsAsGoods[i];

                Transform goodsCell = goodsPool.GetInstance <Transform>(goodsModel.gameObject, goodsContainer);

                Item itemAsGoods = goods.GetGoodsItem();

                goodsCell.GetComponent <GoodsCell>().SetUpGoodsCell(goods);

                goodsCell.GetComponent <Button>().onClick.RemoveAllListeners();

                int goodsIndex = i;

                goodsCell.GetComponent <Button>().onClick.AddListener(delegate {
                    currentSelectedItem    = itemAsGoods;
                    currentSelectItemPrice = goods.GetGoodsPrice();
                    itemDetail.SetUpItemDetail(itemAsGoods, currentSelectItemPrice, ItemOperationType.Buy);
                    UpdateGoodsSelection(goodsIndex);
                    currentSelectGoodsIndex = goodsIndex;
                    bagItemsDisplay.HideAllItemSelectedTintIcon();
                });
            }
        }
Beispiel #2
0
        /// <summary>
        /// 从可能商品列表中产生随机商品
        /// </summary>
        /// <param name="possibleGoods">Possible goods.</param>
        private void GenerateRandomGoods(List <HLHNPCGoods> possibleGoods)
        {
            if (possibleGoods.Count == 0)
            {
                return;
            }

            int randomSeed = Random.Range(0, possibleGoods.Count);

            HLHNPCGoods goods = possibleGoods [randomSeed];

            goodsInSellRecord.Add(goods);
        }
        public void SetUpGoodsCell(HLHNPCGoods goods)
        {
            Item itemAsGoods = goods.GetGoodsItem();

            goodsName.text = itemAsGoods.itemName;

            goodsName.color        = CommonData.grayEquipmentColor;
            goodsBackground.sprite = grayFrame;

            if (itemAsGoods is Equipment)
            {
                Equipment equipment = itemAsGoods as Equipment;

                switch (equipment.quality)
                {
                case EquipmentQuality.Gray:
                    goodsName.color        = CommonData.grayEquipmentColor;
                    goodsBackground.sprite = grayFrame;
                    break;

                case EquipmentQuality.Blue:
                    goodsName.color        = CommonData.blueEquipmentColor;
                    goodsBackground.sprite = blueFrame;
                    break;

                case EquipmentQuality.Gold:
                    goodsName.color        = CommonData.goldEquipmentColor;
                    goodsBackground.sprite = goldFrame;
                    break;

                case EquipmentQuality.Purple:
                    goodsName.color        = CommonData.purpleEquipmentColor;
                    goodsBackground.sprite = purpleFrame;
                    break;
                }
            }


            int price = goods.GetGoodsPrice();

            goodsPrice.text = price.ToString();

            Sprite itemSprite = GameManager.Instance.gameDataCenter.GetGameItemSprite(itemAsGoods);

            goodsIcon.sprite = itemSprite;

            goodsIcon.enabled = itemSprite != null;

            selectedIcon.enabled = false;
        }
        private void UpdateGoodsSelection(int selectedGoodsIndex)
        {
            for (int i = 0; i < goodsContainer.childCount; i++)
            {
                Transform goodsCell = goodsContainer.GetChild(i);

                goodsCell.GetComponent <GoodsCell> ().SetSelection(i == selectedGoodsIndex);
            }

            List <HLHNPCGoods> goodsList = npc.GetCurrentLevelGoods();

            HLHNPCGoods goods = goodsList [selectedGoodsIndex];

            Item itemAsGoods = goods.GetGoodsItem();

            itemDetail.SetUpItemDetail(itemAsGoods, goods.GetGoodsPrice(), ItemOperationType.Buy);
        }
Beispiel #5
0
        private void ShowGoods(List <HLHNPCGoods> goodsList)
        {
            EditorGUILayout.BeginVertical();

            EditorGUILayout.BeginHorizontal();
            bool addNewGoods     = GUILayout.Button("添加商品", shorterLayouts);
            bool removeLastGoods = GUILayout.Button("删除尾部商品", shorterLayouts);

            EditorGUILayout.EndHorizontal();

            if (addNewGoods)
            {
                goodsList.Add(new HLHNPCGoods());
            }

            if (removeLastGoods && goodsList.Count > 0)
            {
                goodsList.RemoveAt(goodsList.Count - 1);
            }

            for (int i = 0; i < goodsList.Count; i++)
            {
                HLHNPCGoods goods = goodsList [i];

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("商品id", tinyLayouts);
                goods.goodsId = EditorGUILayout.IntField(goods.goodsId, tinyLayouts);
                EditorGUILayout.LabelField("价格浮动", tinyLayouts);
                goods.priceFloat = EditorGUILayout.FloatField(goods.priceFloat, tinyLayouts);
                EditorGUILayout.LabelField("装备品质", tinyLayouts);
                goods.equipmentQuality = EditorGUILayout.IntField(goods.equipmentQuality, singleIntLayouts);
                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.EndVertical();
        }