AP ice trap models and tricknames

This commit is contained in:
aMannus
2025-10-17 11:19:35 +02:00
parent 786f0fec4c
commit c09ea6b76f
3 changed files with 37 additions and 0 deletions

View File

@@ -770,6 +770,12 @@ void Context::ParseArchipelagoItemsLocations(const std::vector<ArchipelagoClient
SPDLOG_TRACE("Populated item {} at location {}", ap_item.itemName, ap_item.locationName);
const RandomizerGet item = StaticData::itemNameToEnum[ap_item.itemName];
itemLocationTable[rc].SetPlacedItem(item);
if (item == RG_ICE_TRAP) {
RandomizerGet iceTrapItem = ArchipelagoClient::GetInstance().GetIceTrapItem();
overrides[rc] = ItemOverride(rc, iceTrapItem);
overrides[rc].SetTrickName(Text(GetIceTrapName(iceTrapItem)));
}
} else {
// Other player item
// If progressive or trap bit flag is set, make item progressive.

View File

@@ -591,6 +591,36 @@ void ArchipelagoClient::SetDeathLinkTag() {
apClient->ConnectUpdate(false, 1, true, tags);
}
std::vector<RandomizerGet> 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;

View File

@@ -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<ApItem>& GetScoutedItems();