Browse Source

装备属性设计

toby 1 năm trước cách đây
mục cha
commit
7a962e6045

+ 2 - 2
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/Equip.java

@@ -44,8 +44,8 @@ public class Equip {
     String itemTypeId;
     /** 玩家 */
     long userId;
-    /** 部位(0帽子,1衣服,2武器,3手镯,4裤子,5鞋子) */
-    int position;
+    /** 部位(wuqi武器,maozi帽子,yifu衣服,kuzi裤子,xiezi鞋子,huwan护腕,xianglain项链,shouzhuo手镯,jiezhi戒指,yaopei腰佩) */
+    String position;
     /** 要求等级 */
     int level;
     /** 品质 1白色,2黄色,3绿色,4蓝色,5紫色,6鬼装*/

+ 2 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipEntryTemplate.java

@@ -50,6 +50,8 @@ public class EquipEntryTemplate {
     String description;
     /** 出现概率 */
     BigDecimal hitProb;
+    /** 支持装备部位 */
+    List<String> positionList;
     /** 同一装备最多出现次数 */
     int maxExist;
     /** 装备属性 */

+ 2 - 2
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipTemplate.java

@@ -40,8 +40,8 @@ public class EquipTemplate {
     String id;
     /** itemTypeId */
     String itemTypeId;
-    /** 部位(0帽子,1衣服,2武器,3手镯,4裤子,5鞋子) */
-    int position;
+    /** 部位(wuqi武器,maozi帽子,yifu衣服,kuzi裤子,xiezi鞋子,huwan护腕,xianglain项链,shouzhuo手镯,jiezhi戒指,yaopei腰佩) */
+    String position;
     /** 要求等级 */
     int level;
     /** 品质 1白色,2黄色,3绿色,4蓝色,5紫色,6鬼装*/

+ 54 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/enums/PositionEnum.java

@@ -0,0 +1,54 @@
+package com.iohao.mmo.equip.enums;
+
+/**
+ * 装备部位枚举类
+ */
+public enum PositionEnum {
+    WUQI("武器","wuqi"),
+    MAOZI("帽子","maozi"),
+    YIFU("衣服","yifu"),
+    KUZI("裤子","kuzi"),
+    XIEZI("鞋子","xiezi"),
+    HUWAN("护腕","huwan"),
+    XIANGLAIN("项链","xianglain"),
+    shouzhuo("手镯","shouzhuo"),
+    JIEZHI("戒指","jiezhi"),
+    YAOPEI("腰佩","yaopei");
+    private String name;
+    private String code;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    private PositionEnum(String name, String code){
+        this.name = name;
+        this.code = code;
+    }
+
+    @Override
+    public String toString(){
+        return this.name + "-" + this.code;
+    }
+
+    public static PositionEnum getByCode(String code){
+        for(PositionEnum propertyNameEnum : PositionEnum.values()){
+            if(propertyNameEnum.getCode().equals(code))            {
+                return propertyNameEnum;
+            }
+        }
+        return null;
+    }
+}

+ 13 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipEntryTemplateService.java

@@ -128,6 +128,19 @@ public class EquipEntryTemplateService {
         mongoTemplate.save(equipEntryTemplate);
     }
 
+    /**
+     * 根据装备等级、部位、数量随机词条
+     * @param itemTypeIdList 物品分类标识列表
+     * @param userId 用户id
+     * @return
+     */
+    public List<Equip> randomEquipBatch(List<String> itemTypeIdList,long userId){
+        List<Equip> equipList = itemTypeIdList.stream()
+                .map(itemTypeId -> randomEquip(itemTypeId,userId))
+                .toList();
+        return equipList;
+    }
+
     /**
      * 根据装备库列表批量随机新的装备
      * @param itemTypeIdList 物品分类标识列表

+ 2 - 2
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipMessage.java

@@ -44,8 +44,8 @@ public class EquipMessage{
     int attrTotal;
     /** 未分配属性点 */
     int undistributedAttr;
-    /** 部位(0帽子,1衣服,2武器,3手镯,4裤子,5鞋子) */
-    int position;
+    /** 部位(wuqi武器,maozi帽子,yifu衣服,kuzi裤子,xiezi鞋子,huwan护腕,xianglain项链,shouzhuo手镯,jiezhi戒指,yaopei腰佩) */
+    String position;
     /** 要求等级 */
     int level;
     /** 鉴定次数 */

+ 2 - 2
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipTemplateMessage.java

@@ -36,8 +36,8 @@ public class EquipTemplateMessage{
      * id
      */
     String id;
-    /** 部位(0帽子,1衣服,2武器,3手镯,4裤子,5鞋子) */
-    int position;
+    /** 部位(wuqi武器,maozi帽子,yifu衣服,kuzi裤子,xiezi鞋子,huwan护腕,xianglain项链,shouzhuo手镯,jiezhi戒指,yaopei腰佩) */
+    String position;
     /** 要求等级 */
     int level;
     /** 装备固定属性最小值 */