Эх сурвалжийг харах

银月:重新随机词条

tangbin 1 жил өмнө
parent
commit
e1f9b131a0

BIN
doc/Equip.xlsx


BIN
doc/EquipQuality.xlsx


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

@@ -64,11 +64,11 @@ public class EquipAction {
     public EquipShowMessage resetEquip(EquipResetMessage equipResetMessage) {
     public EquipShowMessage resetEquip(EquipResetMessage equipResetMessage) {
         GameCode.objNotFound.assertTrue(
         GameCode.objNotFound.assertTrue(
                 StringUtils.isNotBlank(equipResetMessage.id)
                 StringUtils.isNotBlank(equipResetMessage.id)
-                        && StringUtils.isNotBlank(equipResetMessage.excellentRateString)
         );
         );
         Equip equip = equipService.resetEquip(
         Equip equip = equipService.resetEquip(
-                (equipResetMessage.id),
-                new BigDecimal(equipResetMessage.excellentRateString)
+                equipResetMessage.id,
+                StringUtils.isNotBlank(equipResetMessage.excellentRateString)?
+                        new BigDecimal(equipResetMessage.excellentRateString):BigDecimal.ZERO
         );
         );
         return EquipMapper.ME.convertShowMessage(equip);
         return EquipMapper.ME.convertShowMessage(equip);
     }
     }

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

@@ -70,10 +70,6 @@ public class Equip {
     /** 装备固定属性 */
     /** 装备固定属性 */
     List<EquipEntry> equipPropertyFixedList;
     List<EquipEntry> equipPropertyFixedList;
 
 
-    /** 随机属性最小条数 */
-    int equipPropertyRandomMin;
-    /** 随机属性最大条数 */
-    int equipPropertyRandomMax;
     /** 装备随机属性 */
     /** 装备随机属性 */
     List<EquipEntry> equipPropertyRandomList;
     List<EquipEntry> equipPropertyRandomList;
 }
 }

+ 1 - 1
logic/equip-logic/src/main/java/com/iohao/mmo/equip/entity/EquipQuality.java

@@ -46,5 +46,5 @@ public class EquipQuality {
     /** 最大随机词条数 */
     /** 最大随机词条数 */
     int randomNumMax;
     int randomNumMax;
     /** 词条数对应随机权重,从少到多 */
     /** 词条数对应随机权重,从少到多 */
-    int[] prizeWeightArr;
+    Integer[] prizeWeightArr;
 }
 }

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

@@ -63,8 +63,4 @@ public class EquipTemplate {
     int equipPropertyFixedMax;
     int equipPropertyFixedMax;
     /** 装备固定属性 */
     /** 装备固定属性 */
     List<EquipEntry> equipPropertyFixedList;
     List<EquipEntry> equipPropertyFixedList;
-    /** 随机属性最小条数 */
-    int equipPropertyRandomMin;
-    /** 随机属性最大条数 */
-    int equipPropertyRandomMax;
 }
 }

+ 1 - 2
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipService.java

