forked from mirror/Archipelago
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
57 lines
2.3 KiB
Python
57 lines
2.3 KiB
Python
from BaseClasses import Item, ItemClassification
|
|
from typing import Dict, List
|
|
from .Options import VampireSurvivorsOptions
|
|
from .Locations import all_characters, all_stages, EUDAI
|
|
|
|
|
|
class VampireSurvivorsItem(Item):
|
|
game = "Vampire Survivors"
|
|
|
|
unlock_character_items = [f"Character Unlock: {character}" for character in all_characters]
|
|
unlock_stage_items = [f"Stage Unlock: {stage}" for stage in (all_stages + [EUDAI])]
|
|
unlock_gamemodes = [f"Gamemode Unlock: {gamemode}" for gamemode in ["Hyper", "Hurry", "Arcanas", "Eggs"]]
|
|
filler_items = ["Empty Coffins", "Floor Chickens", "Suspiciously Clean Skull", "Easter Eggs", "Progressive Nothing"]
|
|
|
|
item_table: Dict[str, ItemClassification] = {
|
|
**{item: ItemClassification.progression for item in unlock_character_items},
|
|
**{item: ItemClassification.progression for item in unlock_stage_items},
|
|
**{item: ItemClassification.progression for item in unlock_gamemodes},
|
|
**{item: ItemClassification.filler for item in filler_items},
|
|
}
|
|
|
|
raw_items = unlock_character_items + unlock_stage_items + unlock_gamemodes + filler_items
|
|
|
|
def create_items(world):
|
|
options: VampireSurvivorsOptions = world.options
|
|
pool = world.multiworld.itempool
|
|
stages = world.final_included_stages_list
|
|
characters = world.final_included_characters_list
|
|
|
|
for stage in stages:
|
|
if stage == world.starting_stage: continue
|
|
pool.append(world.create_item(f"Stage Unlock: {stage}"))
|
|
|
|
for character in characters:
|
|
if character == world.starting_character: continue
|
|
pool.append(world.create_item(f"Character Unlock: {character}"))
|
|
|
|
if options.lock_hurry_behind_item:
|
|
world.check_count -= 1
|
|
pool.append(world.create_item("Gamemode Unlock: Hurry"))
|
|
|
|
if options.lock_hyper_behind_item:
|
|
world.check_count -= 1
|
|
pool.append(world.create_item("Gamemode Unlock: Hyper"))
|
|
|
|
if options.lock_arcanas_behind_item:
|
|
world.check_count -= 1
|
|
pool.append(world.create_item("Gamemode Unlock: Arcanas"))
|
|
|
|
if options.egg_inclusion == 1:
|
|
world.check_count -= 1
|
|
pool.append(world.create_item("Gamemode Unlock: Eggs"))
|
|
|
|
world.check_count -= (len(stages) - 1) + (len(characters) - 1)
|
|
|
|
for _ in range(world.check_count):
|
|
pool.append(world.create_item(world.random.choice(filler_items))) |