From 1e56edce3aaa07660d639538d3396c923cb4c7f8 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 17 Jun 2020 10:27:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=AF=95=E7=82=BCbuff=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 3 -- .../ljsd/jieling/handler/map/EventType.java | 1 + .../ljsd/jieling/handler/map/MapLogic.java | 9 ++++- .../ljsd/jieling/handler/map/MapManager.java | 19 +++------- .../ljsd/jieling/handler/map/TrialInfo.java | 20 ++++++----- .../map/behavior/FiftyOneBehavior.java | 36 +++++++++++++++++++ .../map/behavior/FourtyThreeBehavior.java | 18 ++-------- .../jieling/handler/map/mapType/TowerMap.java | 3 ++ .../ljsd/jieling/logic/fight/FightUtil.java | 16 ++++++++- .../src/main/java/config/STrialSetting.java | 6 ++++ 10 files changed, 88 insertions(+), 43 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FiftyOneBehavior.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 52d4bc8a0..43a6433e0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -135,8 +135,6 @@ public class GetPlayerInfoHandler extends BaseHandler{ Set heroHandBookSet = user.getHeroManager().getHeroHandBook().keySet(); Set equipHandBookSet = user.getEquipManager().getEquipHandBook().keySet(); int equipPool = user.getEquipManager().getSoulEquipPool(); - //试炼已领取奖励层数 - Set towerFloorReceivedReward = mapManager.getTowerReceivedReward().keySet(); CommonProto.EndlessInfo.Builder endless = CommonProto.EndlessInfo.newBuilder(); endless.setMapId(MapLogic.getEndlessMapId()); endless.setWorldLevel(MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class).getWorldLevel()); @@ -157,7 +155,6 @@ public class GetPlayerInfoHandler extends BaseHandler{ .addAllRedType(playerInfoManager.getReds()) .setRandCount(alreadyCount) .addAllHeroHandBook(heroHandBookSet).addAllEquipHandBook(equipHandBookSet) - .addAllTowerReceivedReward(towerFloorReceivedReward) .addAllGoodsTypeDuration(goodsTypeDurations) .setHadBuyTreasure(playerInfoManager.getHadBuyTreasure()) .setTreasureLevel(playerInfoManager.getTreasureLevel()) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java index b9890ce66..f8a249324 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java @@ -112,6 +112,7 @@ public class EventType { public static final int fourtyEight = 48; public static final int fourtyNine = 49; public static final int fifty = 50; + public static final int fiftyone = 51; public static final int updatePonintEvent = 1; public static final int fightEvent = 2; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 0db2a71b0..6cae99067 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2865,8 +2865,15 @@ public class MapLogic { trialInfo.setMapInfo(new HashMap<>()); trialInfo.setQuitMapId(0); trialInfo.setEnergy(0); - trialInfo.setFloor(trialInfo.getFloor()-7>1?trialInfo.getFloor()-7:1); trialInfo.setTimes(openTimeOfFuntionCacheByType.getTimes()); + List initBuff = new ArrayList<>(); + if(trialInfo.getHighestTower()!=0&&trialInfo.getFloor()<=trialInfo.getHighestTower()){ + initBuff.add(STrialSetting.sTrialSetting.getBaseBuff()); + } + trialInfo.setBuffIds(initBuff); + trialInfo.setFloor(trialInfo.getFloor()-7>1?trialInfo.getFloor()-7:1); + trialInfo.setKillCount(0); + trialInfo.setTowerReceivedReward(new HashSet<>()); if(mapManager.getCurMapId()!=0){ if(MapLogic.getInstance().getMap(user) instanceof TowerMap){ resetMapInfo(user,false); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 84831ecda..53ed1fc2e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -99,8 +99,6 @@ public class MapManager extends MongoBase { private int mapIntoFlag; - private Map towerReceivedReward = new HashMap<>(); - private Map> monsterTempSkill = new HashMap<>(); //无尽副本信息 private EndlessMapInfo endlessMapInfo =new EndlessMapInfo(); @@ -617,18 +615,6 @@ public class MapManager extends MongoBase { difficultyOptions.put(fbId,difficultId); } - public Map getTowerReceivedReward() { - return towerReceivedReward; - } - public void setTowerReceivedReward(Map towerReceivedReward){ - updateString("towerReceivedReward",towerReceivedReward); - this.towerReceivedReward =towerReceivedReward; - } - public void addTowerReceivedReward(int tower){ - updateString("towerReceivedReward."+tower,1); - towerReceivedReward.put(tower,1); - } - public Map> getMonsterTempSkill() { return monsterTempSkill; } @@ -821,6 +807,11 @@ public class MapManager extends MongoBase { trialInfo.setKillCount(count); updateString("trialInfo.killCount",count); } + + public void updateTrialBuffIds(List ids){ + trialInfo.setBuffIds(ids); + updateString("trialInfo.buffIds",ids); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java index 31bcaa5ff..7c4849c90 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TrialInfo.java @@ -1,17 +1,11 @@ package com.ljsd.jieling.handler.map; -import com.ljsd.jieling.logic.dao.Hero; - -import java.util.HashMap; -import java.util.HashSet; - -import java.util.Map; -import java.util.Set; +import java.util.*; /** * @author lvxinran * @date 2020/5/16 - * @discribe + * @discribe 试炼信息 */ public class TrialInfo { //默认一层 @@ -37,6 +31,8 @@ public class TrialInfo { private Set towerReceivedReward = new HashSet<>(); + private List buffIds = new ArrayList<>(); + public Set getTowerReceivedReward() { return towerReceivedReward; } @@ -124,4 +120,12 @@ public class TrialInfo { public void setKillCount(int killCount) { this.killCount = killCount; } + + public List getBuffIds() { + return buffIds; + } + + public void setBuffIds(List buffIds) { + this.buffIds = buffIds; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FiftyOneBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FiftyOneBehavior.java new file mode 100644 index 000000000..f267ddbc2 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FiftyOneBehavior.java @@ -0,0 +1,36 @@ +package com.ljsd.jieling.handler.map.behavior; + +import com.ljsd.jieling.handler.map.EventType; +import com.ljsd.jieling.handler.map.MapManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.protocols.MapInfoProto; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author lvxinran + * @date 2020/6/14 + * @discribe + */ +@Component +public class FiftyOneBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.fiftyone; + } + + @Override + public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + MapManager mapManager = user.getMapManager(); + List buffIds = mapManager.getTrialInfo().getBuffIds(); + for(int[] values:behaviorTypeValues){ + for(int value:values){ + buffIds.add(value); + } + } + mapManager.updateTrialBuffIds(buffIds); + BehaviorUtil.destoryCurPoint(user); + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java index f03594606..8e443ff43 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyThreeBehavior.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.handler.map.behavior; -import com.ljsd.jieling.handler.map.Cell; import com.ljsd.jieling.handler.map.EventType; import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.logic.dao.root.User; @@ -19,22 +18,9 @@ public class FourtyThreeBehavior extends BaseBehavior{ @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - LOGGER.info("43协议"); MapManager mapManager = user.getMapManager(); - if(mapManager.getBossXY()!=0&&mapManager.getTriggerXY()!=mapManager.getBossXY()){ - LOGGER.info("错误"); - return false; - - }; - if (mapManager.getBossType()==3){ - Cell cell = mapManager.getMapInfo().get(mapManager.getBossXY()); - LOGGER.info("暂存buff层数:{},buff:{},pointId:{}",mapManager.getTrialInfo().getFloor(),cell.getEventId(),cell.getPointId()); - mapManager.addTowerUnusedBuffer(mapManager.getTrialInfo().getFloor(),cell.getEventId()); - return true; - }else if(mapManager.getBossType()==4){ - int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTrialInfo().getFloor()).getRandomStore()); - StoreLogic.initOrUpdateOneStore(user,8,storeIndex); - } + int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTrialInfo().getFloor()).getRandomStore()); + StoreLogic.initOrUpdateOneStore(user,8,storeIndex); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java index 316c0290a..bdb4fab8c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapType/TowerMap.java @@ -139,6 +139,9 @@ public class TowerMap extends AbstractMap { mapEnterResponse.setCurHero(teamPosHeroInfos.get(0).getHeroId()); } mapEnterResponse.setAddHpCount(trialInfo.getAddHpCount()); + for(int id :trialInfo.getBuffIds()){ + mapEnterResponse.addFoodBuffers(CommonProto.FoodBuffer.newBuilder().setBufferId(id).setLeftStep(-1).build()); + } } @Override 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 9d2cc638b..03a0326f6 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 @@ -26,6 +26,7 @@ import config.SCHero; import org.luaj.vm2.LuaValue; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -202,6 +203,7 @@ public class FightUtil { List heroFightInfos = new ArrayList<>(); List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId); Map heroInfo = user.getMapManager().getTrialInfo().getHeroInfo(); + List buffIds = user.getMapManager().getTrialInfo().getBuffIds(); for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) { if (heroInfo.isEmpty()||!heroInfo.containsKey(teamPosHeroInfo.getHeroId())) { continue; @@ -210,7 +212,19 @@ public class FightUtil { StringBuilder propertySb = new StringBuilder(); //存起来 String heroSkill = trailHero.getHeroSkills(); - String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb,trailHero.getTmpId(),trailHero.getLevel(),trailHero.getProperty()).toString(); + Map propertyMap = new HashMap<>(); + //加入buff + if(!buffIds.isEmpty()){ + for(Map.Entry tempProperty:trailHero.getProperty().entrySet()){ + propertyMap.put(tempProperty.getKey(),tempProperty.getValue()); + } + for(int buffId:buffIds){ + CombatLogic.getInstance().bufferOneHeroAttrAfterEat(propertyMap,buffId); + } + }else{ + propertyMap = trailHero.getProperty(); + } + String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb,trailHero.getTmpId(),trailHero.getLevel(),propertyMap).toString(); CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo .newBuilder() .setUnitId(Integer.toString(trailHero.getTmpId())) diff --git a/tablemanager/src/main/java/config/STrialSetting.java b/tablemanager/src/main/java/config/STrialSetting.java index cb78959dc..4bbd0e57f 100644 --- a/tablemanager/src/main/java/config/STrialSetting.java +++ b/tablemanager/src/main/java/config/STrialSetting.java @@ -45,6 +45,8 @@ public class STrialSetting implements BaseConfig{ //回春散 private int[] healingId; + private int baseBuff; + public int getId() { return id; } @@ -88,4 +90,8 @@ public class STrialSetting implements BaseConfig{ public int[] getHealingId() { return healingId; } + + public int getBaseBuff() { + return baseBuff; + } } From 264df27d8ac4dfcd27924e278ab4125be9054447 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 17 Jun 2020 10:28:00 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=9D=E5=99=A8=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=88=A4=E7=A9=BA=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/logic/dao/Jewel.java | 1 + .../src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java | 2 +- .../src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Jewel.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Jewel.java index 4b4082b37..39d8933dd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Jewel.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Jewel.java @@ -36,6 +36,7 @@ public class Jewel extends PropertyItem { public void setBuildLevel(int buildLevel) { this.buildLevel = buildLevel; + updateString("buildLevel",buildLevel); } public int getJewelType() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java index ce76c0e13..8f1c9e629 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PropertyItem.java @@ -58,8 +58,8 @@ public class PropertyItem extends MongoBase { } public void setLevel(int level){ - updateString("level",level); this.level = level; + updateString("level",level); } public PropertyItem() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index e91f30f09..7588d7366 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -577,6 +577,9 @@ public class ItemLogic { } SJewelRankupConfig sJewelRankupConfig = SJewelRankupConfig.rankupMap.get(poolType).get(type).get(level); + if(sJewelRankupConfig==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } if(items!=null&&items.size()>0){ int[][] jewelExpend = sJewelRankupConfig.getJewelExpend(); Map expendMap = new HashMap<>(); From 3dafe6bbad3bf00315e7361b22ed0c481219d032 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 17 Jun 2020 10:28:13 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=B6=88=E8=80=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/logic/family/GuildLogic.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 9b0ff8b93..324c69a84 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -28,6 +28,7 @@ import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; +import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; @@ -1311,6 +1312,10 @@ public class GuildLogic { int level = guildMyInfo.getGuildSkill().get(type); int size = SGuildTechnology.technologyMap.get(type).size(); + String err = StoreLogic.checkBuyGoodsAndUpdate(user,7, 10028,1); + if(err!=null&&!err.isEmpty()){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } List consume = new ArrayList<>(); for(int i = 1;i<=size;i++){ int baseLevel = level/size;