RuleBuilder: Optimize Has("Item", 0) (#6228)

This commit is contained in:
Ishigh1
2026-07-18 12:32:54 +02:00
committed by GitHub
parent bbd5fc3822
commit 6875f9da90
2 changed files with 8 additions and 1 deletions
+4 -1
View File
@@ -843,9 +843,12 @@ class Has(Rule[TWorld], game="Archipelago"):
@override
def _instantiate(self, world: TWorld) -> Rule.Resolved:
count = resolve_field(self.count, world, int)
if count <= 0:
return True_().resolve(world)
return self.Resolved(
resolve_field(self.item_name, world, str),
count=resolve_field(self.count, world, int),
count=count,
player=world.player,
caching_enabled=getattr(world, "rule_caching_enabled", False),
)
+4
View File
@@ -167,6 +167,10 @@ class CachedRuleBuilderTestCase(RuleBuilderTestCase):
Or(),
False_.Resolved(player=1)
),
(
Has("A", 0),
True_.Resolved(player=1)
),
(
And(Has("A", 1), Has("A", 2)),
Has.Resolved("A", 2, player=1),