@@ -11,7 +11,8 @@ function Create(self)
11
11
12
12
self .targetLockSound = CreateSoundContainer (" Mine Activate" , " Base.rte" );
13
13
end
14
- function Update (self )
14
+
15
+ function ThreadedUpdate (self )
15
16
local parent = self :GetRootParent ();
16
17
if IsActor (parent ) then
17
18
parent = ToActor (parent );
@@ -91,10 +92,11 @@ function Update(self)
91
92
parent = nil ;
92
93
self .targets = {};
93
94
end
95
+
94
96
if self .FiredFrame then
95
97
local rocketNumber = self .RoundInMagCount + 1 ;
96
98
97
- local rocket = CreateAEmitter (" Particle Browncoat Rocket" , " Browncoats.rte" );
99
+ self . rocket = CreateAEmitter (" Particle Browncoat Rocket" , " Browncoats.rte" );
98
100
if # self .targets > 0 then
99
101
if self .targets [rocketNumber ] and self .targets [rocketNumber ].actor .ID ~= rte .NoMOID then
100
102
rocket :SetNumberValue (" TargetID" , self .targets [rocketNumber ].actor .ID );
@@ -104,12 +106,18 @@ function Update(self)
104
106
rocket :SetNumberValue (" TargetID" , self .targets [math.random (# self .targets )].actor .ID );
105
107
end
106
108
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 ;
114
122
end
115
123
end
0 commit comments