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

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()

◆ applyDamageReaction()

Result< void > eve::combat::CombatCharacterRuntime::applyDamageReaction ( SubjectRef  subject,
HitReaction  reaction,
Duration  stunDuration,
Impulse3  knockback 
)

Apply death/stun and knockback from one damage outcome.

参数
stunDurationHitstun 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 
)

◆ beginAttack()

Result< void > eve::combat::CombatCharacterRuntime::beginAttack ( SubjectRef  subject)

◆ clearGroundProvider()

void eve::combat::CombatCharacterRuntime::clearGroundProvider ( )
inlinenoexcept

Clears ground provider.

在文件 CombatCharacter.h 第 200 行定义.

◆ clearMoveProbe()

void eve::combat::CombatCharacterRuntime::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.

参数
directionOptional 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.

参数
lockTargetFinite world position of the locked subject.
relativeForward = 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)

◆ jump()

◆ 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().

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ setGroundProvider()

void eve::combat::CombatCharacterRuntime::setGroundProvider ( ICombatGroundProvider &  provider)
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.

参数
directionFinite XZ direction; non-unit input is normalized. Y is ignored.
speedFractionRequested 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().

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ setMoveProbe()

void eve::combat::CombatCharacterRuntime::setMoveProbe ( ICombatMoveProbe &  probe)
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().

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ 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().

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ state()

Result< CombatCharacterState > eve::combat::CombatCharacterRuntime::state ( SubjectRef  subject) const

◆ states()

std::vector< CombatCharacterState > eve::combat::CombatCharacterRuntime::states ( ) const

Return owning states in stable subject-id order.

在文件 CombatCharacter.cpp 第 406 行定义.

引用了 key , 以及 state().

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ unregisterSubject()

Result< void > eve::combat::CombatCharacterRuntime::unregisterSubject ( SubjectRef  subject)

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