private List <GENpc.GEAnswer> ProcessAnswers(List <NPCsTypeNPCConversationLineAnswer> answers, GENpc.GELine line)
    {
        List <GENpc.GEAnswer> processedAnswers = new List <GENpc.GEAnswer>();

        if (answers == null || answers.Count == 0)
        {
            return(processedAnswers);
        }

        foreach (NPCsTypeNPCConversationLineAnswer answer in answers)
        {
            GERequirement      requirement = ProcessRequirements(answer.Requirements);
            GENpc.GEItemAction action      = ProcessActions(answer.Actions, answer.id);

            GENpc.GEAnswer newAnser = new GENpc.GEAnswer(answer.id, answer.activeAtStart, line)
            {
                Requirement = requirement,
                Action      = action
            };
            OnReferenceProcessing += delegate(object o, EventArgs e)
            {
                newAnser.AnswerText = elementManager.GetTextElement(answer.textId);
                newAnser.NextLine   = elementManager.GetNpcConvLine(answer.nextLineId);
            };
            processedAnswers.Add(newAnser);
            elementManager.AddNpcAnswer(newAnser);
        }

        return(processedAnswers);
    }
    private GENpc.GEItemAction ProcessActions(ItemActionsType action, string parentId)
    {
        GEAction actionBase = ProcessActions((ActionsType)action, parentId);

        List <GENpc.GEItemAction.GEEquipItem> equipItems = new List <GENpc.GEItemAction.GEEquipItem>();

        foreach (ItemActionsTypeEquipItem equipItem in action.equipItem)
        {
            equipItems.Add(new GENpc.GEItemAction.GEEquipItem(equipItem.refId, equipItem.value));
        }
        GENpc.GEItemAction newAction = new GENpc.GEItemAction(elementManager, null, actionBase.Activations, actionBase.PropertySetters, actionBase.SaveAction, equipItems, actionBase.UseInterval);
        OnReferenceProcessing += delegate(object o, EventArgs e)
        {
            newAction.ResponseText = elementManager.GetTextElement(action.responseTextId);
        };
        return(newAction);
    }