diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java index 82b6b117f..8fa04a912 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/CommonStaticConfig.java @@ -35,7 +35,9 @@ public class CommonStaticConfig extends AbstractClassStaticConfig { public Map> matrixforGroupInfo; - public static Map> type2lay2weight; + public Map> type2lay2weight; + public Map> type2holy2weight; + @Override public void registConfigs(Set registConfigs) { registConfigs.add(SGameSetting.class.getAnnotation(Table.class).name()); @@ -206,6 +208,22 @@ public class CommonStaticConfig extends AbstractClassStaticConfig { } catch (Exception e) { LOGGER.error("SWorkShopTechnology init fail",e); } + + try { + type2holy2weight= new HashMap<>(); + Map config = STableManager.getConfig(SExpeditionHolyConfig.class); + config.forEach((integer, sExpeditionHolyConfig) -> { + int holyid = sExpeditionHolyConfig.getId(); + int type = sExpeditionHolyConfig.gettype(); + Map orDefault = type2holy2weight.getOrDefault(type, new HashMap<>()); + orDefault.put(holyid, sExpeditionHolyConfig.getWeight()); + type2holy2weight.put(type, orDefault); + }); + + } catch (Exception e) { + LOGGER.error("SWorkShopTechnology init fail",e); + } + } @@ -288,4 +306,12 @@ public class CommonStaticConfig extends AbstractClassStaticConfig { } return sWorkTechMapByTechIdAndLevelTmp.get(techId).get(level); } + + public Map> getType2lay2weight() { + return type2lay2weight; + } + + public Map getType2holy2weight(int type) { + return type2holy2weight.get(type); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index c6bb83c77..49d68dea1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -98,7 +98,9 @@ public class ExpeditionLogic { String mailReward = ItemUtil.getMailReward(itemArrs); int nowTime = (int) (TimeUtils.now() / 1000); //TODO title content 走配置 - MailLogic.getInstance().sendMail(user.getId(), "title", "content", mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + String title = SErrorCodeEerverConfig.getI18NMessage("expedition_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("expedition_txt",new Object[]{user.getExpeditionManager().getLay()-1}); + MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); } /** @@ -257,7 +259,7 @@ public class ExpeditionLogic { int totalIndex = 1; Set nodeSets = new HashSet<>(); Map> map = new HashMap<>(); - for (Map.Entry> integerMapMap :CommonStaticConfig.type2lay2weight.entrySet()){ + for (Map.Entry> integerMapMap :STableManager.getFigureConfig(CommonStaticConfig.class).getType2lay2weight().entrySet()){ int type = integerMapMap.getKey(); int lay = ranndomFromWeight(integerMapMap.getValue()); Set value = map.getOrDefault(lay,new HashSet<>()); @@ -350,12 +352,19 @@ public class ExpeditionLogic { //生成圣物 設置 if (type == NODETYPE_ADVANCE || type == NODETYPE_BOSS || type == NODETYPE_NORMAL) { - if (cfg.getHolyProbability().length < 3) { - throw new ErrorCodeException(ErrorCode.newDefineCode("随机库配错")); - } - int[] ints = MathUtils.randomFromWeightWithTaking(cfg.getHolyProbability(), 3); +// if (cfg.getHolyProbability().length < 3) { +// throw new ErrorCodeException(ErrorCode.newDefineCode("随机库配错")); +// } + + + Set staffsSet = new HashSet<>(); - Arrays.stream(ints).forEach(staffsSet::add); + while (staffsSet.size()<3){ + int ints = MathUtils.randomFromWeight(cfg.getHolyProbability()); + Map type2holy2weight = STableManager.getFigureConfig(CommonStaticConfig.class).getType2holy2weight(ints); + int i1 = ranndomFromWeight(type2holy2weight); + staffsSet.add(i1); + } nodeInfo.setHolyEquipId(staffsSet); } nodeInfo.setState(NODESTATE_CLOSE);