删除英雄技能获取多余方法
parent
4bcc279ea3
commit
9366e2acd4
|
|
@ -644,39 +644,6 @@ public class FightUtil {
|
|||
return robotInfo;
|
||||
}
|
||||
|
||||
public static CommonProto.FightTeamInfo makeCrossPersonData(ArenaOfUser arenaOfUser, int teamId,long deforce) {
|
||||
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||
ArenaOfHeroManager heroManager = arenaOfUser.getHeroManager();
|
||||
List<TeamPosHeroInfo> teamPosHeroInfos = heroManager.getTeams().get(teamId);
|
||||
for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) {
|
||||
ArenaOfHero hero = heroManager.getHeros().get(teamPosHeroInfo.getHeroId());
|
||||
if (hero == null) {
|
||||
continue;
|
||||
}
|
||||
StringBuilder propertySb = new StringBuilder();
|
||||
String heroSkill = HeroLogic.getInstance().getCrossHeroSkillStr(arenaOfUser, hero).toString();
|
||||
Map<Integer, Long> attributeMap = heroManager.getHeros().get(hero.getId()).getAttributeMapByTeam().get(teamId);
|
||||
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(), attributeMap).toString();
|
||||
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
|
||||
.newBuilder()
|
||||
.setUnitId(Integer.toString(hero.getTemplateId()))
|
||||
.setUnitSkillIds(heroSkill.substring(0, heroSkill.length() - 1))
|
||||
.setProperty(property.substring(0, property.length() - 1))
|
||||
.setPosition(teamPosHeroInfo.getPosition())
|
||||
.setStar(hero.getStar())
|
||||
.setSkinId(hero.getSkin())
|
||||
.setGodSoulLv(hero.getGodSoulLv())
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
return CommonProto.FightTeamInfo.
|
||||
newBuilder()
|
||||
.addAllFightUnitList(heroFightInfos)
|
||||
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemonSkills(arenaOfUser))
|
||||
.setTeamPassiveList("")
|
||||
.setForceScore(deforce)
|
||||
.build();
|
||||
}
|
||||
|
||||
//TODO 规范这个参数
|
||||
public static CommonProto.FightTeamInfo makeCrossPersonData(CSPlayer csPlayer, int teamId, ArenaRecord arenaRecord, CrossArenaManager crossArenaManager) throws Exception {
|
||||
|
|
@ -684,7 +651,6 @@ public class FightUtil {
|
|||
if (csPlayer == null) {
|
||||
return null;//throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class);
|
||||
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||
if (GameApplication.serverId == csPlayer.getServerId()) {
|
||||
//本服玩家
|
||||
|
|
@ -701,7 +667,8 @@ public class FightUtil {
|
|||
continue;
|
||||
}
|
||||
StringBuilder propertySb = new StringBuilder();
|
||||
String heroSkill = HeroLogic.getInstance().getCrossHeroSkillStr(user, hero).toString();
|
||||
StringBuilder skillSb = new StringBuilder();
|
||||
String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString();
|
||||
Map<Integer, Long> attributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId);
|
||||
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(), hero.getLevel(user.getHeroManager()), attributeMap).toString();
|
||||
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
|
||||
|
|
|
|||
|
|
@ -1986,157 +1986,6 @@ public class HeroLogic {
|
|||
}
|
||||
|
||||
|
||||
|
||||
public StringBuilder getCrossHeroSkillStr(ArenaOfUser user, ArenaOfHero hero) {
|
||||
List<Integer> skillList = new ArrayList<>();
|
||||
SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||
List<Integer> skillListByStar = tempHero.getSkillListByStar(hero.getStar());
|
||||
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> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
|
||||
Map<Integer, SEquipConfig> config = STableManager.getConfig(SEquipConfig.class);
|
||||
soulEquipByPositionMap.values().forEach(e -> {
|
||||
Arrays.stream(config.get(e).getPassiveSkill()).forEach(skillList::add);
|
||||
});
|
||||
|
||||
//法宝技能
|
||||
int[] equipTalismana = tempHero.getEquipTalismana();
|
||||
if (equipTalismana.length >= 1 && hero.getStar() >= equipTalismana[0]) {
|
||||
int especialEquipLevel = hero.getEspecialEquipLevel();
|
||||
int especialEquipId = equipTalismana[1];
|
||||
Map<Integer, SEquipTalismana> sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquipId);
|
||||
sEquipTalismana.forEach((k, v) -> {
|
||||
if (k <= especialEquipLevel && v.getOpenSkillRules() != null) {
|
||||
Arrays.stream(v.getOpenSkillRules()).forEach(i -> skillList.add(i));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 紫府神印技能
|
||||
Collection<PurpleMansionSeal> seals = user.getSeals().values();
|
||||
seals.forEach(v -> {
|
||||
// 使用中神印
|
||||
if (v.getState() == 1) {
|
||||
// 附身神印
|
||||
if (v.getType() == 1) {
|
||||
if (v.getSubId().equals(hero.getId())) {
|
||||
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
|
||||
}
|
||||
}
|
||||
// 通用神印
|
||||
else {
|
||||
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//神魂技能
|
||||
if (hero.getGodSoulLv() > 0) {
|
||||
List<Integer> godSoulSkills = GetGodSoulSkill(hero.getTemplateId(), hero.getGodSoulLv());
|
||||
skillList.addAll(godSoulSkills);
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
coverSkill(skillList);
|
||||
for (int i = 0; i < skillList.size(); i++) {
|
||||
Integer skill = skillList.get(i);
|
||||
if (i < 2) {
|
||||
sb.append(skill).append(DIVISION);
|
||||
continue;
|
||||
}
|
||||
SPassiveSkillLogicConfig config1 = SPassiveSkillLogicConfig.getConfig(skill);
|
||||
if (config1 != null && config1.getEffectiveRange() == 1) {
|
||||
sb.append(skill).append(DIVISION);
|
||||
}
|
||||
}
|
||||
|
||||
return sb;
|
||||
}
|
||||
|
||||
|
||||
public StringBuilder getCrossHeroSkillStr(User user, Hero hero) {
|
||||
|
||||
List<Integer> skillList = new ArrayList<>();
|
||||
SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||
List<Integer> skillListByStar = tempHero.getSkillListByStar(hero.getStar());
|
||||
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> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
|
||||
Map<Integer, SEquipConfig> config = STableManager.getConfig(SEquipConfig.class);
|
||||
soulEquipByPositionMap.values().forEach(e -> {
|
||||
Arrays.stream(config.get(e).getPassiveSkill()).forEach(skillList::add);
|
||||
});
|
||||
|
||||
//法宝技能
|
||||
int[] equipTalismana = tempHero.getEquipTalismana();
|
||||
if (equipTalismana.length >= 1 && hero.getStar() >= equipTalismana[0]) {
|
||||
int especialEquipLevel = hero.getEspecialEquipLevel();
|
||||
int especialEquipId = equipTalismana[1];
|
||||
Map<Integer, SEquipTalismana> sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquipId);
|
||||
sEquipTalismana.forEach((k, v) -> {
|
||||
if (k <= especialEquipLevel && v.getOpenSkillRules() != null) {
|
||||
Arrays.stream(v.getOpenSkillRules()).forEach(i -> skillList.add(i));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 紫府神印技能
|
||||
Collection<PurpleMansionSeal> seals = user.getHeroManager().getPurpleMansionSeal().values();
|
||||
seals.forEach(v -> {
|
||||
// 使用中神印
|
||||
if (v.getState() == 1) {
|
||||
// 附身神印
|
||||
if (v.getType() == 1) {
|
||||
if (v.getSubId().equals(hero.getId())) {
|
||||
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
|
||||
}
|
||||
}
|
||||
// 通用神印
|
||||
else {
|
||||
getPurpleMansionSealSkill(v.getSealId(), tempHero, skillList);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
coverSkill(skillList);
|
||||
for (int i = 0; i < skillList.size(); i++) {
|
||||
Integer skill = skillList.get(i);
|
||||
if (i < 2) {
|
||||
sb.append(skill).append(DIVISION);
|
||||
continue;
|
||||
}
|
||||
SPassiveSkillLogicConfig config1 = SPassiveSkillLogicConfig.getConfig(skill);
|
||||
if (config1 != null && config1.getEffectiveRange() == 1) {
|
||||
sb.append(skill).append(DIVISION);
|
||||
}
|
||||
}
|
||||
|
||||
return sb;
|
||||
}
|
||||
|
||||
public StringBuilder getCrossHeroSkillStr(CrossArenaManager crossArenaManager, com.ljsd.jieling.thrift.idl.ArenaOfHero hero) {
|
||||
|
||||
List<Integer> skillList = new ArrayList<>();
|
||||
|
|
@ -2236,6 +2085,11 @@ public class HeroLogic {
|
|||
num -= 1;
|
||||
}
|
||||
}
|
||||
//神魂技能
|
||||
if (hero.getGodSoulLv() > 0) {
|
||||
List<Integer> godSoulSkills = GetGodSoulSkill(hero.getTemplateId(), hero.getGodSoulLv());
|
||||
skillList.addAll(godSoulSkills);
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
coverSkill(skillList);
|
||||
|
|
|
|||
Loading…
Reference in New Issue