public void ForceRespawn()
 {
     if (this.inForceRespawn)
     {
         return;
     }
     this.inForceRespawn = true;
     if (this.WillChangeLevels())
     {
         this.localPauseTag = ObjectUpdater.Instance.RequestPause(null);
         Killable entityComponent = this.ent.GetEntityComponent <Killable>();
         if (entityComponent != null)
         {
             entityComponent.CurrentHp = entityComponent.MaxHp;
         }
         this.ChangeLevelRespawn();
         return;
     }
     ObjectUpdater.PauseTag  pauseTag   = ObjectUpdater.Instance.RequestPause(null);
     OverlayFader.OnDoneFunc onDoneFunc = delegate()
     {
         this.inForceRespawn = false;
         pauseTag.Release();
         Killable entityComponent2 = this.ent.GetEntityComponent <Killable>();
         if (entityComponent2 != null)
         {
             Killable.DeathData deathData = new Killable.DeathData(true);
             entityComponent2.ForceDeath(0f, deathData, true);
         }
     };
     if (this._fadeOut != null)
     {
         Vector3 value = CoordinateTransformer.ToViewport("Main Camera", this.ent.WorldPosition);
         OverlayFader.StartFade(this._fadeOut, true, onDoneFunc, new Vector3?(value));
     }
     else
     {
         onDoneFunc();
     }
 }