From 4e169c1506a6c1f102a061a0797246190c2ce513 Mon Sep 17 00:00:00 2001 From: extrawurst <776816+extrawurst@users.noreply.github.com> Date: Tue, 9 Dec 2025 22:16:09 +0100 Subject: [PATCH] fix missile trails (#81) added replicated `SpawnTrail` that acts as a marker and gets picked up by the client to create the visuals. --- crates/shared/src/abilities/missile.rs | 41 ++++++--------- crates/shared/src/character.rs | 24 +++------ crates/shared/src/protocol/mod.rs | 6 ++- crates/shared/src/utils/trail.rs | 71 +++++++++++++++++++++++--- 4 files changed, 91 insertions(+), 51 deletions(-) diff --git a/crates/shared/src/abilities/missile.rs b/crates/shared/src/abilities/missile.rs index 0856d8a..65b14c9 100644 --- a/crates/shared/src/abilities/missile.rs +++ b/crates/shared/src/abilities/missile.rs @@ -5,7 +5,7 @@ use crate::{ heads_database::HeadsDatabase, physics_layers::GameLayer, protocol::{GltfSceneRoot, PlaySound}, - utils::{global_observer, trail::Trail}, + utils::{global_observer, trail::SpawnTrail}, }; use avian3d::prelude::*; use bevy::prelude::*; @@ -15,7 +15,8 @@ use std::f32::consts::PI; const MAX_SHOT_AGES: f32 = 15.; const MISSLE_SPEED: f32 = 3.; -#[derive(Component)] +#[derive(Component, Reflect)] +#[reflect(Component)] struct MissileProjectile { time: f32, damage: u32, @@ -40,7 +41,6 @@ fn on_trigger_missile( query_transform: Query<&Transform>, time: Res