Owner-thread 3D character authority for action combat. 更多...
#include <CombatCharacter.h>
Public 成员函数 | |
| Result< void > | registerSubject (CombatCharacterDefinition definition) |
| Register one unique character from validated owning definition data. | |
| Result< void > | unregisterSubject (SubjectRef subject) |
| Remove one character; missing subjects are rejected. | |
| Result< CombatCharacterState > | state (SubjectRef subject) const |
| Return an owning state snapshot, or NotFound for a stale subject. | |
| Result< void > | setMoveIntent (SubjectRef subject, CombatVector3 direction, double speedFraction) |
| Set normalized planar movement intent. | |
| Result< void > | jump (SubjectRef subject) |
| Request a jump or air jump when the current mode allows it. | |
| Result< void > | dodge (SubjectRef subject, std::optional< CombatVector3 > direction=std::nullopt) |
| Begin a dodge that grants invulnerability for dodgeDuration. | |
| Result< void > | dodgeRelative (SubjectRef subject, CombatVector3 lockTarget, CombatDodgeRelative relative) |
| Dodge relative to a lock-on target on the XZ plane. | |
| Result< void > | beginAttack (SubjectRef subject) |
| Enter attacking mode; root motion may replace horizontal intent. | |
| Result< void > | endAttack (SubjectRef subject) |
| Leave attacking mode when recover completes. | |
| Result< void > | applyStun (SubjectRef subject, Duration duration) |
| Apply a stun that blocks jump/dodge/attack for the supplied duration. | |
| Result< void > | applyImpulse (SubjectRef subject, CombatVector3 impulse) |
| Add an instantaneous velocity impulse (knockback / launch). | |
| Result< void > | applyDamageReaction (SubjectRef subject, HitReaction reaction, Duration stunDuration, Impulse3 knockback) |
| Apply death/stun and knockback from one damage outcome. | |
| Result< void > | kill (SubjectRef subject) |
| Mark the character dead; further locomotion intents become NoOp. | |
| Result< void > | setRootMotionDelta (SubjectRef subject, CombatVector3 delta) |
| Queue one frame of authored root-motion delta consumed by the next advance. | |
| Result< void > | setFacing (SubjectRef subject, CombatVector3 facing) |
| Replace planar facing from a finite XZ vector; Y is ignored. | |
| Result< void > | setTimeFrozen (SubjectRef subject, bool frozen) |
| Pause integration for hitstop while retaining the committed pose. | |
| void | setGroundProvider (ICombatGroundProvider &provider) noexcept |
| Borrow a ground sampler; must outlive this runtime or be cleared. | |
| void | clearGroundProvider () noexcept |
| Clears ground provider. | |
| void | setMoveProbe (ICombatMoveProbe &probe) noexcept |
| Borrow a capsule move probe; must outlive this runtime or be cleared. | |
| void | clearMoveProbe () noexcept |
| Clears move probe. | |
| Result< CombatCharacterAdvance > | advance (const SimulationStep &step) |
| Atomically advance every character using only the supplied deterministic step. | |
| std::vector< CombatCharacterState > | states () const |
| Return owning states in stable subject-id order. | |
详细描述
Owner-thread 3D character authority for action combat.
Horizontal intent, jump, dodge i-frames and optional root-motion deltas are owned here. Ground is the plane y = 0 unless an ICombatGroundProvider is borrowed; capsule collisions are optional via ICombatMoveProbe. Projects project the resulting pose into Scene/Physics after each advance.
在文件 CombatCharacter.h 第 134 行定义.
成员函数说明
◆ advance()
| Result< CombatCharacterAdvance > eve::combat::CombatCharacterRuntime::advance | ( | const SimulationStep & | step | ) |
Atomically advance every character using only the supplied deterministic step.
在文件 CombatCharacter.cpp 第 290 行定义.
引用了 advance(), eve::combat::Airborne, eve::Applied, eve::combat::Attacking, eve::combat::Dead, eve::combat::DodgeEnded, eve::combat::Dodging, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::combat::Grounded, eve::InvalidArgument, key, eve::combat::Landed, eve::combat::ModeChanged, eve::combat::Moved, eve::combat::ICombatMoveProbe::resolve(), eve::combat::ICombatGroundProvider::sampleHeight(), state(), step, eve::combat::Stunned, eve::Status::success(), eve::Result< T >::success(), eve::combat::CombatCharacterAdvance::tick, eve::detail::StrongUint64< Tag >::value(), eve::combat::CombatVector3::x, eve::combat::CombatVector3::y, eve::combat::CombatVector3::z , 以及 eve::Duration::zero().
被这些函数引用 advance() , 以及 eve::combat::CombatLoopRuntime::advance().
◆ applyDamageReaction()
| Result< void > eve::combat::CombatCharacterRuntime::applyDamageReaction | ( | SubjectRef | subject, |
| HitReaction | reaction, | ||
| Duration | stunDuration, | ||
| Impulse3 | knockback | ||
| ) |
Apply death/stun and knockback from one damage outcome.
- 参数
-
stunDuration Hitstun remaining from HitFeelRuntime; ignored for Death.
在文件 CombatCharacter.cpp 第 230 行定义.
引用了 applyImpulse(), applyStun(), eve::combat::Death, eve::combat::Flinch, kill(), eve::combat::Knockdown, eve::NoOp, eve::combat::Stagger, subject, eve::Status::success(), eve::Result< T >::success(), eve::combat::Impulse3::x, eve::combat::Impulse3::y , 以及 eve::combat::Impulse3::z.
◆ applyImpulse()
| Result< void > eve::combat::CombatCharacterRuntime::applyImpulse | ( | SubjectRef | subject, |
| CombatVector3 | impulse | ||
| ) |
Add an instantaneous velocity impulse (knockback / launch).
- 备注
- Dead subjects are NoOp. Positive Y leaves the subject airborne after stun ends.
在文件 CombatCharacter.cpp 第 213 行定义.
引用了 eve::combat::Airborne, eve::Applied, eve::combat::Dead, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::combat::Grounded, eve::InvalidArgument, eve::NoOp, eve::NotFound, subject, eve::Status::success(), eve::Result< T >::success(), eve::combat::CombatVector3::x, eve::combat::CombatVector3::y , 以及 eve::combat::CombatVector3::z.
被这些函数引用 applyDamageReaction().
◆ applyStun()
| Result< void > eve::combat::CombatCharacterRuntime::applyStun | ( | SubjectRef | subject, |
| Duration | duration | ||
| ) |
Apply a stun that blocks jump/dodge/attack for the supplied duration.
在文件 CombatCharacter.cpp 第 195 行定义.
引用了 eve::Applied, eve::combat::Dead, duration, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::InvalidArgument, eve::NoOp, eve::NotFound, eve::combat::Stunned, subject, eve::Status::success(), eve::Result< T >::success() , 以及 eve::Duration::zero().
被这些函数引用 applyDamageReaction().
◆ beginAttack()
| Result< void > eve::combat::CombatCharacterRuntime::beginAttack | ( | SubjectRef | subject | ) |
Enter attacking mode; root motion may replace horizontal intent.
在文件 CombatCharacter.cpp 第 170 行定义.
引用了 eve::Applied, eve::combat::Attacking, eve::combat::Dead, eve::combat::Dodging, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::NoOp, eve::NotFound, eve::combat::Stunned, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ clearGroundProvider()
|
inlinenoexcept |
Clears ground provider.
在文件 CombatCharacter.h 第 200 行定义.
◆ clearMoveProbe()
|
inlinenoexcept |
Clears move probe.
在文件 CombatCharacter.h 第 204 行定义.
◆ dodge()
| Result< void > eve::combat::CombatCharacterRuntime::dodge | ( | SubjectRef | subject, |
| std::optional< CombatVector3 > | direction = std::nullopt |
||
| ) |
Begin a dodge that grants invulnerability for dodgeDuration.
- 参数
-
direction Optional dodge direction; empty uses current facing.
在文件 CombatCharacter.cpp 第 124 行定义.
引用了 eve::Applied, eve::combat::Dead, direction, eve::combat::Dodging, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::InvalidArgument, eve::NoOp, eve::NotFound, state(), eve::combat::Stunned, subject, eve::Status::success(), eve::Result< T >::success(), eve::combat::CombatVector3::x , 以及 eve::combat::CombatVector3::z.
被这些函数引用 dodgeRelative().
◆ dodgeRelative()
| Result< void > eve::combat::CombatCharacterRuntime::dodgeRelative | ( | SubjectRef | subject, |
| CombatVector3 | lockTarget, | ||
| CombatDodgeRelative | relative | ||
| ) |
Dodge relative to a lock-on target on the XZ plane.
- 参数
-
lockTarget Finite world position of the locked subject. relative Forward = toward target, Back = away, Left/Right = strafe.
在文件 CombatCharacter.cpp 第 149 行定义.
引用了 eve::combat::Back, direction, dodge(), eve::Diagnostic::error(), eve::Result< T >::failure(), eve::combat::Forward, found, eve::InvalidArgument, eve::combat::Left, eve::NotFound, relative, eve::combat::Right, subject, eve::combat::CombatVector3::x , 以及 eve::combat::CombatVector3::z.
◆ endAttack()
| Result< void > eve::combat::CombatCharacterRuntime::endAttack | ( | SubjectRef | subject | ) |
Leave attacking mode when recover completes.
在文件 CombatCharacter.cpp 第 183 行定义.
引用了 eve::combat::Airborne, eve::Applied, eve::combat::Attacking, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::combat::Grounded, eve::NoOp, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ jump()
| Result< void > eve::combat::CombatCharacterRuntime::jump | ( | SubjectRef | subject | ) |
Request a jump or air jump when the current mode allows it.
在文件 CombatCharacter.cpp 第 99 行定义.
引用了 eve::combat::Airborne, eve::Applied, eve::combat::Attacking, eve::combat::Dead, eve::combat::Dodging, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::combat::Grounded, eve::NoOp, eve::NotFound, state(), eve::combat::Stunned, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ kill()
| Result< void > eve::combat::CombatCharacterRuntime::kill | ( | SubjectRef | subject | ) |
Mark the character dead; further locomotion intents become NoOp.
在文件 CombatCharacter.cpp 第 242 行定义.
引用了 eve::Applied, eve::combat::Dead, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
被这些函数引用 applyDamageReaction().
◆ registerSubject()
| Result< void > eve::combat::CombatCharacterRuntime::registerSubject | ( | CombatCharacterDefinition | definition | ) |
Register one unique character from validated owning definition data.
在文件 CombatCharacter.cpp 第 40 行定义.
引用了 eve::AlreadyExists, eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::combat::Grounded, key, state, state(), eve::Status::success(), eve::Result< T >::success() , 以及 valid.
◆ setFacing()
| Result< void > eve::combat::CombatCharacterRuntime::setFacing | ( | SubjectRef | subject, |
| CombatVector3 | facing | ||
| ) |
Replace planar facing from a finite XZ vector; Y is ignored.
- 备注
- Zero-length input is rejected. Frozen and dead subjects still accept facing.
在文件 CombatCharacter.cpp 第 267 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), facing, eve::Result< T >::failure(), found, eve::InvalidArgument, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ setGroundProvider()
|
inlinenoexcept |
Borrow a ground sampler; must outlive this runtime or be cleared.
在文件 CombatCharacter.h 第 198 行定义.
◆ setMoveIntent()
| Result< void > eve::combat::CombatCharacterRuntime::setMoveIntent | ( | SubjectRef | subject, |
| CombatVector3 | direction, | ||
| double | speedFraction | ||
| ) |
Set normalized planar movement intent.
- 参数
-
direction Finite XZ direction; non-unit input is normalized. Y is ignored. speedFraction Requested fraction in [0,1].
在文件 CombatCharacter.cpp 第 82 行定义.
引用了 eve::Applied, eve::combat::Dead, direction, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::InvalidArgument, eve::NoOp, eve::NotFound, eve::combat::Stunned, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ setMoveProbe()
|
inlinenoexcept |
Borrow a capsule move probe; must outlive this runtime or be cleared.
在文件 CombatCharacter.h 第 202 行定义.
◆ setRootMotionDelta()
| Result< void > eve::combat::CombatCharacterRuntime::setRootMotionDelta | ( | SubjectRef | subject, |
| CombatVector3 | delta | ||
| ) |
Queue one frame of authored root-motion delta consumed by the next advance.
- 备注
- Only applied while mode is Attacking.
在文件 CombatCharacter.cpp 第 256 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::InvalidArgument, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ setTimeFrozen()
| Result< void > eve::combat::CombatCharacterRuntime::setTimeFrozen | ( | SubjectRef | subject, |
| bool | frozen | ||
| ) |
Pause integration for hitstop while retaining the committed pose.
- 备注
- HitFeelRuntime remains the duration authority; this flag is only the locomotion gate.
在文件 CombatCharacter.cpp 第 281 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ state()
| Result< CombatCharacterState > eve::combat::CombatCharacterRuntime::state | ( | SubjectRef | subject | ) | const |
Return an owning state snapshot, or NotFound for a stale subject.
在文件 CombatCharacter.cpp 第 74 行定义.
引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), found, eve::NotFound, subject , 以及 eve::Result< T >::success().
被这些函数引用 advance(), eve::combat::CombatLoopRuntime::advance(), dodge(), jump(), eve::combat::CombatCharacterPoseSource::pose(), registerSubject() , 以及 states().
◆ states()
| std::vector< CombatCharacterState > eve::combat::CombatCharacterRuntime::states | ( | ) | const |
Return owning states in stable subject-id order.
在文件 CombatCharacter.cpp 第 406 行定义.
◆ unregisterSubject()
| Result< void > eve::combat::CombatCharacterRuntime::unregisterSubject | ( | SubjectRef | subject | ) |
Remove one character; missing subjects are rejected.
在文件 CombatCharacter.cpp 第 65 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
该类的文档由以下文件生成:
- src/modules/combat/CombatCharacter.h
- src/modules/combat/CombatCharacter.cpp