@@ -11,7 +11,8 @@ function Create(self)
1111
1212 self .targetLockSound = CreateSoundContainer (" Mine Activate" , " Base.rte" );
1313end
14- function Update (self )
14+
15+ function ThreadedUpdate (self )
1516 local parent = self :GetRootParent ();
1617 if IsActor (parent ) then
1718 parent = ToActor (parent );
@@ -91,10 +92,11 @@ function Update(self)
9192 parent = nil ;
9293 self .targets = {};
9394 end
95+
9496 if self .FiredFrame then
9597 local rocketNumber = self .RoundInMagCount + 1 ;
9698
97- local rocket = CreateAEmitter (" Particle Browncoat Rocket" , " Browncoats.rte" );
99+ self . rocket = CreateAEmitter (" Particle Browncoat Rocket" , " Browncoats.rte" );
98100 if # self .targets > 0 then
99101 if self .targets [rocketNumber ] and self .targets [rocketNumber ].actor .ID ~= rte .NoMOID then
100102 rocket :SetNumberValue (" TargetID" , self .targets [rocketNumber ].actor .ID );
@@ -104,12 +106,18 @@ function Update(self)
104106 rocket :SetNumberValue (" TargetID" , self .targets [math.random (# self .targets )].actor .ID );
105107 end
106108 end
107- rocket .Pos = self .MuzzlePos + Vector (0 , (rocketNumber - self .RoundInMagCapacity * 0.5 )):RadRotate (self .RotAngle );
108- rocket .Vel = self .Vel + Vector (self .fireVel * RangeRand (0.9 , 1.1 ) * self .FlipFactor , 0 ):RadRotate (self .RotAngle - ((self .spread * 0.5 ) - (rocketNumber / self .RoundInMagCapacity ) * self .spread ) * self .FlipFactor );
109- rocket .RotAngle = rocket .Vel .AbsRadAngle ;
110- rocket .AngularVel = math.cos (rocket .Vel .AbsRadAngle ) * 5 ;
111- rocket .Team = self .Team ;
112- rocket .IgnoresTeamHits = true ;
113- MovableMan :AddParticle (rocket );
109+ self .rocket .Pos = self .MuzzlePos + Vector (0 , (rocketNumber - self .RoundInMagCapacity * 0.5 )):RadRotate (self .RotAngle );
110+ self .rocket .Vel = self .Vel + Vector (self .fireVel * RangeRand (0.9 , 1.1 ) * self .FlipFactor , 0 ):RadRotate (self .RotAngle - ((self .spread * 0.5 ) - (rocketNumber / self .RoundInMagCapacity ) * self .spread ) * self .FlipFactor );
111+ self .rocket .RotAngle = rocket .Vel .AbsRadAngle ;
112+ self .rocket .AngularVel = math.cos (rocket .Vel .AbsRadAngle ) * 5 ;
113+ self .rocket .Team = self .Team ;
114+ self .rocket .IgnoresTeamHits = true ;
115+ end
116+ end
117+
118+ function SyncedUpdate (self )
119+ if self .rocket then
120+ MovableMan :AddParticle (self .rocket );
121+ self .rocket = nil ;
114122 end
115123end
0 commit comments