back_recharge
mashiyu 2019-03-06 15:07:23 +08:00
commit 9ddf90637f
2 changed files with 36 additions and 10 deletions

View File

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

View File

@ -273,7 +273,7 @@ public class HeroLogic {
int oldLevel = hero.getLevel(); 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; SCHeroRankUpConfig scHeroRankUpConfig = null;
if(scHeroRankUpConfigByType!=null){ if(scHeroRankUpConfigByType!=null){
scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldLevel); scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldLevel);
@ -298,7 +298,7 @@ public class HeroLogic {
consume = sHeroLevlConfig.getConsume(); consume = sHeroLevlConfig.getConsume();
} }
if(!isBreak){ 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){ if(scHeroRankUpConfig == null && scHeroRankUpConfigByTypeStar == null && scHeroRankUpConfigByType!=null){
boolean isAll = true; boolean isAll = true;
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByType.values()){ for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByType.values()){
@ -357,7 +357,7 @@ public class HeroLogic {
int oldStar = targetHero.getStar(); int oldStar = targetHero.getStar();
SCHero scHero = SCHero.getsCHero().get(targetHero.getTemplateId()); 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); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldStar);
if( targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()){ if( targetHero.getLevel() < scHeroRankUpConfig.getLimitLevel()){
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"等级不够"); MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"等级不够");
@ -518,7 +518,7 @@ public class HeroLogic {
float breakPara = 0.0f; float breakPara = 0.0f;
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
if(scHeroRankUpConfigByTypeOfStar!= null){ 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!=null && hero.getLevel() >= scHeroRankUpConfig.getLimitLevel()){
if(scHeroRankUpConfig.getType() == GlobalsDef.BREAK_TYPE){ if(scHeroRankUpConfig.getType() == GlobalsDef.BREAK_TYPE){
breakPara = scHeroRankUpConfig.getRankupPara(); breakPara = scHeroRankUpConfig.getRankupPara();
@ -532,7 +532,7 @@ public class HeroLogic {
int heroLevel = hero.getLevel(); int heroLevel = hero.getLevel();
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar()); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
for( SCHeroRankUpConfig scHeroRankUpConfigTmp :scHeroRankUpConfigByTypOfBreak.values()){ 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(); breakPara = scHeroRankUpConfigTmp.getRankupPara();
} }
if(heroLevel < scHeroRankUpConfigTmp.getOpenLevel()){ if(heroLevel < scHeroRankUpConfigTmp.getOpenLevel()){