forked from ArchipelagoMW/Archipelago
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
762 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
from BaseClasses import ItemClassification | ||
from typing import List, Optional | ||
|
||
|
||
class ItemDef: | ||
def __init__(self, | ||
id: Optional[int], | ||
name: str, | ||
classification: ItemClassification, | ||
count: int, | ||
progression_count: int, | ||
prefill_location: Optional[str]): | ||
self.id = id | ||
self.name = name | ||
self.classification = classification | ||
self.count = count | ||
self.progression_count = progression_count | ||
self.prefill_location = prefill_location | ||
|
||
|
||
items: List[ItemDef] = [ | ||
ItemDef(400000, 'Progressive Sword', ItemClassification.progression, 4, 0, None), | ||
ItemDef(400001, 'Progressive Armor', ItemClassification.progression, 3, 0, None), | ||
ItemDef(400002, 'Progressive Shield', ItemClassification.useful, 4, 0, None), | ||
ItemDef(400003, 'Spring Elixir', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400004, 'Mattock', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400005, 'Unlock Wingboots', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400006, 'Key Jack', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400007, 'Key Queen', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400008, 'Key King', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400009, 'Key Joker', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400010, 'Key Ace', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400011, 'Ring of Ruby', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400012, 'Ring of Dworf', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400013, 'Demons Ring', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400014, 'Black Onyx', ItemClassification.progression, 1, 0, None), | ||
ItemDef(None, 'Sky Spring Flow', ItemClassification.progression, 1, 0, 'Sky Spring'), | ||
ItemDef(None, 'Tower of Fortress Spring Flow', ItemClassification.progression, 1, 0, 'Tower of Fortress Spring'), | ||
ItemDef(None, 'Joker Spring Flow', ItemClassification.progression, 1, 0, 'Joker Spring'), | ||
ItemDef(400015, 'Deluge', ItemClassification.progression, 1, 0, None), | ||
ItemDef(400016, 'Thunder', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400017, 'Fire', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400018, 'Death', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400019, 'Tilte', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400020, 'Ring of Elf', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400021, 'Magical Rod', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400022, 'Pendant', ItemClassification.useful, 1, 0, None), | ||
ItemDef(400023, 'Hourglass', ItemClassification.filler, 6, 0, None), | ||
# We need at least 4 red potions for the Tower of Red Potion. Up to the player to save them up! | ||
ItemDef(400024, 'Red Potion', ItemClassification.filler, 15, 4, None), | ||
ItemDef(400025, 'Elixir', ItemClassification.filler, 4, 0, None), | ||
ItemDef(400026, 'Glove', ItemClassification.filler, 5, 0, None), | ||
ItemDef(400027, 'Ointment', ItemClassification.filler, 8, 0, None), | ||
ItemDef(400028, 'Poison', ItemClassification.trap, 13, 0, None), | ||
ItemDef(None, 'Killed Evil One', ItemClassification.progression, 1, 0, 'Evil One'), | ||
# Placeholder item so the game knows which shop slot to prefill wingboots | ||
ItemDef(400029, 'Wingboots', ItemClassification.useful, 0, 0, None), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
from typing import List, Optional | ||
|
||
|
||
class LocationType(): | ||
world = 1 # Just standing there in the world | ||
hidden = 2 # Kill all monsters in the room to reveal, each "item room" counter tick. | ||
boss_reward = 3 # Kill a boss to reveal the item | ||
shop = 4 # Buy at a shop | ||
give = 5 # Given by an NPC | ||
spring = 6 # Activatable spring | ||
boss = 7 # Entity to kill to trigger the check | ||
|
||
|
||
class ItemType(): | ||
unknown = 0 # Or don't care | ||
red_potion = 1 | ||
|
||
|
||
class LocationDef: | ||
def __init__(self, id: Optional[int], name: str, region: str, type: int, original_item: int): | ||
self.id = id | ||
self.name = name | ||
self.region = region | ||
self.type = type | ||
self.original_item = original_item | ||
|
||
|
||
locations: List[LocationDef] = [ | ||
# Eolis | ||
LocationDef(400100, 'Eolis Guru', 'Eolis', LocationType.give, ItemType.unknown), | ||
LocationDef(400101, 'Eolis Key Jack', 'Eolis', LocationType.shop, ItemType.unknown), | ||
LocationDef(400102, 'Eolis Hand Dagger', 'Eolis', LocationType.shop, ItemType.unknown), | ||
LocationDef(400103, 'Eolis Red Potion', 'Eolis', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400104, 'Eolis Elixir', 'Eolis', LocationType.shop, ItemType.unknown), | ||
LocationDef(400105, 'Eolis Deluge', 'Eolis', LocationType.shop, ItemType.unknown), | ||
|
||
# Path to Apolune | ||
LocationDef(400106, 'Path to Apolune Magic Shield', 'Path to Apolune', LocationType.shop, ItemType.unknown), | ||
LocationDef(400107, 'Path to Apolune Death', 'Path to Apolune', LocationType.shop, ItemType.unknown), | ||
|
||
# Apolune | ||
LocationDef(400108, 'Apolune Small Shield', 'Apolune', LocationType.shop, ItemType.unknown), | ||
LocationDef(400109, 'Apolune Hand Dagger', 'Apolune', LocationType.shop, ItemType.unknown), | ||
LocationDef(400110, 'Apolune Deluge', 'Apolune', LocationType.shop, ItemType.unknown), | ||
LocationDef(400111, 'Apolune Red Potion', 'Apolune', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400112, 'Apolune Key Jack', 'Apolune', LocationType.shop, ItemType.unknown), | ||
|
||
# Tower of Trunk | ||
LocationDef(400113, 'Tower of Trunk Hidden Mattock', 'Tower of Trunk', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400114, 'Tower of Trunk Hidden Hourglass', 'Tower of Trunk', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400115, 'Tower of Trunk Boss Mattock', 'Tower of Trunk', LocationType.boss_reward, ItemType.unknown), | ||
|
||
# Path to Forepaw | ||
LocationDef(400116, 'Path to Forepaw Hidden Red Potion', 'Path to Forepaw', LocationType.hidden, ItemType.red_potion), | ||
LocationDef(400117, 'Path to Forepaw Glove', 'Path to Forepaw', LocationType.world, ItemType.unknown), | ||
|
||
# Forepaw | ||
LocationDef(400118, 'Forepaw Long Sword', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
LocationDef(400119, 'Forepaw Studded Mail', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
LocationDef(400120, 'Forepaw Small Shield', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
LocationDef(400121, 'Forepaw Red Potion', 'Forepaw', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400122, 'Forepaw Wingboots', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
LocationDef(400123, 'Forepaw Key Jack', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
LocationDef(400124, 'Forepaw Key Queen', 'Forepaw', LocationType.shop, ItemType.unknown), | ||
|
||
# Trunk | ||
LocationDef(400125, 'Trunk Hidden Ointment', 'Trunk', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400126, 'Trunk Hidden Red Potion', 'Trunk', LocationType.hidden, ItemType.red_potion), | ||
LocationDef(400127, 'Trunk Red Potion', 'Trunk', LocationType.world, ItemType.red_potion), | ||
LocationDef(None, 'Sky Spring', 'Trunk', LocationType.spring, ItemType.unknown), | ||
|
||
# Joker Spring | ||
LocationDef(400128, 'Joker Spring Ruby Ring', 'Joker Spring', LocationType.give, ItemType.unknown), | ||
LocationDef(None, 'Joker Spring', 'Joker Spring', LocationType.spring, ItemType.unknown), | ||
|
||
# Tower of Fortress | ||
LocationDef(400129, 'Tower of Fortress Poison 1', 'Tower of Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400130, 'Tower of Fortress Poison 2', 'Tower of Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400131, 'Tower of Fortress Hidden Wingboots', 'Tower of Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400132, 'Tower of Fortress Ointment', 'Tower of Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400133, 'Tower of Fortress Boss Wingboots', 'Tower of Fortress', LocationType.boss_reward, ItemType.unknown), | ||
LocationDef(400134, 'Tower of Fortress Elixir', 'Tower of Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400135, 'Tower of Fortress Guru', 'Tower of Fortress', LocationType.give, ItemType.unknown), | ||
LocationDef(None, 'Tower of Fortress Spring', 'Tower of Fortress', LocationType.spring, ItemType.unknown), | ||
|
||
# Path to Mascon | ||
LocationDef(400136, 'Path to Mascon Hidden Wingboots', 'Path to Mascon', LocationType.hidden, ItemType.unknown), | ||
|
||
# Tower of Red Potion | ||
LocationDef(400137, 'Tower of Red Potion', 'Tower of Red Potion', LocationType.world, ItemType.red_potion), | ||
|
||
# Mascon | ||
LocationDef(400138, 'Mascon Large Shield', 'Mascon', LocationType.shop, ItemType.unknown), | ||
LocationDef(400139, 'Mascon Thunder', 'Mascon', LocationType.shop, ItemType.unknown), | ||
LocationDef(400140, 'Mascon Mattock', 'Mascon', LocationType.shop, ItemType.unknown), | ||
LocationDef(400141, 'Mascon Red Potion', 'Mascon', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400142, 'Mascon Key Jack', 'Mascon', LocationType.shop, ItemType.unknown), | ||
LocationDef(400143, 'Mascon Key Queen', 'Mascon', LocationType.shop, ItemType.unknown), | ||
|
||
# Path to Victim | ||
LocationDef(400144, 'Misty Shop Death', 'Path to Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400145, 'Misty Shop Hourglass', 'Path to Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400146, 'Misty Shop Elixir', 'Path to Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400147, 'Misty Shop Red Potion', 'Path to Victim', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400148, 'Misty Doctor Office', 'Path to Victim', LocationType.hidden, ItemType.unknown), | ||
|
||
# Tower of Suffer | ||
LocationDef(400149, 'Tower of Suffer Hidden Wingboots', 'Tower of Suffer', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400150, 'Tower of Suffer Hidden Hourglass', 'Tower of Suffer', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400151, 'Tower of Suffer Pendant', 'Tower of Suffer', LocationType.boss_reward, ItemType.unknown), | ||
|
||
# Victim | ||
LocationDef(400152, 'Victim Full Plate', 'Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400153, 'Victim Mattock', 'Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400154, 'Victim Red Potion', 'Victim', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400155, 'Victim Key King', 'Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400156, 'Victim Key Queen', 'Victim', LocationType.shop, ItemType.unknown), | ||
LocationDef(400157, 'Victim Tavern', 'Mist', LocationType.give, ItemType.unknown), | ||
|
||
# Mist | ||
LocationDef(400158, 'Mist Hidden Poison 1', 'Mist', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400159, 'Mist Hidden Poison 2', 'Mist', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400160, 'Mist Hidden Wingboots', 'Mist', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400161, 'Misty Magic Hall', 'Mist', LocationType.give, ItemType.unknown), | ||
LocationDef(400162, 'Misty House', 'Mist', LocationType.give, ItemType.unknown), | ||
|
||
# Useless Tower | ||
LocationDef(400163, 'Useless Tower', 'Useless Tower', LocationType.hidden, ItemType.unknown), | ||
|
||
# Tower of Mist | ||
LocationDef(400164, 'Tower of Mist Hidden Ointment', 'Tower of Mist', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400165, 'Tower of Mist Elixir', 'Tower of Mist', LocationType.world, ItemType.unknown), | ||
LocationDef(400166, 'Tower of Mist Black Onyx', 'Tower of Mist', LocationType.boss_reward, ItemType.unknown), | ||
|
||
# Path to Conflate | ||
LocationDef(400167, 'Path to Conflate Hidden Ointment', 'Path to Conflate', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400168, 'Path to Conflate Poison', 'Path to Conflate', LocationType.hidden, ItemType.unknown), | ||
|
||
# Helm Branch | ||
LocationDef(400169, 'Helm Branch Hidden Glove', 'Helm Branch', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400170, 'Helm Branch Battle Helmet', 'Helm Branch', LocationType.boss_reward, ItemType.unknown), | ||
|
||
# Conflate | ||
LocationDef(400171, 'Conflate Giant Blade', 'Conflate', LocationType.shop, ItemType.unknown), | ||
LocationDef(400172, 'Conflate Magic Shield', 'Conflate', LocationType.shop, ItemType.unknown), | ||
LocationDef(400173, 'Conflate Wingboots', 'Conflate', LocationType.shop, ItemType.unknown), | ||
LocationDef(400174, 'Conflate Red Potion', 'Conflate', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400175, 'Conflate Guru', 'Conflate', LocationType.give, ItemType.unknown), | ||
|
||
# Branches | ||
LocationDef(400176, 'Branches Hidden Ointment', 'Branches', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400177, 'Branches Poison', 'Branches', LocationType.world, ItemType.unknown), | ||
LocationDef(400178, 'Branches Hidden Mattock', 'Branches', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400179, 'Branches Hidden Hourglass', 'Branches', LocationType.hidden, ItemType.unknown), | ||
|
||
# Path to Daybreak | ||
LocationDef(400180, 'Path to Daybreak Hidden Wingboots 1', 'Path to Daybreak', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400181, 'Path to Daybreak Magical Rod', 'Path to Daybreak', LocationType.world, ItemType.unknown), | ||
LocationDef(400182, 'Path to Daybreak Hidden Wingboots 2', 'Path to Daybreak', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400183, 'Path to Daybreak Poison', 'Path to Daybreak', LocationType.world, ItemType.unknown), | ||
LocationDef(400184, 'Path to Daybreak Glove', 'Path to Daybreak', LocationType.world, ItemType.unknown), | ||
LocationDef(400185, 'Path to Daybreak Battle Suit', 'Path to Daybreak', LocationType.boss_reward, ItemType.unknown), | ||
|
||
# Daybreak | ||
LocationDef(400186, 'Daybreak Tilte', 'Daybreak', LocationType.shop, ItemType.unknown), | ||
LocationDef(400187, 'Daybreak Giant Blade', 'Daybreak', LocationType.shop, ItemType.unknown), | ||
LocationDef(400188, 'Daybreak Red Potion', 'Daybreak', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400189, 'Daybreak Key King', 'Daybreak', LocationType.shop, ItemType.unknown), | ||
LocationDef(400190, 'Daybreak Key Queen', 'Daybreak', LocationType.shop, ItemType.unknown), | ||
|
||
# Dartmoor Castle | ||
LocationDef(400191, 'Dartmoor Castle Hidden Hourglass', 'Dartmoor Castle', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400192, 'Dartmoor Castle Hidden Red Potion', 'Dartmoor Castle', LocationType.hidden, ItemType.red_potion), | ||
|
||
# Dartmoor | ||
LocationDef(400193, 'Dartmoor Giant Blade', 'Dartmoor', LocationType.shop, ItemType.unknown), | ||
LocationDef(400194, 'Dartmoor Red Potion', 'Dartmoor', LocationType.shop, ItemType.red_potion), | ||
LocationDef(400195, 'Dartmoor Key King', 'Dartmoor', LocationType.shop, ItemType.unknown), | ||
|
||
# Fraternal Castle | ||
LocationDef(400196, 'Fraternal Castle Hidden Ointment', 'Fraternal Castle', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400197, 'Fraternal Castle Shop Hidden Ointment', 'Fraternal Castle', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400198, 'Fraternal Castle Poison 1', 'Fraternal Castle', LocationType.world, ItemType.unknown), | ||
LocationDef(400199, 'Fraternal Castle Poison 2', 'Fraternal Castle', LocationType.world, ItemType.unknown), | ||
LocationDef(400200, 'Fraternal Castle Poison 3', 'Fraternal Castle', LocationType.world, ItemType.unknown), | ||
# LocationDef(400201, 'Fraternal Castle Red Potion', 'Fraternal Castle', LocationType.world, ItemType.red_potion), # This location is inaccessible. Keeping commented for context. | ||
LocationDef(400202, 'Fraternal Castle Hidden Hourglass', 'Fraternal Castle', LocationType.hidden, ItemType.unknown), | ||
LocationDef(400203, 'Fraternal Castle Dragon Slayer', 'Fraternal Castle', LocationType.boss_reward, ItemType.unknown), | ||
LocationDef(400204, 'Fraternal Castle Guru', 'Fraternal Castle', LocationType.give, ItemType.unknown), | ||
|
||
# Evil Fortress | ||
LocationDef(400205, 'Evil Fortress Ointment', 'Evil Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400206, 'Evil Fortress Poison 1', 'Evil Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400207, 'Evil Fortress Glove', 'Evil Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400208, 'Evil Fortress Poison 2', 'Evil Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400209, 'Evil Fortress Poison 3', 'Evil Fortress', LocationType.world, ItemType.unknown), | ||
LocationDef(400210, 'Evil Fortress Hidden Glove', 'Evil Fortress', LocationType.hidden, ItemType.unknown), | ||
LocationDef(None, 'Evil One', 'Evil Fortress', LocationType.boss, ItemType.unknown), | ||
] |
Oops, something went wrong.