package config; import manager.STableManager; import manager.Table; import java.util.*; @Table(name ="CompareNumSetting") public class SCompareNumSetting implements BaseConfig { private int id; private int chapter; private int[][] levelLimit; private int[] buildID; private int[][] passReward; private int repeat; private static Map sCompareNumSettingMap = new HashMap<>(); private static Map> chapter2List = new HashMap<>(); @Override public void init() throws Exception { sCompareNumSettingMap = STableManager.getConfig(SCompareNumSetting.class); for (SCompareNumSetting cfg: sCompareNumSettingMap.values()) { chapter2List.computeIfAbsent(cfg.chapter, v -> new ArrayList<>()).add(cfg); } } public static int getChapterNumById(int id, boolean isEndGame) { int count = 0; SCompareNumSetting cfg = sCompareNumSettingMap.get(id); if (cfg != null) { List list = chapter2List.get(cfg.getChapter()); if (list != null && list.size() > 0) { SCompareNumSetting info = list.get(0); if (info != null) { int lastId = (int)((TreeMap)SCompareNumSetting.getCompareNumSettingMap()).lastEntry().getKey(); if (lastId == id && isEndGame) { count = id - info.getId() + 1; } else { count = id - info.getId(); } if (count < 0) { count = 0; } } } } return count; } // public static int[][] getRewardInfoByChapter(int chapter) { // List list = chapter2List.get(chapter); // if (list != null && list.size() > 0) { // SCompareNumSetting info = list.get(0); // if (info != null) { // return info.getReward(); // } // } // return new int[0][]; // } public static SCompareNumSetting getConfig(int id) { return sCompareNumSettingMap.get(id); } public static Map getCompareNumSettingMap() { return sCompareNumSettingMap; } public int getId() { return id; } public int getChapter() { return chapter; } public int[][] getLevelLimit() { return levelLimit; } public int[][] getPassReward() { return passReward; } public int getRepeat() { return repeat; } public static List getListByChapter(int chapterId) { return chapter2List.get(chapterId); } }