AP ice trap models and tricknames
This commit is contained in:
@@ -770,6 +770,12 @@ void Context::ParseArchipelagoItemsLocations(const std::vector<ArchipelagoClient
|
|||||||
SPDLOG_TRACE("Populated item {} at location {}", ap_item.itemName, ap_item.locationName);
|
SPDLOG_TRACE("Populated item {} at location {}", ap_item.itemName, ap_item.locationName);
|
||||||
const RandomizerGet item = StaticData::itemNameToEnum[ap_item.itemName];
|
const RandomizerGet item = StaticData::itemNameToEnum[ap_item.itemName];
|
||||||
itemLocationTable[rc].SetPlacedItem(item);
|
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 {
|
} else {
|
||||||
// Other player item
|
// Other player item
|
||||||
// If progressive or trap bit flag is set, make item progressive.
|
// If progressive or trap bit flag is set, make item progressive.
|
||||||
|
|||||||
@@ -591,6 +591,36 @@ void ArchipelagoClient::SetDeathLinkTag() {
|
|||||||
apClient->ConnectUpdate(false, 1, true, tags);
|
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() {
|
extern "C" void Archipelago_InitSaveFile() {
|
||||||
gSaveContext.ship.quest.data.archipelago.isArchipelago = 1;
|
gSaveContext.ship.quest.data.archipelago.isArchipelago = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class ArchipelagoClient {
|
|||||||
void OnItemGiven(uint32_t rc, GetItemEntry gi, uint8_t isGiSkipped);
|
void OnItemGiven(uint32_t rc, GetItemEntry gi, uint8_t isGiSkipped);
|
||||||
void SendDeathLink();
|
void SendDeathLink();
|
||||||
void SetDeathLinkTag();
|
void SetDeathLinkTag();
|
||||||
|
RandomizerGet GetIceTrapItem();
|
||||||
const nlohmann::json GetSlotData();
|
const nlohmann::json GetSlotData();
|
||||||
const std::vector<ApItem>& GetScoutedItems();
|
const std::vector<ApItem>& GetScoutedItems();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user