diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/home/HomeLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/home/HomeLogic.java index 5859a9d9f..d5894153b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/home/HomeLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/home/HomeLogic.java @@ -348,22 +348,22 @@ public class HomeLogic { public void equipIntensify(ISession session, PlayerInfoProto.EquipIntensifyRequset proto) throws Exception{ User user = UserManager.getUser(session.getUid()); int type = proto.getType(); + Map rankUpMap = STableManager.getConfig(SEquipRankUp.class); + Map config = STableManager.getConfig(SEquipStrengthen.class); // 突破 if (type == 0){ - Map config = STableManager.getConfig(SEquipRankUp.class); int up = user.getEquipManager().getEquipHomeRankUp(); int newUp = up+1; // 验证配置表 - SEquipRankUp oldRankUp = config.get(up); - SEquipRankUp newRankUp = config.get(newUp); + SEquipRankUp oldRankUp = rankUpMap.get(up); + SEquipRankUp newRankUp = rankUpMap.get(newUp); if (oldRankUp == null || newRankUp == null){ throw new ErrorCodeException(ErrorCode.SERVER_DEFINE,"突破等级不存在,新突破等级:"+newUp); } // 强化等级验证 Map intensifyMap = user.getEquipManager().getEquipIntensifyMap(); - Map map = STableManager.getConfig(SEquipStrengthen.class); for (Map.Entry entry : intensifyMap.entrySet()) { - Integer level = Optional.ofNullable(map.get(entry.getValue())).map(SEquipStrengthen::getLevel).orElse(0); + Integer level = Optional.ofNullable(config.get(entry.getValue())).map(SEquipStrengthen::getLevel).orElse(0); if (level < oldRankUp.getLimit()){ throw new ErrorCodeException(ErrorCode.SERVER_DEFINE,"强化等级不足,位置:"+entry.getKey()+",当前等级:"+entry.getValue()); } @@ -377,7 +377,6 @@ public class HomeLogic { } // 1-4 装备强化 if (type >= 1 && type <= 4){ - Map config = STableManager.getConfig(SEquipStrengthen.class); Map levelMap = STableManager.getConfig(SHomeLandLevel.class); int nowId = user.getEquipManager().getEquipIntensifyMap().get(type); int newId = nowId + 1; @@ -397,7 +396,7 @@ public class HomeLogic { throw new ErrorCodeException(ErrorCode.SERVER_DEFINE,"建筑等级不足,位置:"+type+",新等级:"+newId); } // 校验突破等级 - int homeRankUp = user.getEquipManager().getEquipHomeRankUp(); + int homeRankUp = Optional.ofNullable(rankUpMap.get(user.getEquipManager().getEquipHomeRankUp())).map(SEquipRankUp::getLevel).orElse(0); if (oldStrengthen.getLimit2() > homeRankUp){ throw new ErrorCodeException(ErrorCode.SERVER_DEFINE,"突破等级不足,位置:"+type+",当前突破等级:"+homeRankUp); } @@ -408,6 +407,7 @@ public class HomeLogic { } user.getEquipManager().putEquipIntensifyMap(type,newStrengthen.getid()); } + // 返回装备强化信息 List intensifyList = CBean2Proto.getEquipIntensifyList(user); PlayerInfoProto.EquipIntensifyResponse.Builder builder = PlayerInfoProto.EquipIntensifyResponse.newBuilder() .addAllInfos(intensifyList).setEquipRankUp(user.getEquipManager().getEquipHomeRankUp());