예제 #1
0
def test_attacked_with_excalibur(
    layer,
    theme,
    presence_flags,
    chain_status,
    expected_failed_low_if_not_chain,
    expected_low,
):
    prev_state = CharState.PUSHING
    cur_state = CharState.ATTACKING
    item_set = {EntityType.ITEM_EXCALIBUR}
    # These should vary with theme, but there's already a lot of params
    world = 4
    level = 2
    run_state = RunState()
    run_state.sunken_chain_status = chain_status
    run_state.update_attacked_with(
        prev_state,
        cur_state,
        layer,
        world,
        level,
        theme,
        presence_flags,
        item_set,
        item_set,
    )

    # We only expect these to be set together
    assert run_state.failed_low_if_not_chain == expected_failed_low_if_not_chain

    is_low = Label.LOW in run_state.run_label._set
    assert is_low == expected_low
예제 #2
0
def test_has_chain_powerup(chain_status, item_set, expected_had_ankh,
                           expected_low):
    run_state = RunState()
    run_state.sunken_chain_status = chain_status
    run_state.update_has_chain_powerup(item_set)

    assert run_state.had_ankh == expected_had_ankh

    is_low = Label.LOW in run_state.run_label._set
    assert is_low == expected_low
예제 #3
0
def test_has_mounted_tame(chain_status, theme, mount_type, mount_tamed,
                          expected_low):
    mount = Mount(type=EntityDBEntry(id=mount_type), is_tamed=mount_tamed)
    poly_mount = PolyPointer(101, mount, MemContext())

    run_state = RunState()
    run_state.sunken_chain_status = chain_status
    run_state.update_has_mounted_tame(theme, poly_mount)

    is_low = Label.LOW in run_state.run_label._set
    assert is_low == expected_low
예제 #4
0
def test_update_terminus(
    world,
    win_state,
    final_death,
    had_ankh,
    sunken_status,
    eggplant_status,
    cosmic_status,
    expected_terminus,
):
    run_state = RunState()
    run_state.final_death = final_death
    run_state.had_ankh = had_ankh
    run_state.sunken_chain_status = sunken_status
    run_state.eggplant_stepper = FakeStepper(eggplant_status)
    run_state.cosmic_stepper = FakeStepper(cosmic_status)

    game_state = State(world=world, win_state=win_state)
    run_state.update_terminus(game_state)

    assert run_state.run_label._terminus == expected_terminus
예제 #5
0
def test_attacked_with_simple(prev_state, cur_state, item_set, prev_item_set,
                              expected_low):
    # These shouldn't be location sensitive
    layer = Layer.FRONT
    world = 2
    level = 2
    theme = Theme.JUNGLE
    presence_flags = 0
    run_state = RunState()
    run_state.sunken_chain_status = ChainStatus.IN_PROGRESS
    run_state.update_attacked_with(
        prev_state,
        cur_state,
        layer,
        world,
        level,
        theme,
        presence_flags,
        item_set,
        prev_item_set,
    )

    is_low = Label.LOW in run_state.run_label._set
    assert is_low == expected_low