//----------------------------------------------------------------------------------------------- private static void PopulateMapFormulaFromXmlNodelist(MapFormula formula, XmlNodeList operationList) { foreach (XmlNode operationInfo in operationList) { string opTypeAsString = ""; if (!TryLoadRequiredAttributeFromXmlNode(operationInfo, "Type", ref opTypeAsString)) { continue; } // Depending on the type, we may be able to early out eInfluenceOpType opType = MapOperation.GetOpTypeForString(opTypeAsString); if (opType == eInfluenceOpType.INVALID_INFLUENCE_OP) { Debug.Log("Operation has invalid type attribute."); continue; } // Don't need to grab a map for normalizing if (opType == eInfluenceOpType.INFLUENCE_OP_NORMALIZE) { formula.AddOperationInstruction(opType, 1f, null, null); continue; } string influenceID = ""; string objectTag = ""; if (!TryLoadRequiredAttributeFromXmlNode(operationInfo, "InfluenceID", ref influenceID) || !TryLoadRequiredAttributeFromXmlNode(operationInfo, "ObjectTag", ref objectTag)) { continue; } float opWeight = TryLoadXmlAttribute(operationInfo, "Weight", MapOperation.DEFAULT_OPERATION_WEIGHT); string caseInsensitiveInfluenceID = influenceID.ToLower(); string caseInsensitiveObjectTag = objectTag.ToLower(); formula.AddOperationInstruction(opType, opWeight, caseInsensitiveInfluenceID, caseInsensitiveObjectTag); } }