miduo_server/tablemanager/src/main/java/config/SGuildBossRewardConfig.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;
}
}