英雄觉醒

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 VERTICAL = "|";
private static final String DIVISION = "#"; private static final String DIVISION = "#";
public static final int HERO_MAX_STAR = 10; // 英雄最大星级大于10星为觉醒
/** /**
* *
@ -886,7 +888,7 @@ public class HeroLogic{
} }
/** /**
* * ====
* @param session * @param session
* @param heroId * @param heroId
* @param consumeMaterialsList * @param consumeMaterialsList
@ -1226,9 +1228,14 @@ public class HeroLogic{
if(skillListByStar!=null){ if(skillListByStar!=null){
skillList.addAll(skillListByStar); skillList.addAll(skillListByStar);
} }
skillList.addAll( tempHero.getPassiveSkills(1,hero.getBreakId())); // 大于10星觉醒技
skillList.addAll( tempHero.getPassiveSkills(2,hero.getStarBreakId())); 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(); // Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
// if(!equipByPositionMap.isEmpty()){ // if(!equipByPositionMap.isEmpty()){

View File

@ -42,6 +42,8 @@ public class SCHero implements BaseConfig{
private int[][] openSkillRules; private int[][] openSkillRules;
private int[][] awaken;
private int[][] openPassiveSkillRules; private int[][] openPassiveSkillRules;
private int[] equipTalismana; private int[] equipTalismana;
@ -58,6 +60,9 @@ public class SCHero implements BaseConfig{
private Map<Integer, List<Integer>> skillListByStar; private Map<Integer, List<Integer>> skillListByStar;
// 觉醒增加的技能属性
private Map<Integer,TreeMap<Integer,List<Integer>>> awakSkillMap;
private Map<Integer, Map<Integer, ConsumeMaterialInfo>> consumeMaterialInfoOfPositionByStar; private Map<Integer, Map<Integer, ConsumeMaterialInfo>> consumeMaterialInfoOfPositionByStar;
private Map<Integer,TreeMap<Integer,List<Integer>>> passiveSkillMap; 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<>(); Map<Integer, Map<Integer, ConsumeMaterialInfo>> consumeMaterialInfoByStarTmp = new HashMap<>();
int[][] openSkillRules = scHero.getOpenSkillRules();
int[][] rankupConsumeMaterial = scHero.getRankupConsumeMaterial(); int[][] rankupConsumeMaterial = scHero.getRankupConsumeMaterial();
@ -127,8 +130,8 @@ public class SCHero implements BaseConfig{
} }
scHero.setConsumeMaterialInfoOfPositionByStar(consumeMaterialInfoByStarTmp); scHero.setConsumeMaterialInfoOfPositionByStar(consumeMaterialInfoByStarTmp);
int[][] openSkillRules = scHero.getOpenSkillRules();
//技能 // 技能
Map<Integer, List<Integer>> skillTmp = new HashMap<>(); Map<Integer, List<Integer>> skillTmp = new HashMap<>();
for(int i=0;i<openSkillRules.length;i++){ for(int i=0;i<openSkillRules.length;i++){
@ -161,9 +164,25 @@ public class SCHero implements BaseConfig{
}); });
passiveSkillMapTmp.get(type).get(starOrBreakId).add(skillId); passiveSkillMapTmp.get(type).get(starOrBreakId).add(skillId);
} }
scHero.setSkillListByStar(skillTmp);
scHero.setPassiveSkillMap(passiveSkillMapTmp); 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; sCHero = integerSCHeroMap;
piecesMap = new HashMap<>(); piecesMap = new HashMap<>();
@ -300,7 +319,22 @@ public class SCHero implements BaseConfig{
return passiveSkillMap.get(type).floorEntry(id).getValue(); 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) { public void setPassiveSkillMap(Map<Integer, TreeMap<Integer, List<Integer>>> passiveSkillMap) {
this.passiveSkillMap = passiveSkillMap; this.passiveSkillMap = passiveSkillMap;
} }
public void setAwakSkillMap(Map<Integer, TreeMap<Integer, List<Integer>>> awakSkillMap) {
this.awakSkillMap = awakSkillMap;
}
public int[][] getAwaken() {
return awaken;
}
} }