I think you can use expressions Player.TileMovement.GridX and Player.TileMovement.GridY
Save them to a pair of variables. As soon as they change (not equal to saved values), this means that the player has moved to another cell. Deduct from HP and update the variables.