コード例 #1
0
        //计算天梯名次
        public ArenaRewardRecord GetArenaReward(int id)
        {
            ArenaRewardRecord tbAr = null;

            Table.ForeachArenaReward(record =>
            {
                if (id <= record.Id)
                {
                    tbAr = record;
                    return(false);
                }
                return(true);
            });
            return(tbAr);
        }
コード例 #2
0
        //计算最高奖励的量
        public int GetMaxLadder(int oldRank, int newRank)
        {
            if (oldRank <= newRank)
            {
                return(0);
            }
            var giveCount          = 0;
            var firstFindNew       = false;
            ArenaRewardRecord last = null;

            Table.ForeachArenaReward(record =>
            {
                if (firstFindNew)
                {
                    if (oldRank <= record.Id)
                    {
                        giveCount = giveCount + (oldRank - last.Id - 1) * record.MaxDiamond;
                        return(false);
                    }
                    giveCount = giveCount + (record.Id - last.Id) * record.MaxDiamond;
                    last      = record;
                }
                else if (newRank <= record.Id)
                {
                    firstFindNew = true;
                    if (oldRank <= record.Id)
                    {
                        giveCount = giveCount + (oldRank - newRank) * record.MaxDiamond;
                        return(false);
                    }
                    giveCount = giveCount + (record.Id - newRank + 1) * record.MaxDiamond;
                    last      = record;
                }
                return(true);
            });
            return(giveCount);
        }