瀏覽代碼

增加装备固定属性

tangbin 1 年之前
父節點
當前提交
60406e1a9c
共有 18 個文件被更改,包括 238 次插入88 次删除
  1. 3 7
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipAction.java
  2. 2 10
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipTemplateAction.java
  3. 10 13
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/ElseEquipProperty.java
  4. 8 2
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/Equip.java
  5. 4 0
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipTemplate.java
  6. 83 0
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/FixedEquipProperty.java
  7. 3 3
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/mapper/EquipMapper.java
  8. 0 4
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/mapper/EquipTemplateMapper.java
  9. 6 11
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipService.java
  10. 39 12
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipTemplateService.java
  11. 0 14
      logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/GoodsService.java
  12. 1 1
      logic/person-logic/src/main/java/com/iohao/mmo/person/entity/BasicProperty.java
  13. 3 4
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/client/EquipInputCommandRegion.java
  14. 1 1
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/cmd/EquipCmd.java
  15. 4 4
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/ElseEquipPropertyMessage.java
  16. 8 2
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipMessage.java
  17. 4 0
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/EquipTemplateMessage.java
  18. 59 0
      provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/FixedEquipPropertyMessage.java

+ 3 - 7
logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipAction.java

@@ -29,11 +29,9 @@ import java.util.List;
 @Component
 @ActionController(EquipCmd.cmd)
 public class EquipAction {
-
     @Resource
     EquipService equipService;
 
-
     /**
      * 获取某人装备列表信息
      *
@@ -42,9 +40,7 @@ public class EquipAction {
     @ActionMethod(EquipCmd.getEquipList)
     public List<EquipMessage> getEquipList(FlowContext flowContext) { //参数值
         long userId = flowContext.getUserId();
-        // 初始化装备数据,暂时放这
         List<Equip> equipList = equipService.listByUser(userId);
-
         return EquipMapper.ME.convert(equipList);
     }
 
@@ -56,7 +52,6 @@ public class EquipAction {
      */
     @ActionMethod(EquipCmd.getEquip)
     public EquipMessage getEquip(FlowContext flowContext, StringValue stringValue) { //参数值
-        // 初始化装备数据,暂时放这
         Equip equip = equipService.findByItemId(stringValue.value);
         return EquipMapper.ME.convert(equip);
     }
@@ -88,9 +83,10 @@ public class EquipAction {
      * 批量删除装备
      *
      * @param flowContext flowContext
+     * @param stringValue 装备itemIds
      */
-    @ActionMethod(EquipCmd.delBatch)
-    public void delBatch(FlowContext flowContext, StringValue stringValue) { //参数值
+    @ActionMethod(EquipCmd.delEquipBatch)
+    public void delEquipBatch(FlowContext flowContext, StringValue stringValue) {
         equipService.delBatch(Arrays.asList(stringValue.value.split("-")));
     }
 }

+ 2 - 10
logic/equip-logic/src/main/java/com/iohao/mmo/equip/action/EquipTemplateAction.java

@@ -46,7 +46,7 @@ public class EquipTemplateAction {
      * 获取装备库信息
      *
      * @param flowContext flowContext
-     * @param stringValue 装备库id
+     * @param stringValue 装备库itemId
      */
     @ActionMethod(EquipCmd.getEquipTemplate)
     public EquipTemplateMessage getEquipTemplate(FlowContext flowContext, StringValue stringValue) { //参数值
@@ -60,20 +60,12 @@ public class EquipTemplateAction {
      * 实际这里应该传入怪物id,根据怪物-物品-掉率的绑定关系去随机出掉落物品,暂时还没有怪物,先这样处理
      *
      * @param flowContext flowContext
-     * @param stringValve 装备库ids(xxx-xxx)
+     * @param stringValve 装备库itemIds(xxx-xxx)
      */
     @ActionMethod(EquipCmd.randomEquip)
     public List<EquipMessage> randomEquip(FlowContext flowContext, StringValue stringValve) { //参数值
         long userId = flowContext.getUserId();
         String[] itemIds = stringValve.value.split("-");
-//        List<EquipMessage> equipMessageList = new ArrayList<>();
-//        for(String item:itemIds){
-//            // 初始化装备数据,暂时放这
-//            Equip equip = equipTemplateService.randomEquip(item,userId);
-//            EquipMessage equipMessage = EquipMapper.ME.convert(equip);
-//            equipMessageList.add(equipMessage);
-//        }
-
         List<EquipMessage> equipMessageList = equipTemplateService.randomEquipBatch(Arrays.asList(itemIds),userId)
                 .stream()
                 .map(EquipMapper.ME::convert)

+ 10 - 13
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/BasicEquipProperty.java → logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/ElseEquipProperty.java

@@ -21,13 +21,10 @@ package com.iohao.mmo.equip.entity;
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.experimental.FieldDefaults;
-import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
-import java.util.Objects;
-
 /**
- * 装备基础属性
+ * 装备额外属性
  * <pre>
  *     装备的基本属性
  * </pre>
@@ -38,7 +35,7 @@ import java.util.Objects;
 @Data
 @Document
 @FieldDefaults(level = AccessLevel.PRIVATE)
-public class BasicEquipProperty {
+public class ElseEquipProperty {
     /** 体质 */
     int constitution;
     /** 魔力 */
@@ -50,13 +47,13 @@ public class BasicEquipProperty {
     /** 敏捷 */
     int agile;
 
-    public static BasicEquipProperty resetBasicEquipProperty() {
-        BasicEquipProperty basicEquipProperty = new BasicEquipProperty();
-        basicEquipProperty.constitution = 0;
-        basicEquipProperty.magicPower = 0;
-        basicEquipProperty.power = 0;
-        basicEquipProperty.endurance = 0;
-        basicEquipProperty.agile = 0;
-        return basicEquipProperty;
+    public static ElseEquipProperty resetElseEquipProperty() {
+        ElseEquipProperty elseEquipProperty = new ElseEquipProperty();
+        elseEquipProperty.constitution = 0;
+        elseEquipProperty.magicPower = 0;
+        elseEquipProperty.power = 0;
+        elseEquipProperty.endurance = 0;
+        elseEquipProperty.agile = 0;
+        return elseEquipProperty;
     }
 }

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

@@ -50,6 +50,12 @@ public class Equip {
     int position;
     /** 要求等级 */
     int level;
+    /** 装备固定属性最小值 */
+    FixedEquipProperty fixedEquipPropertyMin;
+    /** 装备固定属性最大值 */
+    FixedEquipProperty fixedEquipPropertyMax;
+    /** 装备固定属性 */
+    FixedEquipProperty fixedEquipProperty;
     /** 品质 1普通,2极品*/
     int quality;
     /** 自定义属性随机范围最小值 */
@@ -58,6 +64,6 @@ public class Equip {
     int totalAttrMax;
     /** 装备库id */
     String equipTemplateId;
-    /** 基础属性 */
-    BasicEquipProperty basicEquipProperty;
+    /** 额外属性 */
+    ElseEquipProperty elseEquipProperty;
 }

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

@@ -42,6 +42,10 @@ public class EquipTemplate {
     int position;
     /** 要求等级 */
     int level;
+    /** 装备固定属性最小值 */
+    FixedEquipProperty fixedEquipPropertyMin;
+    /** 装备固定属性最大值 */
+    FixedEquipProperty fixedEquipPropertyMax;
     /** 自定义属性随机范围最小值 */
     int totalAttrMin;
     /** 自定义属性随机范围最大值 */

+ 83 - 0
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/FixedEquipProperty.java

@@ -0,0 +1,83 @@
+/*
+ * ioGame
+ * Copyright (C) 2021 - 2023  渔民小镇 (262610965@qq.com、luoyizhu@gmail.com) . All Rights Reserved.
+ * # iohao.com . 渔民小镇
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+package com.iohao.mmo.equip.entity;
+
+import com.iohao.mmo.equip.utils.RandomUtils;
+import lombok.AccessLevel;
+import lombok.Builder;
+import lombok.Data;
+import lombok.experimental.FieldDefaults;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.Objects;
+
+/**
+ * 装备固定属性
+ * <pre>
+ *     装备的基本属性
+ * </pre>
+ *
+ * @author 唐斌
+ * @date 2023-07-24
+ */
+@Data
+@Builder
+@Document
+@FieldDefaults(level = AccessLevel.PRIVATE)
+public class FixedEquipProperty {
+    /** 生命值 */
+    int hp;
+    /** 魔法值 */
+    int mp;
+    /** 物理攻击 */
+    int physicsAttack;
+    /** 物理防御 */
+    int physicsDefense;
+    /** 魔法攻击 */
+    int magicAttack;
+    /** 魔法防御 */
+    int magicDefense;
+    /** 治疗强度 */
+    int treatAttack;
+    /** 封印强度 */
+    int sealAttack;
+    /** 封印防御(抵抗封印) */
+    int sealDefense;
+    /** 速度 */
+    int speed;
+    /** 怒气 */
+    int anger;
+
+    public static FixedEquipProperty randomFixed(FixedEquipProperty fixedEquipPropertyMin,FixedEquipProperty fixedEquipPropertyMax){
+        if(fixedEquipPropertyMin==null || fixedEquipPropertyMax == null)    return FixedEquipProperty.builder().build();
+        return FixedEquipProperty.builder()
+                .hp(RandomUtils.randomFromInt(fixedEquipPropertyMin.getHp(),fixedEquipPropertyMax.getHp()))
+                .mp(RandomUtils.randomFromInt(fixedEquipPropertyMin.getMp(),fixedEquipPropertyMax.getMp()))
+                .physicsAttack(RandomUtils.randomFromInt(fixedEquipPropertyMin.getPhysicsAttack(),fixedEquipPropertyMax.getPhysicsAttack()))
+                .physicsDefense(RandomUtils.randomFromInt(fixedEquipPropertyMin.getPhysicsDefense(),fixedEquipPropertyMax.getMagicDefense()))
+                .magicAttack(RandomUtils.randomFromInt(fixedEquipPropertyMin.getMagicAttack(),fixedEquipPropertyMax.getMagicAttack()))
+                .magicDefense(RandomUtils.randomFromInt(fixedEquipPropertyMin.getMagicDefense(),fixedEquipPropertyMax.getMagicDefense()))
+                .treatAttack(RandomUtils.randomFromInt(fixedEquipPropertyMin.getTreatAttack(),fixedEquipPropertyMax.getTreatAttack()))
+                .sealAttack(RandomUtils.randomFromInt(fixedEquipPropertyMin.getSealAttack(),fixedEquipPropertyMax.getSealAttack()))
+                .sealDefense(RandomUtils.randomFromInt(fixedEquipPropertyMin.getSealDefense(),fixedEquipPropertyMax.getSealDefense()))
+                .speed(RandomUtils.randomFromInt(fixedEquipPropertyMin.getSpeed(),fixedEquipPropertyMax.getSpeed()))
+                .anger(RandomUtils.randomFromInt(fixedEquipPropertyMin.getAnger(),fixedEquipPropertyMax.getAnger()))
+                .build();
+    }
+}

+ 3 - 3
logic/equip-logic/src/main/java/com/iohao/mmo/equip/mapper/EquipMapper.java

@@ -18,10 +18,10 @@
  */
 package com.iohao.mmo.equip.mapper;
 
-import com.iohao.mmo.equip.entity.BasicEquipProperty;
+import com.iohao.mmo.equip.entity.ElseEquipProperty;
 import com.iohao.mmo.equip.entity.Equip;
 import com.iohao.mmo.equip.entity.EquipTemplate;
-import com.iohao.mmo.equip.proto.BasicEquipPropertyMessage;
+import com.iohao.mmo.equip.proto.ElseEquipPropertyMessage;
 import com.iohao.mmo.equip.proto.EquipMessage;
 import com.iohao.mmo.equip.proto.EquipTemplateMessage;
 import org.mapstruct.Mapper;
@@ -46,5 +46,5 @@ public interface EquipMapper {
     Equip convert(EquipMessage equipMessage);
 
     EquipTemplateMessage convert(EquipTemplate equipTemplate);
-    BasicEquipPropertyMessage convert(BasicEquipProperty basicEquipProperty);
+    ElseEquipPropertyMessage convert(ElseEquipProperty elseEquipProperty);
 }

+ 0 - 4
logic/equip-logic/src/main/java/com/iohao/mmo/equip/mapper/EquipTemplateMapper.java

@@ -18,11 +18,7 @@
  */
 package com.iohao.mmo.equip.mapper;
 
-import com.iohao.mmo.equip.entity.BasicEquipProperty;
-import com.iohao.mmo.equip.entity.Equip;
 import com.iohao.mmo.equip.entity.EquipTemplate;
-import com.iohao.mmo.equip.proto.BasicEquipPropertyMessage;
-import com.iohao.mmo.equip.proto.EquipMessage;
 import com.iohao.mmo.equip.proto.EquipTemplateMessage;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;

+ 6 - 11
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipService.java

@@ -19,14 +19,11 @@
 package com.iohao.mmo.equip.service;
 
 import com.iohao.mmo.common.config.GameCode;
-import com.iohao.mmo.equip.entity.BasicEquipProperty;
+import com.iohao.mmo.equip.entity.ElseEquipProperty;
 import com.iohao.mmo.equip.entity.Equip;
-import com.iohao.mmo.equip.entity.EquipTemplate;
 import com.iohao.mmo.equip.entity.Goods;
 import com.iohao.mmo.equip.utils.RandomUtils;
-import com.mongodb.bulk.BulkWriteResult;
 import lombok.AllArgsConstructor;
-import org.springframework.data.mongodb.core.BulkOperations;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -34,10 +31,8 @@ import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
-import java.util.Optional;
 
 /**
  * @author 唐斌
@@ -86,8 +81,8 @@ public class EquipService {
 
         GameCode.objNotFound.assertTrue(oldEquip!=null);
 
-        BasicEquipProperty basicEquipProperty = equip.getBasicEquipProperty();
-        int saveAttrTotal = basicEquipProperty.getConstitution()+basicEquipProperty.getMagicPower()+basicEquipProperty.getPower()+basicEquipProperty.getEndurance()+basicEquipProperty.getAgile();
+        ElseEquipProperty elseEquipProperty = equip.getElseEquipProperty();
+        int saveAttrTotal = elseEquipProperty.getConstitution()+ elseEquipProperty.getMagicPower()+ elseEquipProperty.getPower()+ elseEquipProperty.getEndurance()+ elseEquipProperty.getAgile();
 
         GameCode.allotNotEnough.assertTrue(saveAttrTotal<=oldEquip.getAttrTotal());
 
@@ -100,7 +95,7 @@ public class EquipService {
         //获取分配的字段
 
         update.set("undistributedAttr", oldEquip.getAttrTotal()-saveAttrTotal);
-        update.set("basicEquipProperty", basicEquipProperty);
+        update.set("elseEquipProperty", elseEquipProperty);
         mongoTemplate.upsert(query,update,Equip.class);
     }
 
@@ -118,7 +113,7 @@ public class EquipService {
         //品质
         boolean excellentFlag = RandomUtils.isExcellent(excellentRate);//是否生成极品
         equip.setQuality(excellentFlag?2:1);
-        //随机属性值
+        //额外属性值
         int newAttrTotal = RandomUtils.randomFromExcellent(randomMin,randomMax,excellentFlag);
         // 直接替换掉原装备的属性值
         return replaceEquipAttr(equip,newAttrTotal);
@@ -131,7 +126,7 @@ public class EquipService {
      * @return
      */
     private Equip replaceEquipAttr(Equip equip,int newAttrTotal){
-        equip.setBasicEquipProperty(BasicEquipProperty.resetBasicEquipProperty());
+        equip.setElseEquipProperty(ElseEquipProperty.resetElseEquipProperty());
         equip.setAttrTotal(newAttrTotal);
         equip.setUndistributedAttr(newAttrTotal);
         mongoTemplate.save(equip);

+ 39 - 12
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipTemplateService.java

@@ -18,10 +18,7 @@
  */
 package com.iohao.mmo.equip.service;
 
-import com.iohao.mmo.equip.entity.BasicEquipProperty;
-import com.iohao.mmo.equip.entity.Equip;
-import com.iohao.mmo.equip.entity.EquipTemplate;
-import com.iohao.mmo.equip.entity.Goods;
+import com.iohao.mmo.equip.entity.*;
 import com.iohao.mmo.equip.utils.RandomUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -79,9 +76,23 @@ public class EquipTemplateService {
         // 初始化一些装备配置,后期将移到 excel 中做。
         EquipTemplate equipTemplate = new EquipTemplate();
         equipTemplate.setPosition(1);
-        equipTemplate.setLevel(20);
-        equipTemplate.setTotalAttrMin(50);
-        equipTemplate.setTotalAttrMax(80);
+        equipTemplate.setLevel(10);
+        equipTemplate.setFixedEquipPropertyMin(FixedEquipProperty.builder()
+                        .hp(100)
+                        .mp(100)
+                        .physicsDefense(10)
+                        .magicDefense(10)
+                        .sealDefense(10)
+                .build());
+        equipTemplate.setFixedEquipPropertyMax(FixedEquipProperty.builder()
+                .hp(300)
+                .mp(300)
+                .physicsDefense(30)
+                .magicDefense(30)
+                .sealDefense(30)
+                .build());
+        equipTemplate.setTotalAttrMin(20);
+        equipTemplate.setTotalAttrMax(30);
 
         Goods goods = new Goods();
         goods.setName("皮甲");
@@ -101,9 +112,23 @@ public class EquipTemplateService {
         // 初始化一些装备配置,后期将移到 excel 中做。
         EquipTemplate equipTemplate2 = new EquipTemplate();
         equipTemplate2.setPosition(2);
-        equipTemplate2.setLevel(18);
-        equipTemplate2.setTotalAttrMin(20);
-        equipTemplate2.setTotalAttrMax(35);
+        equipTemplate2.setLevel(8);
+        equipTemplate2.setFixedEquipPropertyMin(FixedEquipProperty.builder()
+                .physicsAttack(8)
+                .magicAttack(8)
+                .treatAttack(8)
+                .sealAttack(8)
+                .anger(8)
+                .build());
+        equipTemplate2.setFixedEquipPropertyMax(FixedEquipProperty.builder()
+                .physicsAttack(24)
+                .magicAttack(24)
+                .treatAttack(24)
+                .sealAttack(24)
+                .anger(24)
+                .build());
+        equipTemplate2.setTotalAttrMin(16);
+        equipTemplate2.setTotalAttrMax(24);
 
         Goods goods2 = new Goods();
         goods2.setName("铁剑");
@@ -159,12 +184,14 @@ public class EquipTemplateService {
         //品质
         boolean excellentFlag = RandomUtils.isExcellent(BigDecimal.ZERO);//是否生成极品
         equip.setQuality(excellentFlag?2:1);
-        //随机属性值
+        //固定属性值
+        equip.setFixedEquipProperty(FixedEquipProperty.randomFixed(equipTemplate.getFixedEquipPropertyMin(),equipTemplate.getFixedEquipPropertyMax()));
+        //额外属性值
         equip.setAttrTotal(RandomUtils.randomFromExcellent(equipTemplate.getTotalAttrMin(),equipTemplate.getTotalAttrMax(),excellentFlag));
         equip.setUndistributedAttr(equip.getAttrTotal());
 
         //初始化分配的具体属性点
-        equip.setBasicEquipProperty(BasicEquipProperty.resetBasicEquipProperty());
+        equip.setElseEquipProperty(ElseEquipProperty.resetElseEquipProperty());
         equip.setUserId(userId);
         mongoTemplate.save(equip);
         return equip;

+ 0 - 14
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/GoodsService.java

@@ -18,24 +18,10 @@
  */
 package com.iohao.mmo.equip.service;
 
-import com.iohao.mmo.common.config.GameCode;
-import com.iohao.mmo.equip.entity.BasicEquipProperty;
-import com.iohao.mmo.equip.entity.Equip;
 import com.iohao.mmo.equip.entity.Goods;
-import com.mongodb.bulk.BulkWriteResult;
 import lombok.AllArgsConstructor;
-import org.springframework.data.mongodb.core.BulkOperations;
 import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.mongodb.core.query.Update;
-import org.springframework.data.util.Pair;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 /**
  * @author 唐斌

+ 1 - 1
logic/person-logic/src/main/java/com/iohao/mmo/person/entity/BasicProperty.java

@@ -26,7 +26,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
 import java.util.Objects;
 
 /**
- * 基础属性
+ * 额外属性
  * <pre>
  *     人物的基本属性、英雄的基本属性
  * </pre>

+ 3 - 4
provide/equip-provide/src/main/java/com/iohao/mmo/equip/client/EquipInputCommandRegion.java

@@ -19,7 +19,6 @@
 package com.iohao.mmo.equip.client;
 
 import com.iohao.game.action.skeleton.protocol.wrapper.ByteValueList;
-import com.iohao.game.action.skeleton.protocol.wrapper.IntValue;
 import com.iohao.game.action.skeleton.protocol.wrapper.StringValue;
 import com.iohao.game.external.client.AbstractInputCommandRegion;
 import com.iohao.game.external.client.command.InputRequestData;
@@ -90,9 +89,9 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
             int endurance = param.getInt(3,0);
             int agile = param.getInt(4,0);
 
-            BasicEquipPropertyMessage basicEquipPropertyMessage = new BasicEquipPropertyMessage(constitution,magicPower,power,endurance,agile);
+            ElseEquipPropertyMessage elseEquipPropertyMessage = new ElseEquipPropertyMessage(constitution,magicPower,power,endurance,agile);
             EquipMessage equipMessage = new EquipMessage();
-            equipMessage.basicEquipProperty = basicEquipPropertyMessage;
+            equipMessage.elseEquipProperty = elseEquipPropertyMessage;
             equipMessage.itemId = itemId;
             return equipMessage;
         };
@@ -136,7 +135,7 @@ public class EquipInputCommandRegion extends AbstractInputCommandRegion {
         };
 
         // 10-5
-        ofCommand(EquipCmd.delBatch).callback(EquipMessage.class, result -> {
+        ofCommand(EquipCmd.delEquipBatch).callback(EquipMessage.class, result -> {
             EquipMessage value = result.getValue();
             log.info("装备属性信息 : {}", value);
         }).setDescription("批量删除装备").setInputRequestData(inputRequestData);

+ 1 - 1
provide/equip-provide/src/main/java/com/iohao/mmo/equip/cmd/EquipCmd.java

@@ -37,7 +37,7 @@ public interface EquipCmd {
     /** 重新随机总属性点 */
     int resetEquip = 4;
     /** 批量删除装备 */
-    int delBatch = 5;
+    int delEquipBatch = 5;
     /** 初始化装备库 */
     int initEquipTemplate = 10;
     /** 获取装备库信息 */

+ 4 - 4
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/BasicEquipPropertyMessage.java → provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/ElseEquipPropertyMessage.java

@@ -24,7 +24,7 @@ import lombok.ToString;
 import lombok.experimental.FieldDefaults;
 
 /**
- * 装备基础属性
+ * 装备额外属性
  *
  * @author 唐斌
  * @date 2023-07-30
@@ -33,7 +33,7 @@ import lombok.experimental.FieldDefaults;
 @ToString
 @ProtobufClass
 @FieldDefaults(level = AccessLevel.PUBLIC)
-public class BasicEquipPropertyMessage {
+public class ElseEquipPropertyMessage {
     /** 体质 */
     int constitution;
     /** 魔力 */
@@ -45,10 +45,10 @@ public class BasicEquipPropertyMessage {
     /** 敏捷 */
     int agile;
 
-    public BasicEquipPropertyMessage() {
+    public ElseEquipPropertyMessage() {
     }
 
-    public BasicEquipPropertyMessage(int constitution, int magicPower, int power, int endurance, int agile) {
+    public ElseEquipPropertyMessage(int constitution, int magicPower, int power, int endurance, int agile) {
         this.constitution = constitution;
         this.magicPower = magicPower;
         this.power = power;

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

@@ -50,6 +50,12 @@ public class EquipMessage{
     int position;
     /** 要求等级 */
     int level;
+    /** 装备固定属性最小值 */
+    FixedEquipPropertyMessage fixedEquipPropertyMin;
+    /** 装备固定属性最大值 */
+    FixedEquipPropertyMessage fixedEquipPropertyMax;
+    /** 装备固定属性 */
+    FixedEquipPropertyMessage fixedEquipProperty;
     /** 品质 1普通,2极品*/
     int quality;
     /** 自定义属性随机范围最小值 */
@@ -58,6 +64,6 @@ public class EquipMessage{
     int totalAttrMax;
     /** 装备库id */
     String equipTemplateId;
-    /** 基础属性 */
-    BasicEquipPropertyMessage basicEquipProperty;
+    /** 额外属性 */
+    ElseEquipPropertyMessage elseEquipProperty;
 }

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

@@ -42,6 +42,10 @@ public class EquipTemplateMessage{
     int position;
     /** 要求等级 */
     int level;
+    /** 装备固定属性最小值 */
+    FixedEquipPropertyMessage fixedEquipPropertyMin;
+    /** 装备固定属性最大值 */
+    FixedEquipPropertyMessage fixedEquipPropertyMax;
     /** 自定义属性随机范围最小值 */
     int totalAttrMin;
     /** 自定义属性随机范围最大值 */

+ 59 - 0
provide/equip-provide/src/main/java/com/iohao/mmo/equip/proto/FixedEquipPropertyMessage.java

@@ -0,0 +1,59 @@
+/*
+ * ioGame
+ * Copyright (C) 2021 - 2023  渔民小镇 (262610965@qq.com、luoyizhu@gmail.com) . All Rights Reserved.
+ * # iohao.com . 渔民小镇
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+package com.iohao.mmo.equip.proto;
+
+import com.baidu.bjf.remoting.protobuf.annotation.ProtobufClass;
+import lombok.AccessLevel;
+import lombok.ToString;
+import lombok.experimental.FieldDefaults;
+
+/**
+ * 装备固定属性
+ *
+ * @author 唐斌
+ * @date 2023-07-30
+ * @description:
+ */
+@ToString
+@ProtobufClass
+@FieldDefaults(level = AccessLevel.PUBLIC)
+public class FixedEquipPropertyMessage {
+    /** 生命值 */
+    int hp;
+    /** 魔法值 */
+    int mp;
+    /** 物理攻击 */
+    int physicsAttack;
+    /** 物理防御 */
+    int physicsDefense;
+    /** 魔法攻击 */
+    int magicAttack;
+    /** 魔法防御 */
+    int magicDefense;
+    /** 治疗强度 */
+    int treatAttack;
+    /** 封印强度 */
+    int sealAttack;
+    /** 封印防御(抵抗封印) */
+    int sealDefense;
+    /** 速度 */
+    int speed;
+    /** 怒气 */
+    int anger;
+}