From 17fdfbd6e4c1650620b3706dab85db1b0815708a Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Thu, 20 Jun 2019 15:28:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=A1=8C=E4=B8=BA=2039=20=E6=88=98?= =?UTF-8?q?=E6=96=97=EF=BC=8C=E6=8E=A8=E4=BB=BB=E5=8A=A1=EF=BC=8C=E7=94=9F?= =?UTF-8?q?=E6=88=90=E6=96=B0=E7=9A=84=E4=BA=8B=E4=BB=B6=E7=82=B9=E3=80=82?= =?UTF-8?q?15=2016=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/map/behavior/BehaviorUtil.java | 28 ++++++++++++++- .../map/behavior/DestroyPointAndBehavior.java | 2 +- .../map/behavior/DestroyPointBehavior.java | 2 +- .../FightAndDestroyPointBehavior.java | 2 +- .../FinsionMissionAndDestoryBehavior.java | 2 +- ...MonitorMissionAndDestroyPointBehavior.java | 2 +- .../map/behavior/ThirtyFiveBehavior.java | 2 +- .../map/behavior/ThirtyFourBehavior.java | 2 +- .../map/behavior/ThirtyNineBehavior.java | 34 +++++++++++++++++++ .../map/behavior/ThirtySexBehavior.java | 2 +- .../map/behavior/ThirtyThreeBehavior.java | 2 +- .../map/behavior/ThirtyTwoBehavior.java | 2 +- .../behavior/UseItemAndDestroyBehavior.java | 5 +-- 13 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyNineBehavior.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 53bd85044..fe78c7325 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -38,7 +38,7 @@ public class BehaviorUtil { * @param user * @throws Exception */ - public static void destoryPoint(User user, int mapId, int needDistoryPointId) throws Exception { + public static void destoryPoint(User user, int needDistoryPointId) throws Exception { MapManager mapManager = user.getMapManager(); Map mapInfo = mapManager.getMapInfo(); Set needDelete = new HashSet<>(); @@ -53,6 +53,32 @@ public class BehaviorUtil { mapManager.setMapInfo(mapInfo); } + + /** + * 销毁多个事件点 + * @param user + * @throws Exception + */ + public static void destoryPoints(User user, int[] needDistoryPointIds) throws Exception { + Set set = new HashSet<>(needDistoryPointIds.length); + for (int i = 0; i < needDistoryPointIds.length; i++) { + set.add(needDistoryPointIds[i]); + } + MapManager mapManager = user.getMapManager(); + Map mapInfo = mapManager.getMapInfo(); + Set needDelete = new HashSet<>(); + for (Map.Entry entry : mapInfo.entrySet()) { + int pointId = entry.getValue().getPointId(); + if (set.contains(pointId)) { + needDelete.add(entry.getKey()); + } + } + for (Integer xy : needDelete) { + mapInfo.remove(xy); + } + mapManager.setMapInfo(mapInfo); + } + /** * 增加新事件点 * @param needDistoryPointId diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java index 2f2b0c9cd..885450c9a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointAndBehavior.java @@ -23,7 +23,7 @@ public class DestroyPointAndBehavior extends BaseBehavior { @Override public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse) throws Exception { - BehaviorUtil.destoryPoint(user, user.getMapManager().getCurMapId(), behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java index 7669e88fc..725ebe0eb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java @@ -14,7 +14,7 @@ public class DestroyPointBehavior extends BaseBehavior { @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - BehaviorUtil.destoryPoint(user, user.getMapManager().getCurMapId(), behaviorTypeValues[0][0]); + BehaviorUtil.destoryPoints(user, behaviorTypeValues[0]); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java index 2fa884897..f488e0c04 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FightAndDestroyPointBehavior.java @@ -24,7 +24,7 @@ public class FightAndDestroyPointBehavior extends BaseBehavior { @Override public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse) throws Exception { BehaviorUtil.updateMissionEndFight(user, fightEndResponse); - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][2]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][2]); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinsionMissionAndDestoryBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinsionMissionAndDestoryBehavior.java index 3cce505d2..2b1eaf19e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinsionMissionAndDestoryBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FinsionMissionAndDestoryBehavior.java @@ -15,7 +15,7 @@ public class FinsionMissionAndDestoryBehavior extends BaseBehavior{ @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { BehaviorUtil.updateMission(user, eventUpdateResponse); - BehaviorUtil.destoryPoint(user, user.getMapManager().getCurMapId(), behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java index b7aa1d9a8..f212a5ec3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/MonitorMissionAndDestroyPointBehavior.java @@ -17,7 +17,7 @@ public class MonitorMissionAndDestroyPointBehavior extends BaseBehavior { // 1#101011|101#13#18#101012|101#12#13#101009 // BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse); // 销毁事件点 - BehaviorUtil.destoryPoint(user, user.getMapManager().getCurMapId(), behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); // 开新事件 for (int j = 1; j < behaviorTypeValues.length; j++) { BehaviorUtil.addBehaviorInfo(user,behaviorTypeValues[j][3], user.getMapManager(), behaviorTypeValues[j][0], behaviorTypeValues[j][1], behaviorTypeValues[j][2]); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFiveBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFiveBehavior.java index 292403c65..e31281fc5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFiveBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFiveBehavior.java @@ -15,7 +15,7 @@ public class ThirtyFiveBehavior extends BaseBehavior { @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { BehaviorUtil.updateMission(user, eventUpdateResponse); - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][0]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][0]); for (int i = 1; i < behaviorTypeValues.length; i++) { BehaviorUtil.addBehaviorInfo(user,behaviorTypeValues[i][3], user.getMapManager(), behaviorTypeValues[i][0], behaviorTypeValues[i][1], behaviorTypeValues[i][2]); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFourBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFourBehavior.java index dbabd17c6..366bdd4cd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFourBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyFourBehavior.java @@ -16,7 +16,7 @@ public class ThirtyFourBehavior extends BaseBehavior { @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { CombatLogic.getInstance().bufferAddByEatFoodOrEventTrigger(user.getMapManager(), behaviorTypeValues[0][0]); - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyNineBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyNineBehavior.java new file mode 100644 index 000000000..82510ed54 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyNineBehavior.java @@ -0,0 +1,34 @@ +package com.ljsd.jieling.handler.map.behavior; + +import com.ljsd.jieling.handler.map.EventType; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.protocols.FightInfoProto; +import com.ljsd.jieling.protocols.MapInfoProto; +import org.springframework.stereotype.Component; + +@Component +public class ThirtyNineBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.thirtyNine; + } + + @Override + public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + return false; + } + + @Override + public boolean isFightBehavior() { + return true; + } + + @Override + public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse) throws Exception { + BehaviorUtil.updateMissionEndFight(user, fightEndResponse); + for (int i = 1; i < behaviorTypeValues.length; i++) { + BehaviorUtil.addBehaviorInfo(user,behaviorTypeValues[i][3], user.getMapManager(), behaviorTypeValues[i][0], behaviorTypeValues[i][1], behaviorTypeValues[i][2]); + } + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtySexBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtySexBehavior.java index 562a77b5f..8fe9d978b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtySexBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtySexBehavior.java @@ -24,7 +24,7 @@ public class ThirtySexBehavior extends BaseBehavior{ return isEnough; } BehaviorUtil.updateMission(user, eventUpdateResponse); - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][0]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][0]); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyThreeBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyThreeBehavior.java index f01f7350b..c62f07c79 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyThreeBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyThreeBehavior.java @@ -23,7 +23,7 @@ public class ThirtyThreeBehavior extends BaseBehavior { @Override public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse) throws Exception { - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); for (int i = 1; i < behaviorTypeValues.length; i++) { BehaviorUtil.addBehaviorInfo(user,behaviorTypeValues[i][3], user.getMapManager(), behaviorTypeValues[i][0], behaviorTypeValues[i][1], behaviorTypeValues[i][2]); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyTwoBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyTwoBehavior.java index 006e50172..1e8e5b78e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyTwoBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/ThirtyTwoBehavior.java @@ -24,7 +24,7 @@ public class ThirtyTwoBehavior extends BaseBehavior { @Override public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse) throws Exception { BehaviorUtil.updateMissionEndFight(user, fightEndResponse); - BehaviorUtil.destoryPoint(user, 0, behaviorTypeValues[0][1]); + BehaviorUtil.destoryPoint(user, behaviorTypeValues[0][1]); for (int i = 1; i < behaviorTypeValues.length; i++) { BehaviorUtil.addBehaviorInfo(user,behaviorTypeValues[i][3], user.getMapManager(), behaviorTypeValues[i][0], behaviorTypeValues[i][1], behaviorTypeValues[i][2]); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java index 85c275f7c..4f21065b3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java @@ -16,11 +16,12 @@ public class UseItemAndDestroyBehavior extends BaseBehavior { @Override public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { - boolean isEnough = ItemUtil.itemCost(user, behaviorTypeValues, BIReason.MAP_EVENT_CONSUME,getBehaviorType()); + int[][] userItem = new int[behaviorTypeValues[0][0]][behaviorTypeValues[0][1]]; + boolean isEnough = ItemUtil.itemCost(user, userItem, BIReason.MAP_EVENT_CONSUME,getBehaviorType()); if (!isEnough) { return isEnough; } - BehaviorUtil.destoryPoint(user, user.getMapManager().getCurMapId(), behaviorTypeValues[0][2]); + BehaviorUtil.destoryPoints(user, behaviorTypeValues[1]); return true; } }