copy mission

back_recharge
wangyuan 2019-06-21 18:24:40 +08:00
parent c65c4ecd75
commit c66f849854
3 changed files with 23 additions and 3 deletions

View File

@ -17,6 +17,7 @@ public interface BIReason {
int TAKE_MISSION_REWARD = 11;// 领取任务奖励
int TAKE_ACTIVITY_REWARD = 12;// 领取活动奖励
int TAKE_COPY_REWARD = 12;// 领取活动奖励
int TAKE_SECRET_REWARD = 13; //秘盒奖励
int TAKE_SECRET_EXTRA_REWARD = 14;//秘盒额外奖励

View File

@ -43,7 +43,7 @@ public class MapManager extends MongoBase {
private MapMission mapMissionProgres;
private MapMission copyMissionProgres; //副本累计
private MapMission copyMissionProgres=new MapMission(); //副本累计
private Set<Integer> takeCopyMisionRewards =new HashSet<>();//副本奖励
@ -433,6 +433,11 @@ public class MapManager extends MongoBase {
return fightCount;
}
public void setTakeCopyMisionRewards(Set<Integer> takeCopyMisionRewards) {
updateString("takeCopyMisionRewards" , takeCopyMisionRewards);
this.takeCopyMisionRewards = takeCopyMisionRewards;
}
public void setFightCount(int fightCount) {
updateString("fightCount" , fightCount);
this.fightCount = fightCount;

View File

@ -134,8 +134,22 @@ public class MissionLoigc {
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
}
if(type == GameMisionType.COPYMISSION.getType()){ //副本 任务
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.COPY_MISSION_REWARD, missionId);
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.COPYMISSION);
Set<Integer> takeCopyMisionRewards = user.getMapManager().getTakeCopyMisionRewards();
if(takeCopyMisionRewards.contains(missionId)){
return;
}
Map<Integer, Integer> allMissionProgress = user.getMapManager().getCopyMissionProgres().getAllMissionProgress();
int finsihProgress = SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId).getValues()[1][0];
if(!allMissionProgress.containsKey(missionId) || allMissionProgress.get(missionId) <finsihProgress){
MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,"mission can not get reward");
return;
}
takeCopyMisionRewards.add(missionId);
user.getMapManager().setTakeCopyMisionRewards(takeCopyMisionRewards);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, SAccomplishmentConfig.getsAccomplishmentConfigByIdMap(missionId).getReward(), BIReason.TAKE_COPY_REWARD);
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
return;
}
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){