function npc_only_gotHit() /* entry=194 class_id=0x0366 slot=0x06 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    item, /* [BP-02h] type=0x24 */
    l, /* [BP-04h] type=0x69 */
    link; /* [BP-06h] type=0x69 */

  set_info(0x020C, *(arg_06));
  process_exclude();
  if ((ref > 0x0100) || (ref == getTargetNPCNumMaybe())) {
    return;
  }
  else {
    item = ref;
    l = Actor.GetNPCDataField0x63_00B(item);
    link = Item.getQLo(arg_06);
    if (Actor.GetNPCDataField0x63_00B(item) == Item.getQLo(arg_06)) {
      if (Item.getMapArray(arg_06) == 0) {
        if ((Item.getSurfaceWeight(arg_06) == 0) || (Item.isCompletelyOn(*(arg_06), item) != 0)) {
          return;
        }
        else {
          spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
          suspend;
          spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
          suspend;
          while (!(1)) {
            if ((Item.getSurfaceWeight(arg_06) == 0) && (Actor.isNPC(item) != 1)) {
              spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
              suspend;
            }
            else {
              spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
              suspend;
              spawn FREE.waitNTimerTicks(pid, 5, 0x00000000);
              suspend;
              return;
            }
          }
        }
      }
    }
  }
  return;
}
