载入中...
搜索中...
未找到
Economy.cpp
浏览该文件的文档.
29int Economy::get(int player, const std::string& type) const { return EconomySystem::get(player, type); }
47bool Economy::registerResourceType(const std::string& id, const std::string& category, int stockMax,
69bool Economy::hasType(const std::string& id) { return ResourceTypeRegistry::find(id) != nullptr; }
170 cls.addFunc("publishGameplay", [vm = cls.getHandle()](Economy* self, const std::string& instanceId,
180 result.set("message", published.ok() ? std::string("published") : published.status().describe());
183 cls.addFunc("unpublishGameplay", [vm = cls.getHandle()](Economy* self, const std::string& instanceId) {
190 result.set("message", unpublished.ok() ? std::string("unpublished") : unpublished.status().describe());
197eve::Result<void> Economy::publishGameplay(const std::string& instanceId, const std::string& ownerId, int player) {
209 return gameplay_->publish(eve::SubjectRef::fromPersistentId(*instance), eve::SubjectRef::fromPersistentId(*owner),
216 eve::Diagnostic::error(eve::DiagnosticCode::NotFound, "no economy instance is published", "instanceId"));
220 eve::DiagnosticCode::InvalidArgument, "the instance id must be a canonical persistent id", "instanceId"));
Stable reference to a runtime gameplay subject.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static SubjectRef fromPersistentId(PersistentId id) noexcept
Wrap a persistent identity without changing its bytes.
Definition SubjectRef.h:32
static std::optional< Id128 > parse(std::string_view text) noexcept
Parses canonical UUID text.
Definition Identity.h:151
static int credit(int player, const std::string &type, int amount)
入账并广播事件。
Definition EconomySystem.cpp:32
static bool debit(int player, const std::string &type, int amount)
出账并广播事件;余额不足返回 false。
Definition EconomySystem.cpp:40
static int getCap(int player, const std::string &type)
玩家该类型持有上限(0=不限)。
Definition EconomySystem.cpp:48
int getIncome(int player, const std::string &type) const override
Get income.
Definition Economy.cpp:39
int getWasted(int player, const std::string &type) const override
Get wasted.
Definition Economy.cpp:35
eve::Result< void > unpublishGameplay(const std::string &instanceId)
取消发布一个实例;该实例未发布(或 id 非法)时返回诊断。
Definition Economy.cpp:213
static bool registerResourceType(const std::string &id, const std::string &category, int stockMax, const std::string &depletion)
注册资源类型;depletion 取值 finite/renewable/infinite/growing。
Definition Economy.cpp:47
int getExpense(int player, const std::string &type) const override
Get expense.
Definition Economy.cpp:43
int credit(int player, const std::string &type, int amount) override
Credit.
Definition Economy.cpp:21
eve::Result< void > publishGameplay(const std::string &instanceId, const std::string &ownerId, int player)
把一个玩家账本发布到共享玩法协议(eve_gameplay / MCP)。
Definition Economy.cpp:197
static std::string eventAction(int index)
第 index 个事件的动作(credit/debit/waste;越界返回空串)。
Definition Economy.cpp:85
static const ResourceTypeDef * find(const std::string &id)
按 id 查询;未注册时返回 nullptr。
Definition ResourceType.cpp:19
static const ResourceTypeDef * typeAt(int index)
按 id 字典序返回第 index 个类型定义。
Definition ResourceType.cpp:27
Definition IEconomy.h:5
@ Renewable
@ Infinite
@ InvalidArgument
@ NotFound
@ Failed