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); }