锻造接口

This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2024-01-08 03:01:50 +08:00
parent 7aef36352a
commit e737a09828
57 changed files with 1524 additions and 999 deletions

View File

@@ -18,7 +18,7 @@ public final class TbGRoleEquip extends AbstractBean {
public TbGRoleEquip(JsonObject _buf) {
id = _buf.get("id").getAsInt();
name = _buf.get("name").getAsString();
type = _buf.get("type").getAsInt();
position = _buf.get("position").getAsInt();
quality = _buf.get("quality").getAsInt();
icon = _buf.get("icon").getAsString();
{ com.google.gson.JsonArray _json0_ = _buf.get("levelBaseAttributesFactors").getAsJsonArray(); int __n0 = _json0_.size(); levelBaseAttributesFactors = new int[__n0]; int __index0=0; for(JsonElement __e0 : _json0_) { int __v0; __v0 = __e0.getAsInt(); levelBaseAttributesFactors[__index0++] = __v0; } }
@@ -43,7 +43,7 @@ public final class TbGRoleEquip extends AbstractBean {
/**
* 装备类别(1=武器/2=帽子/3=项链/4=护肩/5=衣服/6=腰带/7=手套/8=戒指/9=裤子/10=鞋子)
*/
public final int type;
public final int position;
/**
* 品质信息
*/
@@ -83,7 +83,7 @@ public final class TbGRoleEquip extends AbstractBean {
return "{ "
+ "(format_field_name __code_style field.name):" + id + ","
+ "(format_field_name __code_style field.name):" + name + ","
+ "(format_field_name __code_style field.name):" + type + ","
+ "(format_field_name __code_style field.name):" + position + ","
+ "(format_field_name __code_style field.name):" + quality + ","
+ "(format_field_name __code_style field.name):" + icon + ","
+ "(format_field_name __code_style field.name):" + levelBaseAttributesFactors + ","

View File

@@ -0,0 +1,49 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg.TB;
import luban.*;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
public final class TbGRoleEquipType extends AbstractBean {
public TbGRoleEquipType(JsonObject _buf) {
id = _buf.get("id").getAsInt();
name = _buf.get("name").getAsString();
}
public static TbGRoleEquipType deserialize(JsonObject _buf) {
return new cfg.TB.TbGRoleEquipType(_buf);
}
/**
* 类型Id
*/
public final int id;
/**
* 名称
*/
public final String name;
public static final int __ID__ = 1533767739;
@Override
public int getTypeId() { return __ID__; }
@Override
public String toString() {
return "{ "
+ "(format_field_name __code_style field.name):" + id + ","
+ "(format_field_name __code_style field.name):" + name + ","
+ "}";
}
}

View File

@@ -57,6 +57,8 @@ public final class Tables
public cfg.TbGRoleEquipLevel getTbGRoleEquipLevel() { return _tbgroleequiplevel; }
private final cfg.TbGRoleEquipQuality _tbgroleequipquality;
public cfg.TbGRoleEquipQuality getTbGRoleEquipQuality() { return _tbgroleequipquality; }
private final cfg.TbGRoleEquipType _tbgroleequiptype;
public cfg.TbGRoleEquipType getTbGRoleEquipType() { return _tbgroleequiptype; }
private final cfg.TbGSysFuben _tbgsysfuben;
public cfg.TbGSysFuben getTbGSysFuben() { return _tbgsysfuben; }
@@ -80,6 +82,7 @@ public final class Tables
_tbgroleequip = new cfg.TbGRoleEquip(loader.load("tbgroleequip"));
_tbgroleequiplevel = new cfg.TbGRoleEquipLevel(loader.load("tbgroleequiplevel"));
_tbgroleequipquality = new cfg.TbGRoleEquipQuality(loader.load("tbgroleequipquality"));
_tbgroleequiptype = new cfg.TbGRoleEquipType(loader.load("tbgroleequiptype"));
_tbgsysfuben = new cfg.TbGSysFuben(loader.load("tbgsysfuben"));
}
}

View File

@@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg;
import luban.*;
import com.google.gson.JsonElement;
public final class TbGRoleEquipType {
private final java.util.HashMap<Integer, cfg.TB.TbGRoleEquipType> _dataMap;
private final java.util.ArrayList<cfg.TB.TbGRoleEquipType> _dataList;
public TbGRoleEquipType(JsonElement _buf) {
_dataMap = new java.util.HashMap<Integer, cfg.TB.TbGRoleEquipType>();
_dataList = new java.util.ArrayList<cfg.TB.TbGRoleEquipType>();
for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
cfg.TB.TbGRoleEquipType _v;
_v = cfg.TB.TbGRoleEquipType.deserialize(_e_.getAsJsonObject());
_dataList.add(_v);
_dataMap.put(_v.id, _v);
}
}
public java.util.HashMap<Integer, cfg.TB.TbGRoleEquipType> getDataMap() { return _dataMap; }
public java.util.ArrayList<cfg.TB.TbGRoleEquipType> getDataList() { return _dataList; }
public cfg.TB.TbGRoleEquipType get(int key) { return _dataMap.get(key); }
}

View File

@@ -1,13 +1,10 @@
package cn.jisol.game.controller.argsresolver;
import cn.jisol.game.controller.exception.PlayerException;
import cn.jisol.game.controller.exception.TokenException;
import cn.jisol.game.controller.game.GPlayerController;
import cn.jisol.game.data.Cache;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.service.impl.PlayerServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import cn.jisol.game.entity.table.Player;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.support.WebDataBinderFactory;

View File

@@ -5,8 +5,8 @@ import cn.hutool.json.JSONUtil;
import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.data.GlobalId;
import cn.jisol.game.data.TD;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.entity.table.PlayerPet;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -3,8 +3,7 @@ package cn.jisol.game.controller.game;
import cn.jisol.game.controller.HttpCode;
import cn.jisol.game.controller.argsresolver.CurrentUser;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.service.PlayerService;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.service.impl.PlayerServiceImpl;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,7 +11,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;

View File

@@ -1,19 +1,136 @@
package cn.jisol.game.controller.game;
import cfg.TB.TbGRoleEquip;
import cfg.TB.TbGRoleEquipQuality;
import cfg.TB.TbGRoleEquipType;
import cfg.TbGEntity.TAttributeValue;
import cn.hutool.core.util.RandomUtil;
import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.data.ResourceId;
import cn.jisol.game.data.TD;
import cn.jisol.game.entity.data.GAttribute;
import cn.jisol.game.entity.table.*;
import cn.jisol.game.service.EquipForgingBenchService;
import cn.jisol.game.service.PetEquipService;
import cn.jisol.game.service.ResourceService;
import cn.jisol.game.util.GRandomUtil;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 玩家宠物装备
*/
@Api(value = "JNGameDemo - API", tags = {"PET - API"})
@Api(value = "JNGameDemo - API", tags = {"玩家宠物装备 - API"})
@RestController
@RequestMapping("/game/equip")
@ResponseBody
public class GPlayerEquipController {
@Autowired
PetEquipService petEquipService;
@Autowired
EquipForgingBenchService equipForgingBenchService;
@Autowired
ResourceService resourceService;
//获取玩家宠物列表
@ApiImplicitParams({})
@ApiOperation(value = "锻造装备(扣除玩家锻造石 打造一件装备)")
@GetMapping("/forging")
@Transactional
public NewsContext<PetEquip> forging(@CurrentPlayer Player player){
//扣除一个锻造石
resourceService.addResourceValue(player.getPlayerId(), ResourceId.ForgedStones.id, -1L);
//获取锻造台
EquipForgingBench forgingInfo = this.forgingInfo(player).data;
//随机取一个部位
TbGRoleEquipType position = GRandomUtil.randomArray(TD.DATA.getTbGRoleEquipType().getDataList());
//获取品质
TbGRoleEquipQuality qualityInfo = TD.DATA.getTbGRoleEquipQuality().get(forgingInfo.getForgingQuality());
//根据品质概率随机品质
int quality = GRandomUtil.odds(qualityInfo.odds) + 1;
//筛选装备
List<TbGRoleEquip> equips = TD.DATA.getTbGRoleEquip().getDataList().stream().filter(info -> (info.quality == quality && info.position == position.id)).collect(Collectors.toList());
//随机取一个装备
TbGRoleEquip equipInfo = GRandomUtil.randomArray(equips);
PetEquip equip = new PetEquip();
equip.setEquipCfgId(equipInfo.id);
equip.setEquipPlayerId(player.getPlayerId());
equip.setEquipLevel(forgingInfo.getForgingLevel());
equip.setEquipPosition(equipInfo.position);
equip.setEquipBaseAttributes(
Arrays.stream(equipInfo.baseAttributes).map(ranges ->
GAttribute.builder()
.id(ranges[0].id)
.value(RandomUtil.randomInt(ranges[0].value, ranges[1].value))
.build())
.collect(Collectors.toList())
);
if (equipInfo.highAttributeSize[0] != equipInfo.highAttributeSize[1]){
equip.setEquipHighAttributes(
Arrays.stream(new Object[RandomUtil.randomInt(equipInfo.highAttributeSize[0],equipInfo.highAttributeSize[1] + 1)]).map(item -> {
//随机取一个高级属性
TAttributeValue[] ranges = GRandomUtil.randomArray(Arrays.asList(equipInfo.highAttributes));
return GAttribute.builder()
.id(ranges[0].id)
.value(RandomUtil.randomInt(ranges[0].value, ranges[1].value + 1))
.build();
}).collect(Collectors.toList())
);
}else{
equip.setEquipHighAttributes(new ArrayList<>());
}
petEquipService.save(equip);
return NewsContext.onSuccess("锻造成功",petEquipService.getById(equip.getEquipId()));
}
//获取锻造台等级
@ApiImplicitParams({})
@ApiOperation(value = "获取锻造台")
@GetMapping("/forging/info")
public NewsContext<EquipForgingBench> forgingInfo(@CurrentPlayer Player player){
EquipForgingBench info = equipForgingBenchService.getOne(Wrappers.lambdaQuery(EquipForgingBench.class).eq(EquipForgingBench::getPlayerId,player.getPlayerId()));
//如果没有阵法则创建一个
if(Objects.isNull(info)){
try{
info = EquipForgingBench.builder().playerId(player.getPlayerId())
.forgingQuality(TD.DATA.getTbGRoleEquipQuality().getDataList().get(0).id)
.forgingLevel(TD.DATA.getTbGRoleEquipLevel().getDataList().get(0).id).build();
equipForgingBenchService.saveOrUpdate(info);
}catch (Exception ignored){}
assert equipForgingBenchService != null;
info = equipForgingBenchService.getById(player.getPlayerId());
}
return NewsContext.onSuccess("获取成功",info);
}
}

View File

@@ -4,9 +4,9 @@ import cfg.TB.TbGRoleUpLevel;
import cfg.TbGEntity.TResource;
import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.data.TD;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.entity.table.PlayerPet;
import cn.jisol.game.entity.table.Resource;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.ResourceService;
import cn.jisol.game.vo.news.NewsResource;

View File

@@ -1,20 +1,16 @@
package cn.jisol.game.controller.game;
import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.PlayerTactical;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.entity.table.PlayerTactical;
import cn.jisol.game.service.PlayerTacticalService;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**

View File

@@ -1,9 +1,8 @@
package cn.jisol.game.controller.game;
import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerTactical;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.entity.table.Resource;
import cn.jisol.game.service.ResourceService;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -16,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Wrapper;
import java.util.List;
/**

View File

@@ -7,9 +7,9 @@ import cn.jisol.game.controller.argsresolver.CurrentPlayer;
import cn.jisol.game.data.GlobalId;
import cn.jisol.game.data.ResourceId;
import cn.jisol.game.data.TD;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.entity.table.PlayerPet;
import cn.jisol.game.entity.table.Resource;
import cn.jisol.game.entity.mode.ModeOnHook;
import cn.jisol.game.entity.mode.ModeOnHookInfo;
import cn.jisol.game.mapper.ModeOnHookMapper;
@@ -22,7 +22,6 @@ import cn.jisol.game.vo.mode.ModeOnHookRankingOV;
import cn.jisol.game.vo.news.NewsResource;
import cn.jisol.game.vo.news.ov.ResourceUpdateOV;
import cn.jisol.ngame.util.NewsContext;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

View File

@@ -1,7 +1,7 @@
package cn.jisol.game.data;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.table.Player;
import java.util.HashMap;
import java.util.List;

View File

@@ -4,6 +4,8 @@ public enum ResourceId {
//金币资源
Gold(90001),
//锻造石
ForgedStones(90002),
;
public int id;

View File

@@ -0,0 +1,19 @@
package cn.jisol.game.entity.data;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
//游戏属性类
@Getter
@Setter
@Builder
public class GAttribute {
//属性Id
private Integer id;
//属性值
private int value;
}

View File

@@ -0,0 +1,20 @@
package cn.jisol.game.entity.table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
@Builder
@Data
@TableName("`equip_forging_bench`")
public class EquipForgingBench {
@TableId(type = IdType.AUTO)
private Integer forgingId; //锻造台Id
private Long playerId; //锻造台所属的玩家Id
private Integer forgingLevel; //锻造等级
private Integer forgingQuality; //锻造品质等级
}

View File

@@ -0,0 +1,32 @@
package cn.jisol.game.entity.table;
import cn.jisol.game.entity.data.GAttribute;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.Builder;
import lombok.Data;
import java.util.List;
//宠物装备
@Data
@TableName(value = "`pet_equip`",autoResultMap = true)
public class PetEquip {
@TableId(type = IdType.AUTO)
private Integer equipId; //装备唯一Id
private Integer equipCfgId; //装备配置表Id
private Long equipPlayerId; //装备的所属玩家Id
private Integer equipLevel; //装备等级
private Integer equipWear; //当前装备穿戴的宠物Id
private Integer equipPosition; //装备部位
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<GAttribute> equipBaseAttributes; //装备基础属性列表 JSON
@TableField(typeHandler = FastjsonTypeHandler.class)
private List<GAttribute> equipHighAttributes; //装备高级属性列表 JSON
}

View File

@@ -1,4 +1,4 @@
package cn.jisol.game.entity.game;
package cn.jisol.game.entity.table;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Builder;

View File

@@ -1,4 +1,4 @@
package cn.jisol.game.entity.game;
package cn.jisol.game.entity.table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@@ -1,4 +1,4 @@
package cn.jisol.game.entity.game;
package cn.jisol.game.entity.table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@@ -1,4 +1,4 @@
package cn.jisol.game.entity.game;
package cn.jisol.game.entity.table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@@ -0,0 +1,12 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.table.EquipForgingBench;
import cn.jisol.game.entity.table.PetEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;
@Component
public interface EquipForgingBenchMapper extends BaseMapper<EquipForgingBench> {
}

View File

@@ -1,6 +1,5 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.mode.ModeOnHook;
import cn.jisol.game.vo.mode.ModeOnHookRankingOV;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

View File

@@ -0,0 +1,11 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.table.PetEquip;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;
@Component
public interface PetEquipMapper extends BaseMapper<PetEquip> {
}

View File

@@ -1,6 +1,6 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.table.Player;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;

View File

@@ -1,6 +1,6 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.table.PlayerPet;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;

View File

@@ -1,7 +1,6 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.PlayerTactical;
import cn.jisol.game.entity.table.PlayerTactical;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;

View File

@@ -1,7 +1,6 @@
package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Resource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Component;

View File

@@ -2,10 +2,9 @@ package cn.jisol.game.network.client;
import cn.jisol.game.data.Cache;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.table.Player;
import cn.jisol.ngame.client.QueueNClient;
import javax.websocket.EncodeException;
import javax.websocket.Session;
import java.io.IOException;

View File

@@ -0,0 +1,9 @@
package cn.jisol.game.service;
import cn.jisol.game.entity.table.EquipForgingBench;
import cn.jisol.game.entity.table.PetEquip;
import com.baomidou.mybatisplus.extension.service.IService;
public interface EquipForgingBenchService extends IService<EquipForgingBench> {
}

View File

@@ -0,0 +1,9 @@
package cn.jisol.game.service;
import cn.jisol.game.entity.table.PetEquip;
import cn.jisol.game.entity.table.PlayerTactical;
import com.baomidou.mybatisplus.extension.service.IService;
public interface PetEquipService extends IService<PetEquip> {
}

View File

@@ -1,6 +1,6 @@
package cn.jisol.game.service;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.table.PlayerPet;
import com.baomidou.mybatisplus.extension.service.IService;
public interface PlayerPetService extends IService<PlayerPet> {

View File

@@ -1,7 +1,6 @@
package cn.jisol.game.service;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.table.Player;
import com.baomidou.mybatisplus.extension.service.IService;
public interface PlayerService extends IService<Player> {

View File

@@ -1,7 +1,6 @@
package cn.jisol.game.service;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.PlayerTactical;
import cn.jisol.game.entity.table.PlayerTactical;
import com.baomidou.mybatisplus.extension.service.IService;
public interface PlayerTacticalService extends IService<PlayerTactical> {

View File

@@ -1,8 +1,6 @@
package cn.jisol.game.service;
import cn.jisol.game.data.ResourceId;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Resource;
import com.baomidou.mybatisplus.extension.service.IService;
public interface ResourceService extends IService<Resource> {

View File

@@ -0,0 +1,14 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.entity.table.EquipForgingBench;
import cn.jisol.game.entity.table.PetEquip;
import cn.jisol.game.mapper.EquipForgingBenchMapper;
import cn.jisol.game.mapper.PetEquipMapper;
import cn.jisol.game.service.EquipForgingBenchService;
import cn.jisol.game.service.PetEquipService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class EquipForgingBenchServiceImpl extends ServiceImpl<EquipForgingBenchMapper, EquipForgingBench> implements EquipForgingBenchService {
}

View File

@@ -0,0 +1,12 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.entity.table.PetEquip;
import cn.jisol.game.mapper.ModeOnHookMapper;
import cn.jisol.game.mapper.PetEquipMapper;
import cn.jisol.game.service.PetEquipService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class PetEquipServiceImpl extends ServiceImpl<PetEquipMapper, PetEquip> implements PetEquipService {
}

View File

@@ -1,11 +1,8 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.mapper.PlayerMapper;
import cn.jisol.game.entity.table.PlayerPet;
import cn.jisol.game.mapper.PlayerPetMapper;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.PlayerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

View File

@@ -1,11 +1,8 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.entity.User;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.table.Player;
import cn.jisol.game.mapper.PlayerMapper;
import cn.jisol.game.mapper.UserMapper;
import cn.jisol.game.service.PlayerService;
import cn.jisol.game.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

View File

@@ -1,10 +1,7 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.PlayerTactical;
import cn.jisol.game.mapper.PlayerPetMapper;
import cn.jisol.game.entity.table.PlayerTactical;
import cn.jisol.game.mapper.PlayerTacticalMapper;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.PlayerTacticalService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

View File

@@ -1,9 +1,7 @@
package cn.jisol.game.service.impl;
import cn.jisol.game.controller.exception.ResourceNotException;
import cn.jisol.game.data.ResourceId;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Resource;
import cn.jisol.game.mapper.ResourceMapper;
import cn.jisol.game.service.ResourceService;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -12,7 +10,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.retry.RetryException;
import org.springframework.retry.annotation.Retryable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;

View File

@@ -0,0 +1,30 @@
package cn.jisol.game.util;
import cn.hutool.core.util.RandomUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
public class GRandomUtil {
//随机数值中任意一个对象
public static <T> T randomArray(List<T> list){
return list.get(RandomUtil.randomInt(0, list.size()));
}
//概率随机 (通过概率 返回 中奖下标)
public static int odds(int[] odds){
int sum = IntStream.of(odds).sum();
int random = RandomUtil.randomInt(0, sum);
for (int i = 0; i < odds.length; i++) {
if((random-=odds[i]) <= 0) return i;
}
return odds.length - 1;
}
}

View File

@@ -1,11 +1,10 @@
package cn.jisol.game.vo.news;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.Resource;
import cn.jisol.game.vo.news.ov.ResourceUpdateOV;
import cn.jisol.ngame.util.NewsContext;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.Builder;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;

View File

@@ -1,7 +1,7 @@
package cn.jisol.game.vo.news.ov;
import cn.jisol.game.entity.game.PlayerPet;
import cn.jisol.game.entity.game.Resource;
import cn.jisol.game.entity.table.PlayerPet;
import cn.jisol.game.entity.table.Resource;
import lombok.Builder;
import lombok.Data;

View File

@@ -3,5 +3,10 @@
"id": 90001,
"name": "金币",
"tig": "金币 (目前叫做金币 名称还没有定) 游戏的基础资源 用于升级宠物"
},
{
"id": 90002,
"name": "锻造石",
"tig": "锻造石 可以锻造装备的石头"
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
[
{
"id": 1,
"name": "武器"
},
{
"id": 2,
"name": "帽子"
},
{
"id": 3,
"name": "项链"
},
{
"id": 4,
"name": "护肩"
},
{
"id": 5,
"name": "衣服"
},
{
"id": 6,
"name": "腰带"
},
{
"id": 7,
"name": "手套"
},
{
"id": 8,
"name": "戒指"
},
{
"id": 9,
"name": "裤子"
},
{
"id": 10,
"name": "鞋子"
}
]