fix(stats): RocketsUsed and QuickBuildsCompleted where live sent them

RocketsUsed: live counted the rocket when the client asked to go
(FireEventServerSide "ZonePlayer"), right before TransferToZone (captures:
94 of 117 directly before it). DLU counted it when the launch animation
started, so a launch that never went counted too.

QuickBuildsCompleted: live sent it after RebuildNotifyState(Completed) and
the completion effect (507), before EnableRebuild (218 of 227 samples); DLU
counted it before the notify state.

Check in game: launch a rocket to another world; Rockets Used goes up by 1
as the screen fades out. Finish a quick build: Quick Builds Completed goes
up by 1 as the build finishes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 02:20:32 -05:00
parent fd10e19a06
commit aed16a8c80
3 changed files with 6 additions and 3 deletions

View File

@@ -448,7 +448,6 @@ void QuickBuildComponent::CompleteQuickBuild(Entity* const user) {
auto* characterComponent = user->GetComponent<CharacterComponent>();
if (characterComponent != nullptr) {
characterComponent->SetCurrentActivity(eGameActivity::NONE);
characterComponent->TrackQuickBuildComplete();
EconomyLedger::RecordMapEvent(IEconomyLedger::eMapEvent::QUICKBUILDS_COMPLETED, m_Parent->GetLOT(), m_Parent->GetPosition(), 1, user);
} else {
LOG("Some user tried to finish the rebuild but they didn't have a character somehow.");
@@ -466,6 +465,8 @@ void QuickBuildComponent::CompleteQuickBuild(Entity* const user) {
GameMessages::PlayFXEffect fx(m_Parent->GetObjectID(), 507, u"create", "BrickFadeUpVisCompleteEffect");
fx.priority = 0.4f;
fx.Send(UNASSIGNED_SYSTEM_ADDRESS);
// Live: RebuildNotifyState(Completed), the effect, then QuickBuildsCompleted, then EnableRebuild
characterComponent->TrackQuickBuildComplete();
GameMessages::EnableRebuild enableRebuild;
enableRebuild.target = m_Parent->GetObjectID();
enableRebuild.bEnable = false;