//计算天梯名次 public ArenaRewardRecord GetArenaReward(int id) { ArenaRewardRecord tbAr = null; Table.ForeachArenaReward(record => { if (id <= record.Id) { tbAr = record; return(false); } return(true); }); return(tbAr); }
//计算最高奖励的量 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); }