[HELP] Player doesn't get up when a big explosion happens

I’ve made a small script that gives total health to the player in the Tick function. When the player falls from a mountain or is hit by a car, after a while player is able to get up. But when a big explosion happens, the player lies down on the ground and never gets up. Game.Player.IsDead always returns true but the player has full health bar while player is lying on the ground. What’s the problem in here? How can I make the player get up?

using CitizenFX.Core;
using CitizenFX.Core.Native;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LimitlessHealth
{
    public class Main : BaseScript
    {
        public Main()
        {
            API.RegisterCommand("limitless", new Action(limitlessHealth), false);
        }

        private void limitlessHealth()
        {
            Tick += new Func<Task>(async delegate
            {
                API.SetEntityHealth(Game.Player.Character.Handle, API.GetEntityMaxHealth(Game.Player.Character.Handle));
                Debug.WriteLine(Game.Player.IsDead.ToString());
                await Task.FromResult(0);
            });
        }
    }
}