From d0c8424ec33d26c0970b084e5330554fdfc67b81 Mon Sep 17 00:00:00 2001 From: jiahuiwen <1024696487@qq.com> Date: Mon, 25 Feb 2019 20:42:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=A4=E4=B8=AA=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E7=B1=BB=E5=9E=8B=2015=E9=94=80=E9=AD=82=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=82=B9=2016=E6=B6=88=E8=80=97=E9=81=93=E5=85=B7?= =?UTF-8?q?=E5=B9=B6=E9=94=80=E6=AF=81=E4=BA=8B=E4=BB=B6=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/EventType.java | 6 ++++ .../ljsd/jieling/handler/map/MapLogic.java | 2 +- .../map/behavior/DestroyPointBehavior.java | 25 +++++++++++++ .../behavior/UseItemAndDestroyBehavior.java | 36 +++++++++++++++++++ .../handler/map/behavior/UseItemBehavior.java | 2 +- 5 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java 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 99c9af52b..2012bafa2 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 @@ -41,6 +41,10 @@ public class EventType { * 行为参数:任务id * 14 完成任务往下推一步并消耗物品,不摧毁事件点 * 行为参数:物品id#物品数量#任务id + * 15 销毁事件点 + * 行为参数:事件点id + * 16 消耗道具并销毁事件点 + * 行为参数:道具id#num#事件点id */ public static final int fight = 1; public static final int useItem = 2; @@ -54,4 +58,6 @@ public class EventType { public static final int openMission = 11; public static final int finishMission = 13; public static final int useItemMission = 14; + public static final int destroyPoint = 15; + public static final int useItemAndDestroy = 16; } 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 8619e91b5..7f24f1942 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 @@ -365,7 +365,6 @@ public class MapLogic { MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), ""); return; } - // 1 完成事件点,即进度100% nextPoint = getNextPoint(user, mapManager, jumpTypeValues, sOptionAddConditions); break; } @@ -417,6 +416,7 @@ public class MapLogic { private int getNextPoint(User user, MapManager mapManager, int[][] jumpTypeValues, SOptionAddCondition sOptionAddConditions) { int nextPoint = 0; switch (sOptionAddConditions.getType()) { + // 1 完成事件点,即进度100% case 1:{ int doneEvent = sOptionAddConditions.getValues()[0][0]; for (Cell cell1 : mapManager.getMapInfo().values()) { 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 new file mode 100644 index 000000000..ee810f178 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/DestroyPointBehavior.java @@ -0,0 +1,25 @@ +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.logic.dao.User; +import com.ljsd.jieling.protocols.MapInfoProto; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class DestroyPointBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.destroyPoint; + } + + @Override + public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + Map mapInfo = user.getMapManager().getMapInfo(); + mapInfo.remove(user.getMapManager().getCurXY()); + user.getMapManager().setMapInfo(mapInfo); + return true; + } +} 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 new file mode 100644 index 000000000..fbc9f9e8b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemAndDestroyBehavior.java @@ -0,0 +1,36 @@ +package com.ljsd.jieling.handler.map.behavior; + +import com.ljsd.jieling.config.SItem; +import com.ljsd.jieling.handler.map.Cell; +import com.ljsd.jieling.handler.map.EventType; +import com.ljsd.jieling.logic.dao.User; +import com.ljsd.jieling.protocols.MapInfoProto; +import com.ljsd.jieling.util.ItemUtil; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class UseItemAndDestroyBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.useItemAndDestroy; + } + + @Override + public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + SItem sItem = SItem.getsItemMap().get(behaviorTypeValues[0][0]); + boolean isEnough = ItemUtil.checkCost(user, sItem, behaviorTypeValues[0][1]); + if (!isEnough) { + return isEnough; + } + Map useItems = new HashMap<>(); + useItems.put(behaviorTypeValues[0][0], behaviorTypeValues[0][1]); + ItemUtil.useItem(user, useItems); + Map mapInfo = user.getMapManager().getMapInfo(); + mapInfo.remove(user.getMapManager().getCurXY()); + user.getMapManager().setMapInfo(mapInfo); + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemBehavior.java index 03759391e..18b612bf4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/UseItemBehavior.java @@ -14,7 +14,7 @@ import java.util.Map; public class UseItemBehavior extends BaseBehavior { @Override public int getBehaviorType() { - return EventType.eatBuff; + return EventType.useItem; } @Override