private IConditionBuilder KeywordCondition(IDamageSpecification spec, IKeywordBuilder keyword) => ValueConditionBuilder.Create((ps, k) => BuildKeywordStat(spec, ps, k), keyword);
private IConditionBuilder KeywordCondition(IDamageSpecification spec, IKeywordBuilder keyword) => ValueConditionBuilder.Create( (ps, k) => BuildKeywordStat(spec, ps.ModifierSourceEntity, k.Build(ps)), keyword);
public IConditionBuilder Has(Tags tag) => ValueConditionBuilder.Create(ItemTags.Value, v => ToTags(v).HasFlag(tag), v => "((Tags) " + v + ").HasFlag(" + tag.GetName() + ")");
public IConditionBuilder Has(Tags tag) => ValueConditionBuilder.Create(ItemTags.Value, v => ToTags(v).HasFlag(tag), v => $"((Tags) {v}).HasFlag({tag})");
private IConditionBuilder KeywordCondition(IKeywordBuilder keyword) => ValueConditionBuilder.Create(BuildKeywordStat, keyword);
public IConditionBuilder GreaterThan(IValueBuilder other) => ValueConditionBuilder.Create(this, other, (left, right) => left.GetValueOrDefault() > right.GetValueOrDefault(), (l, r) => l + " > " + r);
public IConditionBuilder Eq(IValueBuilder other) => ValueConditionBuilder.Create(this, other, (left, right) => left == right, (l, r) => l + " == " + r);
public IConditionBuilder Eq(IValueBuilder other) => ValueConditionBuilder.Create(this, other, (left, right) => left == right, (l, r) => $"{l} == {r}");