mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-07-18 06:50:46 -07:00
RuleBuilder: Optimize Has("Item", 0) (#6228)
This commit is contained in:
@@ -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),
|
||||
)
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user