载入中...
搜索中...
未找到
eve::combat::BodyPartDamageRule类 参考final

Optional damage rule that multiplies health damage by a body-part key. 更多...

#include <BodyPartDamage.h>

类 eve::combat::BodyPartDamageRule 继承关系图:
eve::combat::IDamageRule

Public 成员函数

Result< void > setMultiplier (std::string bodyPart, double multiplier)
 Register or replace one finite non-negative body-part multiplier.
 
double multiplier (std::string_view bodyPart) const noexcept
 Return the multiplier for a part, or 1.0 when unregistered.
 
Result< DamageAmounts > evaluate (const DamageRequest &request, const CombatState &target) const override
 Resolve final non-negative amounts without mutating target state.
 
Result< DamageAmounts > evaluateForPart (const DamageRequest &request, const CombatState &target, std::string_view bodyPart) const
 Evaluate with an explicit body-part key.
 
- Public 成员函数 继承自 eve::combat::IDamageRule
virtual ~IDamageRule ()=default
 Releases IDamageRule resources.
 

详细描述

Optional damage rule that multiplies health damage by a body-part key.

The damage request's damageType suffix after the final '.' may encode a part override, but the preferred path sets incomingDamageMultiplier before apply or uses evaluateForPart. Missing parts use multiplier 1.0.

在文件 BodyPartDamage.h 第 20 行定义.

成员函数说明

◆ evaluate()

Result< DamageAmounts > eve::combat::BodyPartDamageRule::evaluate ( const DamageRequest &  request,
const CombatState &  target 
) const
overridevirtual

◆ evaluateForPart()

Result< DamageAmounts > eve::combat::BodyPartDamageRule::evaluateForPart ( const DamageRequest &  request,
const CombatState &  target,
std::string_view  bodyPart 
) const

Evaluate with an explicit body-part key.

备注
Multiplies request.healthDamage by the part multiplier and leaves poise unchanged.

在文件 BodyPartDamage.cpp 第 36 行定义.

引用了 evaluate(), eve::combat::DamageRequest::incomingDamageMultiplier, multiplier(), request , 以及 target.

◆ multiplier()

double eve::combat::BodyPartDamageRule::multiplier ( std::string_view  bodyPart) const
noexcept

Return the multiplier for a part, or 1.0 when unregistered.

在文件 BodyPartDamage.cpp 第 18 行定义.

引用了 found.

被这些函数引用 evaluateForPart() , 以及 setMultiplier().

◆ setMultiplier()

Result< void > eve::combat::BodyPartDamageRule::setMultiplier ( std::string  bodyPart,
double  multiplier 
)

Register or replace one finite non-negative body-part multiplier.

在文件 BodyPartDamage.cpp 第 9 行定义.

引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, multiplier(), eve::Status::success() , 以及 eve::Result< T >::success().


该类的文档由以下文件生成: