package config; import manager.STableManager; import manager.Table; import java.util.HashMap; import java.util.Map; @Table(name ="DifferDemonsComonpentsConfig") public class SDifferDemonsComonpentsConfig implements BaseConfig { private int id; private int comonpentsId; private int stage; private int[][] cost; private int[][] baseAttribute; private int[][] extraAdd; private Map> extraAddMap; private static Map> sDifferDemonsComonpentsConfig; @Override public void init() throws Exception { Map> sDifferDemonsComonpentsConfigTmp = new HashMap<>(); Map>> extraAddMapTmp = new HashMap<>(); Map config = STableManager.getConfig(SDifferDemonsComonpentsConfig.class); for(SDifferDemonsComonpentsConfig sDifferDemonsComonpentsConfig : config.values()){ int comonpentsId = sDifferDemonsComonpentsConfig.getComonpentsId(); int stage = sDifferDemonsComonpentsConfig.getStage(); if(!sDifferDemonsComonpentsConfigTmp.containsKey(comonpentsId)){ sDifferDemonsComonpentsConfigTmp.put(comonpentsId,new HashMap<>()); extraAddMapTmp.put(comonpentsId,new HashMap<>()); } int[][] extraAdd = sDifferDemonsComonpentsConfig.getExtraAdd(); Map> extraMapTmpInfo = extraAddMapTmp.get(comonpentsId); HashMap> extraCopyMapHashMap = new HashMap<>(extraMapTmpInfo); if(extraAdd!=null&&extraAdd.length>0){ for(int [] extraItem : extraAdd){ int profession = extraItem[0]; int propertyId = extraItem[1]; int propertyValue = extraItem[2]; if(!extraMapTmpInfo.containsKey(profession)){ extraMapTmpInfo.put(profession,new HashMap<>()); } if(extraMapTmpInfo.get(profession).containsKey(propertyId)){ propertyValue+=extraMapTmpInfo.get(profession).get(propertyId); } extraCopyMapHashMap.put(profession,new HashMap<>()); extraMapTmpInfo.put(profession,new HashMap<>()); extraCopyMapHashMap.get(profession).put(propertyId,propertyValue); extraMapTmpInfo.get(profession).put(propertyId,propertyValue); } } sDifferDemonsComonpentsConfig.setExtraAddMap(extraCopyMapHashMap); sDifferDemonsComonpentsConfigTmp.get(comonpentsId).put(stage,sDifferDemonsComonpentsConfig); } sDifferDemonsComonpentsConfig = sDifferDemonsComonpentsConfigTmp; } public static Map getsDifferDemonsComonpentsConfigMap(int comonpentId) { return sDifferDemonsComonpentsConfig.get(comonpentId); } public int getId() { return id; } public int getComonpentsId() { return comonpentsId; } public int getStage() { return stage; } public int[][] getCost() { return cost; } public int[][] getBaseAttribute() { return baseAttribute; } public int[][] getExtraAdd() { return extraAdd; } public Map> getExtraAddMap() { return extraAddMap; } public void setExtraAddMap(Map> extraAddMap) { this.extraAddMap = extraAddMap; } }