渔民小镇 1 year ago
parent
commit
eb9bd4b71d

+ 3 - 5
logic/bag-logic/src/main/java/com/iohao/mmo/bag/action/BagAction.java

@@ -115,7 +115,7 @@ public class BagAction {
     @ActionMethod(BagCmd.use)
     @ActionMethod(BagCmd.use)
     public boolean use(UseMessage useMessage, FlowContext flowContext) {
     public boolean use(UseMessage useMessage, FlowContext flowContext) {
         useMessage.scene = SceneConst.defaultScene;
         useMessage.scene = SceneConst.defaultScene;
-        extracted(useMessage, flowContext);
+        useProcess(useMessage, flowContext);
         return true;
         return true;
     }
     }
 
 
@@ -128,11 +128,11 @@ public class BagAction {
     @ActionMethod(BagCmd.useBuildEquip)
     @ActionMethod(BagCmd.useBuildEquip)
     public boolean useBuildEquip(UseMessage useMessage, FlowContext flowContext) {
     public boolean useBuildEquip(UseMessage useMessage, FlowContext flowContext) {
         useMessage.scene = SceneConst.buildEquipScene;
         useMessage.scene = SceneConst.buildEquipScene;
-        extracted(useMessage, flowContext);
+        useProcess(useMessage, flowContext);
         return true;
         return true;
     }
     }
 
 
-    private void extracted(UseMessage useMessage, FlowContext flowContext) {
+    private void useProcess(UseMessage useMessage, FlowContext flowContext) {
         ActionErrorEnum.validateErrCode.assertTrue(useMessage.verify());
         ActionErrorEnum.validateErrCode.assertTrue(useMessage.verify());
         /*
         /*
          * 各物品的处理逻辑不相同
          * 各物品的处理逻辑不相同
@@ -151,6 +151,4 @@ public class BagAction {
 
 
         log.info("usePOJO : {}", usePOJO);
         log.info("usePOJO : {}", usePOJO);
     }
     }
-
-
 }
 }

+ 13 - 0
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/SceneConst.java

@@ -25,6 +25,19 @@ package com.iohao.mmo.bag.region;
  * @date 2023-08-08
  * @date 2023-08-08
  */
  */
 public interface SceneConst {
 public interface SceneConst {
+    /**
+     * 业务场景 - 简单的使用背包物品
+     * <pre>
+     *     通常是使用同一种背包物品,如
+     *     增加 hp 的药品、增加经验值的道具...等
+     * </pre>
+     */
     String defaultScene = "default";
     String defaultScene = "default";
+    /**
+     * 业务场景 - 打造装备
+     * <pre>
+     *     使用多种不同的背包物品来打造装备,如打造书、材料铁...等
+     * </pre>
+     */
     String buildEquipScene = "buildEquip";
     String buildEquipScene = "buildEquip";
 }
 }

+ 3 - 2
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/UseContext.java

@@ -33,9 +33,10 @@ import lombok.experimental.FieldDefaults;
 @Setter
 @Setter
 @FieldDefaults(level = AccessLevel.PRIVATE)
 @FieldDefaults(level = AccessLevel.PRIVATE)
 public class UseContext {
 public class UseContext {
+    /** 物品使用 pojo */
     UsePOJO usePOJO;
     UsePOJO usePOJO;
+    /** flowContext */
     FlowContext flowContext;
     FlowContext flowContext;
+    /** 物品使用的业务场景 */
     String scene;
     String scene;
-
-    boolean success;
 }
 }

+ 6 - 1
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/UseProcess.java

@@ -19,12 +19,17 @@
 package com.iohao.mmo.bag.region;
 package com.iohao.mmo.bag.region;
 
 
 /**
 /**
- * 物品使用处理
+ * 物品使用逻辑处理接口
  *
  *
  * @author 渔民小镇
  * @author 渔民小镇
  * @date 2023-08-06
  * @date 2023-08-06
  */
  */
 public interface UseProcess {
 public interface UseProcess {
+    /**
+     * 执行处理
+     *
+     * @param context context
+     */
     void process(UseContext context);
     void process(UseContext context);
 
 
     /**
     /**

+ 18 - 0
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/UseRegion.java

@@ -32,18 +32,36 @@ import java.util.concurrent.ConcurrentHashMap;
  */
  */
 @Component
 @Component
 public class UseRegion {
 public class UseRegion {
+    /**
+     * <pre>
+     *     key : 业务场景
+     *     value : 物品使用逻辑处理实现类
+     * </pre>
+     */
     Map<String, UseProcess> map = new ConcurrentHashMap<>();
     Map<String, UseProcess> map = new ConcurrentHashMap<>();
 
 
+    /**
+     * 添加物品使用逻辑处理类
+     *
+     * @param useProcess 物品使用逻辑处理实现类
+     */
     public void addUseProcess(@NonNull UseProcess useProcess) {
     public void addUseProcess(@NonNull UseProcess useProcess) {
         String scene = useProcess.getScene();
         String scene = useProcess.getScene();
         Objects.requireNonNull(scene);
         Objects.requireNonNull(scene);
         map.put(scene, useProcess);
         map.put(scene, useProcess);
     }
     }
 
 
+    /**
+     * 执行物品使用逻辑
+     *
+     * @param context context
+     */
     public void process(UseContext context) {
     public void process(UseContext context) {
+        // 通过业务场景,得到对应的物品使用逻辑处理实现类
         String scene = context.getScene();
         String scene = context.getScene();
         UseProcess useProcess = map.get(scene);
         UseProcess useProcess = map.get(scene);
         ActionErrorEnum.classNotExist.assertNonNull(useProcess);
         ActionErrorEnum.classNotExist.assertNonNull(useProcess);
+        // 开始处理
         useProcess.process(context);
         useProcess.process(context);
     }
     }
 }
 }

+ 1 - 1
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/internal/DefaultUseProcess.java

@@ -88,7 +88,7 @@ public class DefaultUseProcess implements UseProcess {
         }
         }
     }
     }
 
 
-    private static void extractedExp(UseItemPOJO useItem, FlowContext flowContext) {
+    private void extractedExp(UseItemPOJO useItem, FlowContext flowContext) {
         ExpMessage expMessage = new ExpMessage();
         ExpMessage expMessage = new ExpMessage();
         expMessage.id = flowContext.getUserId();
         expMessage.id = flowContext.getUserId();
         // 暂时写死
         // 暂时写死

+ 7 - 2
logic/bag-logic/src/main/java/com/iohao/mmo/bag/region/internal/equip/BuildEquipUseProcess.java

@@ -38,6 +38,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
+ * 打造装备 - 物品使用逻辑处理类
+ * <pre>
+ *     1. 将物品从背包中减少(打造书、打造材料)
+ *     2. 调用装备模块的 【打造装备 action】,得到新的装备 id。
+ *     3. 将装备 id 关联到背包物品中。
+ * </pre>
+ *
  * @author 渔民小镇
  * @author 渔民小镇
  * @date 2023-08-08
  * @date 2023-08-08
  */
  */
@@ -100,6 +107,4 @@ public class BuildEquipUseProcess implements UseProcess {
 
 
         return bagItem;
         return bagItem;
     }
     }
-
-
 }
 }