Files
dockipelago/worlds/dc2/Items.py
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

598 lines
34 KiB
Python

from enum import IntEnum
from Options import OptionError
from typing import NamedTuple
from BaseClasses import Item, MultiWorld
class DC2ItemCategory(IntEnum):
WEAPON_MAX_L = 0
WEAPON_MAX_R = 1
WEAPON_MONICA_L = 2
WEAPON_MONICA_R = 3
CONSUMABLE = 4
GATE_KEY = 5
GEORAMA_RESOURCE = 6
GEOSTONE = 7
MISC = 8,
SKIP = 9,
COIN = 10,
GEM = 11,
KEY_ITEM = 12
EVENT = 13,
REPLACE = 14,
RIDEPOD = 15,
MATERIAL = 16,
REWARD = 17
class DC2ItemData(NamedTuple):
name: str
dc2_code: int
category: DC2ItemCategory
class DarkCloud2Item(Item):
game: str = "Dark Cloud 2"
@staticmethod
def get_name_to_id() -> dict:
base_id = 694200000
return {item_data.name: (base_id + item_data.dc2_code if item_data.dc2_code is not None else None) for item_data in _all_items}
key_item_names = {
}
_all_items = [DC2ItemData(row[0], row[1], row[2]) for row in [
("null", 0, DC2ItemCategory.REPLACE),
("Battle Wrench", 1, DC2ItemCategory.WEAPON_MAX_R),
("Drill Wrench", 2, DC2ItemCategory.WEAPON_MAX_R),
("Smash Wrench", 3, DC2ItemCategory.WEAPON_MAX_R),
("Stinger Wrench", 4, DC2ItemCategory.WEAPON_MAX_R),
("Poison Wrench", 5, DC2ItemCategory.WEAPON_MAX_R),
("Cubic Hammer", 6, DC2ItemCategory.WEAPON_MAX_R),
("Digi Hammer", 7, DC2ItemCategory.WEAPON_MAX_R),
("Heavy Hammer", 8, DC2ItemCategory.WEAPON_MAX_R),
("Handy Stick", 9, DC2ItemCategory.WEAPON_MAX_R),
("Turkey", 10, DC2ItemCategory.WEAPON_MAX_R),
("Swan", 11, DC2ItemCategory.WEAPON_MAX_R),
("Flamingo", 12, DC2ItemCategory.WEAPON_MAX_R),
("Falcon", 13, DC2ItemCategory.WEAPON_MAX_R),
("Albatross", 14, DC2ItemCategory.WEAPON_MAX_R),
("Turtle Shell Hammer", 15, DC2ItemCategory.WEAPON_MAX_R),
("Big Bucks Hammer", 16, DC2ItemCategory.WEAPON_MAX_R),
("Frozen Tuna", 17, DC2ItemCategory.WEAPON_MAX_R),
("Kubera's Hand", 18, DC2ItemCategory.WEAPON_MAX_R),
("Sigma Breaker", 19, DC2ItemCategory.WEAPON_MAX_L),
("Grade 0", 20, DC2ItemCategory.WEAPON_MAX_L),
("LEGEND", 21, DC2ItemCategory.WEAPON_MAX_L),
("Classic Gun", 22, DC2ItemCategory.WEAPON_MAX_L),
("Dryer Gun", 23, DC2ItemCategory.WEAPON_MAX_L),
("Trumpet Gun", 24, DC2ItemCategory.WEAPON_MAX_L),
("Bell Trigger", 25, DC2ItemCategory.WEAPON_MAX_L),
("Magic Gun", 26, DC2ItemCategory.WEAPON_MAX_L),
("Soul Breaker", 27, DC2ItemCategory.WEAPON_MAX_L),
("Grenade Launcher", 28, DC2ItemCategory.WEAPON_MAX_L),
("Dark Viper", 29, DC2ItemCategory.WEAPON_MAX_L),
("Twin Buster", 30, DC2ItemCategory.WEAPON_MAX_L),
("Jurak Gun", 31, DC2ItemCategory.WEAPON_MAX_L),
("Question Shooter", 32, DC2ItemCategory.WEAPON_MAX_L),
("Steal Gun", 33, DC2ItemCategory.WEAPON_MAX_L),
("Supernova", 34, DC2ItemCategory.WEAPON_MAX_L),
("Star Breaker", 35, DC2ItemCategory.WEAPON_MAX_L),
("Wild Cat", 36, DC2ItemCategory.WEAPON_MAX_L),
("Sexy Panther", 37, DC2ItemCategory.WEAPON_MAX_L),
("Desperado", 38, DC2ItemCategory.WEAPON_MAX_L),
("Sigma Bazooka", 39, DC2ItemCategory.WEAPON_MAX_L),
("Last Resort", 40, DC2ItemCategory.WEAPON_MAX_L),
("Long Sword", 41, DC2ItemCategory.WEAPON_MONICA_R),
("Broad Sword", 42, DC2ItemCategory.WEAPON_MONICA_R),
("Baselard", 43, DC2ItemCategory.WEAPON_MONICA_R),
("Gladius", 44, DC2ItemCategory.WEAPON_MONICA_R),
("Wise Owl Sword", 45, DC2ItemCategory.WEAPON_MONICA_R),
("Cliff Knife", 46, DC2ItemCategory.WEAPON_MONICA_R),
("Antique Sword", 47, DC2ItemCategory.WEAPON_MONICA_R),
("Bastard Sword", 48, DC2ItemCategory.WEAPON_MONICA_R),
("Kitchen Knife", 49, DC2ItemCategory.WEAPON_MONICA_R),
("Tsukikage", 50, DC2ItemCategory.WEAPON_MONICA_R),
("Sun Sword", 51, DC2ItemCategory.WEAPON_MONICA_R),
("Serpent Slicer", 52, DC2ItemCategory.WEAPON_MONICA_R),
("null", 53, DC2ItemCategory.REPLACE),
("Shamshir", 54, DC2ItemCategory.WEAPON_MONICA_R),
("Ama No Murakumo", 55, DC2ItemCategory.WEAPON_MONICA_R),
("Lamb's Sword", 56, DC2ItemCategory.WEAPON_MONICA_R),
("Dark Cloud", 57, DC2ItemCategory.WEAPON_MONICA_R),
("Brave Ark", 58, DC2ItemCategory.WEAPON_MONICA_R),
("Big Bang", 59, DC2ItemCategory.WEAPON_MONICA_R),
("Atlamillia Sword", 60, DC2ItemCategory.WEAPON_MONICA_R),
("Mardan Sword", 61, DC2ItemCategory.WEAPON_MONICA_R),
("Garayan Sword", 62, DC2ItemCategory.WEAPON_MONICA_R),
("Mardan Garayan", 63, DC2ItemCategory.WEAPON_MONICA_R),
("Ruler's Sword", 64, DC2ItemCategory.WEAPON_MONICA_R),
("Evilcise", 65, DC2ItemCategory.WEAPON_MONICA_R),
("Small Sword", 66, DC2ItemCategory.WEAPON_MONICA_R),
("Sand Breaker", 67, DC2ItemCategory.WEAPON_MONICA_R),
("Drain Seeker", 68, DC2ItemCategory.WEAPON_MONICA_R),
("Chopper", 69, DC2ItemCategory.WEAPON_MONICA_R),
("Choora", 70, DC2ItemCategory.WEAPON_MONICA_R),
("Claymore", 71, DC2ItemCategory.WEAPON_MONICA_R),
("Maneater", 72, DC2ItemCategory.WEAPON_MONICA_R),
("Bone Rapier", 73, DC2ItemCategory.WEAPON_MONICA_R),
("Sax", 74, DC2ItemCategory.WEAPON_MONICA_R),
("7 Branch Sword", 75, DC2ItemCategory.WEAPON_MONICA_R),
("Dusack", 76, DC2ItemCategory.WEAPON_MONICA_R),
("Cross Heinder", 77, DC2ItemCategory.WEAPON_MONICA_R),
("7th Heaven", 78, DC2ItemCategory.WEAPON_MONICA_R),
("Sword of Zeus", 79, DC2ItemCategory.WEAPON_MONICA_R),
("Chronicle Sword", 80, DC2ItemCategory.WEAPON_MONICA_R),
("Chronicle 2", 81, DC2ItemCategory.WEAPON_MONICA_R),
("Holy Daedalus Blade", 82, DC2ItemCategory.WEAPON_MONICA_R),
("Muramasa", 83, DC2ItemCategory.WEAPON_MONICA_R),
("Dark Excalibur", 84, DC2ItemCategory.WEAPON_MONICA_R),
("Sargatanas", 85, DC2ItemCategory.WEAPON_MONICA_R),
("Halloween Blade", 86, DC2ItemCategory.WEAPON_MONICA_R),
("Shining Bravado", 87, DC2ItemCategory.WEAPON_MONICA_R),
("Island King", 88, DC2ItemCategory.WEAPON_MONICA_R),
("Griffon Fork", 89, DC2ItemCategory.WEAPON_MONICA_R),
("True Battle Wrench", 90, DC2ItemCategory.WEAPON_MAX_R),
("Magic Brassard", 91, DC2ItemCategory.WEAPON_MONICA_L),
("Gold Brassard", 92, DC2ItemCategory.WEAPON_MONICA_L),
("Bandit Brassard", 93, DC2ItemCategory.WEAPON_MONICA_L),
("Crystal Brassard", 94, DC2ItemCategory.WEAPON_MONICA_L),
("Platinum Brassard", 95, DC2ItemCategory.WEAPON_MONICA_L),
("Goddess Brassard", 96, DC2ItemCategory.WEAPON_MONICA_L),
("Spirit Brassard", 97, DC2ItemCategory.WEAPON_MONICA_L),
("Destruction Brassard", 98, DC2ItemCategory.WEAPON_MONICA_L),
("Satan Brassard", 99, DC2ItemCategory.WEAPON_MONICA_L),
("Athena's Armlet", 100, DC2ItemCategory.WEAPON_MONICA_L),
("Mobius Bangle", 101, DC2ItemCategory.WEAPON_MONICA_L),
("Angel Shooter", 102, DC2ItemCategory.WEAPON_MONICA_L),
("Pocklekul", 103, DC2ItemCategory.WEAPON_MONICA_L),
("Thorn Armlet", 104, DC2ItemCategory.WEAPON_MONICA_L),
("Star Armlet", 105, DC2ItemCategory.WEAPON_MONICA_L),
("Moon Armlet", 106, DC2ItemCategory.WEAPON_MONICA_L),
("Sun Armlet", 107, DC2ItemCategory.WEAPON_MONICA_L),
("Five-Star Armlet", 108, DC2ItemCategory.WEAPON_MONICA_L),
("Love", 109, DC2ItemCategory.WEAPON_MONICA_L),
("Royal Sword", 110, DC2ItemCategory.WEAPON_MONICA_L),
("Hunting Cap", 111, DC2ItemCategory.MISC),
("Fashionable Cap", 112, DC2ItemCategory.MISC),
("Two-Tone Beret", 113, DC2ItemCategory.MISC),
("Maintenance Cap", 114, DC2ItemCategory.MISC),
("Explorer's Helmet", 115, DC2ItemCategory.MISC),
("Clown Hat", 116, DC2ItemCategory.MISC),
("Leather Shoes", 117, DC2ItemCategory.MISC),
("Wing Shoes", 118, DC2ItemCategory.MISC),
("Work Shoes", 119, DC2ItemCategory.MISC),
("Dragon Shoes", 120, DC2ItemCategory.MISC),
("Clown Shoes", 121, DC2ItemCategory.MISC),
("Explorer's Shoes", 122, DC2ItemCategory.MISC),
("Yellow Ribbon", 123, DC2ItemCategory.MISC),
("Striped Ribbon", 124, DC2ItemCategory.MISC),
("Zipangu Comb", 125, DC2ItemCategory.MISC),
("Swallowtail", 126, DC2ItemCategory.MISC),
("Princess Orb", 127, DC2ItemCategory.MISC),
("Kitty Bell", 128, DC2ItemCategory.MISC),
("Knight Boots", 129, DC2ItemCategory.MISC),
("Metal Boots", 130, DC2ItemCategory.MISC),
("Wing Boots", 131, DC2ItemCategory.MISC),
("Spike Boots", 132, DC2ItemCategory.MISC),
("Princess Boots", 133, DC2ItemCategory.MISC),
("Panther Boots", 134, DC2ItemCategory.MISC),
("Drum Can Body", 135, DC2ItemCategory.RIDEPOD),
("Milk Can Body", 136, DC2ItemCategory.RIDEPOD),
("Refrigerator Body", 137, DC2ItemCategory.RIDEPOD),
("Wooden Box Body", 138, DC2ItemCategory.RIDEPOD),
("Clown Body", 139, DC2ItemCategory.RIDEPOD),
("Samurai Body", 140, DC2ItemCategory.RIDEPOD),
("Super-Alloy Body", 141, DC2ItemCategory.RIDEPOD),
("Sun and moon Armor", 142, DC2ItemCategory.RIDEPOD),
("null1", 143, DC2ItemCategory.REPLACE),
("null2", 144, DC2ItemCategory.REPLACE),
("Cannonball Arm", 145, DC2ItemCategory.RIDEPOD),
("Barrel Cannon", 146, DC2ItemCategory.RIDEPOD),
("Drill Arm", 147, DC2ItemCategory.RIDEPOD),
("Missile Pod Arm", 148, DC2ItemCategory.RIDEPOD),
("Hammer Arm", 149, DC2ItemCategory.RIDEPOD),
("Machine Gun Arm", 150, DC2ItemCategory.RIDEPOD),
("Clown Hand", 151, DC2ItemCategory.RIDEPOD),
("Samurai Arm", 152, DC2ItemCategory.RIDEPOD),
("Laser Arm", 153, DC2ItemCategory.RIDEPOD),
("Nova Cannon", 154, DC2ItemCategory.RIDEPOD),
("Iron Leg", 155, DC2ItemCategory.RIDEPOD),
("Catterpillar", 156, DC2ItemCategory.RIDEPOD),
("Bucket Leg", 157, DC2ItemCategory.RIDEPOD),
("Roller Foot", 158, DC2ItemCategory.RIDEPOD),
("Buggy", 159, DC2ItemCategory.RIDEPOD),
("Propeller Leg", 160, DC2ItemCategory.RIDEPOD),
("Multi-feet", 161, DC2ItemCategory.RIDEPOD),
("Jet Hover", 162, DC2ItemCategory.RIDEPOD),
("Clown Foot", 163, DC2ItemCategory.RIDEPOD),
("null3", 164, DC2ItemCategory.REPLACE),
("Energy Pack", 165, DC2ItemCategory.RIDEPOD),
("Energy Pack (Barrel)", 166, DC2ItemCategory.RIDEPOD),
("Bucket Pack", 167, DC2ItemCategory.RIDEPOD),
("Cleaner Pack", 168, DC2ItemCategory.RIDEPOD),
("Energy Pack (Urn)", 169, DC2ItemCategory.RIDEPOD),
("Triple-Urn Pack", 170, DC2ItemCategory.RIDEPOD),
("null4", 171, DC2ItemCategory.REPLACE),
("Monster Notes", 172, DC2ItemCategory.MISC),
("Dynamite", 173, DC2ItemCategory.CONSUMABLE),
("Seal-breaking Scroll", 174, DC2ItemCategory.CONSUMABLE),
("Flame Crystal", 175, DC2ItemCategory.MATERIAL),
("Chill Crystal", 176, DC2ItemCategory.MATERIAL),
("Lightning Crystal", 177, DC2ItemCategory.MATERIAL),
("Hunter Crystal", 178, DC2ItemCategory.MATERIAL),
("Holy Crystal", 179, DC2ItemCategory.MATERIAL),
("Destruction Crystal", 180, DC2ItemCategory.MATERIAL),
("Wind Crystal", 181, DC2ItemCategory.MATERIAL),
("Sea Dragon Crystal", 182, DC2ItemCategory.MATERIAL),
("Power Crystal", 183, DC2ItemCategory.MATERIAL),
("Protector Crystal", 184, DC2ItemCategory.MATERIAL),
("[line1]", 185, DC2ItemCategory.SKIP),
("Garnet", 186, DC2ItemCategory.GEM),
("Amethyst", 187, DC2ItemCategory.GEM),
("Aquamarine", 188, DC2ItemCategory.GEM),
("Diamond", 189, DC2ItemCategory.GEM),
("Emerald", 190, DC2ItemCategory.GEM),
("Pearl", 191, DC2ItemCategory.GEM),
("Ruby", 192, DC2ItemCategory.GEM),
("Peridot", 193, DC2ItemCategory.GEM),
("Sapphire", 194, DC2ItemCategory.GEM),
("Opal", 195, DC2ItemCategory.GEM),
("Topaz", 196, DC2ItemCategory.GEM),
("Turquoise", 197, DC2ItemCategory.GEM),
("Sun Stone", 198, DC2ItemCategory.GEM),
("Moon Stone", 199, DC2ItemCategory.GEM),
("Wealth Coin", 200, DC2ItemCategory.COIN),
("Dark Coin", 201, DC2ItemCategory.COIN),
("Indestructible Coin", 202, DC2ItemCategory.COIN),
("Poison Coin", 203, DC2ItemCategory.COIN),
("Time Coin", 204, DC2ItemCategory.COIN),
("Bandit Coin", 205, DC2ItemCategory.COIN),
("Absorption Coin", 206, DC2ItemCategory.COIN),
("Healing Coin", 207, DC2ItemCategory.COIN),
("Bull's-eye Coin", 208, DC2ItemCategory.COIN),
("Experience Coin", 209, DC2ItemCategory.COIN),
("Rolling Log", 210, DC2ItemCategory.GEORAMA_RESOURCE),
("Sturdy Rock", 211, DC2ItemCategory.GEORAMA_RESOURCE),
("Rough Rock", 212, DC2ItemCategory.GEORAMA_RESOURCE),
("Bundle of Hay", 213, DC2ItemCategory.GEORAMA_RESOURCE),
("Sturdy Cloth", 214, DC2ItemCategory.GEORAMA_RESOURCE),
("Gunpowder", 215, DC2ItemCategory.GEORAMA_RESOURCE),
("Glass Material", 216, DC2ItemCategory.GEORAMA_RESOURCE),
("Unknown Bone", 217, DC2ItemCategory.GEORAMA_RESOURCE),
("Sticky Clay", 218, DC2ItemCategory.GEORAMA_RESOURCE),
("Flour", 219, DC2ItemCategory.GEORAMA_RESOURCE),
("Sugar Cane", 220, DC2ItemCategory.GEORAMA_RESOURCE),
("Super Hot Pepper", 221, DC2ItemCategory.GEORAMA_RESOURCE),
("Poison", 222, DC2ItemCategory.GEORAMA_RESOURCE),
("Forest Dew", 223, DC2ItemCategory.GEORAMA_RESOURCE),
("Scrap of Metal", 224, DC2ItemCategory.GEORAMA_RESOURCE),
("Gold Bar", 225, DC2ItemCategory.GEORAMA_RESOURCE),
("Silver Ball", 226, DC2ItemCategory.GEORAMA_RESOURCE),
("Hunk of Copper", 227, DC2ItemCategory.GEORAMA_RESOURCE),
("Light Element", 228, DC2ItemCategory.GEORAMA_RESOURCE),
("Holy Element", 229, DC2ItemCategory.GEORAMA_RESOURCE),
("Earth Element", 230, DC2ItemCategory.GEORAMA_RESOURCE),
("Water Element", 231, DC2ItemCategory.GEORAMA_RESOURCE),
("Chill Element", 232, DC2ItemCategory.GEORAMA_RESOURCE),
("Thunder Element", 233, DC2ItemCategory.GEORAMA_RESOURCE),
("Wind Element", 234, DC2ItemCategory.GEORAMA_RESOURCE),
("Fire Element", 235, DC2ItemCategory.GEORAMA_RESOURCE),
("Life Element", 236, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Red)", 237, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Blue)", 238, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Black)", 239, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Green)", 240, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Orange)", 241, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Yellow)", 242, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Purple)", 243, DC2ItemCategory.GEORAMA_RESOURCE),
("Paint (Pink)", 244, DC2ItemCategory.GEORAMA_RESOURCE),
("Thick Hide", 245, DC2ItemCategory.GEORAMA_RESOURCE),
("Core", 246, DC2ItemCategory.MISC),
("Improved Core", 247, DC2ItemCategory.MISC),
("Core II", 248, DC2ItemCategory.MISC),
("Core III", 249, DC2ItemCategory.MISC),
("Super Core", 250, DC2ItemCategory.MISC),
("Hyper Core", 251, DC2ItemCategory.MISC),
("Master grade Core", 252, DC2ItemCategory.MISC),
("Anti-petrify Amulet", 253, DC2ItemCategory.CONSUMABLE),
("Non-stop Amulet", 254, DC2ItemCategory.CONSUMABLE),
("Anti-curse Amulet", 255, DC2ItemCategory.CONSUMABLE),
("Anti-goo Amulet", 256, DC2ItemCategory.CONSUMABLE),
("Antidote Amulet", 257, DC2ItemCategory.CONSUMABLE),
("Green Overalls", 258, DC2ItemCategory.MISC),
("Red Vest", 259, DC2ItemCategory.MISC),
("Denim Overalls", 260, DC2ItemCategory.MISC),
("Explorer's Outfit", 261, DC2ItemCategory.MISC),
("Clown Suit", 262, DC2ItemCategory.MISC),
("Pumpkin Shorts", 263, DC2ItemCategory.MISC),
("Striped Dress", 264, DC2ItemCategory.MISC),
("Star Leotard", 265, DC2ItemCategory.MISC),
("Princess Dress", 266, DC2ItemCategory.MISC),
("Panther Ensemble", 267, DC2ItemCategory.MISC),
("Bread", 268, DC2ItemCategory.CONSUMABLE),
("Cheese", 269, DC2ItemCategory.CONSUMABLE),
("Premium Chicken", 270, DC2ItemCategory.CONSUMABLE),
("Double Pudding", 271, DC2ItemCategory.CONSUMABLE),
("Plum Rice Ball", 272, DC2ItemCategory.CONSUMABLE),
("Resurrection Powder", 273, DC2ItemCategory.CONSUMABLE),
("Stamina Drink", 274, DC2ItemCategory.CONSUMABLE),
("Antidote Drink", 275, DC2ItemCategory.CONSUMABLE),
("Holy Water", 276, DC2ItemCategory.CONSUMABLE),
("Soap", 277, DC2ItemCategory.CONSUMABLE),
("Medusa's Tear", 278, DC2ItemCategory.CONSUMABLE),
("Mighty Healing", 279, DC2ItemCategory.CONSUMABLE),
("Bomb", 280, DC2ItemCategory.CONSUMABLE),
("Stone", 281, DC2ItemCategory.CONSUMABLE),
("Flame Stone", 282, DC2ItemCategory.CONSUMABLE),
("Chill Stone", 283, DC2ItemCategory.CONSUMABLE),
("Lightning Stone", 284, DC2ItemCategory.CONSUMABLE),
("Wind Stone", 285, DC2ItemCategory.CONSUMABLE),
("Holy Stone", 286, DC2ItemCategory.CONSUMABLE),
("Heart-throb Cherry", 287, DC2ItemCategory.CONSUMABLE),
("Stone Berry", 288, DC2ItemCategory.CONSUMABLE),
("Gooey Peach", 289, DC2ItemCategory.CONSUMABLE),
("Bomb Nut", 290, DC2ItemCategory.CONSUMABLE),
("Poison Apple", 291, DC2ItemCategory.CONSUMABLE),
("Mellow Banana", 292, DC2ItemCategory.CONSUMABLE),
("Escape Powder", 293, DC2ItemCategory.CONSUMABLE),
("Weapon Powder", 294, DC2ItemCategory.CONSUMABLE),
("Level up Powder", 295, DC2ItemCategory.CONSUMABLE),
("Fruit of Eden", 296, DC2ItemCategory.CONSUMABLE),
("Treasure Chest Key", 297, DC2ItemCategory.CONSUMABLE),
("Gun Repair Powder", 298, DC2ItemCategory.CONSUMABLE),
("Crunchy Bread", 299, DC2ItemCategory.CONSUMABLE),
("Crunchy Bread", 300, DC2ItemCategory.CONSUMABLE),
("Roasted Chestnut", 301, DC2ItemCategory.CONSUMABLE),
("Fishing Rod", 302, DC2ItemCategory.KEY_ITEM),
("Lure Rod", 303, DC2ItemCategory.WEAPON_MAX_R),
("Gift Capsule", 304, DC2ItemCategory.CONSUMABLE),
("Map", 305, DC2ItemCategory.MISC),
("Magic Crystal", 306, DC2ItemCategory.MISC),
("Lightspeed", 307, DC2ItemCategory.CONSUMABLE),
("Badge Box", 308, DC2ItemCategory.MISC),
("Aquarium", 309, DC2ItemCategory.MISC),
("Medal Holder", 311, DC2ItemCategory.MISC),
("Priscleen", 310, DC2ItemCategory.MISC),
("Bobo", 320, DC2ItemCategory.MISC),
("Gobbler", 321, DC2ItemCategory.MISC),
("Nonky", 322, DC2ItemCategory.MISC),
("Kaji", 323, DC2ItemCategory.MISC),
("Baku Baku", 324, DC2ItemCategory.MISC),
("Mardan Garayan", 325, DC2ItemCategory.MISC),
("Gummy", 326, DC2ItemCategory.MISC),
("Niler", 327, DC2ItemCategory.MISC),
("Umadakara", 328, DC2ItemCategory.MISC),
("Tarton", 329, DC2ItemCategory.MISC),
("Piccoly", 330, DC2ItemCategory.MISC),
("Bon", 331, DC2ItemCategory.MISC),
("Hama Hama", 332, DC2ItemCategory.MISC),
("Negie", 333, DC2ItemCategory.MISC),
("Den", 334, DC2ItemCategory.MISC),
("Heela", 335, DC2ItemCategory.MISC),
("Baron Garayan", 336, DC2ItemCategory.MISC),
("Prickly", 312, DC2ItemCategory.MISC),
("Mimi", 313, DC2ItemCategory.MISC),
("Evy", 314, DC2ItemCategory.MISC),
("Carrot", 315, DC2ItemCategory.MISC),
("Potato Cake", 316, DC2ItemCategory.MISC),
("Minon", 317, DC2ItemCategory.MISC),
("Battan", 318, DC2ItemCategory.MISC),
("Petite Fish", 319, DC2ItemCategory.MISC),
("Key Handle", 337, DC2ItemCategory.GATE_KEY),
("Channel Key", 338, DC2ItemCategory.GATE_KEY),
("Fairy Saw", 339, DC2ItemCategory.GATE_KEY),
("Slash Branch", 340, DC2ItemCategory.GATE_KEY),
("Giant Meat", 341, DC2ItemCategory.GATE_KEY),
("Luna Stone", 342, DC2ItemCategory.GATE_KEY),
("Luna Stone Piece", 343, DC2ItemCategory.GATE_KEY),
("Magma Rock", 344, DC2ItemCategory.GATE_KEY),
("Rope", 345, DC2ItemCategory.GATE_KEY),
("Stone 'T'", 346, DC2ItemCategory.GATE_KEY),
("White Wind Vase", 347, DC2ItemCategory.GATE_KEY),
("Queen's Watering Pot", 348, DC2ItemCategory.GATE_KEY),
("Moon Clock Hand", 349, DC2ItemCategory.GATE_KEY),
("Trolley Oil", 350, DC2ItemCategory.GATE_KEY),
("Rusted Key", 351, DC2ItemCategory.GATE_KEY),
("Armband Repair Powder", 352, DC2ItemCategory.CONSUMABLE),
("Circus Ticket", 353, DC2ItemCategory.MISC),
("Fire Horn", 354, DC2ItemCategory.KEY_ITEM),
("Inside Scoop Memo", 355, DC2ItemCategory.MISC),
("Sundrop", 356, DC2ItemCategory.KEY_ITEM),
("Photo Album", 357, DC2ItemCategory.MISC),
("Cooking Stove", 358, DC2ItemCategory.MISC),
("Help Receiver", 359, DC2ItemCategory.MISC),
("Electric Worm", 360, DC2ItemCategory.KEY_ITEM),
("Lafrescia Seed", 361, DC2ItemCategory.KEY_ITEM),
("Star Key", 362, DC2ItemCategory.KEY_ITEM),
("White Windflower", 363, DC2ItemCategory.KEY_ITEM),
("Miracle Dumplings", 364, DC2ItemCategory.KEY_ITEM),
("Earth Gem", 365, DC2ItemCategory.KEY_ITEM),
("Water Gem", 366, DC2ItemCategory.KEY_ITEM),
("Wind Gem", 367, DC2ItemCategory.KEY_ITEM),
("Fire Gem", 368, DC2ItemCategory.KEY_ITEM),
("Camera", 369, DC2ItemCategory.MISC),
("Grape Juice", 370, DC2ItemCategory.KEY_ITEM),
("Starglass", 371, DC2ItemCategory.KEY_ITEM),
("Time Bomb", 372, DC2ItemCategory.KEY_ITEM),
("Shell Talkie", 373, DC2ItemCategory.KEY_ITEM),
("Flower of the Sun", 374, DC2ItemCategory.KEY_ITEM),
("Secret Dragon Remedy", 375, DC2ItemCategory.KEY_ITEM),
("Gold Paint", 376, DC2ItemCategory.MISC),
("Spinner", 377, DC2ItemCategory.MISC),
("Frog", 378, DC2ItemCategory.MISC),
("Minnow", 379, DC2ItemCategory.MISC),
("Fork", 380, DC2ItemCategory.MISC),
("Ridepod Fuel", 381, DC2ItemCategory.CONSUMABLE),
("Wrench", 382, DC2ItemCategory.MISC),
("Monster Drop", 383, DC2ItemCategory.MISC),
("Name-change Ticket", 384, DC2ItemCategory.MISC),
("Teal Envelope", 385, DC2ItemCategory.MISC),
("Notebook", 386, DC2ItemCategory.MISC),
("Wrench", 387, DC2ItemCategory.MISC),
("Potato Pie", 388, DC2ItemCategory.CONSUMABLE),
("Witch Parfait", 389, DC2ItemCategory.CONSUMABLE),
("Improved Bomb", 390, DC2ItemCategory.CONSUMABLE),
("Final Bomb", 391, DC2ItemCategory.CONSUMABLE),
("Cannonball Arm II", 392, DC2ItemCategory.RIDEPOD),
("Cannonball Arm III", 393, DC2ItemCategory.RIDEPOD),
("Cannonball Arm IV", 394, DC2ItemCategory.RIDEPOD),
("Barrel Cannon II", 395, DC2ItemCategory.RIDEPOD),
("Barrel Cannon III", 396, DC2ItemCategory.RIDEPOD),
("Barrel Cannon IV", 397, DC2ItemCategory.RIDEPOD),
("Drill Arm II", 398, DC2ItemCategory.RIDEPOD),
("Drill Arm III", 399, DC2ItemCategory.RIDEPOD),
("Drill Arm IV", 400, DC2ItemCategory.RIDEPOD),
("Missile Pod Arm II", 401, DC2ItemCategory.RIDEPOD),
("Missile Pod Arm III", 402, DC2ItemCategory.RIDEPOD),
("Missile Pod Arm IV", 403, DC2ItemCategory.RIDEPOD),
("Hammer Arm II", 404, DC2ItemCategory.RIDEPOD),
("Hammer Arm III", 405, DC2ItemCategory.RIDEPOD),
("Hammer Arm IV", 406, DC2ItemCategory.RIDEPOD),
("Machine Gun Arm II", 407, DC2ItemCategory.RIDEPOD),
("Machine Gun Arm III", 408, DC2ItemCategory.RIDEPOD),
("Machine Gun Arm IV", 409, DC2ItemCategory.RIDEPOD),
("Clown Hand II", 410, DC2ItemCategory.RIDEPOD),
("Clown Hand III", 411, DC2ItemCategory.RIDEPOD),
("Clown Hand IV", 412, DC2ItemCategory.RIDEPOD),
("Samurai Arm II", 413, DC2ItemCategory.RIDEPOD),
("Samurai Arm III", 414, DC2ItemCategory.RIDEPOD),
("Samurai Arm IV", 415, DC2ItemCategory.RIDEPOD),
("Laser Arm II", 416, DC2ItemCategory.RIDEPOD),
("Laser Arm III", 417, DC2ItemCategory.RIDEPOD),
("Laser Arm IV", 418, DC2ItemCategory.RIDEPOD),
("Nova Cannon II", 419, DC2ItemCategory.RIDEPOD),
("Nova Cannon III", 420, DC2ItemCategory.RIDEPOD),
("Nova Cannon IV", 421, DC2ItemCategory.RIDEPOD),
("Voice Unit", 422, DC2ItemCategory.MISC),
("Shield Kit", 423, DC2ItemCategory.CONSUMABLE),
("Himarra Badge", 424, DC2ItemCategory.MISC),
("Tasty Water", 425, DC2ItemCategory.CONSUMABLE),
("null5", 426, DC2ItemCategory.REPLACE),
("Sun Badge", 427, DC2ItemCategory.MISC),
("Moon Badge", 428, DC2ItemCategory.MISC),
("Chapter 1 Complete", 1000, DC2ItemCategory.EVENT),
("Chapter 2 Complete", 1001, DC2ItemCategory.EVENT),
("Chapter 3 Complete", 1002, DC2ItemCategory.EVENT),
("Chapter 4 Complete", 1003, DC2ItemCategory.EVENT),
("Chapter 5 Complete", 1004, DC2ItemCategory.EVENT),
("Essential Pack", 2000, DC2ItemCategory.REWARD),
("Gem Pack A", 2001, DC2ItemCategory.REWARD),
("Gem Pack B", 2002, DC2ItemCategory.REWARD),
("Coin Pack A", 2003, DC2ItemCategory.REWARD),
("Coin Pack B", 2004, DC2ItemCategory.REWARD),
("Crystal Pack", 2005, DC2ItemCategory.REWARD),
]]
item_descriptions = {
}
item_dictionary = {item_data.name: item_data for item_data in _all_items}
def BuildItemPool(multiworld: MultiWorld, count, options):
item_pool = []
remaining_count = count
if options.guaranteed_items.value:
for item_name, item_quant in options.guaranteed_items.value.items():
item = item_dictionary[item_name]
item_pool += [item] * item_quant
remaining_count = remaining_count - 1
key_items = [item for item in _all_items if item.name in key_item_names or item.category == DC2ItemCategory.KEY_ITEM]
for item in key_items:
item_pool.append(item)
remaining_count = remaining_count - 1
reward_items = [item for item in _all_items if item.category == DC2ItemCategory.REWARD]
consumable_items = [item for item in _all_items if item.category in [DC2ItemCategory.CONSUMABLE, item.category == DC2ItemCategory.MATERIAL, item.category == DC2ItemCategory.GEM, item.category == DC2ItemCategory.COIN]]
georama_items = [item for item in _all_items if item.category == DC2ItemCategory.GEORAMA_RESOURCE]
weapon_items = [item for item in _all_items if item.category in [DC2ItemCategory.WEAPON_MAX_L, DC2ItemCategory.WEAPON_MAX_R, DC2ItemCategory.WEAPON_MONICA_L, DC2ItemCategory.WEAPON_MONICA_R, DC2ItemCategory.RIDEPOD]]
if options.resource_pack_count.value > 0:
if options.resource_pack_count.value > remaining_count:
raise OptionError("Resource pack count exceeds remaining item count")
for i in range(options.resource_pack_count.value):
item = multiworld.random.choice(reward_items)
item_pool.append(item)
remaining_count = remaining_count - 1
for i in range(int(remaining_count * 0.9)):
item = multiworld.random.choice(consumable_items)
item_pool.append(item)
remaining_count = remaining_count - 1
for i in range(int(remaining_count * 0.5)):
item = multiworld.random.choice(georama_items)
item_pool.append(item)
remaining_count = remaining_count - 1
for i in range(remaining_count):
item = multiworld.random.choice(weapon_items)
item_pool.append(item)
multiworld.random.shuffle(item_pool)
return item_pool