fix 解析英雄数据表

back_recharge
wangyuan 2019-03-06 11:08:42 +08:00
parent 105d87f629
commit 93ab01facd
2 changed files with 36 additions and 10 deletions

View File

@ -10,7 +10,8 @@ import java.util.TreeMap;
@Table(name = "HeroRankupConfig")
public class SCHeroRankUpConfig implements BaseConfig{
public static Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> scHeroRankUpConfigByStar;
public static Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> scHeroRankUpConfigByShow;
public static Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> scHeroRankUpConfigByType;
private int id;
@ -35,25 +36,50 @@ public class SCHeroRankUpConfig implements BaseConfig{
@Override
public void init() throws Exception {
Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> result = new TreeMap<>();
Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> calc = new TreeMap<>();
Map<Integer, SCHeroRankUpConfig> config = STableManager.getConfig(SCHeroRankUpConfig.class);
for(SCHeroRankUpConfig scHeroRankUpConfig: config.values()){
int show = scHeroRankUpConfig.getShow();
int type = scHeroRankUpConfig.getType();
if(!result.containsKey(show)){
result.put(show,new TreeMap<>());
}
if(!calc.containsKey(type)){
calc.put(type,new TreeMap<>());
}
if(!result.get(show).containsKey(scHeroRankUpConfig.getStar())){
result.get(show).put(scHeroRankUpConfig.getStar(),new TreeMap<>());
}
if(!calc.get(type).containsKey(scHeroRankUpConfig.getStar())){
calc.get(type).put(scHeroRankUpConfig.getStar(),new TreeMap<>());
}
if(show == GlobalsDef.UP_STAR_TYPE){
result.get(show).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig);
}
result.get(show).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig);
if( show == GlobalsDef.BREAK_TYPE){
result.get(show).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig);
}
if(type == GlobalsDef.UP_STAR_TYPE){
calc.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig);
}
if(type == GlobalsDef.BREAK_TYPE){
calc.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig);
}
}
scHeroRankUpConfigByStar = result;
scHeroRankUpConfigByShow = result;
scHeroRankUpConfigByType = calc;
}
public static Map<Integer, SCHeroRankUpConfig> getScHeroRankUpConfigByType(int type,int heroInitStar) {
return scHeroRankUpConfigByStar.get(type).get(heroInitStar);
public static Map<Integer, SCHeroRankUpConfig> getScHeroRankUpConfigByShow(int show, int heroInitStar) {
return scHeroRankUpConfigByShow.get(show).get(heroInitStar);
}
public static Map<Integer, SCHeroRankUpConfig> getScHeroRankUpConfigByType(int type, int heroInitStar) {
return scHeroRankUpConfigByType.get(type).get(heroInitStar);
}
public int getId() {

View File

@ -271,7 +271,7 @@ public class HeroLogic {
int oldLevel = hero.getLevel();
//判断需要进行升级还是进行突破
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = null;
if(scHeroRankUpConfigByType!=null){
scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldLevel);
@ -296,7 +296,7 @@ public class HeroLogic {
consume = sHeroLevlConfig.getConsume();
}
if(!isBreak){
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE, scHero.getStar());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeStar = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE, scHero.getStar());
if(scHeroRankUpConfig == null && scHeroRankUpConfigByTypeStar == null && scHeroRankUpConfigByType!=null){
boolean isAll = true;
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByType.values()){
@ -355,7 +355,7 @@ public class HeroLogic {
int oldStar = targetHero.getStar();
SCHero scHero = SCHero.getsCHero().get(targetHero.getTemplateId());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldStar);
if( targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()){
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"等级不够");
@ -516,7 +516,7 @@ public class HeroLogic {
float breakPara = 0.0f;
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
if(scHeroRankUpConfigByTypeOfStar!= null){
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar()-1);
if( scHeroRankUpConfig!=null && hero.getLevel() >= scHeroRankUpConfig.getLimitLevel()){
if(scHeroRankUpConfig.getType() == GlobalsDef.BREAK_TYPE){
breakPara = scHeroRankUpConfig.getRankupPara();
@ -530,7 +530,7 @@ public class HeroLogic {
int heroLevel = hero.getLevel();
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByTypOfBreak.values()){
if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() && hero.getBreakId()>= scHeroRankUpConfigTmp.getId()){
if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() && hero.getBreakId()>= scHeroRankUpConfigTmp.getId() && breakPara< scHeroRankUpConfigTmp.getRankupPara()){
breakPara = scHeroRankUpConfigTmp.getRankupPara();
}
if(heroLevel < scHeroRankUpConfigTmp.getOpenLevel()){