Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inscryption: Implement new game #3621

Merged
merged 63 commits into from
Dec 21, 2024
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
2c8dcb3
Worked locally before that so this is a lot of work . So, initial push
Glowbuzz Jul 4, 2023
b2c3077
Changes in init with better create_regions (Thanks to Phar on discord…
Glowbuzz Jul 5, 2023
0841ec8
Added tests for location rules and changed rule locations to lists in…
DrBibop Jul 5, 2023
4d07383
Fixed game var in InscryptionLocation
DrBibop Jul 5, 2023
3892e72
Fixed location access by using the same system from The Messenger
DrBibop Jul 6, 2023
898d0db
Remove unuse rules in init and add region rules. Add all the act 2 lo…
Glowbuzz Jul 8, 2023
9e97f15
Add locations rule for the left of the bridge in act 2
Glowbuzz Jul 8, 2023
8131c35
Added test for bridge requirement and added a dash to locationfor cla…
Glowbuzz Jul 8, 2023
17de593
Added more act 2 rules and removed completion rule
DrBibop Jul 10, 2023
1dfed9e
Created docs for website, added Salmon Card item, marked multiple ite…
DrBibop Jul 12, 2023
249cab3
Renamed tower bath check to "Tentacle", added monocle as requirement …
DrBibop Jul 13, 2023
9e58ea5
Added tentacle to monocle test
DrBibop Jul 13, 2023
cc722b8
Added forest burrow chest rule
DrBibop Jul 13, 2023
d242996
Switch the two clock location because the id was swapped and screwed …
Glowbuzz Jul 20, 2023
29dc8ec
Added Ancient Obol rule and adjusted docs
DrBibop Jul 21, 2023
e3f5e31
Added act 3 locations/items/rules/tests
DrBibop Jul 28, 2023
b9ec37d
Added drone & battery to trader rules
DrBibop Jul 29, 2023
6dfb26a
Merge branch 'main' into Inscryption
DrBibop Jul 29, 2023
983d67c
Fixed tutorial docs, added more act 3 rules, renamed holo pelt locations
DrBibop Aug 2, 2023
c641555
Add an option for the optional death card feature
Glowbuzz Aug 3, 2023
63c751d
Added well check and quill item, added rules and tests
DrBibop Aug 3, 2023
334cfec
Merge branch 'Inscryption' of https://github.com/Glowbuzz/Archipelago…
DrBibop Aug 3, 2023
34af384
Renamed Gems module and Gems drone
DrBibop Aug 21, 2023
c1d196f
Added slot data options
DrBibop Aug 21, 2023
699b7dd
Added rule for act 3 middle pelt
DrBibop Aug 27, 2023
4dc2c02
Added option for randomize ability and uptade the randomize deck opti…
Glowbuzz Sep 3, 2023
e8d563f
Added randomize ability in slot data
Glowbuzz Sep 4, 2023
cb8dc21
Added more requirements for mycologists boss since it's pretty much a…
DrBibop Sep 8, 2023
f9480ef
Finished the french translation of the installation guide
Glowbuzz Sep 8, 2023
4ec2651
Changed the french title in the guide
Glowbuzz Sep 8, 2023
1af9970
Added goal option and tests associated to it + fixed goal requirement…
DrBibop Sep 19, 2023
ca7674c
Added goal option to docs and removed references to the now discarded…
DrBibop Sep 22, 2023
fec9abe
Added ourobot item + renamed some goal settings
DrBibop Sep 27, 2023
a787133
Fixed locations and items for act 1 goal
DrBibop Sep 28, 2023
ef3301f
Added skip tutorial option. Cleanup and rename of some options. Added…
DrBibop Sep 30, 2023
75a94e0
Added missing rules for Extra Battery, Nano Armor and Goobert's painting
DrBibop Oct 3, 2023
f96fc3e
Added act 1 deathlink behaviour and epitaph pieces randomization opti…
DrBibop Nov 1, 2023
f4c59e9
Fixed some docs typos
DrBibop Nov 4, 2023
a4ee580
Added act 3 clock rule. Paintings 2, 3 and Goobert's painting can no …
DrBibop Dec 5, 2023
d490722
Merge branch 'main' into Inscryption
DrBibop Dec 5, 2023
62f8b0e
New options system and fixed act 1 goal option breaking
DrBibop Dec 5, 2023
f8916b8
Merge branch 'main' into Inscryption
DrBibop May 14, 2024
c849882
Added skip epilogue and painting checks balancing options. Renamed ra…
DrBibop May 16, 2024
4fd1225
Attempting type fix for python 3.8
DrBibop May 16, 2024
8d5cfbd
Attempting type fix for python 3.8 again
DrBibop May 16, 2024
9db5c98
Added starting only option for randomize deck
DrBibop May 24, 2024
2b8e04a
Merge branch 'main' into Inscryption
DrBibop Jul 5, 2024
d87eec2
Fixed arbitrary rule error
DrBibop Jul 5, 2024
3ce58ff
Import fix attempt
DrBibop Jul 5, 2024
249fd2a
Migrated to DeathLinkMixin instead of creating a custom DeathLink opt…
DrBibop Jul 10, 2024
668fff1
Added bug report page to web class, condensed pelt rules to one funct…
DrBibop Jul 11, 2024
45adf55
Added Inscryption to CODEOWNERS
DrBibop Aug 26, 2024
c2a03e8
Merge branch 'main' into Inscryption
DrBibop Aug 26, 2024
2b82841
Implemented a bunch of suggestions: Better handling of painting optio…
DrBibop Aug 27, 2024
bb4a906
Makes clover plant and squirrel head progression items if paintings a…
DrBibop Aug 27, 2024
983dfbb
filler items, start inventory from pool, '->"
Exempt-Medic Aug 29, 2024
5b9995d
Fix bleeding issue
Exempt-Medic Aug 29, 2024
5c4ff5a
Copy the list instead
Exempt-Medic Sep 3, 2024
47f9177
Merge pull request #1 from Exempt-Medic/inscryption-suggestion
DrBibop Sep 3, 2024
f39a124
Fixed bleeding using proper deep copy
DrBibop Sep 4, 2024
2002938
Remove unnecessary for loops in tests
DrBibop Sep 6, 2024
94b6a7c
Merge branch 'main' into Inscryption
NewSoupVi Dec 21, 2024
8766d6a
Add defaults to choice options
DrBibop Dec 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Currently, the following games are supported:
* Aquaria
* Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
* A Hat in Time
* Inscryption

For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/).
Downloads can be found at [Releases](https://github.com/ArchipelagoMW/Archipelago/releases), including compiled
Expand Down
158 changes: 158 additions & 0 deletions worlds/inscryption/Items.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
from BaseClasses import ItemClassification
from typing import TypedDict, Set, List

from BaseClasses import Item


base_id = 147000


class InscryptionItem(Item):
name: str = "Inscryption"


class ItemDict(TypedDict):
name: str
count: int
classification: ItemClassification


act1_items: List[ItemDict] = [
{'name': "Stinkbug Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Stunted Wolf Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Wardrobe Key",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Skink Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Ant Cards",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Caged Wolf Card",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Squirrel Totem Head",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Dagger",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Film Roll",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Ring",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Magnificus Eye",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Oil Painting's Clover Plant",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Extra Candle",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Bee Figurine",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Greater Smoke",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Angler Hook",
'count': 1,
'classification': ItemClassification.useful}
]


act2_items: List[ItemDict] = [
{'name': "Camera Replica",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Pile Of Meat",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Epitaph Piece",
'count': 9,
'classification': ItemClassification.progression},
{'name': "Epitaph Pieces",
'count': 3,
'classification': ItemClassification.progression},
{'name': "Monocle",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Bone Lord Femur",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Bone Lord Horn",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Bone Lord Holo Key",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Mycologists Holo Key",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Ancient Obol",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Great Kraken Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Drowned Soul Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Salmon Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Dock's Clover Plant",
'count': 1,
'classification': ItemClassification.useful}
]


act3_items: List[ItemDict] = [
{'name': "Extra Battery",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Nano Armor Generator",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Mrs. Bomb's Remote",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Inspectometer Battery",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Gems Module",
'count': 1,
'classification': ItemClassification.progression},
{'name': "Lonely Wizbot Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Fishbot Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Ourobot Card",
'count': 1,
'classification': ItemClassification.useful},
{'name': "Holo Pelt",
'count': 5,
'classification': ItemClassification.progression},
{'name': "Quill",
'count': 1,
'classification': ItemClassification.progression},
]

filler_items: List[ItemDict] = [
{'name': "Currency",
'count': 1,
'classification': ItemClassification.filler},
{'name': "Card Pack",
'count': 1,
'classification': ItemClassification.filler}
]
127 changes: 127 additions & 0 deletions worlds/inscryption/Locations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
from typing import Dict, List

from BaseClasses import Location

base_id = 147000


class InscryptionLocation(Location):
game: str = "Inscryption"


act1_locations = [
"Act 1 - Boss Prospector",
"Act 1 - Boss Angler",
"Act 1 - Boss Trapper",
"Act 1 - Boss Leshy",
"Act 1 - Safe",
"Act 1 - Clock Main Compartment",
"Act 1 - Clock Upper Compartment",
"Act 1 - Dagger",
"Act 1 - Wardrobe Drawer 1",
"Act 1 - Wardrobe Drawer 2",
"Act 1 - Wardrobe Drawer 3",
"Act 1 - Wardrobe Drawer 4",
"Act 1 - Magnificus Eye",
"Act 1 - Painting 1",
"Act 1 - Painting 2",
"Act 1 - Painting 3",
"Act 1 - Greater Smoke"
]

act2_locations = [
"Act 2 - Boss Leshy",
"Act 2 - Boss Magnificus",
"Act 2 - Boss Grimora",
"Act 2 - Boss P03",
"Act 2 - Battle Prospector",
"Act 2 - Battle Angler",
"Act 2 - Battle Trapper",
"Act 2 - Battle Sawyer",
"Act 2 - Battle Royal",
"Act 2 - Battle Kaycee",
"Act 2 - Battle Goobert",
"Act 2 - Battle Pike Mage",
"Act 2 - Battle Lonely Wizard",
"Act 2 - Battle Inspector",
"Act 2 - Battle Melter",
"Act 2 - Battle Dredger",
"Act 2 - Dock Chest",
"Act 2 - Forest Cabin Chest",
"Act 2 - Forest Meadow Chest",
"Act 2 - Cabin Wardrobe Drawer",
"Act 2 - Cabin Safe",
"Act 2 - Crypt Casket 1",
"Act 2 - Crypt Casket 2",
"Act 2 - Crypt Well",
"Act 2 - Tower Chest 1",
"Act 2 - Tower Chest 2",
"Act 2 - Tower Chest 3",
"Act 2 - Tentacle",
"Act 2 - Factory Trash Can",
"Act 2 - Factory Drawer 1",
"Act 2 - Factory Drawer 2",
"Act 2 - Factory Chest 1",
"Act 2 - Factory Chest 2",
"Act 2 - Factory Chest 3",
"Act 2 - Factory Chest 4",
"Act 2 - Ancient Obol",
"Act 2 - Bone Lord Femur",
"Act 2 - Bone Lord Horn",
"Act 2 - Bone Lord Holo Key",
"Act 2 - Mycologists Holo Key",
"Act 2 - Camera Replica",
"Act 2 - Clover",
"Act 2 - Monocle",
"Act 2 - Epitaph Piece 1",
"Act 2 - Epitaph Piece 2",
"Act 2 - Epitaph Piece 3",
"Act 2 - Epitaph Piece 4",
"Act 2 - Epitaph Piece 5",
"Act 2 - Epitaph Piece 6",
"Act 2 - Epitaph Piece 7",
"Act 2 - Epitaph Piece 8",
"Act 2 - Epitaph Piece 9"
]

act3_locations = [
"Act 3 - Boss Photographer",
"Act 3 - Boss Archivist",
"Act 3 - Boss Unfinished",
"Act 3 - Boss G0lly",
"Act 3 - Boss Mycologists",
"Act 3 - Bone Lord Room",
"Act 3 - Shop Holo Pelt",
"Act 3 - Middle Holo Pelt",
"Act 3 - Forest Holo Pelt",
"Act 3 - Crypt Holo Pelt",
"Act 3 - Tower Holo Pelt",
"Act 3 - Trader 1",
"Act 3 - Trader 2",
"Act 3 - Trader 3",
"Act 3 - Trader 4",
"Act 3 - Trader 5",
"Act 3 - Drawer 1",
"Act 3 - Drawer 2",
"Act 3 - Clock",
"Act 3 - Extra Battery",
"Act 3 - Nano Armor Generator",
"Act 3 - Chest",
"Act 3 - Goobert's Painting",
"Act 3 - Luke's File Entry 1",
"Act 3 - Luke's File Entry 2",
"Act 3 - Luke's File Entry 3",
"Act 3 - Luke's File Entry 4",
"Act 3 - Inspectometer Battery",
"Act 3 - Gems Drone",
"Act 3 - The Great Transcendence",
"Act 3 - Well"
]

regions_to_locations: Dict[str, List[str]] = {
"Menu": [],
"Act 1": act1_locations,
"Act 2": act2_locations,
"Act 3": act3_locations,
"Epilogue": []
}
Loading