|
@@ -0,0 +1,111 @@
|
|
|
|
+/*
|
|
|
|
+ * 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.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.repository.EquipTemplateRepository;
|
|
|
|
+import com.iohao.mmo.equip.utils.EquipUtils;
|
|
|
|
+import com.iohao.mmo.equip.utils.RandomUtils;
|
|
|
|
+import jakarta.annotation.Resource;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author 唐斌
|
|
|
|
+ * @date 2023-07-30
|
|
|
|
+ * @description: 装备属性实现类
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+public class EquipTemplateService {
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private GoodsService goodsService;
|
|
|
|
+
|
|
|
|
+ final MongoTemplate mongoTemplate;
|
|
|
|
+ final EquipTemplateRepository equipTemplateRepository;
|
|
|
|
+
|
|
|
|
+ public EquipTemplate ofEquip(String id) {
|
|
|
|
+
|
|
|
|
+ return mongoTemplate.findById(id, EquipTemplate.class);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void saveEquipTemplate(EquipTemplate equipTemplate) {
|
|
|
|
+ mongoTemplate.save(equipTemplate);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void initEquipTemplate() {
|
|
|
|
+ // 初始化一些英雄数配置,后期将移到 excel 中做。
|
|
|
|
+
|
|
|
|
+ EquipTemplate equipTemplate = new EquipTemplate();
|
|
|
|
+// equipTemplate.setId(1000000L);
|
|
|
|
+ equipTemplate.setPosition(1);
|
|
|
|
+ equipTemplate.setLevel(1);
|
|
|
|
+ equipTemplate.setTotalAttrMin(10);
|
|
|
|
+ equipTemplate.setTotalAttrMax(40);
|
|
|
|
+
|
|
|
|
+ Goods goods = new Goods();
|
|
|
|
+ goods.setName("装备名称1");
|
|
|
|
+ goods.setDesc("装备描述1");
|
|
|
|
+ goods.setIcon("装备图标1");
|
|
|
|
+ goods.setImage("装备大图1");
|
|
|
|
+ goods.setBindPrice(120);
|
|
|
|
+ goods.setPrice(100);
|
|
|
|
+ goods.setDealFlag(true);
|
|
|
|
+ goodsService.save(goods);
|
|
|
|
+ equipTemplate.setGoods(goods);
|
|
|
|
+
|
|
|
|
+ mongoTemplate.insert(equipTemplate);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据装备模板随机一件新的装备
|
|
|
|
+ * @param equipTemplateId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Equip randomEquip(String equipTemplateId){
|
|
|
|
+ EquipTemplate equipTemplate = mongoTemplate.findById(equipTemplateId, EquipTemplate.class);
|
|
|
|
+ Equip equip = new Equip();
|
|
|
|
+ //随机属性值
|
|
|
|
+ if(equipTemplate!=null){
|
|
|
|
+ //随机出的总属性值
|
|
|
|
+ equip.setAttrTotal(RandomUtils.randomFromInt(equipTemplate.getTotalAttrMin(),equipTemplate.getTotalAttrMax()));
|
|
|
|
+ equip.setQuality(EquipUtils.getEquipQuality(equipTemplate.getTotalAttrMin(),equipTemplate.getTotalAttrMax(),equip.getAttrTotal()));
|
|
|
|
+ }else {
|
|
|
|
+ equip.setAttrTotal(0);
|
|
|
|
+ equip.setQuality(1);
|
|
|
|
+ }
|
|
|
|
+ equip.setUndistributedAttr(equip.getAttrTotal());
|
|
|
|
+ equip.setEquipTemplate(equipTemplate);
|
|
|
|
+
|
|
|
|
+ BasicEquipProperty basicEquipProperty = new BasicEquipProperty(0,0,0,0,0);
|
|
|
|
+ equip.setBasicEquipProperty(basicEquipProperty);
|
|
|
|
+
|
|
|
|
+ mongoTemplate.save(equip);
|
|
|
|
+ return equip;
|
|
|
|
+ }
|
|
|
|
+}
|