public bool TryGetDetails(AdventurersLogActivity activity, out TDetails details) { if (IsMatch(activity)) { details = ParseDetails(activity); return(true); } else { details = default; return(false); } }
protected override FealtyActivityDetails ParseDetails(AdventurersLogActivity activity) { if (activity.Text.IndexOf("Maintained", StringComparison.OrdinalIgnoreCase) >= 0) { return(new FealtyActivityDetails(3, true)); } int levelIndex = activity.Text.IndexOfAny(fealtyLevelChars); char levelChar = activity.Text[levelIndex]; int level = levelChar - '0'; return(new FealtyActivityDetails(level, false)); }
public abstract bool IsMatch(AdventurersLogActivity activity);
protected abstract TDetails ParseDetails(AdventurersLogActivity activity);
public override bool IsMatch(AdventurersLogActivity activity) => activity.Text.IndexOf("Clan Fealty", StringComparison.OrdinalIgnoreCase) >= 0;