strange things in my script

so im watching atutorial (tornadotwins) and im trying to die but i useally dont what happens is when i get hit once most of the time it counts as 2 and when i am 1 away from dieing i just dont, i die when falling out of bouds but not from the fire balls i want to be hit by here is the health script any ideas?:

  var health1 : Texture2D; //one live left
  var health2 : Texture2D; //two lives left
  var health3 : Texture2D; //full health
  var bodypart1 : Transform;
  var bodypart2 : Transform;

  static var LIVES = 3;
  static var HITS = 0;

  function Update () 
  {
    print("Lives: "+LIVES+" Hits: "+HITS); //lives: 3 Hits: 0

    switch(LIVES)
    {
      case 3:
        guiTexture.texture = health3;
        break;

      case 2:
        guiTexture.texture = health2;
        break;

      case 1:
        guiTexture.texture = health1;
        break;

      case 0:
        //gameover script here
        break;
    }

    switch(HITS)
    {
      case 1:
        //disable bodypart 1
        bodypart2.renderer.enabled=false;
        break;

      case 2:
        bodypart1.renderer.enabled = false;
        bodypart2.renderer.enabled=false;
        break;

      case 3:
        LIVES -= 1;
        HITS = 0;
        MoveAround.dead = true;
        bodypart1.renderer.enabled = true;
        bodypart2.renderer.enabled = true;
        break;

    }
  }

heres my controler 4 my character

  //Moving around
  var speed = 3.0;
  var rotateSpeed = 3.0;
  //Shooting
  var bullitPrefab:Transform;
  //Dying
  static var dead = false;

  //Geting hit
  var tumbleSpeed = 800;
  var decreaseTime = 0.01;
  var decayTime = 0.01;
  static var gotHit = false;
  private var backup = [tumbleSpeed, decreaseTime, decayTime];

  function LateUpdate()
  {
    if(dead)
    {
      transform.position = Vector3(0,9,0);

      dead = false;
    }
    if(gotHit)
    {
      if(tumbleSpeed < 1)
      {
        //we're not hit anymore... reset & get back in the game!
        tumbleSpeed = backup[0];
        decreaseTime = backup[1];
        decayTime = backup[2];
        gotHit = false; 
      }
      else
      {
        //we're hit! Spin our character around  
        transform.Rotate(0,tumbleSpeed * Time.deltaTime,0, Space.World);
        tumbleSpeed = tumbleSpeed-decreaseTime;
        decreaseTime += decayTime;
      }
    }
  }

  //function OnControllerColliderHit(hit : ControllerColliderHit)
  function OnTriggerEnter( hit : Collider )
  {
    if(hit.gameObject.tag == "fallout")
    {
      dead = true;
      //substract life here
      HealthControl.LIVES -= 1;
    }
    if(hit.gameObject.tag == "enemyProjectile")
    {
      gotHit = true;
      HealthControl.HITS += 1;
      Destroy(hit.gameObject);
    }
  }

  function Update ()
  {
    var controller : CharacterController = GetComponent(CharacterController);
    transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0);
    var forward = transform.TransformDirection(Vector3.forward);
    var curSpeed = speed * Input.GetAxis ("Vertical");
    controller.SimpleMove(forward * curSpeed);

    //shooting!
    if(Input.GetButtonDown("Jump"))
    {
      var bullit = Instantiate( bullitPrefab, 
                               transform.Find("spawnPoint").transform.position,
                               Quaternion.identity);
      bullit.tag = "wormProjectile";
      bullit.rigidbody.AddForce(transform.forward * 2000);        
    }

  }

  @script RequireComponent(CharacterController)

Check out the Lerpz tutorial, they handle health and death in the scripts, to get an idea.