英雄升星

back_recharge
wangyuan 2019-01-28 17:36:07 +08:00
parent 075b53abf4
commit b183dd664b
3 changed files with 48 additions and 25 deletions

View File

@ -1,12 +1,24 @@
Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Id Type RankupPara LimitLevel OpenLevel LimitStar OpenStar ConsumeMaterial Star
int int float int int int int mut,int#int,2 int int float int int int int mut,int#int,2 int
1 1 2000 30 40 3 3 14#10000|4#20 1 1 2000 30 40 5 5 14#10000|4#20 5
2 1 5000 40 50 3 3 14#20000|4#40 2 1 5000 40 50 5 5 14#20000|4#40 5
3 1 9000 50 60 3 3 14#30000|4#100 3 1 9000 50 60 5 5 14#30000|4#100 5
4 1 14000 60 80 4 4 14#30000|4#300 4 1 14000 60 80 5 5 14#30000|4#300 5
5 1 20000 80 100 5 5 14#70000|4#1000 5 1 20000 80 100 5 5 14#70000|4#1000 5
6 1 60000 100 140 5 6 14#120000|4#0 6 1 60000 100 140 5 6 14#120000|4#0 5
7 2 2000 140 160 6 7 14#0|4#2000 7 2 2000 140 160 6 7 14#0|4#2000 5
8 2 4000 160 180 7 8 14#0|4#3000 8 2 4000 160 180 7 8 14#0|4#3000 5
9 2 7000 180 200 8 9 14#0|4#4000 9 2 7000 180 200 8 9 14#0|4#4000 5
10 2 10000 200 250 9 10 14#0|4#10000 10 2 10000 200 250 9 10 14#0|4#10000 5
51 1 2000 30 40 4 4 14#10000|4#20 4
52 1 5000 40 50 4 4 14#20000|4#40 4
53 1 9000 50 60 4 4 14#30000|4#100 4
54 1 14000 60 80 4 4 14#30000|4#300 4
55 1 20000 80 100 4 5 14#70000|4#1000 4
56 1 60000 100 140 5 6 14#120000|4#0 4
57 2 2000 140 160 6 7 14#0|4#2000 4
58 2 4000 160 180 7 8 14#0|4#3000 4
59 2 7000 180 200 8 9 14#0|4#4000 4
101 1 2000 30 40 3 3 14#10000|4#20 3
102 1 5000 40 50 3 3 14#20000|4#40 3
103 1 9000 50 60 3 3 14#30000|4#100 3

View File

@ -10,7 +10,7 @@ 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,SCHeroRankUpConfig>> scHeroRankUpConfigByType; public static Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> scHeroRankUpConfigByStar;
private int id; private int id;
@ -28,25 +28,30 @@ public class SCHeroRankUpConfig implements BaseConfig{
private int consumeMaterial[][]; private int consumeMaterial[][];
private int star;
@Override @Override
public void init() throws Exception { public void init() throws Exception {
Map<Integer,Map<Integer,SCHeroRankUpConfig>> result = new HashMap<>(); Map<Integer,Map<Integer,Map<Integer,SCHeroRankUpConfig>>> result = new HashMap<>();
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 type = scHeroRankUpConfig.getType(); int type = scHeroRankUpConfig.getType();
if(!result.containsKey(type)){ if(!result.containsKey(type)){
result.put(type,new TreeMap<>()); result.put(type,new TreeMap<>());
} }
if(type == GlobalsDef.UP_STAR_TYPE){ if(!result.get(type).containsKey(scHeroRankUpConfig.getStar())){
result.get(type).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig); result.get(type).put(scHeroRankUpConfig.getStar(),new HashMap<>());
} }
result.get(type).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig); if(type == GlobalsDef.UP_STAR_TYPE){
result.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitStar(),scHeroRankUpConfig);
}
result.get(type).get(scHeroRankUpConfig.getStar()).put(scHeroRankUpConfig.getLimitLevel(),scHeroRankUpConfig);
} }
scHeroRankUpConfigByType = result; scHeroRankUpConfigByStar = result;
} }
public static Map<Integer, SCHeroRankUpConfig> getScHeroRankUpConfigByType(int type) { public static Map<Integer, SCHeroRankUpConfig> getScHeroRankUpConfigByType(int type,int heroInitStar) {
return scHeroRankUpConfigByType.get(type); return scHeroRankUpConfigByStar.get(type).get(heroInitStar);
} }
public int getId() { public int getId() {
@ -80,4 +85,8 @@ public class SCHeroRankUpConfig implements BaseConfig{
public int[][] getConsumeMaterial() { public int[][] getConsumeMaterial() {
return consumeMaterial; return consumeMaterial;
} }
public int getStar() {
return star;
}
} }

View File

@ -215,10 +215,11 @@ public class HeroLogic {
MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_LEVEL_RESPONSE_VALUE,""); MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_LEVEL_RESPONSE_VALUE,"");
return; return;
} }
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
int oldLevel = hero.getLevel(); int oldLevel = hero.getLevel();
//判断需要进行升级还是进行突破 //判断需要进行升级还是进行突破
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE); Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE,scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldLevel); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByType.get(oldLevel);
boolean isBreak =false; boolean isBreak =false;
int[][] consume; int[][] consume;
@ -270,13 +271,13 @@ public class HeroLogic {
} }
int oldStar = targetHero.getStar(); int oldStar = targetHero.getStar();
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE); SCHero scHero = SCHero.getsCHero().get(targetHero.getTemplateId());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByType = SCHeroRankUpConfig.getScHeroRankUpConfigByType(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,"等级不够");
return; return;
} }
SCHero scHero = SCHero.getsCHero().get(targetHero.getTemplateId());
Map<Integer,SCHero.ConsumeMaterialInfo> consumeMaterialInfoByPosition = scHero.getConsumeMaterialInfoOfPositionByStar(oldStar + 1); Map<Integer,SCHero.ConsumeMaterialInfo> consumeMaterialInfoByPosition = scHero.getConsumeMaterialInfoOfPositionByStar(oldStar + 1);
boolean canUse = true; boolean canUse = true;
List<String> removeHeroIds = new ArrayList<>(); List<String> removeHeroIds = new ArrayList<>();
@ -399,7 +400,8 @@ public class HeroLogic {
private Map<Integer,Float> getParaForHero(Hero hero){ private Map<Integer,Float> getParaForHero(Hero hero){
Map<Integer,Float> result = new HashMap<>(2); Map<Integer,Float> result = new HashMap<>(2);
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE); SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypeOfStar = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.UP_STAR_TYPE,scHero.getStar());
SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar()); SCHeroRankUpConfig scHeroRankUpConfig = scHeroRankUpConfigByTypeOfStar.get(hero.getStar());
float rankupPara =0.0f; float rankupPara =0.0f;
if( scHeroRankUpConfig!=null ){ if( scHeroRankUpConfig!=null ){
@ -408,7 +410,7 @@ public class HeroLogic {
//突破系数 //突破系数
float breakPara = 0.0f; float breakPara = 0.0f;
int heroLevel = hero.getLevel(); int heroLevel = hero.getLevel();
Map<Integer, SCHeroRankUpConfig> scHeroRankUpConfigByTypOfBreak = SCHeroRankUpConfig.getScHeroRankUpConfigByType(GlobalsDef.BREAK_TYPE); 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() ){ if( heroLevel >= scHeroRankUpConfigTmp.getLimitLevel() ){
breakPara = scHeroRankUpConfigTmp.getRankupPara(); breakPara = scHeroRankUpConfigTmp.getRankupPara();