parent
f07c099715
commit
12a6f5d580
|
@ -1,12 +1,24 @@
|
||||||
package com.ljsd.jieling.logic.activity;
|
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.jbean.ActivityProgressInfo;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
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.SActivityRewardConfig;
|
||||||
|
import config.SGlobalActivity;
|
||||||
|
import rpc.protocols.CommonProto;
|
||||||
|
import rpc.protocols.PlayerInfoProto;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import static config.SGlobalActivity.getsGlobalActivityMapByType;
|
||||||
|
|
||||||
public class FifteenActivity extends AbstractActivity {
|
public class FifteenActivity extends AbstractActivity {
|
||||||
|
|
||||||
public FifteenActivity(int id) {
|
public FifteenActivity(int id) {
|
||||||
|
@ -16,9 +28,69 @@ public class FifteenActivity extends AbstractActivity {
|
||||||
@Override
|
@Override
|
||||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),System.currentTimeMillis(),0)<sActivityRewardConfig.getValues()[0][0]-1){
|
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),
|
||||||
|
System.currentTimeMillis(),0)<sActivityRewardConfig.getValues()[0][0]-1){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initActivity(User user) throws Exception {
|
||||||
|
List<SGlobalActivity> 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<Integer,ActivityProgressInfo> 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<int[][]> reward = new ArrayList<>();
|
||||||
|
getAllMissRewards(user,session,reward);
|
||||||
|
Map<Integer,Integer> 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<Integer,ActivityProgressInfo> entry:activityMission.getActivityMissionMap().entrySet()){
|
||||||
|
if(entry.getValue().getState()==0){
|
||||||
|
isAll=false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isAll){
|
||||||
|
activityMission.setV(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue