diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndConfirmExpeditionBattleRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndConfirmExpeditionBattleRequestHandler.java index 4de45475b..dffe2926a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndConfirmExpeditionBattleRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndConfirmExpeditionBattleRequestHandler.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.handler.Expedition; +import afu.org.checkerframework.checker.igj.qual.I; import com.ljsd.fight.CheckFight; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; @@ -22,10 +23,7 @@ import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.util.FightDataUtil; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; -import config.SExpeditionFloorConfig; -import config.SExpeditionHolyConfig; -import config.SExpeditionNodeConfig; -import config.SExpeditionSetting; +import config.*; import manager.STableManager; import org.luaj.vm2.LuaValue; @@ -101,9 +99,17 @@ public class EndConfirmExpeditionBattleRequestHandler extends BaseHandler gropFightTeamInfoWithDouble = ExpeditionLogic.getGropFightTeamInfoWithDouble(tid, nodeInfo.getBossHP()); + getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, gropFightTeamInfoWithDouble); + }else { + CommonProto.FightTeamInfo deffightTeamInfo = FightUtil.makeFightBySnapDataWithDouble(new DefFightSnapData(deffightInfo.getHeroAttribute(),deffightInfo.getHeroSkills(),deffightInfo.getPokenmonSkills(),deffightInfo.getPassiveSkills()+holySkill),nodeInfo.getBossHP()); + getFightData = FightDataUtil.getFinalPlayerFightData(fightTeamInfo, deffightTeamInfo); + } + LuaValue getOptionData = FightDataUtil.getOptionData(""); int[] checkResult = CheckFight.getInstance().checkFight(seed, maxTime, getFightData, getOptionData, GameFightType.Expediton.getFightType()); @@ -140,10 +146,28 @@ public class EndConfirmExpeditionBattleRequestHandler extends BaseHandler()); - //节点血量更新 - nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> - nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) - ); + + + if(ExpeditionLogic.isHardNode(nodeInfo.getType())){ + //节点血量更新 + nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) ->{ + SMonsterConfig sMonsterConfig = STableManager.getConfig(SMonsterConfig.class).get(Integer.valueOf(s)); + if(sMonsterConfig!=null){ + nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double)sMonsterConfig.getHp()); + } + } + ); + + }else { + //节点血量更新 + nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> + nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) + ); + } +// //节点血量更新 +// nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> +// nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) +// ); //更新节点 Expedition.ExpeditionNodeInfoIndication.Builder builder = Expedition.ExpeditionNodeInfoIndication.newBuilder(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java index 2dc0c3c84..29559fce6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/EndExpeditionBattleRequest.java @@ -144,9 +144,18 @@ public class EndExpeditionBattleRequest extends BaseHandler - nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) + +// nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> +// nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double) familyHeroInfo.getAttribute().get(HeroAttributeEnum.CurHP.getPropertyId())) +// ); + nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) ->{ + SMonsterConfig sMonsterConfig = STableManager.getConfig(SMonsterConfig.class).get(Integer.valueOf(s)); + if(sMonsterConfig!=null){ + nodeInfo.getBossHP().put(s, (double) remainHp.remove(0) / (double)sMonsterConfig.getHp()); + } + } ); + }else { //节点血量更新 nodeInfo.getSnapFightInfo().getHeroAttribute().forEach((s, familyHeroInfo) -> diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/GetExpeditionRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/GetExpeditionRequestHandler.java index b6673a109..82dddcc74 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/GetExpeditionRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/GetExpeditionRequestHandler.java @@ -93,7 +93,7 @@ public class GetExpeditionRequestHandler extends BaseHandler effectItems = expeditionManager.getEffectItems(); SExpeditionHolyConfig orDefault = effectItems.getOrDefault(sExpeditionHolyConfig.geteffect(), null); - if(null!=orDefault&&sExpeditionHolyConfig.gettype()>orDefault.gettype()){ + + if(orDefault==null){ effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + }else { + if(sExpeditionHolyConfig.gettype()>orDefault.gettype()){ + effectItems.put(sExpeditionHolyConfig.geteffect(),sExpeditionHolyConfig); + } } + //notify client Expedition.ExpeditionEquipIndication.Builder indication = Expedition.ExpeditionEquipIndication.newBuilder(); indication.addEquipIds(CommonProto.ExpeditionEquip.newBuilder().setId(expeditionItem.getId()).setEquiptId(expeditionItem.getEquipId()).build());