Archipelago/worlds/hk/test/test_grub_count.py

166 lines
4.9 KiB
Python

from . import linkedTestHK, WorldTestBase
from Options import ItemLinks
class test_grubcount_limited(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": 20,
"Goal": "any",
}
item_link_group = [{
"name": "ItemLinkTest",
"item_pool": ["Grub"],
"link_replacement": True,
"replacement_item": "Grub",
}]
expected_grubs = 20
class test_grubcount_default(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"Goal": "any",
}
item_link_group = [{
"name": "ItemLinkTest",
"item_pool": ["Grub"],
"link_replacement": True,
"replacement_item": "Grub",
}]
expected_grubs = 46
class test_grubcount_all_unlinked(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
item_link_group = []
expected_grubs = 46
class test_grubcount_all_linked(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
item_link_group = [{
"name": "ItemLinkTest",
"item_pool": ["Grub"],
"link_replacement": True,
"replacement_item": "Grub",
}]
expected_grubs = 46 + 23
class test_replacement_only(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
expected_grubs = 46 + 18 # the count of grubs + skills removed from item links
def setup_item_links(self, args):
setattr(args, "item_links",
{
1: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": True,
"replacement_item": "Grub",
}]),
2: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": True,
"replacement_item": "Grub",
}])
})
return args
class test_replacement_only_unlinked(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
expected_grubs = 46 + 9 # Player1s replacement Grubs
def setup_item_links(self, args):
setattr(args, "item_links",
{
1: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": False,
"replacement_item": "Grub",
}]),
2: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": False,
"replacement_item": "Grub",
}])
})
return args
class test_ignore_others(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
# player2 has more than 46 grubs but they are unlinked so player1s grubs are vanilla
expected_grubs = 46
def setup_item_links(self, args):
setattr(args, "item_links",
{
1: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": False,
"replacement_item": "One_Geo",
}]),
2: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": False,
"replacement_item": "Grub",
}])
})
return args
class test_replacement_only_linked(linkedTestHK, WorldTestBase):
options = {
"RandomizeGrubs": True,
"GrubHuntGoal": "all",
"Goal": "any",
}
expected_grubs = 46 + 9 # Player2s linkreplacement grubs
def setup_item_links(self, args):
setattr(args, "item_links",
{
1: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": True,
"replacement_item": "One_Geo",
}]),
2: ItemLinks.from_any([{
"name": "ItemLinkTest",
"item_pool": ["Skills"],
"link_replacement": True,
"replacement_item": "Grub",
}])
})
return args