From e7df45c50f280e6bf24e9709f5a1c449943af028 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 29 Aug 2019 03:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/blood/BloodLogic.java | 39 +++++++++++++++++-- .../jieling/logic/family/GuildFightLogic.java | 25 +----------- 2 files changed, 37 insertions(+), 27 deletions(-) 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 18d00f40e..3ad51b68d 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 @@ -8,13 +8,11 @@ import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.hero.HeroAttributeEnum; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.item.ItemLogic; +import com.ljsd.jieling.protocols.CommonProto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; public class BloodLogic { @@ -68,4 +66,37 @@ public class BloodLogic { return heroAttribute; } + /** + * 战斗数据组装 + * @param user + * @param heroInfo + * @return + */ + public CommonProto.FightTeamInfo fightDataMakeUp(User user ,Map heroInfo,int teamId){ + 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(); + 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)) + .build(); + heroDefendFightInfos.add(heroFightInfo); + } + CommonProto.FightTeamInfo fightDefendTeamInfo = CommonProto.FightTeamInfo. + newBuilder() + .addAllFightUnitList(heroDefendFightInfos) + .setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user, teamId)) + .build(); + return fightDefendTeamInfo; + } + } 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 de057924e..c6bb84adb 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 @@ -342,29 +342,8 @@ public class GuildFightLogic { int defendBuildId = GuilidManager.guildInfoMap.get(defendGuildId).getDefendInfo().get(defendUid); FamilyFightInfo defendInfo = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(defendGuildId), String.valueOf(userDefend.getId()), FamilyFightInfo.class); Map heroAttribute = defendInfo.getHeroAttribute(); - List heroDefendFightInfos = new ArrayList<>(); - for (Map.Entry entry : heroAttribute.entrySet()) { - Hero hero = userDefend.getHeroManager().getHero(entry.getKey()); - if (hero == null) { - continue; - } - StringBuilder skillSb = new StringBuilder(); - StringBuilder propertySb = new StringBuilder(); - String heroSkill = HeroLogic.getInstance().getHeroSkills(userDefend, hero, skillSb).toString(); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero, entry.getValue().getAttribute()).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)) - .build(); - heroDefendFightInfos.add(heroFightInfo); - } - CommonProto.FightTeamInfo fightDefendTeamInfo = CommonProto.FightTeamInfo. - newBuilder() - .addAllFightUnitList(heroDefendFightInfos) - .setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(userDefend, 1)) - .build(); + //防守血量处理 + CommonProto.FightTeamInfo fightDefendTeamInfo = BloodLogic.getInstance().fightDataMakeUp(userDefend,heroAttribute,501); //攻击者血量处理 CommonProto.FightTeamInfo fightAttackTeamInfo = null; List heroAttackFightInfos = new ArrayList<>();