More racial template entries

This commit is contained in:
2026-05-24 17:21:30 +02:00
parent 6707edfccf
commit cc9996cd69
2 changed files with 70 additions and 0 deletions
+15
View File
@@ -855,9 +855,14 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
p.pos++
args := []any{}
if p.peek().kind != wikiExprRParen {
previousAllowMissing := p.allowMissingFields
if wikiExprHelperAllowsMissingArgs(token.text) {
p.allowMissingFields = true
}
for {
arg, err := p.parseComparison()
if err != nil {
p.allowMissingFields = previousAllowMissing
return nil, err
}
args = append(args, arg)
@@ -865,6 +870,7 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
break
}
}
p.allowMissingFields = previousAllowMissing
}
if _, ok := p.take(wikiExprRParen); !ok {
return nil, fmt.Errorf("missing closing parenthesis for %s", token.text)
@@ -887,6 +893,15 @@ func (p *wikiExprParser) parsePrimary() (any, error) {
}
}
func wikiExprHelperAllowsMissingArgs(name string) bool {
switch name {
case "present", "all_present", "any_present":
return true
default:
return false
}
}
func (p *wikiExprParser) resolveField(name string) (any, error) {
name = strings.TrimPrefix(name, "row.")
if name == "HasSpellProgression" {