diff --git a/shared/domain/activityField/taskPassField.ts b/shared/domain/activityField/taskPassField.ts index fa45933eb..4d766ac11 100644 --- a/shared/domain/activityField/taskPassField.ts +++ b/shared/domain/activityField/taskPassField.ts @@ -49,6 +49,7 @@ export class TaskPassRewardItem { lv: number; reward: string; needShow: boolean; + pageIndex: number; hasReceived: boolean = false; @@ -201,26 +202,37 @@ export class TaskPassData extends ActivityBase { // 领取道具 public receiveItems(pageIndex: number, lv: number) { - let reward = this.findRewardByPageIndex(pageIndex); - if(!reward) return false; - - if(!reward.canReceiveItems()) return false; + let rewards: TaskPassReward[] = []; + if(pageIndex == 0) { + rewards = this.rewards; + } else { + let reward = this.findRewardByPageIndex(pageIndex); + rewards.push(reward) + } let items: TaskPassRewardItem[] = []; - if(lv == 0) { - for(let item of reward.items) { - if(item.lv <= this.lv && !item.hasReceived) { + for(let reward of rewards) { + if(!reward) continue; + if(!reward.canReceiveItems()) continue; + + if(lv == 0) { + for(let item of reward.items) { + if(item.lv <= this.lv && !item.hasReceived) { + item.setHasReceived(true); + item.pageIndex = reward.pageIndex; + items.push(item); + } + } + } else { + let item = reward.findItemByLv(lv); + if(!item.hasReceived) { item.setHasReceived(true); + item.pageIndex = reward.pageIndex; items.push(item); } } - } else { - let item = reward.findItemByLv(lv); - if(!item.hasReceived) { - item.setHasReceived(true); - items.push(item); - } } + if(items.length <= 0) return false; return items }