🐞 fix(军团): 练兵场等级奖励跨军团领取重复问题
This commit is contained in:
@@ -137,7 +137,7 @@ export function getGuildTrainInfo (guildTrain: GuildTrainType, roleId: string,
|
||||
// myRank = {roleId: rankRoleId, score, rankLv: index+1};
|
||||
// return {roleId: rankRoleId, score, rankLv: index+1};
|
||||
// });
|
||||
let { trainInstances: instances } = getArmyTrainJuDian(trainId);
|
||||
let { trainInstances: instances, trainLv } = getArmyTrainJuDian(trainId);
|
||||
let resTrainInstances = trainInstances.map(({hid, progress, endTime})=>{
|
||||
let instance = findWhere(instances, { hid });
|
||||
let isComplete = false;
|
||||
@@ -147,7 +147,7 @@ export function getGuildTrainInfo (guildTrain: GuildTrainType, roleId: string,
|
||||
});
|
||||
let resGuildTrain = {trainId, isComplete, trainInstances: resTrainInstances, myRank: 0, ranks: [] };
|
||||
|
||||
return { guildTrain: resGuildTrain, trainCount, trainRewards};
|
||||
return { guildTrain: resGuildTrain, trainCount, trainRewards: transTrainReward(trainRewards, trainLv)};
|
||||
}
|
||||
/**
|
||||
* 解锁试炼trainId
|
||||
@@ -291,4 +291,32 @@ export async function getGuildTrainInstance(roleId: string, guild: GuildType, us
|
||||
result.buyTrainCount = buyTrainCount || 0;
|
||||
result.trainLv = trainLv;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查某trainId是否可以领取
|
||||
* @param trainRewards 玩家记录中已经领取过了的试炼奖励id
|
||||
* @param trainId 玩家将要领取的试炼奖励id
|
||||
*/
|
||||
export function checkGuildTrainReward(trainRewards: number[], trainId: number) {
|
||||
let dicJudian = getArmyTrainJuDian(trainId);
|
||||
if(!dicJudian) return false;
|
||||
let sameIndexOfcurTrain = gameData.trainIdByIndex.get(dicJudian.index)||new Map();
|
||||
for(let [_lv, trainId] of sameIndexOfcurTrain) {
|
||||
if(trainRewards.indexOf(trainId) != -1) return false; // 领取过
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 将玩家已经领取过的记录按照当前军团等级转换
|
||||
* @param lv 等级
|
||||
* @param trainRewards 玩家领取记录
|
||||
*/
|
||||
export function transTrainReward(trainRewards: number[], lv: number) {
|
||||
return trainRewards.map(trainId => {
|
||||
let dicJudian = getArmyTrainJuDian(trainId);
|
||||
let dicNewTrain = gameData.trainIdByIndex.get(dicJudian?.index)||new Map();
|
||||
return dicNewTrain?.get(lv)||0
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user