英雄觉醒

back_recharge
jiahuiwen 2020-11-06 16:12:37 +08:00
parent 14c19ca507
commit fd8e564a15
2 changed files with 50 additions and 9 deletions

View File

@ -140,6 +140,8 @@ public class HeroLogic{
private static final String VERTICAL = "|";
private static final String DIVISION = "#";
public static final int HERO_MAX_STAR = 10; // 英雄最大星级大于10星为觉醒
/**
*
@ -886,7 +888,7 @@ public class HeroLogic{
}
/**
*
* ====
* @param session
* @param heroId
* @param consumeMaterialsList
@ -1226,9 +1228,14 @@ public class HeroLogic{
if(skillListByStar!=null){
skillList.addAll(skillListByStar);
}
// 大于10星觉醒技
if (hero.getStar() > HERO_MAX_STAR) {
skillList.addAll(tempHero.getAwakSkills(1, hero.getBreakId()));
skillList.addAll(tempHero.getAwakSkills(2, hero.getStarBreakId()));
} else {
skillList.addAll(tempHero.getPassiveSkills(1, hero.getBreakId()));
skillList.addAll(tempHero.getPassiveSkills(2, hero.getStarBreakId()));
}
//装备没有技能不用计算
// Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
// if(!equipByPositionMap.isEmpty()){

View File

@ -42,6 +42,8 @@ public class SCHero implements BaseConfig{
private int[][] openSkillRules;
private int[][] awaken;
private int[][] openPassiveSkillRules;
private int[] equipTalismana;
@ -58,6 +60,9 @@ public class SCHero implements BaseConfig{
private Map<Integer, List<Integer>> skillListByStar;
// 觉醒增加的技能属性
private Map<Integer,TreeMap<Integer,List<Integer>>> awakSkillMap;
private Map<Integer, Map<Integer, ConsumeMaterialInfo>> consumeMaterialInfoOfPositionByStar;
private Map<Integer,TreeMap<Integer,List<Integer>>> passiveSkillMap;
@ -109,8 +114,6 @@ public class SCHero implements BaseConfig{
}
}
Map<Integer, Map<Integer, ConsumeMaterialInfo>> consumeMaterialInfoByStarTmp = new HashMap<>();
int[][] openSkillRules = scHero.getOpenSkillRules();
int[][] rankupConsumeMaterial = scHero.getRankupConsumeMaterial();
@ -127,7 +130,7 @@ public class SCHero implements BaseConfig{
}
scHero.setConsumeMaterialInfoOfPositionByStar(consumeMaterialInfoByStarTmp);
int[][] openSkillRules = scHero.getOpenSkillRules();
// 技能
Map<Integer, List<Integer>> skillTmp = new HashMap<>();
@ -161,9 +164,25 @@ public class SCHero implements BaseConfig{
});
passiveSkillMapTmp.get(type).get(starOrBreakId).add(skillId);
}
scHero.setSkillListByStar(skillTmp);
scHero.setPassiveSkillMap(passiveSkillMapTmp);
// 大于10星为 觉醒技能
int[][] awakens = scHero.getAwaken();
Map<Integer, TreeMap<Integer, List<Integer>>> awakSkillMapTmp = new HashMap<>();
if (awakens != null && awakens.length > 0) {
awakSkillMapTmp.put(1, new TreeMap<>());
awakSkillMapTmp.put(2, new TreeMap<>());
for (int[] openSkillRule : awakens) {
int type = openSkillRule[0];
int starOrBreakId = openSkillRule[1];
int skillId = openSkillRule[2];
awakSkillMapTmp.get(type).computeIfAbsent(starOrBreakId, a -> {
return new ArrayList<>(awakSkillMapTmp.get(type).getOrDefault(a - 1, new ArrayList<>()));
});
awakSkillMapTmp.get(type).get(starOrBreakId).add(skillId);
}
}
scHero.setAwakSkillMap(awakSkillMapTmp);
}
sCHero = integerSCHeroMap;
piecesMap = new HashMap<>();
@ -300,7 +319,22 @@ public class SCHero implements BaseConfig{
return passiveSkillMap.get(type).floorEntry(id).getValue();
}
public List<Integer> getAwakSkills(int type, int id) {
if (awakSkillMap.get(type).floorEntry(id) == null) {
return new ArrayList<>(0);
}
return awakSkillMap.get(type).floorEntry(id).getValue();
}
public void setPassiveSkillMap(Map<Integer, TreeMap<Integer, List<Integer>>> passiveSkillMap) {
this.passiveSkillMap = passiveSkillMap;
}
public void setAwakSkillMap(Map<Integer, TreeMap<Integer, List<Integer>>> awakSkillMap) {
this.awakSkillMap = awakSkillMap;
}
public int[][] getAwaken() {
return awaken;
}
}