@@ -94,8 +94,7 @@ public class EquipService {
         //重新生成随机属性
         //重新生成随机属性
         List<EquipEntry> equipRandomEntryList =
         List<EquipEntry> equipRandomEntryList =
                 equipTemplateService.resetRandomEntryList(
                 equipTemplateService.resetRandomEntryList(
-                        equip.getEquipPropertyRandomMin(),
-                        equip.getEquipPropertyRandomMax(),
+                        equip.getQuality(),
                         equip.getLevel(),
                         equip.getLevel(),
                         equip.getPosition()
                         equip.getPosition()
                 );
                 );

+ 16 - 11
logic/equip-logic/src/main/java/com/iohao/mmo/equip/service/EquipTemplateService.java

@@ -43,6 +43,8 @@ public class EquipTemplateService {
 
 
     final MongoTemplate mongoTemplate;
     final MongoTemplate mongoTemplate;
 
 
+    final EquipQualityService equipQualityService;
+
     final EquipEntryTemplateService equipEntryTemplateService;
     final EquipEntryTemplateService equipEntryTemplateService;
 
 
     /**
     /**
@@ -140,8 +142,7 @@ public class EquipTemplateService {
         //生成随机属性
         //生成随机属性
         List<EquipEntry> equipEntryList =
         List<EquipEntry> equipEntryList =
                 resetRandomEntryList(
                 resetRandomEntryList(
-                        equipTemplate.getEquipPropertyRandomMin(),
-                        equipTemplate.getEquipPropertyRandomMax(),
+                        equipTemplate.getQuality(),
                         equipTemplate.getLevel(),
                         equipTemplate.getLevel(),
                         equipTemplate.getPosition()
                         equipTemplate.getPosition()
                 );
                 );
@@ -162,8 +163,6 @@ public class EquipTemplateService {
                             equipTemplate.getEquipPropertyBasicMin(),
                             equipTemplate.getEquipPropertyBasicMin(),
                             equipTemplate.getEquipPropertyBasicMax()))
                             equipTemplate.getEquipPropertyBasicMax()))
                 .equipPropertyFixedList(equipPropertyFixedList)
                 .equipPropertyFixedList(equipPropertyFixedList)
-                .equipPropertyRandomMin(equipTemplate.getEquipPropertyRandomMin())
-                .equipPropertyRandomMax(equipTemplate.getEquipPropertyRandomMax())
                 .equipPropertyRandomList(equipEntryList)
                 .equipPropertyRandomList(equipEntryList)
                 .build();
                 .build();
     }
     }
@@ -185,19 +184,25 @@ public class EquipTemplateService {
 
 
     /**
     /**
      * 重新生成随机属性
      * 重新生成随机属性
-     * @param numMin 最少条数
-     * @param numMax 最大条数
+     * @param quality 装备品质
      * @param level 装备要求等级
      * @param level 装备要求等级
      * @param position 部位
      * @param position 部位
      * @return List<EquipEntry> 装备词条列表
      * @return List<EquipEntry> 装备词条列表
      */
      */
-    public List<EquipEntry> resetRandomEntryList(int numMin,int numMax,int level,String position){
+    public List<EquipEntry> resetRandomEntryList(String quality,int level,String position){
+        List<EquipEntry> equipEntryList = new ArrayList<>();
+
+        EquipQuality equipQuality = equipQualityService.findByQuality(quality);
+        if (equipQuality==null||(equipQuality.getRandomNumMax()==0)){
+            return equipEntryList;
+        }
         //随机属性的条数
         //随机属性的条数
-        int randomCount = RandomKit.randomFromInt(
-                numMin,
-                numMax+1);
+//        int randomCount = RandomKit.randomFromInt(
+//                equipQuality.getRandomNumMin(),
+//                equipQuality.getRandomNumMax()+1);
+
+        int randomCount = equipQuality.getRandomNumMin() + RandomKit.weightRandom(equipQuality.getPrizeWeightArr());
         //生成随机属性
         //生成随机属性
-        List<EquipEntry> equipEntryList = new ArrayList<>();
         if(randomCount>0) {
         if(randomCount>0) {
             equipEntryList = equipEntryTemplateService.randomEntryBatch(
             equipEntryList = equipEntryTemplateService.randomEntryBatch(
                     level,
                     level,

+ 0 - 6
logic/excel-logic/src/main/java/com/iohao/mmo/excel/dto/EquipTemplateExcelDTO.java

@@ -98,11 +98,5 @@ public class EquipTemplateExcelDTO {
     @ExcelProperty(value = {"装备固定属性","属性编码"},index = 23)
     @ExcelProperty(value = {"装备固定属性","属性编码"},index = 23)
     private String codes;
     private String codes;
 
 
-    @ExcelProperty(value = {"装备随机属性","最小条数"},index = 24)
-    private int equipPropertyRandomMin;
-
-    @ExcelProperty(value = {"装备随机属性","最大条数"},index = 25)
-    private int equipPropertyRandomMax;
-
 
 
 }
 }

+ 1 - 1
logic/excel-logic/src/main/java/com/iohao/mmo/excel/listener/EquipQualityExcelListener.java

@@ -62,7 +62,7 @@ public class EquipQualityExcelListener<E, T> extends AnalysisEventListener<T> {
         //随机权重
         //随机权重
         if(StringUtils.isNotBlank(excel.getPrizeWeightStr())) {
         if(StringUtils.isNotBlank(excel.getPrizeWeightStr())) {
             String[] prizeWeightStrArr = excel.getPrizeWeightStr().split("-");
             String[] prizeWeightStrArr = excel.getPrizeWeightStr().split("-");
-            equipQuality.setPrizeWeightArr(Arrays.stream(prizeWeightStrArr).mapToInt(Integer::parseInt).toArray());
+            equipQuality.setPrizeWeightArr(Arrays.stream(prizeWeightStrArr).map(Integer::valueOf).toArray(Integer[]::new));
         }
         }
 
 
         equipQualityList.add(equipQuality);
         equipQualityList.add(equipQuality);

+ 0 - 2
logic/excel-logic/src/main/java/com/iohao/mmo/excel/service/impl/EquipTemplateExcelServiceImpl.java

@@ -62,8 +62,6 @@ public class EquipTemplateExcelServiceImpl extends BaseServiceImpl<EquipTemplate
             update.set("equipPropertyFixedMin",data.getEquipPropertyFixedMin());
             update.set("equipPropertyFixedMin",data.getEquipPropertyFixedMin());
             update.set("equipPropertyFixedMax",data.getEquipPropertyFixedMax());
             update.set("equipPropertyFixedMax",data.getEquipPropertyFixedMax());
             update.set("equipPropertyFixedList",data.getEquipPropertyFixedList());
             update.set("equipPropertyFixedList",data.getEquipPropertyFixedList());
-            update.set("equipPropertyRandomMin",data.getEquipPropertyRandomMin());
-            update.set("equipPropertyRandomMax",data.getEquipPropertyRandomMax());
 
 
             Pair<Query, Update> updatePair = Pair.of(query, update);
             Pair<Query, Update> updatePair = Pair.of(query, update);
             updateList.add(updatePair);
             updateList.add(updatePair);

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

@@ -65,8 +65,4 @@ public class EquipTemplateMessage{
     int equipPropertyFixedMax;
     int equipPropertyFixedMax;
     /** 装备固定属性 */
     /** 装备固定属性 */
     List<EquipEntryMessage> equipPropertyFixedList;
     List<EquipEntryMessage> equipPropertyFixedList;
-    /** 随机属性最小条数 */
-    int equipPropertyRandomMin;
-    /** 随机属性最大条数 */
-    int equipPropertyRandomMax;
 }
 }