diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java index 300b09942..beba47908 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/CowFlySkyActivity.java @@ -130,7 +130,7 @@ public class CowFlySkyActivity extends AbstractActivity { // 活动奖励 getAllMissRewards(user, session, itemArrs); // 任务奖励 - user.getUserMissionManager().getCowFlySkyMissionType().getAllRewards(itemArrs); + user.getUserMissionManager().getCowFlySkyMissionType().getAllRewards(itemArrs,id); if (itemArrs.size() == 0){ return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java index 38e7b19ba..bf49601af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/main/CowFlySkyMissionType.java @@ -7,10 +7,7 @@ import com.ljsd.jieling.logic.mission.MissionState; import config.SArroGantFly; import manager.STableManager; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; public class CowFlySkyMissionType extends AbstractMissionType { @@ -25,9 +22,33 @@ public class CowFlySkyMissionType extends AbstractMissionType { return arroGantFly.getReward(); } - @Override - public void getAllRewards(List itemAttrs){ - super.getAllRewards(this, itemAttrs); + public void rewardByCow(int missionId, int activityId, List itemAttrs) { + SArroGantFly arroGantFly = SArroGantFly.getActivityMap().getOrDefault(activityId, new HashMap<>()).get(missionId); + if (arroGantFly == null){ + return; + } + itemAttrs.add(arroGantFly.getReward()); + } + + public void getAllRewards(List itemAttrs, int activityId){ + // 可领取任务 + Set finishMissionIds = this.getFinishMissionIds(); + // 已完成任务 + BitSet bitSet = this.getRewardedMissionIds(); + if (finishMissionIds == null || finishMissionIds.isEmpty()){ + return; + } + // 遍历 + Iterator iterator = finishMissionIds.iterator(); + while (iterator.hasNext()){ + Integer next = iterator.next(); + // 添加奖励 + rewardByCow(next,activityId,itemAttrs); + // 存入已完成 + bitSet.set(next); + // 删除 + iterator.remove(); + } } @Override