miduo_server/tablemanager/src/main/java/config/SCompareNumSetting.java

98 lines
2.8 KiB
Java

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<Integer, SCompareNumSetting> sCompareNumSettingMap = new HashMap<>();
private static Map<Integer, List<SCompareNumSetting>> 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<SCompareNumSetting> 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<SCompareNumSetting> 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<Integer, SCompareNumSetting> 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<SCompareNumSetting> getListByChapter(int chapterId) {
return chapter2List.get(chapterId);
}
}