战斗数值:公式求值 + 技能伤害注册 + 结算。 @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()
|
static |
◆ evaluateFormula()
|
static |
求值伤害公式。
- 返回
- 公式结果;未知参数/语法按 0 处理(不抛)。
在文件 BattleSystem.cpp 第 200 行定义.
引用了 evaluateFormulaChecked() , 以及 target.
被这些函数引用 resolveHit().
◆ evaluateFormulaChecked()
|
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()
|
static |
◆ registerSkillDamage()
|
static |
Compatibility facade; invalid definitions are ignored.
在文件 BattleSystem.cpp 第 41 行定义.
引用了 eve::Result< void >::ignore() , 以及 registerSkillDamageChecked().
◆ registerSkillDamageChecked()
|
static |
Validate and publish one skill damage definition atomically.
- 参数
-
skillId Non-empty definition id. spec Candidate 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()
|
static |
结算一次命中:命中判定、公式、元素耐性、暴击。
- 参数
-
rng 注入的随机数流(命中/暴击判定用)。
在文件 BattleSystem.cpp 第 210 行定义.
引用了 eve::rpg::DamageResult::amount, eve::rpg::DamageResult::crit, eve::rpg::SkillDamageSpec::critChance, eve::rpg::SkillDamageSpec::element, eve::rpg::DamageResult::elementRate, evaluateFormula(), eve::rpg::SkillDamageSpec::formula, eve::rpg::TraitSystem::getElementRate(), eve::rpg::TraitSystem::getExParam(), eve::rpg::AttributeSystem::getFinal(), eve::rpg::DamageResult::hit, eve::rpg::SkillDamageSpec::hitChance, seed , 以及 target.
该类的文档由以下文件生成:
- src/modules/rpg/BattleSystem.h
- src/modules/rpg/BattleSystem.cpp