иногда при попадании наряда в вертолет значение переменных _global.b1hp итп становится NaN.. в чём проблема?

Код:
function hitVert (mc) {
if (_root.distVert (mc) < 130) {
_global.hit = 0;
if (mc.hitTest (_root.vert.b1) && _global.b1hp > 0 && _global.hit == 0) {
_global.b1hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.b2) && _global.b2hp > 0 && _global.hit == 0) {
_global.b2hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.b3) && _global.b3hp > 0 && _global.hit == 0) {
_global.b3hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.b4) && _global.b4hp > 0 && _global.hit == 0) {
_global.b4hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.h) && _global.hhp > 0 && _global.hit == 0) {
_global.hhp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.d) && _global.dhp > 0 && _global.hit == 0) {
_global.dhp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.p1) && _global.p1hp > 0 && _global.hit == 0) {
_global.p1hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
if (mc.hitTest (_root.vert.p2) && _global.p2hp > 0 && _global.hit == 0) {
_global.p2hp -= mc.damage;
mc.removeMovieClip ();
_global.hit = 1;
}
}
}
,в кадрах ракеты написано damage = 20;
осенна нада!!! игра изза этого у мя вся игра на нет сходит!! Т_Т
это не могло случится изза того, что переменные _global.b1hp итп принимают отрицательное значение, а в квадратиках на верхнем вертолете стоит такой код: ??????????????????

Код:
onClipEvent (load) {
this._alpha = 30;
this_color = new Color (this);
this_colorTransform = {rb:255, bb:0, gb:255};
r = 0;
g = 254;
}
onClipEvent (enterFrame) {
r = 250 - _global.b1hp * 2;
g = _global.b1hp * 2;
this_colorTransform.rb = r;
this_colorTransform.gb = g;
this_color.setTransform (this_colorTransform);
this.shower = _global.b1hp;
}