function wshockns_gotHit() /* entry=248 class_id=0x044D slot=0x06 */
{
  set_info(0x020C, *(arg_06));
  process_exclude();
  local_02 = arg_0A;
  if (!Item.isNpc(local_02)) {
    local_04 = local_02;
    while (Item.overlaps(arg_0A, arg_06) == 1) {
      local_06 = Item.getCX(arg_06);
      local_08 = Item.getX(arg_06);
      local_0A = Item.getY(arg_06);
      local_0C = Item.getCZ(local_02);
      local_0E = Item.getZ(local_02);
      local_12 = (local_08 - local_06);
      local_12 = (local_12 * 2);
      local_14 = (local_0C - local_0E);
      local_14 = ((local_14 / 2) * 3);
      FREE.slot_20(2);
      local_16 = (retval + 1);
      while (local_16 == 0) {
        FREE.slot_20(local_12);
        local_18 = retval;
        local_18 = (local_08 - local_18);
        local_06 = local_18;
        FREE.slot_20(local_14);
        local_1A = retval;
        local_1A = (local_1A + local_0E);
        local_0C = local_1A;
        if (!Item.create(0, 0x0459, local_10)) {
          local_16 = 1;
          local_1C = (1 + local_1C);
        }
        FREE.slot_20(pid, 30);
        spawn FREE.slot_3B(retval, 0x00000000);
        suspend;
        local_16 = (local_16 - 1);
      }
      spawn FREE.slot_3B(pid, 60, 0x00000000);
      suspend;
    }
    spawn FREE.slot_3B(pid, 2, 0x00000000);
    suspend;
  }
  return;
}
