|
@@ -20,14 +20,14 @@ package com.iohao.mmo.equip.service;
|
|
|
|
|
|
import com.iohao.mmo.common.config.GameCode;
|
|
|
import com.iohao.mmo.common.kit.RandomKit;
|
|
|
-import com.iohao.mmo.common.provide.item.ItemTypeIdConst;
|
|
|
import com.iohao.mmo.equip.entity.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
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.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -81,55 +81,6 @@ public class EquipTemplateService {
|
|
|
mongoTemplate.remove(query, EquipTemplate.class);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 初始化装备库(临时方法,后期移除改为从运营数据中导入)
|
|
|
- */
|
|
|
- public void initEquipTemplate() {
|
|
|
-// // 初始化一些装备配置,后期将移到 excel 中做。
|
|
|
-// EquipTemplate equipTemplate = new EquipTemplate();
|
|
|
-// equipTemplate.setPosition(1);
|
|
|
-// equipTemplate.setLevel(10);
|
|
|
-// equipTemplate.setFixedEquipPropertyMin(FixedEquipProperty.builder()
|
|
|
-// .hp(100)
|
|
|
-// .mp(100)
|
|
|
-// .physicsDefense(10)
|
|
|
-// .magicDefense(10)
|
|
|
-// .build());
|
|
|
-// equipTemplate.setFixedEquipPropertyMax(FixedEquipProperty.builder()
|
|
|
-// .hp(300)
|
|
|
-// .mp(300)
|
|
|
-// .physicsDefense(30)
|
|
|
-// .magicDefense(30)
|
|
|
-// .build());
|
|
|
-// equipTemplate.setTotalAttrMin(20);
|
|
|
-// equipTemplate.setTotalAttrMax(30);
|
|
|
-//
|
|
|
-// equipTemplate.setItemTypeId(ItemTypeIdConst.equipClothing10);
|
|
|
-//
|
|
|
-// mongoTemplate.save(equipTemplate);
|
|
|
-//
|
|
|
-// // 初始化一些装备配置,后期将移到 excel 中做。
|
|
|
-// EquipTemplate equipTemplate2 = new EquipTemplate();
|
|
|
-// equipTemplate2.setPosition(2);
|
|
|
-// equipTemplate2.setLevel(10);
|
|
|
-// equipTemplate2.setFixedEquipPropertyMin(FixedEquipProperty.builder()
|
|
|
-// .physicsAttack(10)
|
|
|
-// .magicAttack(10)
|
|
|
-// .anger(10)
|
|
|
-// .build());
|
|
|
-// equipTemplate2.setFixedEquipPropertyMax(FixedEquipProperty.builder()
|
|
|
-// .physicsAttack(30)
|
|
|
-// .magicAttack(30)
|
|
|
-// .anger(30)
|
|
|
-// .build());
|
|
|
-// equipTemplate2.setTotalAttrMin(20);
|
|
|
-// equipTemplate2.setTotalAttrMax(30);
|
|
|
-//
|
|
|
-// equipTemplate2.setItemTypeId(ItemTypeIdConst.equipWeapon10);
|
|
|
-// mongoTemplate.save(equipTemplate2);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 根据装备库列表批量随机新的装备
|
|
|
* @param itemTypeIdList 物品分类标识列表
|
|
@@ -166,8 +117,47 @@ public class EquipTemplateService {
|
|
|
* @return
|
|
|
*/
|
|
|
public Equip copyTemplate2Equip(EquipTemplate equipTemplate){
|
|
|
- int count = RandomKit.randomFromInt(equipTemplate.getEquipPropertyRandomMin(),equipTemplate.getEquipPropertyRandomMax());
|
|
|
- List<EquipEntry> equipEntryList =equipEntryTemplateService.randomEntryBatch(equipTemplate.getLevel(),equipTemplate.getPosition(),count);
|
|
|
+
|
|
|
+ List<EquipEntry> equipPropertyFixedList = equipTemplate.getEquipPropertyFixedList();
|
|
|
+ int fixedCount = 0;
|
|
|
+ //如果没有预设固定属性,那么就是随机固定属性的装备
|
|
|
+ if(equipPropertyFixedList==null|| equipPropertyFixedList.isEmpty()){
|
|
|
+ fixedCount = RandomKit.randomFromInt(
|
|
|
+ equipTemplate.getEquipPropertyFixedMin(),
|
|
|
+ equipTemplate.getEquipPropertyFixedMax()+1);
|
|
|
+ if(fixedCount>0) {
|
|
|
+ //生成随机固定属性
|
|
|
+ equipPropertyFixedList =
|
|
|
+ equipEntryTemplateService.randomEntryBatch(
|
|
|
+ equipTemplate.getLevel(),
|
|
|
+ equipTemplate.getPosition(),
|
|
|
+ fixedCount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(equipPropertyFixedList!=null&&!equipPropertyFixedList.isEmpty()) {
|
|
|
+ //生成准确的固定属性
|
|
|
+ equipEntryTemplateService.propertyDetail(
|
|
|
+ equipTemplate.getLevel(),
|
|
|
+ equipPropertyFixedList);
|
|
|
+ }
|
|
|
+ //随机属性的条数
|
|
|
+ int randomCount = RandomKit.randomFromInt(
|
|
|
+ equipTemplate.getEquipPropertyRandomMin(),
|
|
|
+ equipTemplate.getEquipPropertyRandomMax()+1);
|
|
|
+ //生成随机属性
|
|
|
+ List<EquipEntry> equipEntryList = new ArrayList<>();
|
|
|
+ if(randomCount>0) {
|
|
|
+ equipEntryList = equipEntryTemplateService.randomEntryBatch(
|
|
|
+ equipTemplate.getLevel(),
|
|
|
+ equipTemplate.getPosition(),
|
|
|
+ randomCount);
|
|
|
+ }
|
|
|
+ if(equipEntryList!=null&&!equipEntryList.isEmpty()) {
|
|
|
+ //生成准确的随机属性
|
|
|
+ equipEntryTemplateService.propertyDetail(
|
|
|
+ equipTemplate.getLevel(),
|
|
|
+ equipEntryList);
|
|
|
+ }
|
|
|
return Equip.builder()
|
|
|
.itemTypeId(equipTemplate.getItemTypeId())
|
|
|
.position(equipTemplate.getPosition())
|
|
@@ -180,10 +170,10 @@ public class EquipTemplateService {
|
|
|
.equipPropertyBasicMin(equipTemplate.getEquipPropertyBasicMin())
|
|
|
.equipPropertyBasicMax(equipTemplate.getEquipPropertyBasicMax())
|
|
|
.equipPropertyBasic(
|
|
|
- EquipPropertyBasic.randomFixed(
|
|
|
+ EquipPropertyBasic.randomBasic(
|
|
|
equipTemplate.getEquipPropertyBasicMin(),
|
|
|
equipTemplate.getEquipPropertyBasicMax()))
|
|
|
- .equipPropertyFixedList(equipTemplate.getEquipPropertyFixedList())
|
|
|
+ .equipPropertyFixedList(equipPropertyFixedList)
|
|
|
.equipPropertyRandomMin(equipTemplate.getEquipPropertyRandomMin())
|
|
|
.equipPropertyRandomMax(equipTemplate.getEquipPropertyRandomMax())
|
|
|
.equipPropertyRandomList(equipEntryList)
|