镇念塔:刷新任务

This commit is contained in:
luying
2021-08-17 14:41:15 +08:00
parent 83b667e709
commit faaf3388c5
+17 -11
View File
@@ -396,9 +396,9 @@ export async function refreshTasks(towerLv: number, batchCode: string, roleId: s
for(let [ position, task ] of positions) { for(let [ position, task ] of positions) {
let taskId = randomTaskId(towerLv, task?task.taskId: 0, ridTaskIds); let taskId = randomTaskId(towerLv, task?task.taskId: 0, ridTaskIds);
if(task) { // 更新 if(task) { // 更新
await TowerTaskRecModel.updateTask(roleId, batchCode, position, taskId); tasks.push(await TowerTaskRecModel.updateTask(roleId, batchCode, position, taskId));
} else { } else {
await TowerTaskRecModel.createTask(roleId, roleName, batchCode, taskId, position); tasks.push(await TowerTaskRecModel.createTask(roleId, roleName, batchCode, taskId, position));
} }
ridTaskIds.push(taskId); ridTaskIds.push(taskId);
} }
@@ -406,21 +406,27 @@ export async function refreshTasks(towerLv: number, batchCode: string, roleId: s
} }
function randomTaskId(towerLv: number, oldTaskId: number, rids: number[]) { function randomTaskId(towerLv: number, oldTaskId: number, rids: number[]) {
let randomList: DicTowerTask[] = [];
let dicTask = gameData.towerTask; let dicTask = gameData.towerTask;
let oldQuality = dicTask.has(oldTaskId)? dicTask.get(oldTaskId).quality: 0; let oldQuality = dicTask.has(oldTaskId)? dicTask.get(oldTaskId).quality: 0;
let qualityRange = oldQuality + 1;
if(qualityRange >=5 ) qualityRange = 5;
for (let [_id, task] of dicTask) { let randomList: DicTowerTask[] = [];
if(task.quality >= oldQuality + 1) { while(randomList.length <= 0) { // 如果这个品质范围里面没有,就降一品质再找
let { suitFloor: { min, max } } = task; for (let [_id, task] of dicTask) {
let flag = max ? (towerLv >= min && towerLv <= max) : (towerLv >= min); if(task.quality >= qualityRange && !rids.includes(task.taskId)) {
if (flag) { let { suitFloor: { min, max } } = task;
randomList.push(task); let flag = max ? (towerLv >= min && towerLv <= max) : (towerLv >= min);
if (flag) {
randomList.push(task);
}
} }
} }
if(randomList.length <= 0) qualityRange--;
if(qualityRange == 0) return 0;
} }
let list = randomList.filter(cur => !rids.includes(cur.taskId));
let { dic } = getRandEelmWithWeight(list); let { dic } = getRandEelmWithWeight(randomList);
return dic.taskId; return dic.taskId;
} }