载入中...
搜索中...
未找到
CombatCharacter.h
浏览该文件的文档.
27enum class CombatCharacterMode : std::uint8_t { Grounded, Airborne, Dodging, Attacking, Stunned, Dead };
76enum class CombatCharacterEventKind : std::uint8_t { Moved, Jumped, Landed, DodgeStarted, DodgeEnded, ModeChanged };
122 [[nodiscard]] virtual Result<CombatVector3> resolve(const CombatVector3& from, const CombatVector3& to,
148 [[nodiscard]] Result<void> setMoveIntent(SubjectRef subject, CombatVector3 direction, double speedFraction);
155 [[nodiscard]] Result<void> dodge(SubjectRef subject, std::optional<CombatVector3> direction = std::nullopt);
178 [[nodiscard]] Result<void> applyDamageReaction(SubjectRef subject, HitReaction reaction, Duration stunDuration,
Deterministic damage, poise, hit-reaction and knockback resolution.
Move-only, checked operation results for the common layer.
Stable reference to a runtime gameplay subject.
Common time values and an injectable deterministic simulation clock.
Owner-thread 3D character authority for action combat.
Definition CombatCharacter.h:134
void setGroundProvider(ICombatGroundProvider &provider) noexcept
Borrow a ground sampler; must outlive this runtime or be cleared.
Definition CombatCharacter.h:198
void setMoveProbe(ICombatMoveProbe &probe) noexcept
Borrow a capsule move probe; must outlive this runtime or be cleared.
Definition CombatCharacter.h:202
Optional ground-height sampler consumed by the character controller.
Definition CombatCharacter.h:99
virtual ~ICombatGroundProvider()=default
Releases ICombatGroundProvider resources.
virtual Result< double > sampleHeight(double x, double z) const =0
Return finite ground height at the supplied world XZ.
Optional capsule move resolver for walls and overlapping bodies.
Definition CombatCharacter.h:112
virtual ~ICombatMoveProbe()=default
Releases ICombatMoveProbe resources.
virtual Result< CombatVector3 > resolve(const CombatVector3 &from, const CombatVector3 &to, double radius) const =0
Resolve a candidate translation for one capsule.
static constexpr StrongUint64 zero() noexcept
Returns the zero value for this strong type.
Definition StrongUint64.h:24
Definition ActionDamageSink.cpp:9
CombatCharacterMode
High-level locomotion mode owned by the character controller.
Definition CombatCharacter.h:27
@ Attacking
CombatCharacterEventKind
Observable character event after a committed frame.
Definition CombatCharacter.h:76
@ DodgeStarted
@ ModeChanged
Complete owning result of one character advance.
Definition CombatCharacter.h:88
std::vector< CombatCharacterEvent > events
Definition CombatCharacter.h:90
Immutable registration for one action-combat character.
Definition CombatCharacter.h:33
double dodgeDuration
Definition CombatCharacter.h:42
double capsuleRadius
Definition CombatCharacter.h:44
CombatVector3 initialPosition
Definition CombatCharacter.h:36
double maximumSpeed
Definition CombatCharacter.h:37
Result< void > validate() const
Validate identity and finite positive movement limits.
Definition CombatCharacter.cpp:26
std::uint32_t maxAirJumps
Definition CombatCharacter.h:43
double acceleration
Definition CombatCharacter.h:38
Owning event emitted by the character controller.
Definition CombatCharacter.h:79
Owning read-only projection of one character.
Definition CombatCharacter.h:51
double moveSpeedFraction
Definition CombatCharacter.h:58
CombatVector3 moveDirection
Definition CombatCharacter.h:57
std::uint32_t maxAirJumps
Definition CombatCharacter.h:66
std::uint32_t airJumpsUsed
Definition CombatCharacter.h:67
std::optional< CombatVector3 > rootMotionDelta
Definition CombatCharacter.h:72
double modeTimeRemaining
Definition CombatCharacter.h:69
Renderer/physics-neutral knockback impulse authored in world units.
Definition Damage.h:19