/// <summary>
        /// Builds the inventory
        /// </summary>
        /// <param name="itemCode">Code for the items to repeat</param>
        /// <param name="npc">Npc</param>
        /// <returns>Inventory of the npc</returns>
        private string BuildInventory(string itemCode, KortistoNpc npc)
        {
            if (npc.Inventory == null)
            {
                return(string.Empty);
            }

            int    itemIndex     = 0;
            string inventoryCode = string.Empty;

            foreach (KortistoInventoryItem curItem in npc.Inventory)
            {
                string curItemCode = ExportUtil.BuildPlaceholderRegex(Placeholder_CurItem_Index).Replace(itemCode, itemIndex.ToString());
                curItemCode = ExportUtil.RenderPlaceholderIfTrue(curItemCode, Placeholder_CurItem_Is_Equipped_Start, Placeholder_CurItem_Is_Equipped_End, curItem.IsEquipped);
                curItemCode = ExportUtil.RenderPlaceholderIfTrue(curItemCode, Placeholder_CurItem_Quantity_Not_Equal_One_Start, Placeholder_CurItem_Quantity_Not_Equal_One_End, curItem.Quantity != 1);
                curItemCode = ExportUtil.BuildPlaceholderRegex(Placeholder_CurItem_Quantity).Replace(curItemCode, curItem.Quantity.ToString());

                StyrItem item = _cachedDbAccess.GetItemById(curItem.ItemId).Result;
                if (item != null)
                {
                    ExportObjectData itemExportData = new ExportObjectData();
                    itemExportData.ExportData.Add(ExportConstants.ExportDataObject, item);
                    itemExportData.ExportData.Add(ExportConstants.ExportDataObjectType, ExportConstants.ExportObjectTypeItem);
                    curItemCode = _itemPlaceholderResolver.FillPlaceholders(curItemCode, itemExportData).Result;
                }

                inventoryCode += curItemCode;
                ++itemIndex;
            }

            return(inventoryCode);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Builds the skills
        /// </summary>
        /// <param name="skillCode">Code for the skills to repeat</param>
        /// <param name="npc">Npc</param>
        /// <returns>Skills of the npc</returns>
        private string BuildSkills(string skillCode, KortistoNpc npc)
        {
            if (npc.Skills == null)
            {
                return(string.Empty);
            }

            int    skillIndex    = 0;
            string skillListCode = string.Empty;

            foreach (KortistoNpcSkill curSkill in npc.Skills)
            {
                string curSkillCode = ExportUtil.BuildPlaceholderRegex(Placeholder_CurSkill_Index).Replace(skillCode, skillIndex.ToString());

                EvneSkill skill = _cachedDbAccess.GetSkillById(curSkill.SkillId).Result;
                if (skill != null)
                {
                    ExportObjectData skillExportData = new ExportObjectData();
                    skillExportData.ExportData.Add(ExportConstants.ExportDataObject, skill);
                    skillExportData.ExportData.Add(ExportConstants.ExportDataObjectType, ExportConstants.ExportObjectTypeSkill);
                    curSkillCode = _skillPlaceholderResolver.FillPlaceholders(curSkillCode, skillExportData).Result;
                }

                skillListCode += curSkillCode;
                ++skillIndex;
            }

            return(skillListCode);
        }