@@ -16,9 +16,11 @@ public class PlayerHandler : CustomEventsHandler
1616{
1717 public override void OnPlayerChangingRole ( PlayerChangingRoleEventArgs ev )
1818 {
19+ ev . Player . ClearBroadcasts ( ) ;
1920 PlayerEscaped . Remove ( ev . Player ) ;
2021 if ( ev . ChangeReason != PlayerRoles . RoleChangeReason . None )
2122 CustomRoleHelpers . UnSetCustomInfoToPlayer ( ev . Player , false ) ;
23+ /*
2224 if (ev.ChangeReason == PlayerRoles.RoleChangeReason.Destroyed)
2325 return;
2426 if (ev.ChangeReason == PlayerRoles.RoleChangeReason.Died)
@@ -28,6 +30,7 @@ public override void OnPlayerChangingRole(PlayerChangingRoleEventArgs ev)
2830 if (ev.NewRole == PlayerRoles.RoleTypeId.Destroyed)
2931 return;
3032 Timing.CallDelayed(0.2f, () => AppearanceSyncExtension.ForceSync(ev.Player));
33+ */
3134 }
3235
3336 public override void OnPlayerDroppingItem ( PlayerDroppingItemEventArgs ev )
@@ -64,7 +67,6 @@ public override void OnPlayerChangedSpectator(PlayerChangedSpectatorEventArgs ev
6467 return ;
6568 if ( ev . OldTarget != null && CustomRoleHelpers . Contains ( ev . OldTarget ) )
6669 {
67- // todo dont clear, just queue
6870 ev . Player . ClearBroadcasts ( ) ;
6971 }
7072 if ( ev . NewTarget != null && CustomRoleHelpers . TryGetCustomRole ( ev . NewTarget , out var role ) )
@@ -147,6 +149,7 @@ public override void OnPlayerDeath(PlayerDeathEventArgs ev)
147149
148150 public override void OnPlayerEscaping ( PlayerEscapingEventArgs ev )
149151 {
152+ List < Pickup > droppedItems = [ ] ;
150153 Player player = ev . Player ;
151154 if ( PlayerEscaped . Contains ( player ) )
152155 return ;
@@ -162,7 +165,6 @@ public override void OnPlayerEscaping(PlayerEscapingEventArgs ev)
162165 var roleTypeToEscapeTo = potentialEscapeRoles . Select ( static x => x . Value ) . FirstOrDefault ( ) ;
163166 if ( roleTypeToEscapeTo == PlayerRoles . RoleTypeId . None )
164167 return ;
165- List < Pickup > droppedItems = [ ] ;
166168 foreach ( var item in player . Items . ToList ( ) )
167169 {
168170 var dropped = item . DropItem ( ) ;
@@ -174,7 +176,7 @@ public override void OnPlayerEscaping(PlayerEscapingEventArgs ev)
174176 ev . EscapeScenario = Escape . EscapeScenarioType . Custom ;
175177 PlayerEscaped . Add ( player ) ;
176178 Timing . CallDelayed ( 1.5f , ( ) => PlayerEscaped . Remove ( player ) ) ;
177- Timing . CallDelayed ( 3 .5f, ( ) =>
179+ Timing . CallDelayed ( 2 .5f, ( ) =>
178180 {
179181 foreach ( var item in droppedItems )
180182 {
@@ -203,12 +205,20 @@ public override void OnPlayerEscaping(PlayerEscapingEventArgs ev)
203205 {
204206 var dropped = item . DropItem ( ) ;
205207 dropped . IsLocked = true ;
206- storage . ItemsAfterEscaped . Add ( dropped ) ;
208+ droppedItems . Add ( dropped ) ;
207209 }
208210 var success = CustomRoleHelpers . SetNewRole ( player , roleToEscapeTo , true ) ;
209211 PlayerEscaped . Add ( player ) ;
210212 Timing . CallDelayed ( 1.5f , ( ) => PlayerEscaped . Remove ( player ) ) ;
211- Timing . CallDelayed ( 3.5f , storage . ItemsAfterEscaped . Clear ) ;
213+ Timing . CallDelayed ( 2.5f , ( ) =>
214+ {
215+ foreach ( var item in droppedItems )
216+ {
217+ item . Position = player . Position ;
218+ item . IsLocked = false ;
219+ item . IsInUse = false ;
220+ }
221+ } ) ;
212222 }
213223
214224 public override void OnServerWaveRespawned ( WaveRespawnedEventArgs ev )
@@ -236,9 +246,11 @@ public override void OnServerWaveRespawned(WaveRespawnedEventArgs ev)
236246 {
237247 Main . Instance . InWaveRoles . Remove ( item ) ;
238248 }
249+ /*
239250 foreach (var item in ev.Players)
240251 {
241252 AppearanceSyncExtension.ForceSync(item);
242253 }
254+ */
243255 }
244256}
0 commit comments