From 9366e2acd46e1eaee37ed0b4509bc5d8e2efc9af Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Mon, 8 Nov 2021 17:51:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=8B=B1=E9=9B=84=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E8=8E=B7=E5=8F=96=E5=A4=9A=E4=BD=99=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/fight/FightUtil.java | 37 +---- .../ljsd/jieling/logic/hero/HeroLogic.java | 156 +----------------- 2 files changed, 7 insertions(+), 186 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index eb78fa4a7..f9d6be669 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -644,39 +644,6 @@ public class FightUtil { return robotInfo; } - public static CommonProto.FightTeamInfo makeCrossPersonData(ArenaOfUser arenaOfUser, int teamId,long deforce) { - List heroFightInfos = new ArrayList<>(); - ArenaOfHeroManager heroManager = arenaOfUser.getHeroManager(); - List 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 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 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 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 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 65a58aa01..e04d9e25a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1986,157 +1986,6 @@ public class HeroLogic { } - - public StringBuilder getCrossHeroSkillStr(ArenaOfUser user, ArenaOfHero hero) { - List skillList = new ArrayList<>(); - SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId()); - List 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 soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - Map 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 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 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 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 skillList = new ArrayList<>(); - SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId()); - List 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 soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); - Map 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 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 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 skillList = new ArrayList<>(); @@ -2236,6 +2085,11 @@ public class HeroLogic { num -= 1; } } + //神魂技能 + if (hero.getGodSoulLv() > 0) { + List godSoulSkills = GetGodSoulSkill(hero.getTemplateId(), hero.getGodSoulLv()); + skillList.addAll(godSoulSkills); + } StringBuilder sb = new StringBuilder(); coverSkill(skillList);