载入中...
搜索中...
未找到
RTSEffects.cpp
浏览该文件的文档.
68 return eve::Result<RTSEffectUpdate>::success(std::move(result), eve::Status::success(eve::StatusCode::Applied));
126 return eve::Result<RTSEffectUpdate>::success(std::move(result), eve::Status::success(eve::StatusCode::Applied));
129RTSEffectSnapshot RTSEffectAdapter::snapshot() const { return {container_.snapshot(), target_}; }
140std::size_t RTSEffectAdapter::count() const noexcept { return static_cast<std::size_t>(container_.effectCount()); }
154 else if (const auto* integer = found->second.getIf<std::int64_t>()) result *= static_cast<double>(*integer);
167 else if (const auto* integer = found->second.getIf<std::int64_t>()) result += static_cast<double>(*integer);
175 eve::DiagnosticCode::InvalidArgument, "RTS effect component requires a valid subject", "subject"));
184eve::Result<effects::EffectHandle> RTSEffectComponent::apply(const RTSEffectDefinition& definition) {
191eve::Result<void> RTSEffectComponent::remove(effects::EffectHandle handle) { return adapter_.remove(handle); }
RTS effect adapter with morale, suppression and production policies.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
bool isValid() const noexcept
Return whether this reference is valid and non-nil.
Definition SubjectRef.h:38
EffectContainer snapshot() const
Capture an independent lifecycle snapshot for staging/restore.
Definition EffectContainer.cpp:138
eve::Result< const EffectInstance * > resolve(EffectHandle handle) const
Resolve a generation-qualified handle for this call.
Definition EffectContainer.cpp:344
eve::Result< void > remove(const std::string &id, const std::string &reason="removed")
Removes one active instance and emits a Removed event.
Definition EffectContainer.cpp:375
EffectContainer clone() const
Create an independent deep copy suitable for ECS staging.
Definition EffectContainer.cpp:136
int effectCount() const
Returns active instance count in deterministic creation order.
Definition EffectContainer.cpp:558
eve::Result< void > restore(const EffectContainer &snapshot)
Restore a previously captured snapshot as one observable commit.
Definition EffectContainer.cpp:140
Executes lifecycle time progression for an EffectContainer.
Definition EffectContainer.h:309
eve::Result< EffectUpdateSummary > advance(EffectContainer &container, double dtSeconds) const
Advances one container by a legacy seconds delta.
Definition EffectContainer.cpp:625
void setNumber(const std::string &key, double value)
Sets a JSON number field.
Definition EffectTypes.cpp:14
RTSEffectSnapshot snapshot() const
Capture effects and domain target state.
Definition RTSEffects.cpp:129
double multiplier(std::string_view field) const noexcept
Multiply one numeric payload across all active canonical effect instances.
Definition RTSEffects.cpp:146
eve::Result< const effects::EffectInstance * > resolve(effects::EffectHandle handle) const
Resolve a live handle as a borrowed observation.
Definition RTSEffects.cpp:142
std::size_t count() const noexcept
Return the number of active effect instances.
Definition RTSEffects.cpp:140
double additive(std::string_view field) const noexcept
Sum one numeric payload across all active canonical effect instances.
Definition RTSEffects.cpp:159
eve::Result< RTSEffectUpdate > advance(const eve::SimulationStep &step)
Advance and settle RTS effects atomically.
Definition RTSEffects.cpp:116
eve::Result< void > restore(const RTSEffectSnapshot &snapshot)
Restore effects and target state, invalidating prior handles.
Definition RTSEffects.cpp:131
eve::Result< void > remove(effects::EffectHandle handle)
Remove one generation-qualified effect handle.
Definition RTSEffects.cpp:110
eve::Result< effects::EffectHandle > apply(const RTSEffectDefinition &definition, eve::SubjectRef subject)
Apply one typed effect to a stable subject.
Definition RTSEffects.cpp:71
eve::Result< effects::EffectHandle > apply(const RTSEffectDefinition &definition)
Apply a typed RTS effect to this entity's canonical lifecycle.
Definition RTSEffects.cpp:184
eve::Result< void > bindSubject(eve::SubjectRef subject)
Bind the owning entity subject before applying effects.
Definition RTSEffects.cpp:172
eve::Result< RTSEffectUpdate > advance(const eve::SimulationStep &step)
Advance this entity's effect lifecycle and settle domain state.
Definition RTSEffects.cpp:193
eve::Result< void > remove(effects::EffectHandle handle)
Remove one generation-qualified effect handle.
Definition RTSEffects.cpp:191
eve::Result< RTSEffectUpdate > settle(RTSEffectTarget &target, effects::EffectUpdateSummary lifecycle) const
Settle common periodic triggers using RTS-specific policies.
Definition RTSEffects.cpp:37
eve::Result< void > applyImmediate(RTSEffectTarget &target, const effects::EffectInstance &effect) const
Apply immediate production-lock semantics to a staged target.
Definition RTSEffects.cpp:29
eve::Result< void > validate(const RTSEffectTarget &target) const
Validate the target state before a staged application.
Definition RTSEffects.cpp:22
Definition RTS.cpp:24
@ Morale
@ Suppression
@ ProductionLock
@ InvalidArgument
@ InvariantViolation
@ Conflict
@ Applied
Immutable-by-convention template used to create effect instances.
Definition EffectTypes.h:100
double period
Period in seconds for domain executor settlement; zero disables periodic ticks.
Definition EffectTypes.h:106
eve::Result< void > validate() const
Validates definition fields without changing any state.
Definition EffectTypes.cpp:61
Generation-qualified local reference to a canonical effect instance.
Definition EffectTypes.h:173
Summary returned by the lifecycle executor after one simulation step.
Definition EffectTypes.h:212
std::vector< EffectPeriodicTick > periodicTicks
Periodic triggers in deterministic container order.
Definition EffectTypes.h:216
Typed RTS definition projected to the common lifecycle schema.
Definition RTSEffects.h:35
Mutable RTS state affected by the domain executor.
Definition RTSEffects.h:27
Result of one RTS lifecycle step and domain settlement.
Definition RTSEffects.h:51
effects::EffectUpdateSummary lifecycle
Definition RTSEffects.h:52
std::uint32_t commandInterrupts
Definition RTSEffects.h:54