private void InitAllItemNameToItemInfo()
        {
            for (int i = 0; i < tempItemModels.Count; i++)
            {
                TempItemModel temp = tempItemModels [i];

                int itemCountForProduce = temp.itemNamesForProduce.Count;

                temp.itemModel.itemInfosForProduce = new ItemModel.ItemInfoForProduce[itemCountForProduce];

                for (int j = 0; j < itemCountForProduce; j++)
                {
                    string itemName = temp.itemNamesForProduce [j];

                    TempItemModel itemForProduce = tempItemModels.Find(delegate(TempItemModel obj) {
                        return(obj.itemModel.itemName == itemName);
                    });

                    if (itemForProduce == null)
                    {
                        Debug.LogError(string.Format("{0}配方中的{1}名称不正确", temp.itemModel.itemName, itemName));
                    }

                    ItemModel.ItemInfoForProduce itemInfo = new ItemModel.ItemInfoForProduce(itemForProduce.itemModel.itemId, temp.itemCountsForProduce[j]);

                    temp.itemModel.itemInfosForProduce [j] = itemInfo;
                }
            }
        }
        public void LoadAllItemsWithFullDataString(string fullItemDataString)
        {
            string[] seperateItemDataArray = fullItemDataString.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);


            for (int i = 2; i < seperateItemDataArray.Length; i++)
            {
                string itemDataString = seperateItemDataArray [i].Replace("\r", "");

                string[] itemDataArray = itemDataString.Split(new char[] { ',' }, StringSplitOptions.None);

                int dataLength = itemDataArray.Length;

                TempItemModel tempItemModel = new TempItemModel();

                tempItemModels.Add(tempItemModel);

                ItemModel im = tempItemModel.itemModel;

                im.itemId = FromStringToInt16(itemDataArray [0]);

                im.itemName = itemDataArray [1];

                im.itemType = GetItemTypeWithString(itemDataArray [2]);

                im.itemNameInEnglish = itemDataArray [3];

                string oriDescription = itemDataArray [4];

                im.itemGeneralDescription = oriDescription.Replace("&", ",");

                im.spriteName = itemDataArray [5];

                im.healthGain = FromStringToSingle(itemDataArray [6]);

                im.manaGain = FromStringToSingle(itemDataArray [7]);

                im.attackGain = FromStringToSingle(itemDataArray [8]);

                im.hitGain = FromStringToSingle(itemDataArray [9]);

                im.armorGain = FromStringToSingle(itemDataArray [10]);

                im.magicResistGain = FromStringToSingle(itemDataArray [11]);

                im.dodgeGain = FromStringToSingle(itemDataArray [12]);

                im.critGain = FromStringToSingle(itemDataArray [13]);

                im.wholePropertyGain = FromStringToSingle(itemDataArray [14]);

                im.physicalHurtScalerGain = FromStringToSingle(itemDataArray [15]);

                im.magicalHurtScalerGain = FromStringToSingle(itemDataArray [16]);

                im.critHurtScalerGain = FromStringToSingle(itemDataArray [17]);

                int attachedSkillColCount = dataLength - 26;

                if (attachedSkillColCount % 13 != 0)
                {
                    string error = string.Format("数据长度不正确,总数据长度{0},装备属性数据长度{1},附加技能数据长度{2},配方数据长度{3},物品价格数据长度1,物品属性描述长度1", dataLength, 18, attachedSkillColCount, 6);
                    Debug.LogError(error);
                    return;
                }

                int attachedSkillCount = attachedSkillColCount / 13;

                List <SkillInfo> attachedSkillInfos = new List <SkillInfo> ();

                im.attachedSkillInfos = new SkillInfo[attachedSkillCount];

                for (int j = 0; j < attachedSkillCount; j++)
                {
                    SkillInfo attachedSkillInfo = new SkillInfo();
                    int       offset            = j * 13;

//					string itemSkillType = itemDataArray [17 + offset];

                    if (itemDataArray [18 + offset] == "")
                    {
                        continue;
                    }

                    attachedSkillInfo.skillType            = GetSkillTypeWithString(itemDataArray [18 + offset]);
                    attachedSkillInfo.hurtType             = GetHurtTypeWithString(itemDataArray [19 + offset]);
                    attachedSkillInfo.triggerSource        = GetTargetWithString(itemDataArray [20 + offset]);
                    attachedSkillInfo.triggeredCondition   = GetTriggeredConditionWithString(itemDataArray [21 + offset]);
                    attachedSkillInfo.triggerTarget        = GetTargetWithString(itemDataArray [22 + offset]);
                    attachedSkillInfo.selfEffectAnimName   = itemDataArray [23 + offset];
                    attachedSkillInfo.enemyEffectAnimName  = itemDataArray [24 + offset];
                    attachedSkillInfo.statusName           = itemDataArray [25 + offset];
                    attachedSkillInfo.triggeredProbability = FromStringToSingle(itemDataArray [26 + offset]);
                    attachedSkillInfo.canOverlay           = FromStringToBool(itemDataArray [27 + offset]);
                    attachedSkillInfo.skillSourceValue     = FromStringToSingle(itemDataArray [28 + offset]);
                    attachedSkillInfo.excuteOnce           = FromStringToBool(itemDataArray [29 + offset]);
                    attachedSkillInfo.duration             = FromStringToSingle(itemDataArray [30 + offset]);

                    attachedSkillInfos.Add(attachedSkillInfo);
                }


//				im.attachedSkillInfos = new SkillInfo[attachedSkillInfos.Count];
                im.attachedSkillInfos = attachedSkillInfos.ToArray();

//				List<int> itemIdsForProduce = new List<int> ();

                for (int j = 6; j > 0; j--)
                {
                    int columnIndex = dataLength - 2 - j;
                    if (j % 2 == 0)
                    {
                        string itemName = itemDataArray [columnIndex];
                        if (itemName != "" && itemName != null)
                        {
                            tempItemModel.itemNamesForProduce.Add(itemName);
                        }
                    }
                    else
                    {
                        int itemCount = FromStringToInt16(itemDataArray [columnIndex]);
                        tempItemModel.itemCountsForProduce.Add(itemCount);
                    }
                }

                im.price = FromStringToInt16(itemDataArray [dataLength - 2]);

                im.itemPropertyDescription = itemDataArray [dataLength - 1];

                im.itemPropertyDescription = im.itemPropertyDescription.Replace("_", "\n").Replace("&", ",");
            }



            InitAllItemNameToItemInfo();

            for (int i = 0; i < tempItemModels.Count; i++)
            {
                newItemModels.Add(tempItemModels[i].itemModel);
            }
        }