载入中...
搜索中...
未找到
TurnPolicy.cpp
浏览该文件的文档.
27 [[nodiscard]] TurnOrder order(const Battle&, const UnitOrder& left, const UnitOrder& right) const override {
39 [[nodiscard]] TurnOrder order(const Battle&, const UnitOrder& left, const UnitOrder& right) const override {
63 [[nodiscard]] std::string_view id() const noexcept override { return kChargeTimeBattlePolicyId; }
65 [[nodiscard]] TurnOrder order(const Battle&, const UnitOrder& left, const UnitOrder& right) const override {
85 DiagnosticCode::InvalidArgument, "tactics turn policy requires a non-empty stable id", "turnPolicy.id"));
98 Diagnostic::error(DiagnosticCode::NotFound, "tactics turn policy is not registered", "turnPolicy"));
118 if (!value.add(std::make_shared<const SideAlternatingPolicy>()).ok()) return TurnPolicyRegistry{};
120 if (!value.add(std::make_shared<const ChargeTimeBattlePolicy>()).ok()) return TurnPolicyRegistry{};
Stable, structured diagnostics shared by engine modules.
Pluggable deterministic turn-scheduling policies.
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 Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
Battle short-root and authoritative owner of board and turn state.
Definition TacticsTypes.h:444
virtual ChargeModel chargeModel(const Battle &battle) const
Declare the charge rule this policy schedules by.
Definition TurnPolicy.cpp:80
Registry of turn policies keyed by stable id.
Definition TurnPolicy.h:145
static TurnPolicyRegistry & builtins()
Return the process-wide registry carrying the built-in policies.
Definition TurnPolicy.cpp:111
std::vector< std::string > ids() const
Return registered ids in lexical order.
Definition TurnPolicy.cpp:102
bool contains(std::string_view id) const
Return whether an id is registered.
Definition TurnPolicy.cpp:109
Result< void > add(std::shared_ptr< const ITurnPolicy > policy)
Register one policy under its own id.
Definition TurnPolicy.cpp:82
Result< const ITurnPolicy * > find(std::string_view id) const
Resolve a registered policy by id, or NotFound.
Definition TurnPolicy.cpp:94
Definition Interaction.cpp:13
constexpr std::string_view kInitiativePolicyId
Stable id of the built-in per-unit initiative turn policy.
Definition TacticsTypes.h:66
constexpr std::string_view kSideAlternatingPolicyId
Stable id of the built-in side-alternating turn policy.
Definition TacticsTypes.h:64
constexpr std::string_view kChargeTimeBattlePolicyId
Stable id of the built-in charge-time (CTB/ATB) turn policy.
Definition TacticsTypes.h:74
constexpr int kChargeTimeBattleThreshold
Charge a unit must accumulate before it may activate under CTB scheduling.
Definition TacticsTypes.h:82
@ Equivalent
Both compare equal; the caller decides by canonical order.
@ InvalidArgument
@ NotFound
@ Conflict
@ Applied
The charge rule a policy declares for round scheduling.
Definition TurnPolicy.h:63