示例#1
0
        private int CompareDefault(ResHeroCfgInfo l, ResHeroCfgInfo r)
        {
            bool flag  = this.m_roleInfo.IsHaveHero(l.dwCfgID, false);
            bool flag2 = this.m_roleInfo.IsHaveHero(r.dwCfgID, false);

            if (flag && !flag2)
            {
                return(1);
            }
            if (!flag && flag2)
            {
                return(-1);
            }
            ResHeroPromotion resHeroPromotion  = CHeroDataFactory.CreateHeroData(l.dwCfgID).promotion();
            ResHeroPromotion resHeroPromotion2 = CHeroDataFactory.CreateHeroData(r.dwCfgID).promotion();
            ResHeroShop      resHeroShop       = null;
            ResHeroShop      resHeroShop2      = null;

            GameDataMgr.heroShopInfoDict.TryGetValue(l.dwCfgID, out resHeroShop);
            GameDataMgr.heroShopInfoDict.TryGetValue(r.dwCfgID, out resHeroShop2);
            uint num  = (resHeroShop != null) ? resHeroShop.dwSortId : 4294967295u;
            uint num2 = (resHeroShop2 != null) ? resHeroShop2.dwSortId : 4294967295u;

            if (resHeroPromotion != null)
            {
                num = resHeroPromotion.dwSortIndex;
            }
            if (resHeroPromotion2 != null)
            {
                num2 = resHeroPromotion2.dwSortIndex;
            }
            if (resHeroShop != null)
            {
                ResDT_RegisterSale_Info stRegisterSale = resHeroShop.stRegisterSale;
                bool flag3 = CMallSystem.IsinRegisterSales(stRegisterSale);
                if (flag3)
                {
                    num = stRegisterSale.dwSortID;
                }
            }
            if (resHeroShop2 != null)
            {
                ResDT_RegisterSale_Info stRegisterSale2 = resHeroShop2.stRegisterSale;
                bool flag4 = CMallSystem.IsinRegisterSales(stRegisterSale2);
                if (flag4)
                {
                    num2 = stRegisterSale2.dwSortID;
                }
            }
            if (num < num2)
            {
                return(1);
            }
            if (num > num2)
            {
                return(-1);
            }
            if (l.dwCfgID < r.dwCfgID)
            {
                return(-1);
            }
            if (l.dwCfgID > r.dwCfgID)
            {
                return(1);
            }
            return(0);
        }
示例#2
0
        private int CompareDefault(ResHeroSkin l, ResHeroSkin r)
        {
            int result = 0;
            ResSkinPromotion skinPromotion   = CSkinInfo.GetSkinPromotion(l.dwHeroID, l.dwSkinID);
            ResSkinPromotion skinPromotion2  = CSkinInfo.GetSkinPromotion(r.dwHeroID, r.dwSkinID);
            ResHeroSkinShop  resHeroSkinShop = null;

            GameDataMgr.skinShopInfoDict.TryGetValue(l.dwID, ref resHeroSkinShop);
            ResHeroSkinShop resHeroSkinShop2 = null;

            GameDataMgr.skinShopInfoDict.TryGetValue(r.dwID, ref resHeroSkinShop2);
            uint num  = (resHeroSkinShop == null) ? 4294967295u : resHeroSkinShop.dwSortId;
            uint num2 = (resHeroSkinShop2 == null) ? 4294967295u : resHeroSkinShop2.dwSortId;

            if (skinPromotion != null)
            {
                num = skinPromotion.dwSortIndex;
            }
            if (skinPromotion2 != null)
            {
                num2 = skinPromotion2.dwSortIndex;
            }
            if (resHeroSkinShop != null)
            {
                ResDT_RegisterSale_Info stRegisterSale = resHeroSkinShop.stRegisterSale;
                bool flag = CMallSystem.IsinRegisterSales(stRegisterSale);
                if (flag)
                {
                    num = stRegisterSale.dwSortID;
                }
            }
            if (resHeroSkinShop2 != null)
            {
                ResDT_RegisterSale_Info stRegisterSale2 = resHeroSkinShop2.stRegisterSale;
                bool flag2 = CMallSystem.IsinRegisterSales(stRegisterSale2);
                if (flag2)
                {
                    num2 = stRegisterSale2.dwSortID;
                }
            }
            if (num < num2)
            {
                result = 1;
            }
            if (num > num2)
            {
                result = -1;
            }
            bool flag3 = this.m_roleInfo.IsHaveHeroSkin(l.dwHeroID, l.dwSkinID, false);
            bool flag4 = this.m_roleInfo.IsHaveHeroSkin(r.dwHeroID, r.dwSkinID, false);

            if (flag3 && !flag4)
            {
                return(1);
            }
            if (!flag3 && flag4)
            {
                return(-1);
            }
            if ((skinPromotion != null && skinPromotion.bSortIndexOnly > 0) || (skinPromotion2 != null && skinPromotion2.bSortIndexOnly > 0))
            {
                return(result);
            }
            if (CSkinInfo.IsCanBuy(l.dwHeroID, l.dwSkinID) && !CSkinInfo.IsCanBuy(r.dwHeroID, r.dwSkinID))
            {
                return(-1);
            }
            if (!CSkinInfo.IsCanBuy(l.dwHeroID, l.dwSkinID) && CSkinInfo.IsCanBuy(r.dwHeroID, r.dwSkinID))
            {
                return(1);
            }
            if (this.m_roleInfo.IsHaveHero(l.dwHeroID, false) && !this.m_roleInfo.IsHaveHero(r.dwHeroID, false))
            {
                return(-1);
            }
            if (!this.m_roleInfo.IsHaveHero(l.dwHeroID, false) && this.m_roleInfo.IsHaveHero(r.dwHeroID, false))
            {
                return(1);
            }
            return(result);
        }