Merge branch 'master_prb_gn' into master_test_gn
# Conflicts: # serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.javaback_recharge
commit
f0ba0de60b
|
@ -1727,21 +1727,34 @@ public class HeroLogic {
|
|||
|
||||
/**
|
||||
* 根据英雄等级计算出starBreaklId
|
||||
*
|
||||
* @param heroTid
|
||||
* @param heroLevel
|
||||
* @return
|
||||
*/
|
||||
public int calRobotStarBreakByLevel(int heroTid, int heroLevel) {
|
||||
// 获取进阶属性
|
||||
// 获取原始星级
|
||||
int star = SCHero.getsCHero().get(heroTid).getStar();
|
||||
return calRobotIdByLevel(heroLevel, GlobalsDef.UP_STAR_TYPE, star);
|
||||
// 根据等级计算星级
|
||||
int heroStar = calRobotStarByLevel(heroTid,heroLevel);
|
||||
// 突破,根据初始星级获取不同分区
|
||||
Map<Integer, SCHeroRankUpConfig> configByShow = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE, star);
|
||||
int starBreakId = 0;
|
||||
if (configByShow != null) {
|
||||
// openLevel 正序
|
||||
List<SCHeroRankUpConfig> collect = configByShow.values().stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel)).collect(Collectors.toList());
|
||||
for (SCHeroRankUpConfig rank : collect) {
|
||||
if (heroStar == rank.getOpenStar()){
|
||||
starBreakId = rank.getId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return starBreakId;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据英雄等级计算出BreaklId
|
||||
*
|
||||
* @param heroTid
|
||||
* @param heroLevel
|
||||
* @return
|
||||
|
@ -1749,7 +1762,20 @@ public class HeroLogic {
|
|||
public int calRobotBreakByLevel(int heroTid, int heroLevel) {
|
||||
// 初始等级
|
||||
int star = SCHero.getsCHero().get(heroTid).getStar();
|
||||
return calRobotIdByLevel(heroLevel, GlobalsDef.BREAK_TYPE, star);
|
||||
// 突破,根据初始星级获取不同分区
|
||||
Map<Integer, SCHeroRankUpConfig> configByShow = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE, star);
|
||||
int breakId = 0;
|
||||
if (configByShow != null) {
|
||||
// openLevel 正序排列
|
||||
List<SCHeroRankUpConfig> collect = configByShow.values().stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel)).collect(Collectors.toList());
|
||||
for (SCHeroRankUpConfig rank : collect) {
|
||||
if (heroLevel <= rank.getLimitLevel()){
|
||||
break;
|
||||
}
|
||||
breakId = rank.getId();
|
||||
}
|
||||
}
|
||||
return breakId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1763,17 +1789,31 @@ public class HeroLogic {
|
|||
SCHero scHero = SCHero.getsCHero().get(heroTid);
|
||||
// 英雄初始星级
|
||||
int star = scHero.getStar();
|
||||
Map<Integer, SCHeroRankUpConfig> config = STableManager.getConfig(SCHeroRankUpConfig.class);
|
||||
// 等级从高到低开始验证,先升星,后突破
|
||||
int id = calRobotIdByLevel(heroLevel, GlobalsDef.UP_STAR_TYPE, star);
|
||||
if (id > 0){
|
||||
// 大于0表示存在升星等级
|
||||
return Optional.ofNullable(config.get(id)).map(SCHeroRankUpConfig::getOpenStar).orElse(star);
|
||||
}
|
||||
id = calRobotIdByLevel(heroLevel, GlobalsDef.BREAK_TYPE, star);
|
||||
if (id > 0){
|
||||
// 大于0表示存在突破等级
|
||||
return Optional.ofNullable(config.get(id)).map(SCHeroRankUpConfig::getOpenStar).orElse(star);
|
||||
// 突破,根据初始星级获取不同分区
|
||||
Map<Integer, SCHeroRankUpConfig> configByShow = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE, star);
|
||||
if (configByShow != null) {
|
||||
// openLevel 正序排列
|
||||
List<SCHeroRankUpConfig> collect = configByShow.values().stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel)).collect(Collectors.toList());
|
||||
// 遍历
|
||||
for (int i = collect.size() - 1; i >= 0; i--) {
|
||||
SCHeroRankUpConfig rank = collect.get(i);
|
||||
if (heroLevel >= rank.getOpenLevel() && i == collect.size()-1){
|
||||
star = rank.getOpenStar();
|
||||
break;
|
||||
}
|
||||
if (heroLevel > rank.getOpenLevel()){
|
||||
star = rank.getOpenStar()+1;
|
||||
break;
|
||||
}
|
||||
if (i == 0 && heroLevel <= rank.getOpenLevel() && heroLevel > 100){
|
||||
star = rank.getOpenStar();
|
||||
break;
|
||||
}
|
||||
if (heroLevel >= 81 && heroLevel <= 100){
|
||||
star = 5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return star;
|
||||
}
|
||||
|
@ -1794,6 +1834,7 @@ public class HeroLogic {
|
|||
List<SCHeroRankUpConfig> collect = configs.stream().sorted(Comparator.comparing(SCHeroRankUpConfig::getOpenLevel).reversed()).collect(Collectors.toList());
|
||||
for (int i = 0; i < collect.size(); i++) {
|
||||
SCHeroRankUpConfig rank = collect.get(i);
|
||||
|
||||
// 等级卡在突破阶段,返回下层星级
|
||||
if (heroLevel == rank.getOpenLevel()) {
|
||||
return rank.getId();
|
||||
|
@ -1811,6 +1852,7 @@ public class HeroLogic {
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
private Map<Integer, Object> getParaRate(SCHero scHero, int heroStar, int heroLevel, int heroBreakId) {
|
||||
Map<Integer, Object> result = new HashMap<>(2);
|
||||
Object rankupPara = null;
|
||||
|
|
Loading…
Reference in New Issue