mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-07-20 15:09:41 -07:00
Rule Builder: Fix count resolution when Oring HasAnyCount (#6048)
This commit is contained in:
@@ -527,7 +527,7 @@ class Or(NestedRule[TWorld], game="Archipelago"):
|
|||||||
items[item] = 1
|
items[item] = 1
|
||||||
elif isinstance(child, HasAnyCount.Resolved):
|
elif isinstance(child, HasAnyCount.Resolved):
|
||||||
for item, count in child.item_counts:
|
for item, count in child.item_counts:
|
||||||
if item not in items or items[item] < count:
|
if item not in items or count < items[item]:
|
||||||
items[item] = count
|
items[item] = count
|
||||||
else:
|
else:
|
||||||
clauses.append(child)
|
clauses.append(child)
|
||||||
|
|||||||
@@ -233,6 +233,14 @@ class CachedRuleBuilderTestCase(RuleBuilderTestCase):
|
|||||||
Or(Has("A"), HasAny("B", "C"), HasAnyCount({"D": 1, "E": 1})),
|
Or(Has("A"), HasAny("B", "C"), HasAnyCount({"D": 1, "E": 1})),
|
||||||
HasAny.Resolved(("A", "B", "C", "D", "E"), player=1),
|
HasAny.Resolved(("A", "B", "C", "D", "E"), player=1),
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
And(HasAllCounts({"A": 1, "B": 2}), HasAllCounts({"A": 2, "B": 2})),
|
||||||
|
HasAllCounts.Resolved((("A", 2), ("B", 2)), player=1),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
Or(HasAnyCount({"A": 1, "B": 2}), HasAnyCount({"A": 2, "B": 2})),
|
||||||
|
HasAnyCount.Resolved((("A", 1), ("B", 2)), player=1),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
class TestSimplify(RuleBuilderTestCase):
|
class TestSimplify(RuleBuilderTestCase):
|
||||||
|
|||||||
Reference in New Issue
Block a user