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

Minecraft updates #13

Merged
merged 77 commits into from
May 15, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c59267e
Minecraft locations, items, and generation without logic
Apr 12, 2021
ef2a067
added id lookup for minecraft
Apr 12, 2021
96cf422
typing import fix in minecraft/Items.py
Apr 12, 2021
6b21400
fix 2
Apr 12, 2021
1fe67c1
implementing Minecraft options and hard/postgame advancement exclusion
Apr 13, 2021
e209053
first logic pass (75/80)
Apr 13, 2021
5830182
logic pass 2 and proper completion conditions
Apr 13, 2021
2e149c4
added insane difficulty pool, modified method of excluding item pools…
Apr 13, 2021
8879c27
bump network_data_package version
Apr 13, 2021
959ec03
minecraft testing framework
espeon65536 Apr 13, 2021
f0bdc3e
switch Ancient Debris to Netherite Scrap to avoid advancement trigger…
espeon65536 Apr 13, 2021
332c6ea
Testing now functions, split tests up by advancement pane, added some…
espeon65536 Apr 14, 2021
1f7092e
Newer testing framework: every advancement gets its own function, for…
espeon65536 Apr 14, 2021
36171dc
fixed logic for The End... Again...
espeon65536 Apr 14, 2021
08c6a6d
changed option names to "include_hard_advancements" etc.
espeon65536 Apr 14, 2021
576f5e0
village/pillager-related advancements now require can_adventure: weap…
espeon65536 Apr 14, 2021
2799493
a few minecraft tests
espeon65536 Apr 14, 2021
7b702a4
rename "Flint & Steel" to "Flint and Steel" for parity with in-game name
espeon65536 Apr 14, 2021
6bcd7f2
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 Apr 15, 2021
e9ab15b
additional MC tests
espeon65536 Apr 15, 2021
e4fcb34
more tests, mostly nether-related tests
espeon65536 Apr 15, 2021
303ecc3
more tests, removed anvil path for Two Birds One Arrow
espeon65536 Apr 17, 2021
de97a5f
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 Apr 17, 2021
d351564
include Minecraft slot data, and a world seed for each Minecraft play…
espeon65536 Apr 17, 2021
51e407a
Added new items: ender pearls, lapis, porkchops
espeon65536 Apr 18, 2021
b8b63d4
All remaining Minecraft tests
espeon65536 Apr 18, 2021
c55f810
formatting of Minecraft tests and logic for better readability
espeon65536 Apr 18, 2021
d440b03
require Wither kill for Monsters Hunted
espeon65536 Apr 18, 2021
f1da6e6
properly removed 8 Emeralds item from item pool
espeon65536 Apr 18, 2021
d77eb51
enchanting required for wither; fishing rod required for water breath…
espeon65536 Apr 19, 2021
60bd580
Added 12 new advancements (ported from old achievement system)
espeon65536 Apr 19, 2021
c23053a
renamed "On a Rail" for consistency with modern advancements
espeon65536 Apr 19, 2021
4c6c996
tests for the new advancements
espeon65536 Apr 19, 2021
979cbc3
moved slot_data generation for minecraft into worlds/minecraft/__init…
espeon65536 Apr 20, 2021
ac05fe0
output minecraft options in the spoiler log
espeon65536 Apr 20, 2021
3f21d5e
modified advancement goal values for new advancements
espeon65536 Apr 23, 2021
939a887
make non-native Minecraft items appear as Shovel in ALttP, and unknow…
espeon65536 Apr 24, 2021
d9b86ec
fixed glowstone block logic for Not Quite Nine Lives
espeon65536 Apr 25, 2021
9d9706e
setup for shuffling MC structures: building ER world and shuffling re…
espeon65536 Apr 25, 2021
22395b7
ensured Nether Fortresses can't be placed in the End
espeon65536 Apr 25, 2021
6cdae20
finished logic for structure randomization
espeon65536 Apr 25, 2021
7964ac5
fixed nonnative items always showing up as Hammers in ALttP shops
espeon65536 Apr 25, 2021
9288245
output minecraft structure info in the spoiler
espeon65536 Apr 25, 2021
d7a8c99
generate .apmc file for communication with MC client
espeon65536 Apr 26, 2021
e6a7797
fixed structure rando always using the same seed
espeon65536 Apr 26, 2021
c65fe90
move stuff to worlds/minecraft/Regions.py
espeon65536 Apr 26, 2021
b5fb0dc
make output apmc file have consistent name with other files
espeon65536 Apr 26, 2021
d4dc71e
added minecraft bottle macro; fixed tests imports
espeon65536 Apr 26, 2021
d601e23
generalizing MC region generation
espeon65536 Apr 28, 2021
984c66c
restructured structure shuffling in preparation for structure plando
espeon65536 Apr 29, 2021
7df81bc
only output structure rando info in spoiler if they are shuffled
espeon65536 Apr 29, 2021
857d7ec
Force structure rando to always be off, for the stable release
espeon65536 Apr 29, 2021
6406460
added Minecraft options to player settings
espeon65536 Apr 29, 2021
a6aaabd
formally added combat_difficulty as an option
espeon65536 Apr 29, 2021
734cd80
Added Ender Dragon into playthrough, cleaned up goal map
espeon65536 Apr 29, 2021
fcc67cb
Added new difficulties: Easy, Normal, Hard combat
espeon65536 Apr 29, 2021
3808357
moved .apmc generation time to prevent outputs on failed generation
espeon65536 Apr 29, 2021
4df7edf
updated tests for new combat logic
espeon65536 Apr 29, 2021
64610b9
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 Apr 29, 2021
5ed09ac
Fixed bug causing generation to fail; removed Nether Fortress event s…
espeon65536 Apr 29, 2021
0250133
moved all MC-specific functions into gen_minecraft
espeon65536 Apr 30, 2021
436ae77
renamed "logic_version" to "client_version"
espeon65536 Apr 30, 2021
79ca072
bug fixes
espeon65536 May 1, 2021
e488eb2
moved link_minecraft_regions into minecraft init, left create_regions…
espeon65536 May 1, 2021
d7f9146
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 2, 2021
62233f3
added seed_name, player_name, client_version to apmc file
espeon65536 May 4, 2021
beca1fc
reenabled structure shuffle
espeon65536 May 4, 2021
4b8425b
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 5, 2021
d955a27
added entrance tests for minecraft
espeon65536 May 5, 2021
8871a2a
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 10, 2021
2501774
Minecraft logic updates
espeon65536 May 13, 2021
ce0ac4d
embed all apmc info into slot_data
espeon65536 May 13, 2021
391a917
updated MC tests for logic changes
espeon65536 May 13, 2021
182c736
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 14, 2021
80251be
put apmc into zipfile
espeon65536 May 14, 2021
6c590c7
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 15, 2021
d5bfd6d
Merge branch 'main' of https://github.com/ArchipelagoMW/Archipelago i…
espeon65536 May 15, 2021
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
Prev Previous commit
Next Next commit
Added 12 new advancements (ported from old achievement system)
  • Loading branch information
