Hardened the new Rank effect against crashes

#4134

The `anim.PlayFetchIndex` is probably the most important change. I had a temp level variable before which only got updated during ticks and when the actor is alive. @pchote suggested to remove it for cleaner code and I forgot to add something to avoid the trait lookup from dead actors.

This also adds `.IsDead()` checks everywhere. They may be redundant, but I found them together with `.IsDestroyed` in other effects that have a trait look-up in their constructor.