diff --git a/worlds/checksmate/Items.py b/worlds/checksmate/Items.py index 368cbe990f64..b5ef647b8b04 100644 --- a/worlds/checksmate/Items.py +++ b/worlds/checksmate/Items.py @@ -21,11 +21,11 @@ class CMItemData(NamedTuple): "Play as White": CMItemData(4_901_000, ItemClassification.progression, material=50), "Progressive Engine ELO Lobotomy": CMItemData(4_901_001, ItemClassification.useful, quantity=5), # TODO: stop counting material if the board fills up with 23 pieces+pawns - "Progressive Pawn": CMItemData(4_901_002, ItemClassification.progression, quantity=32, material=100), + "Progressive Pawn": CMItemData(4_901_002, ItemClassification.progression, quantity=40, material=100), "Progressive Pawn Forwardness": CMItemData(4_901_003, ItemClassification.filler, quantity=13, parents=[ ["Progressive Pawn", 3]]), # Bishops and Knights are worth 3.25 to 3.5, but some minor pieces are worse, so we assume 3.0 conservatively - "Progressive Minor Piece": CMItemData(4_901_004, ItemClassification.progression, quantity=9, material=300), + "Progressive Minor Piece": CMItemData(4_901_004, ItemClassification.progression, quantity=11, material=300), # Rooks are worth 5.25 to 5.5, but many major pieces are worse, so we assume 4.85, which stays under 5.0 "Progressive Major Piece": CMItemData(4_901_005, ItemClassification.progression, quantity=9, material=485), # Queen pieces are pretty good, and even the weak ones are pretty close, so queens can stay 9.0 (but not 10.0) diff --git a/worlds/checksmate/Rules.py b/worlds/checksmate/Rules.py index b80b115b7b2c..67fe06da620a 100644 --- a/worlds/checksmate/Rules.py +++ b/worlds/checksmate/Rules.py @@ -195,6 +195,11 @@ def set_rules(multiworld: MultiWorld, player: int, opts: CMOptions): lambda state: state.count("Progressive Major Piece", player) >= 2 + total_queens) # add_rule(multiworld.get_location("French Move", player), lambda state: state.has_french_move(player)) + # state cannot have super-size me for small checkmate + # todo: remove from the pool if non-ordered progressive + add_rule(multiworld.get_location("Checkmate Minima", player), + lambda state: not state.has("Super Size Me", player)) + # goal materials # add_rule(multiworld.get_location("Checkmate Minima", player), lambda state: has_piece_material(state, player, 2)) # add_rule(multiworld.get_location("Checkmate One Piece", player), lambda state: has_piece_material(state, player, 5)) diff --git a/worlds/checksmate/test/__init__.py b/worlds/checksmate/test/__init__.py index b17d52812c3a..bad9fbaa228e 100644 --- a/worlds/checksmate/test/__init__.py +++ b/worlds/checksmate/test/__init__.py @@ -1,7 +1,7 @@ from typing import ClassVar from test.bases import WorldTestBase -from .. import CMWorld, CMOptions +from .. import CMWorld class CMTestBase(WorldTestBase):