internal static XElement GetConditionSaveElement(SerializableCondition cond) { if (cond is PathfinderCondition pfCond) { return(pfCond.GetSaveElement()); } var condType = cond.GetType(); var saveTag = condType.Name; if (saveTag.StartsWith("Hacknet.")) { saveTag = saveTag.Substring("Hacknet.".Length); } if (saveTag.StartsWith("SC")) { saveTag = saveTag.Substring("SC".Length); } var result = new XElement(saveTag); var fields = condType.GetFields(); foreach (var field in fields) { var fieldVal = string.Format(CultureInfo.InvariantCulture, "{0}", new object[1] { field.GetValue(cond) }); result.SetAttributeValue(field.Name, fieldVal); } return(result); }
internal static bool GetSaveStringOverridePrefix(SerializableCondition __instance, ref string __result) { if (__instance is PathfinderCondition pfCondition) { var builder = new StringBuilder(); using (var writer = XmlWriter.Create(builder)) pfCondition.GetSaveElement().WriteTo(writer); __result = builder.ToString(); return(false); } return(true); }