diff --git a/soh/soh/Enhancements/randomizer/context.cpp b/soh/soh/Enhancements/randomizer/context.cpp index 60e3e5487..79954ca1d 100644 --- a/soh/soh/Enhancements/randomizer/context.cpp +++ b/soh/soh/Enhancements/randomizer/context.cpp @@ -770,6 +770,12 @@ void Context::ParseArchipelagoItemsLocations(const std::vectorConnectUpdate(false, 1, true, tags); } +std::vector archipelagoIceTrapModels = { + RG_MIRROR_SHIELD, + RG_BOOMERANG, + RG_LENS_OF_TRUTH, + RG_MEGATON_HAMMER, + RG_IRON_BOOTS, + RG_HOVER_BOOTS, + RG_STONE_OF_AGONY, + RG_DINS_FIRE, + RG_FARORES_WIND, + RG_NAYRUS_LOVE, + RG_FIRE_ARROWS, + RG_ICE_ARROWS, + RG_LIGHT_ARROWS, + RG_DOUBLE_DEFENSE, + RG_CLAIM_CHECK, + RG_PROGRESSIVE_HOOKSHOT, + RG_PROGRESSIVE_STRENGTH, + RG_PROGRESSIVE_BOMB_BAG, + RG_PROGRESSIVE_BOW, + RG_PROGRESSIVE_SLINGSHOT, + RG_PROGRESSIVE_WALLET, + RG_PROGRESSIVE_SCALE, + RG_PROGRESSIVE_MAGIC_METER, +}; + +RandomizerGet ArchipelagoClient::GetIceTrapItem() { + return RandomElement(archipelagoIceTrapModels); +} + extern "C" void Archipelago_InitSaveFile() { gSaveContext.ship.quest.data.archipelago.isArchipelago = 1; diff --git a/soh/soh/Network/Archipelago/Archipelago.h b/soh/soh/Network/Archipelago/Archipelago.h index 4a0d486fc..81ba4e232 100644 --- a/soh/soh/Network/Archipelago/Archipelago.h +++ b/soh/soh/Network/Archipelago/Archipelago.h @@ -47,6 +47,7 @@ class ArchipelagoClient { void OnItemGiven(uint32_t rc, GetItemEntry gi, uint8_t isGiSkipped); void SendDeathLink(); void SetDeathLinkTag(); + RandomizerGet GetIceTrapItem(); const nlohmann::json GetSlotData(); const std::vector& GetScoutedItems();