_unit = _this select 0; _part = _this select 1; _partDamage = _this select 2; if (_part == "") then { _unit setVariable [QUOTE(GVAR(hds)), [_this]]; } else { _unit setVariable [QUOTE(GVAR(hds)), (_unit getVariable QUOTE(GVAR(hds))) + [_this]]; }; if (_part == "body") then { // check for head hit _hds = _unit getVariable QUOTE(GVAR(hds); _hdHead = _hds select 1; _hdBody = _hds select 2; if (_hdHead select 2 > _hdBody select 2) then { // hit in the head [_hds, "hit_head"] call FUNC(hd3); }; }; if (_part == "hands") then { // last chance to go to hd3 if legs don't fire //[_unit, "hit_head"] call FUNC(hd3); }; if (_part == "legs") then { // last hit // determine hit location _hds = _unit getVariable QUOTE(GVAR(hds); _hdTotal = _hds select 0; _hdHead = _hds select 1; _hdBody = _hds select 2; _hdHands = _hds select 3; _hdLegs = _hds select 4; _hitLoc = "body"; if ( (_hdHands select 2 >= _hdBody select 2) && (_hdHands select 2 >= _hdLegs select 2) ) then { _hitLoc = "hands"; }; if ( (_hdLegs select 2 >= _hdBody select 2) && (_hdLegs select 2 >= _hdHands select 2) ) then { _hitLoc = "legs"; }; if (_hdHead select 2 > _hdBody select 2) then { // hit in the head [_hds, _hitLoc] call FUNC(hd3); }; };