From 8fe3bf74b093bb6fee3b49e9260132fb63fcc822 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 24 Sep 2019 10:17:09 +0800 Subject: [PATCH 1/4] new fight --- .../com/ljsd/jieling/logic/dao/MainLevelManager.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java new file mode 100644 index 000000000..0018e9b54 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java @@ -0,0 +1,12 @@ +package com.ljsd.jieling.logic.dao; + +import com.ljsd.common.mogodb.MongoBase; + +public class MainLevelManager extends MongoBase { + private int fightId; // 当前关卡id + private int state; //状态 + private int startTime; + + + +} From a2edf93d0a780ebcb8ff1919d7b092eaac053fd0 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 26 Sep 2019 14:30:49 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/blood/BloodLogic.java | 15 ++++-------- .../jieling/logic/dao/FamilyFightInfo.java | 23 +++++++++++++++++++ .../jieling/logic/dao/FamilyHeroInfo.java | 1 + .../jieling/logic/family/GuildFightLogic.java | 19 ++++++++++++--- 4 files changed, 45 insertions(+), 13 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 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(); From 8f20e526809486ab9363908f3b3e819aa452f452 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 24 Sep 2019 21:34:38 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E6=9C=80?= =?UTF-8?q?=E7=BB=88=E6=8F=90=E4=BA=A4=E3=80=82=E3=80=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../family/FamilyFightAttackHandler.java | 3 ++- .../jieling/logic/family/GuildFightLogic.java | 26 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightAttackHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightAttackHandler.java index bb221cafd..0c602d794 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightAttackHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/family/FamilyFightAttackHandler.java @@ -17,6 +17,7 @@ public class FamilyFightAttackHandler extends BaseHandler heroAttribute = defendInfo.getHeroAttribute(); //防守血量处理 - CommonProto.FightTeamInfo fightDefendTeamInfo = BloodLogic.getInstance().fightDataMakeUp(userDefend,heroAttribute,501); + CommonProto.FightTeamInfo fightDefendTeamInfo = BloodLogic.getInstance().fightDataMakeUp(defendInfo.getHeroSkills(),heroAttribute,defendInfo.getPokenmonSkills()); //攻击者血量处理 CommonProto.FightTeamInfo fightAttackTeamInfo = null; List heroAttackFightInfos = new ArrayList<>(); @@ -408,7 +405,7 @@ public class GuildFightLogic { } StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); - String heroSkill = HeroLogic.getInstance().getHeroSkills(userDefend, hero, skillSb).toString(); + String heroSkill = HeroLogic.getInstance().getHeroSkills(userAttack, hero, skillSb).toString(); Map heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userAttack, hero, false, 502); for(Map.Entry blood:attackBloodMap.entrySet()){ if(teamHero.getHeroId().equals(blood.getKey())){ @@ -474,7 +471,9 @@ public class GuildFightLogic { indexAttack++; } }else{ - int memberType = GuildLogic.getMemberType(defendUid, GuilidManager.guildInfoMap.get(defendGuildId).getMembers()); + PlayerInfoCache player = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(defendUid), PlayerInfoCache.class); + + int memberType =player.getGuildPosition(); int maxStar = sGuildSetting.getStarNum()[memberType-1]; int lessStar = maxStar - dieCount*maxStar/5; //倍数k(maxStar/5) @@ -484,10 +483,10 @@ public class GuildFightLogic { redisUtil.putMapEntry(RedisKey.FAMILY_ATTACK_BLOOD,String.valueOf(userAttack.getId()),attack.getHeroId(),100); } } - redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(defendGuildId), String.valueOf(userDefend.getId()), defendInfo); + redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(gid), String.valueOf(defendUid), defendInfo); //发送indication Family.DefeatResponse fightResponse = Family.DefeatResponse.newBuilder().setUid(defendUid).setTeamLostStar(getStar).build(); - GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(userDefend.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse); +// GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(gid), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse); GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(userAttack.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse); //获得星数处理 int attackGuildId = userAttack.getPlayerInfoManager().getGuildId(); @@ -498,11 +497,11 @@ public class GuildFightLogic { } redisUtil.zsetAddOne(attackRankKey,String.valueOf(userAttack.getId()),starCount+getStar); //建筑星数 - Integer haveGotStar = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR, String.valueOf(attackGuildId), String.valueOf(defendBuildId), int.class); + Integer haveGotStar = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR, String.valueOf(attackGuildId), String.valueOf(defendInfo.getBuildId()), int.class); if(haveGotStar==null){ haveGotStar = 0; } - redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(attackGuildId),String.valueOf(defendBuildId),haveGotStar+getStar); + redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(attackGuildId),String.valueOf(defendInfo.getBuildId()),haveGotStar+getStar); Family.FamilyFightAttackResponse response = Family.FamilyFightAttackResponse.newBuilder().setResult(fightResult[0]).setStarCount(getStar).setData(fightData).build(); userAttack.getUserMissionManager().onGameEvent(userAttack, GameEvent.FAMILY_FIGHT_ATTACK); MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true); @@ -639,6 +638,9 @@ public class GuildFightLogic { redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_BUFF,index,String.valueOf(i)); } GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(index)); + if(guildInfo==null){ + continue; + } //删除进攻血量信息 for(Map.Entry> entry:guildInfo.getMembers().entrySet()){ for(Integer attackId:entry.getValue()){ From 7ebb58041cf3210dafe737c4a3d701bf3044c689 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 25 Sep 2019 10:26:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/config/SEndlessDifficulty.java | 6 ++++++ .../java/com/ljsd/jieling/config/SEndlessMapConfig.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessDifficulty.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessDifficulty.java index 442e0c396..a44e3e4dd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessDifficulty.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessDifficulty.java @@ -17,6 +17,8 @@ public class SEndlessDifficulty implements BaseConfig{ private int[] rewardId; + private int[] mapPool; + public static Map difficultyMap; public static Map difficultyMonster; @@ -75,4 +77,8 @@ public class SEndlessDifficulty implements BaseConfig{ public int[] getRewardId() { return rewardId; } + + public int[] getMapPool() { + return mapPool; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessMapConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessMapConfig.java index c7579b862..fec377119 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessMapConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SEndlessMapConfig.java @@ -25,6 +25,8 @@ public class SEndlessMapConfig implements BaseConfig { private int[][] initializeCount; + private int mapStoreId; + public static Map sEndlessMapConfigMap; public static Map> initRandomPointMap; @@ -75,4 +77,8 @@ public class SEndlessMapConfig implements BaseConfig { public int[][] getInitializeCount() { return initializeCount; } + + public int getMapStoreId() { + return mapStoreId; + } } \ No newline at end of file