Files
Jonathan Tinney 7971961166
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
add schedule I, sonic 1/frontiers/heroes, spirit island
2026-04-02 23:46:36 -07:00

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)))