parent
091cf93f40
commit
cf58cda027
|
@ -153,10 +153,19 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler<ArenaInfoProto.
|
|||
//我赢了
|
||||
winerGetScore = setting.getBattleWinReward()[0]+(defScores-ackScores);
|
||||
loserGetScore = setting.getBattleLoseReward()[0]+(ackScores-defScores);
|
||||
//降分公式的基础上×70%
|
||||
if(loserGetScore<0){
|
||||
loserGetScore = (int)Math.floor(-loserGetScore*0.7);
|
||||
}
|
||||
}else{
|
||||
//我输了
|
||||
winerGetScore = setting.getBattleWinReward()[0]+(ackScores-defScores);
|
||||
loserGetScore = setting.getBattleLoseReward()[0]+(defScores-ackScores);
|
||||
//降分公式的基础上×70%
|
||||
if(loserGetScore<0){
|
||||
loserGetScore = (int)Math.floor(-loserGetScore*0.7);
|
||||
}
|
||||
|
||||
}
|
||||
if(winerGetScore>setting.getScoreRange()[1]){ //35
|
||||
winerGetScore = setting.getScoreRange()[1];
|
||||
|
|
|
@ -26,10 +26,9 @@ public class TakeMissionRewardHandler extends BaseHandler<PlayerInfoProto.TakeMi
|
|||
public void processWithProto(ISession iSession, PlayerInfoProto.TakeMissionRewardRequest proto) throws Exception {
|
||||
|
||||
if(proto.getMissionId() == 0){
|
||||
|
||||
MissionLoigc.takeMissionRewardOnekey(iSession,proto.getType());
|
||||
}else{
|
||||
MissionLoigc.takeMissionReward(iSession,proto.getType(),proto.getMissionId());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -711,29 +711,50 @@ public class MissionLoigc {
|
|||
* 一键领取任务奖励
|
||||
* @param session
|
||||
* @param type
|
||||
* @param missionId
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void takeMissionRewardOnekey(ISession session,int type,int missionId) throws Exception{
|
||||
public static void takeMissionRewardOnekey(ISession session,int type) throws Exception{
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
UserMissionManager userMissionManager = user.getUserMissionManager();
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = null;
|
||||
List<MissionStateChangeInfo> missionStateChangeInfos = new ArrayList<MissionStateChangeInfo>();
|
||||
//日常 任务
|
||||
//List<int[][]>rewardList = new ArrayList<int[][]>();
|
||||
Map <Integer,Integer> rewardMap =new HashMap<Integer,Integer>();
|
||||
if(type == GameMisionType.DAILYMISSION.getType()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap =
|
||||
userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
|
||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
|
||||
for(int missionId:SDailyTasksConfig.config.keySet()){
|
||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap =
|
||||
userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
|
||||
missionStateChangeInfos.addAll(gameMisionTypeListMap.get(GameMisionType.DAILYMISSION));
|
||||
//missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
|
||||
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
|
||||
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){
|
||||
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD);
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
|
||||
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||
//奖励汇总
|
||||
PlayerInfoProto.TakeMissionRewardResponse.Builder res= PlayerInfoProto.TakeMissionRewardResponse.newBuilder();
|
||||
for(MissionStateChangeInfo info:missionStateChangeInfos){
|
||||
if(info.getRewwardGroups()!=null){
|
||||
for(int[] reward:info.getRewwardGroups()){
|
||||
if(rewardMap.containsKey(reward[0])){
|
||||
rewardMap.put(reward[0],rewardMap.get(reward[0])+reward[1]);
|
||||
}else{
|
||||
rewardMap.put(reward[0],reward[1]);
|
||||
}
|
||||
res.addRewardId(info.getMissionId());
|
||||
}
|
||||
}
|
||||
ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(info.getMissionId()),type);
|
||||
}
|
||||
int[][] itemArr = rewardMap.entrySet().stream().map(n->new int[] {n.getKey(),n.getValue()}).toArray(int[][]::new);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, itemArr, BIReason.TAKE_MISSION_REWARD);
|
||||
//ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
|
||||
//PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,res.build(),true);
|
||||
}else{
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("mission can not get reward"));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue