载入中...
搜索中...
未找到
BodyPartDamage.cpp
浏览该文件的文档.
13 Diagnostic::error(DiagnosticCode::InvalidArgument, "body-part multiplier is invalid", "multiplier"));
23Result<DamageAmounts> BodyPartDamageRule::evaluate(const DamageRequest& request, const CombatState& target) const {
32 Diagnostic::error(DiagnosticCode::InvalidArgument, "body-part damage amounts are invalid", "amounts"));
IDamageRule that scales damage by body-part tags.
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
double multiplier(std::string_view bodyPart) const noexcept
Return the multiplier for a part, or 1.0 when unregistered.
Definition BodyPartDamage.cpp:18
Result< DamageAmounts > evaluateForPart(const DamageRequest &request, const CombatState &target, std::string_view bodyPart) const
Evaluate with an explicit body-part key.
Definition BodyPartDamage.cpp:36
Result< void > setMultiplier(std::string bodyPart, double multiplier)
Register or replace one finite non-negative body-part multiplier.
Definition BodyPartDamage.cpp:9
Result< DamageAmounts > evaluate(const DamageRequest &request, const CombatState &target) const override
Resolve final non-negative amounts without mutating target state.
Definition BodyPartDamage.cpp:23
Definition ActionDamageSink.cpp:9
@ InvalidArgument
@ Applied
Mutable combat state owned by the gameplay domain for one subject.
Definition Damage.h:37
Provider result prepared before the authoritative state is mutated.
Definition Damage.h:67
double incomingDamageMultiplier
Target-owned effect multiplier applied in the target-mitigation settlement stage.
Definition Damage.h:57