2021-05-27 19:20:00 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
2022-06-18 18:04:24 +00:00
|
|
|
|
namespace PKHeX.Core;
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc cref="ISuggestModification"/>
|
|
|
|
|
public sealed class ComplexSuggestion : ISuggestModification
|
2021-05-27 19:20:00 +00:00
|
|
|
|
{
|
2022-06-18 18:04:24 +00:00
|
|
|
|
public readonly string Keyword;
|
|
|
|
|
public readonly Func<PKM, bool> Criteria = _ => true;
|
|
|
|
|
public readonly Func<string, string, BatchInfo, ModifyResult> Action;
|
2021-05-27 19:20:00 +00:00
|
|
|
|
|
2022-06-18 18:04:24 +00:00
|
|
|
|
public ComplexSuggestion(
|
|
|
|
|
string keyword,
|
|
|
|
|
Func<PKM, bool> criteria,
|
|
|
|
|
Func<string, string, BatchInfo, ModifyResult> action) : this(keyword, action)
|
|
|
|
|
{
|
|
|
|
|
Criteria = criteria;
|
|
|
|
|
}
|
2021-05-27 19:20:00 +00:00
|
|
|
|
|
2022-06-18 18:04:24 +00:00
|
|
|
|
public ComplexSuggestion(
|
|
|
|
|
string keyword,
|
|
|
|
|
Func<string, string, BatchInfo, ModifyResult> action)
|
|
|
|
|
{
|
|
|
|
|
Keyword = keyword;
|
|
|
|
|
Action = action;
|
|
|
|
|
}
|
2021-05-27 19:20:00 +00:00
|
|
|
|
|
2022-06-18 18:04:24 +00:00
|
|
|
|
public bool IsMatch(string name, string value, BatchInfo info)
|
|
|
|
|
{
|
|
|
|
|
return name == Keyword && Criteria(info.Entity);
|
|
|
|
|
}
|
2021-05-27 19:20:00 +00:00
|
|
|
|
|
2022-06-18 18:04:24 +00:00
|
|
|
|
public ModifyResult Modify(string name, string value, BatchInfo info)
|
|
|
|
|
{
|
|
|
|
|
return Action(name, value, info);
|
2021-05-27 19:20:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|