载入中...
搜索中...
未找到
eve::rpg::BattleSystem类 参考

战斗数值:公式求值 + 技能伤害注册 + 结算。 @thread 纯计算,可在任意线程执行。 更多...

#include <BattleSystem.h>

静态 Public 成员函数

static eve::Result< void > registerSkillDamageChecked (const std::string &skillId, const SkillDamageSpec &spec)
 Validate and publish one skill damage definition atomically.
 
static void registerSkillDamage (const std::string &skillId, const SkillDamageSpec &spec)
 Compatibility facade; invalid definitions are ignored.
 
static const SkillDamageSpec * findSkillDamage (const std::string &skillId)
 Finds skill damage.
 
static void clearSkillDamage ()
 Clears skill damage.
 
static double evaluateFormula (const std::string &formula, RPGActor *attacker, RPGActor *target)
 求值伤害公式。
 
static eve::Result< double > evaluateFormulaChecked (const std::string &formula, RPGActor *attacker, RPGActor *target)
 Strictly parse and evaluate a damage formula.
 
static DamageResult resolveHit (RPGActor *attacker, RPGActor *target, const SkillDamageSpec &spec, unsigned seed)
 结算一次命中:命中判定、公式、元素耐性、暴击。
 

详细描述

战斗数值:公式求值 + 技能伤害注册 + 结算。 @thread 纯计算,可在任意线程执行。

在文件 BattleSystem.h 第 47 行定义.

成员函数说明

◆ clearSkillDamage()

void eve::rpg::BattleSystem::clearSkillDamage ( )
static

Clears skill damage.

在文件 BattleSystem.cpp 第 51 行定义.

被这些函数引用 eve::rpg::RPG::clearSkillDamage().

◆ evaluateFormula()

double eve::rpg::BattleSystem::evaluateFormula ( const std::string &  formula,
RPGActor *  attacker,
RPGActor *  target 
)
static

求值伤害公式。

返回
公式结果;未知参数/语法按 0 处理(不抛)。

在文件 BattleSystem.cpp 第 200 行定义.

引用了 evaluateFormulaChecked() , 以及 target.

被这些函数引用 resolveHit().

◆ evaluateFormulaChecked()

eve::Result< double > eve::rpg::BattleSystem::evaluateFormulaChecked ( const std::string &  formula,
RPGActor *  attacker,
RPGActor *  target 
)
static

Strictly parse and evaluate a damage formula.

返回
The finite result, or ParseError for malformed input and InvalidArgument for division by zero. @thread Pure synchronous evaluation; actor reads must obey the caller's simulation-thread contract. @reentrancy Does not invoke callbacks.

在文件 BattleSystem.cpp 第 205 行定义.

引用了 target.

被这些函数引用 evaluateFormula().

◆ findSkillDamage()

const SkillDamageSpec * eve::rpg::BattleSystem::findSkillDamage ( const std::string &  skillId)
static

Finds skill damage.

在文件 BattleSystem.cpp 第 45 行定义.

引用了 t.

◆ registerSkillDamage()

void eve::rpg::BattleSystem::registerSkillDamage ( const std::string &  skillId,
const SkillDamageSpec &  spec 
)
static

Compatibility facade; invalid definitions are ignored.

在文件 BattleSystem.cpp 第 41 行定义.

引用了 eve::Result< void >::ignore() , 以及 registerSkillDamageChecked().

◆ registerSkillDamageChecked()

eve::Result< void > eve::rpg::BattleSystem::registerSkillDamageChecked ( const std::string &  skillId,
const SkillDamageSpec &  spec 
)
static

Validate and publish one skill damage definition atomically.

参数
skillIdNon-empty definition id.
specCandidate definition; a non-empty formula must satisfy the formula grammar.
返回
Success after publication, or a structured diagnostic without mutating the registry. @thread Call on the owning RPG definition thread; registry mutation is not synchronized. @reentrancy Does not invoke callbacks.

在文件 BattleSystem.cpp 第 28 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::rpg::SkillDamageSpec::formula, eve::InvalidArgument , 以及 eve::Result< T >::success().

被这些函数引用 registerSkillDamage() , 以及 eve::rpg::RPG::registerSkillDamage().

◆ resolveHit()

DamageResult eve::rpg::BattleSystem::resolveHit ( RPGActor *  attacker,
RPGActor *  target,
const SkillDamageSpec &  spec,
unsigned  seed 
)
static

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