Product-level transaction boundary for quest completion and rewards. 更多...
#include <QuestReward.h>
静态 Public 成员函数 | |
| static eve::Result< int > | claim (Tracker &tracker, GameState &gameState, inventory::Bag &bag, const std::string &questId) |
| Validate and atomically claim every reward declared by one ready quest. | |
详细描述
Product-level transaction boundary for quest completion and rewards.
在文件 QuestReward.h 第 24 行定义.
成员函数说明
◆ claim()
|
static |
Validate and atomically claim every reward declared by one ready quest.
- 参数
-
tracker Borrowed authoritative quest tracker. gameState Borrowed authoritative numeric attribute owner. bag Borrowed authoritative inventory owner. questId Exact registered quest id whose state must be ready.
- 返回
- Number of committed reward entries, or a structured failure with no observable mutation.
- 备注
- Reward type
itemadds an integral quantity to Bag;attributeadds a finite amount to the same-named GameState variable. Unsupported or malformed rewards are rejected before mutation. Inventory hooks run only after quest, attributes, and inventory have all reached their final state. @ownership Participants remain caller-owned and must outlive this call. @thread Call on the participants' owning simulation thread; concurrent mutation is unsupported. @reentrancy Inventory hooks may re-enter after the no-fail commit boundary only.
在文件 QuestReward.cpp 第 25 行定义.
引用了 eve::rpg::GameState::addVariable(), eve::rpg::RewardSpec::amount, eve::Applied, eve::rpg::QuestSystem::claim(), eve::inventory::InventorySystem::commitAddBatch(), eve::Conflict, eve::rpg::Tracker::entries, eve::Result< T >::failure(), eve::rpg::QuestRegistry::find(), eve::rpg::Tracker::getState(), eve::rpg::GameState::getVariable(), eve::rpg::RewardSpec::id, index, eve::InvalidArgument, eve::InvariantViolation, eve::NotFound, eve::Result< void >::ok(), eve::rpg::Tracker::order, path, eve::rpg::Tracker::pending, eve::rpg::Tracker::polled, eve::PreconditionViolation, eve::inventory::InventorySystem::prepareAddBatch(), eve::rpg::GameState::restoreSnapshotJson(), eve::rpg::GameState::snapshotJson(), eve::Status::success(), eve::Result< T >::success(), eve::rpg::RewardSpec::type , 以及 eve::Unsupported.
被这些函数引用 eve::rpg::RPG::claimQuestRewards() , 以及 eve::rpg::ProductControl::submitGameplay().
该类的文档由以下文件生成:
- src/modules/rpg/QuestReward.h
- src/modules/rpg/QuestReward.cpp