void DoFindMaximumValue()
        {
            if (!isProxyValid())
            {
                return;
            }

            VariableType _targetType = maximumValue.Type;

            if (!supportedTypes.Contains(maximumValue.Type))
            {
                return;
            }

            float max = float.NegativeInfinity;

            int maxIndex = 0;

            int index = 0;

            foreach (object _obj in proxy.arrayList)
            {
                try{
                    float _val = PlayMakerUtils.GetFloatFromObject(_obj, _targetType, true);
                    if (max < _val)
                    {
                        max      = _val;
                        maxIndex = index;
                    }
                }finally{ }

                index++;
            }


            maximumValueIndex.Value = maxIndex;

            PlayMakerUtils.ApplyValueToFsmVar(this.Fsm, maximumValue, proxy.arrayList[maxIndex]);
        }