Skip to content

fix(projectiles): correct handheld weapon synchronization - #430

Merged
CloudeaSoft merged 1 commit into
1.4.4from
codex/issue-367-handheld-projectile
Oct 16, 2026
Merged

CloudeaSoft merged 1 commit into
1.4.4from
codex/issue-367-handheld-projectile

Conversation

@CloudeaSoft

Copy link
Copy Markdown
Member

Summary

Fix handheld weapons using the observing client's cursor, spawning duplicate projectiles in multiplayer, and rendering incorrectly under inverted gravity.

  • Rename HandholdProjectile to HandheldProjectile and migrate all implementations.
  • Use the owner's synchronized cursor and initialize received projectiles without relying on OnSpawn.
  • Restrict projectile creation to the owning client while preserving sounds and visual effects on other clients.
  • Apply gravity-aware arm offsets and sprite orientation; synchronize laser crystal parent references and calculate laser endpoints outside rendering.
  • Remove redundant overrides and assignments, and correct three weapon rarity assignments to Item.rare.

Fixes #367.

Validation

  • dotnet build /p:WarningLevel=0 — passed.
  • dotnet test /p:WarningLevel=0 /p:NotCopyLocal=false — 541 tests passed, including 11 new regression tests.
  • UTF-8 BOM and diff whitespace checks — passed.

The test invocation enables dependency copying to avoid the existing FontStashSharp.FNA test discovery issue. No build configuration files were changed.

In-game multiplayer, dedicated-server behavior, inverted-gravity visuals, and audio still require manual verification.

Rename the handheld projectile template, synchronize aiming and initialization, constrain projectile spawning to the owner, and handle inverted gravity. Preserve remote client sounds, clean up redundant overrides, and correct weapon rarity assignments. Add regression coverage for aiming and network initialization.

Fixes #367
@CloudeaSoft
CloudeaSoft enabled auto-merge (squash) October 16, 2026 12:48
@CloudeaSoft
CloudeaSoft merged commit 9e70f8f into 1.4.4 Oct 16, 2026
13 checks passed
@CloudeaSoft
CloudeaSoft deleted the codex/issue-367-handheld-projectile branch October 19, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix issues in HandholdProjectile and its implementations

2 participants