diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 5a1969fdb..e787cd7b2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -14,6 +14,7 @@ import com.ljsd.jieling.handler.mission.Mission; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.CheckFight; +import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.hero.HeroAttributeEnum; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mission.GameEvent; @@ -76,7 +77,6 @@ public class MapLogic { int uid = iSession.getUid(); User user = UserManager.getUser(uid); MapManager mapManager = user.getMapManager(); - mapManager.setStartExporeTime(0); if (teamId == 0) { LOGGER.info("enterMap() uid=>{} teamId =>{} ", uid, teamId); MessageUtil.sendErrorResponse(iSession, 0, messageType.getNumber(), ""); @@ -239,8 +239,8 @@ public class MapLogic { buffers.add(CBean2Proto.getTowerBuff(buff)); } } - mapManager.setCurrTowerTime(TimeUtils.now()); - //mapEnterResponse.addAllBuf(buffers); +// mapManager.setStartExporeTime(System.currentTimeMillis()); + mapEnterResponse.addAllBuf(buffers); LOGGER.info("enterMap() uid=>{} mapId =>{}", uid, mapManager.getCurMapId()); MessageUtil.sendMessage(iSession, 1, messageType.getNumber(), mapEnterResponse.build(), true); } @@ -550,8 +550,17 @@ public class MapLogic { return; } int behaviorType = sOptionConfig.getBehaviorType(); + int[][] behaviorTypeValues = sOptionConfig.getBehaviorTypeValues(); BaseBehavior baseBehavior = baseBehaviorMap.get(behaviorType); MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse = MapInfoProto.EventUpdateResponse.newBuilder(); + if (baseBehavior != null) { + boolean isSuccess = baseBehavior.process(optionId, user, behaviorTypeValues, eventUpdateResponse); + if (!isSuccess) { + LOGGER.info("updatePonintEvent() baseBehavior process fail! behaviorType=>{}", behaviorType); + MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); + return; + } + } if (mapPointConfig.getTriggerRules() == 1) { cell = mapManager.getMapInfo().get(mapManager.getTriggerXY()); } else { @@ -575,11 +584,20 @@ public class MapLogic { if (sOptionConfig.getReward().length > 0) { dropBuilder = ItemUtil.drop(user, sOptionConfig.getReward(), 1, 1, BIReason.MAP_EVENET_REWARD); } - CommonProto.EventBehaviorCommon.Builder eventBehaviorCommon = behaviorBuild(user, optionId); - if(eventBehaviorCommon==null){ - eventBehaviorCommon = CommonProto.EventBehaviorCommon.newBuilder(); - MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"消息错误"); + List eventBehaviorValuesList = new ArrayList<>(); + for (int i = 0; i < sOptionConfig.getBehaviorTypeValues().length; i++) { + CommonProto.EventBehaviorValues.Builder eventBehaviorValues = CommonProto.EventBehaviorValues + .newBuilder(); + for (int j = 0; j < sOptionConfig.getBehaviorTypeValues()[i].length; j++) { + eventBehaviorValues.addBehaviorValues(sOptionConfig.getBehaviorTypeValues()[i][j]); + } + eventBehaviorValuesList.add(eventBehaviorValues.build()); } + CommonProto.EventBehaviorCommon eventBehaviorCommon = CommonProto.EventBehaviorCommon + .newBuilder() + .setBehaviorType(sOptionConfig.getBehaviorType()) + .addAllEventBehaviorValues(eventBehaviorValuesList) + .build(); eventUpdateResponse.setEventBehaviorCommon(eventBehaviorCommon); eventUpdateResponse.setEventId(nextEventId); eventUpdateResponse.setLeftTime(getLeftTime(user, true)); @@ -791,11 +809,11 @@ public class MapLogic { MapManager mapManager = user.getMapManager(); SChallengeConfig challengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()); if(challengeConfig.getType()==2){ -// int time = (int)((System.currentTimeMillis()-mapManager.getStartExporeTime())/1000); -// mapManager.setCurrTowerTime(time); -// if(mapManager.getEveryTowerTime()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){ -// mapManager.setTowerTimeByTower(mapManager.getTower(),time); -// } + int time = (int)((System.currentTimeMillis()-mapManager.getStartExporeTime())/1000); + mapManager.setCurrTowerTime(time); + if(mapManager.getEveryTowerTime()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){ + mapManager.setTowerTimeByTower(mapManager.getTower(),time); + } if(mapManager.getTower()>=1){ mapManager.setMapIntoFlag(1); } @@ -810,9 +828,8 @@ public class MapLogic { } } MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder(); - int time = (int) (TimeUtils.now()-mapManager.getCurrTowerTime())/1000; - builder.setUseTime(time); - LOGGER.info("当前层使用时间{}",time); + // builder.setUseTime(mapManager.getCurrTowerTime()); + LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime()); if(mapManager.getTower()>mapManager.getHighestTower()){ mapManager.setHighestTower(mapManager.getTower()); } @@ -1228,8 +1245,9 @@ public class MapLogic { if (monsterGroupId == mapManager.getSuddenlyBoss()) { mapManager.findSuddenlyBoss(0, 0); } +// if(mapManager.getBossType()==1) if(mapManager.getTower()==STrialConfig.getHighestTower()&&mapManager.getBossType()!=0){ - fightEndResponse.setLastTowerTime((int)(TimeUtils.now()-mapManager.getCurrTowerTime())/1000); + // fightEndResponse.setLastTowerTime(mapManager.getCurrTowerTime()); }else{ fightEndResponse.setLastTowerTime(0); } @@ -1546,7 +1564,7 @@ public class MapLogic { .setMapIntoReset(mapManager.getMapIntoFlag()) .build(); builder.setTowerCopyInfo(towerCopyInfo); - LOGGER.info("关卡信息{}",towerCopyInfo.toString()); + LOGGER.info("关卡信息{}"+towerCopyInfo.toString()); MessageUtil.sendMessage(iSession, 1, msgId, builder.build(), true); } @@ -2066,8 +2084,6 @@ public class MapLogic { type = 2; }else if(mapManager.getTower()==2){ type = 4; - }else if(mapManager.getTower()==3||mapManager.getTower()==4){ - type = 3; } @@ -2160,7 +2176,7 @@ public class MapLogic { return; } boolean isUse = ItemUtil.itemCost(user,bomb,BIReason.BOMB_CONSUME,mapManager.getCurMapId()); - if(!isUse){ + if(isUse){ MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无炸弹"); return; } @@ -2226,17 +2242,17 @@ public class MapLogic { } // TODO 检测重置次数 PlayerManager playerInfoManager = user.getPlayerInfoManager(); - if( !playerInfoManager.check(VipPrivilegeType.TOWER_RESRT_NUM, 1)){ + if( !playerInfoManager.check(VipPrivilegeType.TOWER_RESRT_NUM, 1)){ return; - } - playerInfoManager.updateVipPrivilage(VipPrivilegeType.TOWER_RESRT_NUM,1); + } + playerInfoManager.updateVipPrivilage(VipPrivilegeType.TOWER_RESRT_NUM,1); - if(mapManager.getTower()>5){ - mapManager.setTower(mapManager.getTower()-mapManager.getTower()%5); - }else{ - mapManager.setTower(1); - } + if(mapManager.getTower()>5){ + mapManager.setTower(mapManager.getTower()-mapManager.getTower()%5); + }else{ + mapManager.setTower(1); + } mapManager.setFightCount(0); mapManager.setEssenceValue(0); @@ -2266,58 +2282,21 @@ public class MapLogic { MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),err); return; } - User user = UserManager.getUser(uid); + int mapPointId = mapManager.getTowerUnusedBuffer().get(towerLevel); mapManager.consunmeTowerBuffer(towerLevel); + int buffId = SOptionConfig.sOptionConfigMap.get(optionId).getBehaviorTypeValues()[0][0]; + + LOGGER.info("使用第{},mapPointId,id是:{}",towerLevel,mapPointId); + CombatLogic.getInstance().bufferAddByEatFoodOrEventTrigger(mapManager,buffId); + LOGGER.info("使用第"+towerLevel+"层buff,id是:"+buffId); MapInfoProto.UseTowerBuffResponse.Builder useTowerBuffResponse = MapInfoProto.UseTowerBuffResponse.newBuilder(); - CommonProto.EventBehaviorCommon.Builder eventBehaviorCommon = behaviorBuild(user, optionId); - if(eventBehaviorCommon==null){ - useTowerBuffResponse = MapInfoProto.UseTowerBuffResponse.newBuilder(); - MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"使用错误"); - } - useTowerBuffResponse.setEventBehaviorCommon(eventBehaviorCommon); + + // useTowerBuffResponse.setBuffId(buffId); MessageUtil.sendMessage(session,1,messageType.getNumber(),useTowerBuffResponse.build(),true); } - /** - * 事件类型构造 - * @param user - * @param optionId - * @return - * @throws Exception - */ - private CommonProto.EventBehaviorCommon.Builder behaviorBuild(User user,int optionId) throws Exception { - SOptionConfig sOptionConfig = SOptionConfig.sOptionConfigMap.get(optionId); - int behaviorType = sOptionConfig.getBehaviorType(); - int[][] behaviorTypeValues = sOptionConfig.getBehaviorTypeValues(); - BaseBehavior baseBehavior = baseBehaviorMap.get(behaviorType); - MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse = MapInfoProto.EventUpdateResponse.newBuilder(); - if (baseBehavior != null) { - boolean isSuccess = baseBehavior.process(optionId, user, behaviorTypeValues, eventUpdateResponse); - if (!isSuccess) { - LOGGER.info("updatePonintEvent() baseBehavior process fail! behaviorType=>{}", behaviorType); -// MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); - return null; - } - } - List eventBehaviorValuesList = new ArrayList<>(); - for (int i = 0; i < sOptionConfig.getBehaviorTypeValues().length; i++) { - CommonProto.EventBehaviorValues.Builder eventBehaviorValues = CommonProto.EventBehaviorValues - .newBuilder(); - for (int j = 0; j < sOptionConfig.getBehaviorTypeValues()[i].length; j++) { - eventBehaviorValues.addBehaviorValues(sOptionConfig.getBehaviorTypeValues()[i][j]); - } - eventBehaviorValuesList.add(eventBehaviorValues.build()); - } - CommonProto.EventBehaviorCommon.Builder eventBehaviorCommon = CommonProto.EventBehaviorCommon - .newBuilder() - .setBehaviorType(sOptionConfig.getBehaviorType()) - .addAllEventBehaviorValues(eventBehaviorValuesList); - return eventBehaviorCommon; - } - - private String checkUseTowerBuff(MapManager mapManager,int towerLevel,int optionId){ if(!mapManager.getTowerUnusedBuffer().containsKey(towerLevel)){ return "使用错误,当前层不存在buff";