diff --git a/mods/randomizer/generator/data/flow_patches.yaml b/mods/randomizer/generator/data/flow_patches.yaml index a9f94de733..9354d1e3bb 100644 --- a/mods/randomizer/generator/data/flow_patches.yaml +++ b/mods/randomizer/generator/data/flow_patches.yaml @@ -71,6 +71,13 @@ parameters: 0x00000032 next: Kakariko Malo Mart Wooden Shield Sold Out + # Patch Shad's flow to set the custom flag for receiving his item + - index: 0x946 + type: event + event: set event flag + parameters: 0x0333 + next: 0xFFFF + #3: # zel_03.bmg 4: # zel_04.bmg - Castle Town # Patch Charlo to check for 100 rupees instead of 30 diff --git a/mods/randomizer/generator/data/locations.yaml b/mods/randomizer/generator/data/locations.yaml index 97a73f7d03..95dcecd310 100644 --- a/mods/randomizer/generator/data/locations.yaml +++ b/mods/randomizer/generator/data/locations.yaml @@ -1509,6 +1509,18 @@ - Ilia Memory Reward Event Flag: 0x5E04 +- Name: Shad Dominion Rod + Original Item: Progressive Dominion Rod + Categories: + - Overworld + - Npc + - Kakariko Village + - ARC + Metadata: + Name Lookup: + - Shad Dominion Rod + Event Flag: 0x6308 + - Name: Rutelas Blessing Original Item: Zora Armor Categories: diff --git a/mods/randomizer/generator/data/world/overworld/Eldin Province.yaml b/mods/randomizer/generator/data/world/overworld/Eldin Province.yaml index ca42c4320a..f69658f166 100644 --- a/mods/randomizer/generator/data/world/overworld/Eldin Province.yaml +++ b/mods/randomizer/generator/data/world/overworld/Eldin Province.yaml @@ -168,6 +168,7 @@ - Name: Kakariko Renados Sanctuary Basement Twilight: Eldin Locations: + Shad Dominion Rod: Progressive_Sky_Book and Can_Complete_Eldin_Twilight Sanctuary Basement Twilit Insect 1: Can_Defeat_Eldin_Twilit_Insect Sanctuary Basement Twilit Insect 2: Can_Defeat_Eldin_Twilit_Insect Sanctuary Basement Twilit Insect 3: Can_Defeat_Eldin_Twilit_Insect diff --git a/mods/randomizer/src/hooks.cpp b/mods/randomizer/src/hooks.cpp index acdc5b7169..6587e81f34 100644 --- a/mods/randomizer/src/hooks.cpp +++ b/mods/randomizer/src/hooks.cpp @@ -135,7 +135,6 @@ DEFINE_HOOK(&daNpc_Bans_c::isDelete, daNpc_Bans_c__isDelete); DEFINE_HOOK(&daNpc_Fairy_c::AppearDemoCall, daNpc_Fairy_c__AppearDemoCall); -DEFINE_HOOK(&daNpcShad_c::Create, daNpcShad_c__Create); DEFINE_HOOK(&daNpcShad_c::wait_type1, daNpcShad_c__wait_type1); DEFINE_HOOK(&daNpc_Yelia_c::cutTakeWoodStatue, daNpc_Yelia_c__cutTakeWoodStatue); @@ -3366,7 +3365,6 @@ ModResult uninstall() { mods::hook::uninstall(svc_hook); - mods::hook::uninstall(svc_hook); mods::hook::uninstall(svc_hook); mods::hook::uninstall(svc_hook); diff --git a/mods/randomizer/src/tools.cpp b/mods/randomizer/src/tools.cpp index 29287bcd6b..f2feaf5674 100644 --- a/mods/randomizer/src/tools.cpp +++ b/mods/randomizer/src/tools.cpp @@ -547,6 +547,7 @@ std::string nameLookupOverride(const std::string& locationName) { {"Sacred Grove Pedestal Master Sword", ITEM_CHECK_MASTER_SWORD}, {"Sacred Grove Pedestal Shadow Crystal", ITEM_CHECK_SHADOW_CRYSTAL}, {"Sera Shop Slingshot", "shop:R_SP01:75"}, + {"Shad Dominion Rod", ITEM_CHECK_SHAD_DOMINION_ROD}, {"Skybook From Impaz", ITEM_CHECK_SKYBOOK}, {"Snowboard Racing Prize", ITEM_CHECK_SNOWBOARD_REWARD}, {"Snowpeak Ruins Dungeon Reward", ITEM_CHECK_DUNGEON_REWARD_SNOWPEAK}, diff --git a/src/dusk/mods/item_checks.cpp b/src/dusk/mods/item_checks.cpp index fb145a48df..df881e6211 100644 --- a/src/dusk/mods/item_checks.cpp +++ b/src/dusk/mods/item_checks.cpp @@ -120,6 +120,12 @@ constexpr std::array kMessageChecks{ .vanillaItem = dItemNo_HORSE_FLUTE_e, .enqueueAtDisplay = false, }, + MessageCheck{ + .group = 2, + .messageId = 6531, + .name = ITEM_CHECK_SHAD_DOMINION_ROD, + .vanillaItem = dItemNo_COPY_ROD_2_e, + } }; std::unordered_map s_modChecks;