97 lines
3.1 KiB
Java
97 lines
3.1 KiB
Java
package config;
|
|
|
|
import manager.STableManager;
|
|
import manager.Table;
|
|
|
|
import java.util.Map;
|
|
import java.util.TreeMap;
|
|
|
|
@Table(name ="GuildBossRewardConfig")
|
|
public class SGuildBossRewardConfig implements BaseConfig {
|
|
|
|
private int id;
|
|
|
|
private int damage;
|
|
|
|
private int[] reward;
|
|
|
|
private int[][] randomReward;
|
|
|
|
private int[][][] randomRewardAllGroup;
|
|
|
|
|
|
private static TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfig;
|
|
|
|
|
|
@Override
|
|
public void init() throws Exception {
|
|
Map<Integer, SGuildBossRewardConfig> config = STableManager.getConfig(SGuildBossRewardConfig.class);
|
|
for(SGuildBossRewardConfig sGuildBossRewardConfig : config.values()){
|
|
int[] reward = sGuildBossRewardConfig.getReward();
|
|
int prelength=0;
|
|
int[] preReward=null;
|
|
int[][][] randomRewardAllGroupTmpPre=null;
|
|
if(sGuildBossRewardConfig.getId()!=1){
|
|
SGuildBossRewardConfig sGuildBossRewardConfigPre = config.get(sGuildBossRewardConfig.getId() - 1);
|
|
preReward=sGuildBossRewardConfigPre.getReward();
|
|
randomRewardAllGroupTmpPre=sGuildBossRewardConfigPre.getRandomRewardAllGroup();
|
|
prelength = preReward.length;
|
|
}
|
|
int rewardFinl[] = new int[reward.length+prelength];
|
|
System.arraycopy(reward,0,rewardFinl,0,reward.length);
|
|
sGuildBossRewardConfig.setReward(rewardFinl);
|
|
int[][][] randomRewardAllGroupTmp = new int[sGuildBossRewardConfig.getId()][][];
|
|
randomRewardAllGroupTmp[0] =sGuildBossRewardConfig.getRandomReward();
|
|
if(prelength>0){
|
|
System.arraycopy(preReward,0,rewardFinl,reward.length,preReward.length);
|
|
/* for(int i=1;i<preReward.length;i++){
|
|
randomRewardAllGroupTmp[i] = new int[2][];
|
|
}*/
|
|
System.arraycopy(randomRewardAllGroupTmpPre,0,randomRewardAllGroupTmp,1,randomRewardAllGroupTmpPre.length);
|
|
}
|
|
sGuildBossRewardConfig.setRandomRewardAllGroup(randomRewardAllGroupTmp);
|
|
|
|
|
|
}
|
|
TreeMap<Integer, SGuildBossRewardConfig> sGuildBossHurtRewardConfigTmp = new TreeMap<>();
|
|
config.values().forEach(item ->sGuildBossHurtRewardConfigTmp.put(item.getDamage(),item));
|
|
sGuildBossHurtRewardConfig = sGuildBossHurtRewardConfigTmp;
|
|
}
|
|
|
|
public static SGuildBossRewardConfig getIndexByHurt(int hurtValue){
|
|
return sGuildBossHurtRewardConfig.lowerEntry(hurtValue).getValue();
|
|
}
|
|
|
|
|
|
public int getId() {
|
|
return id;
|
|
}
|
|
|
|
public int getDamage() {
|
|
return damage;
|
|
}
|
|
|
|
public int[] getReward() {
|
|
return reward;
|
|
}
|
|
|
|
public int[][] getRandomReward() {
|
|
return randomReward;
|
|
}
|
|
|
|
public void setReward(int[] reward) {
|
|
this.reward = reward;
|
|
}
|
|
|
|
public void setRandomReward(int[][] randomReward) {
|
|
this.randomReward = randomReward;
|
|
}
|
|
|
|
public int[][][] getRandomRewardAllGroup() {
|
|
return randomRewardAllGroup;
|
|
}
|
|
|
|
public void setRandomRewardAllGroup(int[][][] randomRewardAllGroup) {
|
|
this.randomRewardAllGroup = randomRewardAllGroup;
|
|
}
|
|
} |