diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java index cce1fd834..d3387a4e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/blood/BloodLogic.java @@ -101,20 +101,15 @@ public class BloodLogic { * @param heroInfo * @return */ - public CommonProto.FightTeamInfo fightDataMakeUp(User user ,Map heroInfo,int teamId){ + public CommonProto.FightTeamInfo fightDataMakeUp(Map heroSkills ,Map heroInfo,String pokmanSkill){ List heroDefendFightInfos = new ArrayList<>(); for (Map.Entry entry : heroInfo.entrySet()) { - Hero hero = user.getHeroManager().getHero(entry.getKey()); - if (hero == null) { - continue; - } - StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); - String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero, skillSb).toString(); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero, entry.getValue().getAttribute()).toString(); + String heroSkill = heroSkills.get(entry.getKey()); + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, entry.getValue(), entry.getValue().getAttribute()).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() - .setUnitId(Integer.toString(hero.getTemplateId())) + .setUnitId(Integer.toString(entry.getValue().getTempleteId())) .setUnitSkillIds(heroSkill.substring(0, heroSkill.length() - 1)) .setProperty(property.substring(0, property.length() - 1)) .build(); @@ -123,7 +118,7 @@ public class BloodLogic { CommonProto.FightTeamInfo fightDefendTeamInfo = CommonProto.FightTeamInfo. newBuilder() .addAllFightUnitList(heroDefendFightInfos) - .setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user, teamId)) + .setTeamSkillList(pokmanSkill) .build(); return fightDefendTeamInfo; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyFightInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyFightInfo.java index 0481cdf13..9e3aab23a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyFightInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyFightInfo.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.dao; +import java.util.HashMap; import java.util.Map; public class FamilyFightInfo { @@ -9,6 +10,9 @@ public class FamilyFightInfo { private int buildId; private int starCount; private int force; + private Map heroSkills = new HashMap<>(); + private String pokenmonSkills; + public Map getHeroAttribute() { return heroAttribute; @@ -57,4 +61,23 @@ public class FamilyFightInfo { public void setForce(int force) { this.force = force; } + public void updateHeroSkill(String heroId, String skills){ + heroSkills.put(heroId,skills); + } + + public Map getHeroSkills() { + return heroSkills; + } + + public void setHeroSkills(Map heroSkills) { + this.heroSkills = heroSkills; + } + + public String getPokenmonSkills() { + return pokenmonSkills; + } + + public void setPokenmonSkills(String pokenmonSkills) { + this.pokenmonSkills = pokenmonSkills; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyHeroInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyHeroInfo.java index 1700f1bc4..df26181a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyHeroInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/FamilyHeroInfo.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.dao; +import java.util.HashMap; import java.util.Map; public class FamilyHeroInfo { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index 41f6fa2e3..f6d56b105 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -286,14 +286,13 @@ public class GuildFightLogic { } int familyTotalStar = 0; //血量记录处理,星级记录处理 + for (Map.Entry entry : defendInfo.entrySet()) { User user = UserManager.getUser(entry.getKey()); int memberType = GuildLogic.getMemberType(entry.getKey(), guildInfo.getMembers()); int[] buffInfo = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_BUFF, gid.toString(), entry.getValue().toString(), int[].class); FamilyFightInfo fightInfo = new FamilyFightInfo(); //血量处理,buff处理 - - int force = HeroLogic.getInstance().calTeamTotalForce(user, 501, false); if(force==0){ force = HeroLogic.getInstance().calTeamTotalForce(user, 1, false); @@ -303,6 +302,20 @@ public class GuildFightLogic { fightInfo.setBuildId(entry.getValue()); fightInfo.setStarCount(guildSetting.getStarNum()[memberType-1]); fightInfo.setForce(force); + List teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(501); + if(teamPosHeroInfoList==null||teamPosHeroInfoList.size()<1){ + teamPosHeroInfoList = user.getTeamPosManager().getTeamPosForHero().get(1); + } + Map heroMap = user.getHeroManager().getHeroMap(); + for(TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfoList){ + String heroId = teamPosHeroInfo.getHeroId(); + Hero hero = heroMap.get(heroId); + StringBuilder skillSb = new StringBuilder(); + String heroSkill = HeroLogic.getInstance().getHeroSkills(user, hero,skillSb ).toString(); + fightInfo.updateHeroSkill(heroId,heroSkill.substring(0, heroSkill.length() - 1)); + } + String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user, 501); + fightInfo.setPokenmonSkills(pokenmonSkills); redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(guildInfo.getId()), String.valueOf(entry.getKey()), fightInfo); familyTotalStar+=fightInfo.getStarCount(); } @@ -661,7 +674,7 @@ public class GuildFightLogic { } LOGGER.info("{}公会结算",str); // Map enemyDefendInfo = GuilidManager.guildInfoMap.get(enemyFamily).getDefendInfo(); - Map fightInfo = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, "", Integer.class, FamilyFightInfo.class); + Map fightInfo = redisUtil.getMapValues(RedisKey.FAMILY_FIGHT, String.valueOf(enemyFamily), Integer.class, FamilyFightInfo.class); for(Map.Entry defend:fightInfo.entrySet()){ if(defend!=null){ buildStar[defend.getValue().getBuildId()-1] = buildStar[defend.getValue().getBuildId()-1]+defend.getValue().getStarCount();