Exemplo n.º 1
0
        public int compare(object o1, object o2)
        {
            //排序 先显示激活的(骑乘,非骑乘(品质 品质一样用战斗力))
            if (o1 == null)
            {
                return(1);
            }
            if (o2 == null)
            {
                return(-1);
            }
            if (!(o1 is Exchange) || !(o2 is Exchange))
            {
                return(0);
            }
            Exchange       obj1  = (Exchange)o1;
            Exchange       obj2  = (Exchange)o2;
            ExchangeSample temp1 = obj1.getExchangeSample();
            ExchangeSample temp2 = obj2.getExchangeSample();
            MountsSample   ms1   = MountsSampleManager.Instance.getMountsSampleBySid(temp1.exchangeSid);
            MountsSample   ms2   = MountsSampleManager.Instance.getMountsSampleBySid(temp2.exchangeSid);

            if (ms1.sortIndex < ms2.sortIndex)
            {
                return(1);
            }
            MountsManagerment manager = MountsManagerment.Instance;
            Mounts            isHave1 = manager.getMountsBySid(temp1.exchangeSid);
            Mounts            isHave2 = manager.getMountsBySid(temp2.exchangeSid);

            if (isHave1 != null && isHave2 != null)
            {
                int quality1 = isHave1.getQualityId();
                int quality2 = isHave2.getQualityId();
                if (isHave1.isInUse())
                {
                    return(-1);
                }
                else if (isHave2.isInUse())
                {
                    return(1);
                }
                else
                {
                    if (quality1 == quality2)
                    {
                        int combat1 = isHave1.getMaxLevel();
                        int combat2 = isHave2.getMaxLevel();
                        if (combat1 > combat2)
                        {
                            return(-1);
                        }
                        if (combat1 < combat2)
                        {
                            return(1);
                        }
                        return(0);
                    }
                    else if (quality1 > quality2)
                    {
                        return(-1);
                    }
                    else
                    {
                        return(1);
                    }
                }
            }
            else if (isHave1 != null && isHave2 == null)
            {
                return(-1);
            }
            else if (isHave1 == null && isHave2 != null)
            {
                return(1);
            }
            else if (isHave1 == null && isHave2 == null)
            {
                ExchangeManagerment instanc = ExchangeManagerment.Instance;
                if (((instanc.isCheckPremises(temp1, 0) && instanc.isCheckConditions(temp1, 0)) || instanc.isCheckPremises(temp1, 1)) &&
                    (!(instanc.isCheckPremises(temp2, 0) && instanc.isCheckConditions(temp2, 0)) || !instanc.isCheckPremises(temp2, 1)))
                {
                    return(-1);
                }
                if (((instanc.isCheckPremises(temp2, 0) && instanc.isCheckConditions(temp2, 0)) || instanc.isCheckPremises(temp2, 1)) &&
                    (!(instanc.isCheckPremises(temp1, 0) && instanc.isCheckConditions(temp1, 0)) || !instanc.isCheckPremises(temp1, 1)))
                {
                    return(1);
                }
            }
            return(0);
        }