mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-08 12:16:17 -04:00
implement agitha rewards
This commit is contained in:
@@ -120,7 +120,10 @@ public:
|
||||
BOOL chkAction(actionFunc action) { return action == mAction; }
|
||||
|
||||
static eventFunc mEvtSeqList[1];
|
||||
|
||||
#if TARGET_PC
|
||||
// Keep track of last given bug for rando
|
||||
static u8 mGivenInsectId;
|
||||
#endif
|
||||
private:
|
||||
/* 0xB48 */ Z2Creature mSound;
|
||||
/* 0xBD8 */ J3DModel* mpUmbrellaModel;
|
||||
|
||||
@@ -11,6 +11,13 @@
|
||||
#include "d/d_msg_object.h"
|
||||
#include <cstring>
|
||||
|
||||
|
||||
|
||||
#if TARGET_PC
|
||||
#include "dusk/randomizer/game/randomizer_context.hpp"
|
||||
#include "dusk/randomizer/game/verify_item_functions.h"
|
||||
#endif
|
||||
|
||||
enum Ins_RES_File_ID {
|
||||
/* BCK */
|
||||
/* 0x06 */ BCK_INS_F_HAPPY = 0x6,
|
||||
@@ -292,6 +299,10 @@ daNpcIns_c::eventFunc daNpcIns_c::mEvtSeqList[1] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
#if TARGET_PC
|
||||
u8 daNpcIns_c::mGivenInsectId = 0xFF;
|
||||
#endif
|
||||
|
||||
static insect_param_data const l_insectParams[24] = {
|
||||
{0x0191, 0x709, 0, 0},
|
||||
{0x0192, 0x709, 0, 0},
|
||||
@@ -1259,6 +1270,9 @@ int daNpcIns_c::waitPresent(void* param_1) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
player->changeOriginalDemo();
|
||||
player->changeDemoMode(0x25, 2, type, 0);
|
||||
#if TARGET_PC
|
||||
mGivenInsectId = type;
|
||||
#endif
|
||||
} else {
|
||||
mInsectMsgNo = 0x719;
|
||||
}
|
||||
@@ -1487,6 +1501,14 @@ int daNpcIns_c::talk(void* param_1) {
|
||||
OS_REPORT("会話終了時 イベントID=%d アイテムNo=%d\n", eventID, itemNo);
|
||||
|
||||
if (eventID == 1) {
|
||||
#if TARGET_PC
|
||||
// In rando, get the randomzied bug reward
|
||||
if (randomizer_IsActive()) {
|
||||
itemNo = randomizer_GetContext().mBugRewardOverrides[mGivenInsectId];
|
||||
itemNo = static_cast<int>(verifyProgressiveItem(itemNo));
|
||||
mGivenInsectId = 0xFF;
|
||||
}
|
||||
#endif
|
||||
mItemID = fopAcM_createItemForPresentDemo(¤t.pos, itemNo, 0, -1, -1, NULL, NULL);
|
||||
|
||||
if (mItemID != fpcM_ERROR_PROCESS_ID_e) {
|
||||
|
||||
@@ -71,6 +71,13 @@ namespace dusk {
|
||||
randoData.mFreestandingItemOverrides[stage][flag] = itemId;
|
||||
}
|
||||
|
||||
// Bug Rewards
|
||||
if (location->HasCategories("Bug Reward")) {
|
||||
u8 bugItemId = metaData[0]["Bug Item Id"].as<u8>();
|
||||
u8 itemId = location->GetCurrentItem()->GetID();
|
||||
randoData.mBugRewardOverrides[bugItemId] = itemId;
|
||||
}
|
||||
|
||||
// Items that we lookup just by calling their location name
|
||||
if (location->HasCategories("Location Name Lookup")) {
|
||||
const auto& locationName = metaData.as<std::string>();
|
||||
|
||||
@@ -61,6 +61,9 @@ std::optional<std::string> RandomizerContext::WriteToFile() {
|
||||
}
|
||||
}
|
||||
|
||||
const std::unordered_map<u16, u16> u16BugRewardOverrides(this->mBugRewardOverrides.begin(), this->mBugRewardOverrides.end());
|
||||
out["mBugRewardOverrides"] = u16BugRewardOverrides;
|
||||
|
||||
out["mItemLocations"] = this->mItemLocations;
|
||||
|
||||
out["mStartHour"] = static_cast<u16>(this->mStartHour);
|
||||
@@ -137,7 +140,14 @@ std::optional<std::string> RandomizerContext::LoadFromHash(const std::string& ha
|
||||
}
|
||||
}
|
||||
|
||||
// Items For Present Demos
|
||||
// Bug Rewards
|
||||
for (const auto& bugNode : in["mBugRewardOverrides"]) {
|
||||
u8 bugItemId = bugNode.first.as<u8>();
|
||||
u8 itemId = bugNode.second.as<u8>();
|
||||
this->mBugRewardOverrides[bugItemId] = itemId;
|
||||
}
|
||||
|
||||
// Items we call by location name
|
||||
for (const auto& locationNode : in["mItemLocations"]) {
|
||||
const auto& locationName = locationNode.first.as<std::string>();
|
||||
int itemId = locationNode.second.as<int>();
|
||||
|
||||
@@ -27,6 +27,7 @@ public:
|
||||
std::unordered_map<std::string, std::unordered_map<u8, u8>> mTreasureChestOverrides{};
|
||||
std::unordered_map<std::string, std::unordered_map<u8, u8>> mPoeOverrides{};
|
||||
std::unordered_map<u8, std::unordered_map<u8, u8>> mFreestandingItemOverrides{};
|
||||
std::unordered_map<u8, u8> mBugRewardOverrides{};
|
||||
std::unordered_map<std::string, int> mItemLocations{};
|
||||
u8 mStartHour{0};
|
||||
u8 mMapBits{};
|
||||
|
||||
@@ -2170,15 +2170,15 @@
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Ant Reward
|
||||
Original Item: Purple Rupee
|
||||
- Name: Agitha Male Beetle Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC0
|
||||
|
||||
- Name: Agitha Female Beetle Reward
|
||||
Original Item: Purple Rupee
|
||||
@@ -2188,127 +2188,7 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Butterfly Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Dayfly Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Dragonfly Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Grasshopper Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Ladybug Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Mantis Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Phasmid Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Pill Bug Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Snail Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Female Stag Beetle Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Male Ant Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Male Beetle Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC1
|
||||
|
||||
- Name: Agitha Male Butterfly Reward
|
||||
Original Item: Orange Rupee
|
||||
@@ -2318,9 +2198,9 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC2
|
||||
|
||||
- Name: Agitha Male Dayfly Reward
|
||||
- Name: Agitha Female Butterfly Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
@@ -2328,9 +2208,9 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC3
|
||||
|
||||
- Name: Agitha Male Dragonfly Reward
|
||||
- Name: Agitha Male Stag Beetle Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
@@ -2338,7 +2218,17 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC4
|
||||
|
||||
- Name: Agitha Female Stag Beetle Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xC5
|
||||
|
||||
- Name: Agitha Male Grasshopper Reward
|
||||
Original Item: Progressive Wallet
|
||||
@@ -2348,27 +2238,17 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC6
|
||||
|
||||
- Name: Agitha Male Ladybug Reward
|
||||
Original Item: Purple Rupee
|
||||
- Name: Agitha Female Grasshopper Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
|
||||
- Name: Agitha Male Mantis Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC7
|
||||
|
||||
- Name: Agitha Male Phasmid Reward
|
||||
Original Item: Progressive Wallet
|
||||
@@ -2378,7 +2258,17 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xC8
|
||||
|
||||
- Name: Agitha Female Phasmid Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xC9
|
||||
|
||||
- Name: Agitha Male Pill Bug Reward
|
||||
Original Item: Orange Rupee
|
||||
@@ -2388,7 +2278,57 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xCA
|
||||
|
||||
- Name: Agitha Female Pill Bug Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xCB
|
||||
|
||||
- Name: Agitha Male Mantis Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xCC
|
||||
|
||||
- Name: Agitha Female Mantis Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xCD
|
||||
|
||||
- Name: Agitha Male Ladybug Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xCE
|
||||
|
||||
- Name: Agitha Female Ladybug Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xCF
|
||||
|
||||
- Name: Agitha Male Snail Reward
|
||||
Original Item: Purple Rupee
|
||||
@@ -2398,15 +2338,77 @@
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- None
|
||||
- Bug Item Id: 0xD0
|
||||
|
||||
- Name: Agitha Male Stag Beetle Reward
|
||||
- Name: Agitha Female Snail Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD1
|
||||
|
||||
- Name: Agitha Male Dragonfly Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD2
|
||||
|
||||
- Name: Agitha Female Dragonfly Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD3
|
||||
|
||||
- Name: Agitha Male Ant Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD4
|
||||
|
||||
- Name: Agitha Female Ant Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD5
|
||||
|
||||
- Name: Agitha Male Dayfly Reward
|
||||
Original Item: Purple Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD6
|
||||
|
||||
- Name: Agitha Female Dayfly Reward
|
||||
Original Item: Orange Rupee
|
||||
Categories:
|
||||
- Overworld
|
||||
- Npc
|
||||
- Castle Town
|
||||
- Bug Reward
|
||||
Metadata:
|
||||
- Bug Item Id: 0xD7
|
||||
|
||||
# HD Only Location
|
||||
# - Name: Agitha 12 Golden Bugs Reward
|
||||
|
||||
Reference in New Issue
Block a user