espeon65536 committed Apr 19, 2021
commit 60bd580f69e9640a166be6c6e3ac32868848ffee
12 changes: 9 additions & 3 deletions worlds/minecraft/Items.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ def __init__(self, name: str, progression: bool, code: int, player: int):
"50 XP": ItemData(45028, False),
"3 Ender Pearls": ItemData(45029, True),
"4 Lapis Lazuli": ItemData(45030, False),
"16 Porkchops": ItemData(45031, False)
"16 Porkchops": ItemData(45031, False),
"8 Gold Ore": ItemData(45032, False),
"Rotten Flesh": ItemData(45033, False),
"Single Arrow": ItemData(45034, False)
}

# If not listed here then has frequency 1
Expand All @@ -57,10 +60,13 @@ def __init__(self, name: str, progression: bool, code: int, player: int):
"16 Iron Ore": 4,
"500 XP": 4, # 2 after exclusions
"100 XP": 10, # 4 after exclusions
"50 XP": 12, # 5 after exclusions
"50 XP": 12, # 4 after exclusions
"3 Ender Pearls": 4,
"4 Lapis Lazuli": 2,
"16 Porkchops": 4
"16 Porkchops": 8,
"8 Gold Ore": 4,
"Rotten Flesh": 4,
"Single Arrow": 0
}

lookup_id_to_name: typing.Dict[int, str] = {data.code: item_name for item_name, data in item_table.items()}
17 changes: 15 additions & 2 deletions worlds/minecraft/Locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,19 @@ def __init__(self, player: int, name: str, address: int, parent):
"Cover Me in Debris": 42076,
"The End?": 42077,
"The Parrots and the Bats": 42078,
"A Complete Catalogue": 42079
"A Complete Catalogue": 42079,
"Getting Wood": 42080,
"Time to Mine!": 42081,
"Hot Topic": 42082,
"Bake Bread": 42083,
"The Lie": 42084,
"On A Rail": 42085,
"Time to Strike!": 42086,
"Cow Tipper": 42087,
"When Pigs Fly": 42088,
"Overkill": 42089,
"Librarian": 42090,
"Overpowered": 42091
}

exclusion_table = {
Expand All @@ -99,7 +111,8 @@ def __init__(self, player: int, name: str, address: int, parent):
"A Balanced Diet": "100 XP",
"Uneasy Alliance": "100 XP",
"Cover Me in Debris": "100 XP",
"A Complete Catalogue": "50 XP"
"A Complete Catalogue": "50 XP",
"Overpowered": "50 XP"
},
"insane": {
"How Did We Get Here?": "500 XP",
Expand Down
13 changes: 13 additions & 0 deletions worlds/minecraft/Rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,16 @@ def reachable_locations(state):
set_rule(world.get_location("The End?", player), lambda state: state.enter_end(player))
set_rule(world.get_location("The Parrots and the Bats", player), lambda state: True)
set_rule(world.get_location("A Complete Catalogue", player), lambda state: state.can_adventure(player)) # kill fish for raw
set_rule(world.get_location("Getting Wood", player), lambda state: True)
set_rule(world.get_location("Time to Mine!", player), lambda state: True)
set_rule(world.get_location("Hot Topic", player), lambda state: state.has("Ingot Crafting", player))
set_rule(world.get_location("Bake Bread", player), lambda state: True)
set_rule(world.get_location("The Lie", player), lambda state: state.has_iron_ingots(player) and state.has("Bucket", player))
set_rule(world.get_location("On A Rail", player), lambda state: state.has_iron_ingots(player))
set_rule(world.get_location("Time to Strike!", player), lambda state: True)
set_rule(world.get_location("Cow Tipper", player), lambda state: True)
set_rule(world.get_location("When Pigs Fly", player), lambda state: state.enter_fortress(player) and state.has("Fishing Rod", player) and state.can_adventure(player)) # saddles in fortress chests
set_rule(world.get_location("Overkill", player), lambda state: state.can_brew_potions(player) and state.has("Progressive Weapons", player)) # strength 2, stone axe crit
set_rule(world.get_location("Librarian", player), lambda state: state.has("Enchanting", player))
set_rule(world.get_location("Overpowered", player), lambda state: state.has_iron_ingots(player) and state.has("Resource Blocks", player) and
(state.enter_nether(player) or state.has("Progressive Tools", player, 2)))