mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
feat: fire events for loot rolls, trade windows, and duels
Add missing addon events for three gameplay systems: Loot rolls: - START_LOOT_ROLL fires on SMSG_LOOT_START_ROLL with slot and countdown - LOOT_SLOT_CLEARED fires when a loot item is removed (SMSG_LOOT_REMOVED) Trade: - TRADE_REQUEST when another player initiates a trade - TRADE_SHOW when the trade window opens - TRADE_CLOSED when trade is cancelled, declined, or completed - TRADE_ACCEPT_UPDATE when the trade partner accepts Duels: - DUEL_REQUESTED with challenger name on incoming duel challenge - DUEL_FINISHED when a duel completes or is cancelled
This commit is contained in:
parent
7105672f06
commit
3b8165cbef
1 changed files with 12 additions and 0 deletions
|
|
@ -2420,6 +2420,8 @@ void GameHandler::handlePacket(network::Packet& packet) {
|
|||
pendingLootRoll_.rollStartedAt = std::chrono::steady_clock::now();
|
||||
LOG_INFO("SMSG_LOOT_START_ROLL: item=", itemId, " (", pendingLootRoll_.itemName,
|
||||
") slot=", slot, " voteMask=0x", std::hex, (int)voteMask, std::dec);
|
||||
if (addonEventCallback_)
|
||||
addonEventCallback_("START_LOOT_ROLL", {std::to_string(slot), std::to_string(countdown)});
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -14261,6 +14263,7 @@ void GameHandler::handleDuelRequested(network::Packet& packet) {
|
|||
}
|
||||
LOG_INFO("SMSG_DUEL_REQUESTED: challenger=0x", std::hex, duelChallengerGuid_,
|
||||
" flag=0x", duelFlagGuid_, std::dec, " name=", duelChallengerName_);
|
||||
if (addonEventCallback_) addonEventCallback_("DUEL_REQUESTED", {duelChallengerName_});
|
||||
}
|
||||
|
||||
void GameHandler::handleDuelComplete(network::Packet& packet) {
|
||||
|
|
@ -14273,6 +14276,7 @@ void GameHandler::handleDuelComplete(network::Packet& packet) {
|
|||
addSystemChatMessage("The duel was cancelled.");
|
||||
}
|
||||
LOG_INFO("SMSG_DUEL_COMPLETE: started=", static_cast<int>(started));
|
||||
if (addonEventCallback_) addonEventCallback_("DUEL_FINISHED", {});
|
||||
}
|
||||
|
||||
void GameHandler::handleDuelWinner(network::Packet& packet) {
|
||||
|
|
@ -22280,6 +22284,8 @@ void GameHandler::handleLootRemoved(network::Packet& packet) {
|
|||
sfx->playLootItem();
|
||||
}
|
||||
currentLoot.items.erase(it);
|
||||
if (addonEventCallback_)
|
||||
addonEventCallback_("LOOT_SLOT_CLEARED", {std::to_string(slotIndex + 1)});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -25749,6 +25755,7 @@ void GameHandler::handleTradeStatus(network::Packet& packet) {
|
|||
}
|
||||
tradeStatus_ = TradeStatus::PendingIncoming;
|
||||
addSystemChatMessage(tradePeerName_ + " wants to trade with you.");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_REQUEST", {});
|
||||
break;
|
||||
}
|
||||
case 2: // OPEN_WINDOW
|
||||
|
|
@ -25758,22 +25765,27 @@ void GameHandler::handleTradeStatus(network::Packet& packet) {
|
|||
peerTradeGold_ = 0;
|
||||
tradeStatus_ = TradeStatus::Open;
|
||||
addSystemChatMessage("Trade window opened.");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_SHOW", {});
|
||||
break;
|
||||
case 3: // CANCELLED
|
||||
case 12: // CLOSE_WINDOW
|
||||
resetTradeState();
|
||||
addSystemChatMessage("Trade cancelled.");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_CLOSED", {});
|
||||
break;
|
||||
case 9: // REJECTED — other player clicked Decline
|
||||
resetTradeState();
|
||||
addSystemChatMessage("Trade declined.");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_CLOSED", {});
|
||||
break;
|
||||
case 4: // ACCEPTED (partner accepted)
|
||||
tradeStatus_ = TradeStatus::Accepted;
|
||||
addSystemChatMessage("Trade accepted. Awaiting other player...");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_ACCEPT_UPDATE", {});
|
||||
break;
|
||||
case 8: // COMPLETE
|
||||
addSystemChatMessage("Trade complete!");
|
||||
if (addonEventCallback_) addonEventCallback_("TRADE_CLOSED", {});
|
||||
resetTradeState();
|
||||
break;
|
||||
case 7: // BACK_TO_TRADE (unaccepted after a change)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue