From 12a6f5d58095465ac032a9252e7f70c59288b023 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Fri, 16 Apr 2021 20:47:46 +0800 Subject: [PATCH] 15 --- .../logic/activity/FifteenActivity.java | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java index e5bbadab4..bc8ba0300 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/FifteenActivity.java @@ -1,12 +1,24 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.ToolsUtil; import config.SActivityRewardConfig; +import config.SGlobalActivity; +import rpc.protocols.CommonProto; +import rpc.protocols.PlayerInfoProto; import util.TimeUtils; +import java.util.*; + +import static config.SGlobalActivity.getsGlobalActivityMapByType; + public class FifteenActivity extends AbstractActivity { public FifteenActivity(int id) { @@ -16,9 +28,69 @@ public class FifteenActivity extends AbstractActivity { @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { User user = UserManager.getUser(session.getUid()); - if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),System.currentTimeMillis(),0) typeList = SGlobalActivity.getsGlobalActivityMapByType(id); + if(typeList == null){ + return; + } + for(SGlobalActivity globalActivity : typeList){ + ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),globalActivity.getId()); + if(user.getActivityManager().getActivityMissionMap().get(globalActivity.getId()) == null){ + continue; + } + long startTime = ToolsUtil.getTimeLong + (globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(), + user.getPlayerInfoManager().getCreateTime(), 1); + int st = (int)(startTime/1000); + for(Map.Entry entry : user.getActivityManager().getActivityMissionMap(). + get(globalActivity.getId()).getActivityMissionMap().entrySet()){ + SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(entry.getKey()); + entry.getValue().setProgrss((int)((TimeUtils.DAY * (config.getValues()[0][0] - 1))/1000) + st); + } + } + } + + @Override + public boolean takeReward(ISession session, int missionId) throws Exception { + if(missionId!=-1){ + return super.takeReward(session, missionId); + } + User user = UserManager.getUser(session.getUid()); + List reward = new ArrayList<>(); + getAllMissRewards(user,session,reward); + Map itemMap = new HashMap<>(); + reward.forEach(n-> Arrays.stream(n).forEach(m->itemMap.put(m[0],itemMap.getOrDefault(m[0], 0)+m[1]))); + + int[][] rewardArray = ItemUtil.mapToArray(itemMap); + CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardArray, BIReason.TAKE_ACTIVITY_REWARD); + + PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); + + reportTakeActivityReward(user,rewardArray,missionId); + + MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true); + + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + boolean isAll = true; + for(Map.Entry entry:activityMission.getActivityMissionMap().entrySet()){ + if(entry.getValue().getState()==0){ + isAll=false; + break; + } + } + if(isAll){ + activityMission.setV(2); + } + + return true; + + } } \ No newline at end of file