Files
Grinch-AP/worlds/stardew_valley/test/rules/TestWeapons.py
Jérémie Bolduc 7d5693e0fb Stardew Valley: Move BaseTest out of __init__.py to comply with future conventions (#4991)
* move everything out of init; fix from imports and some typing errors

* why is there a change in multiserver

* fix some relative shits
2025-05-13 09:58:03 +02:00

76 lines
3.5 KiB
Python

from ..bases import SVTestBase
from ... import options
from ...options import ToolProgression
class TestWeaponsLogic(SVTestBase):
options = {
ToolProgression.internal_name: ToolProgression.option_progressive,
options.SkillProgression.internal_name: options.SkillProgression.option_progressive,
}
def test_mine(self):
self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
self.multiworld.state.collect(self.create_item("Progressive Pickaxe"))
self.multiworld.state.collect(self.create_item("Progressive House"))
self.collect([self.create_item("Combat Level")] * 10)
self.collect([self.create_item("Mining Level")] * 10)
self.collect([self.create_item("Progressive Mine Elevator")] * 24)
self.multiworld.state.collect(self.create_item("Bus Repair"))
self.multiworld.state.collect(self.create_item("Skull Key"))
self.give_item_and_check_reachable_mine("Progressive Sword", 1)
self.give_item_and_check_reachable_mine("Progressive Dagger", 1)
self.give_item_and_check_reachable_mine("Progressive Club", 1)
self.give_item_and_check_reachable_mine("Progressive Sword", 2)
self.give_item_and_check_reachable_mine("Progressive Dagger", 2)
self.give_item_and_check_reachable_mine("Progressive Club", 2)
self.give_item_and_check_reachable_mine("Progressive Sword", 3)
self.give_item_and_check_reachable_mine("Progressive Dagger", 3)
self.give_item_and_check_reachable_mine("Progressive Club", 3)
self.give_item_and_check_reachable_mine("Progressive Sword", 4)
self.give_item_and_check_reachable_mine("Progressive Dagger", 4)
self.give_item_and_check_reachable_mine("Progressive Club", 4)
self.give_item_and_check_reachable_mine("Progressive Sword", 5)
self.give_item_and_check_reachable_mine("Progressive Dagger", 5)
self.give_item_and_check_reachable_mine("Progressive Club", 5)
def give_item_and_check_reachable_mine(self, item_name: str, reachable_level: int):
item = self.multiworld.create_item(item_name, self.player)
self.multiworld.state.collect(item)
rule = self.world.logic.mine.can_mine_in_the_mines_floor_1_40()
if reachable_level > 0:
self.assert_rule_true(rule, self.multiworld.state)
else:
self.assert_rule_false(rule, self.multiworld.state)
rule = self.world.logic.mine.can_mine_in_the_mines_floor_41_80()
if reachable_level > 1:
self.assert_rule_true(rule, self.multiworld.state)
else:
self.assert_rule_false(rule, self.multiworld.state)
rule = self.world.logic.mine.can_mine_in_the_mines_floor_81_120()
if reachable_level > 2:
self.assert_rule_true(rule, self.multiworld.state)
else:
self.assert_rule_false(rule, self.multiworld.state)
rule = self.world.logic.mine.can_mine_in_the_skull_cavern()
if reachable_level > 3:
self.assert_rule_true(rule, self.multiworld.state)
else:
self.assert_rule_false(rule, self.multiworld.state)
rule = self.world.logic.ability.can_mine_perfectly_in_the_skull_cavern()
if reachable_level > 4:
self.assert_rule_true(rule, self.multiworld.state)
else:
self.assert_rule_false(rule, self.multiworld.state)