From c69a3f65074d8db151d6c8ea843690c2d1fa929c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=86=E8=8E=B9?= Date: Sat, 26 Mar 2022 11:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E4=BB=A4=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E9=A2=86=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/domain/activityField/taskPassField.ts | 38 +++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) 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 }