I suggest you do the following (only get the variables just before you need them):

```csharp
[...]

if (self.Owner.WinState == WinState.Lost)
   return;

var info = self.Info.Traits.Get<EjectOnDeathInfo>();
var r = self.World.SharedRandom.Next(1, 100);

if (r <= 100 - info.SuccessRate)
   return;

var cp = self.CenterPosition;

[...]
```