This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2024-01-19 02:42:37 +08:00
parent bc2ddf1fcd
commit ed4e094536
36 changed files with 3752 additions and 123 deletions

View File

@@ -23,8 +23,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import static java.awt.SystemColor.info;
/**
* 玩家宠物
*/

View File

@@ -98,8 +98,15 @@ public class GDungeonController {
//获取等级数据
TDungeon dungeon = Objects.requireNonNull((TDungeon) tableData.get(dungeonItemId).getData());
//扣除消耗
resourceService.addResourceValue(player.getPlayerId(), tbGSysDungeon.consume.id, (long) -tbGSysDungeon.consume.value);
List<ResourceUpdateOV> ovs = new ArrayList<ResourceUpdateOV>(){
{
add(ResourceUpdateOV.onUpdate(resourceService.addResourceValue(player.getPlayerId(), tbGSysDungeon.consume.id, (long) -tbGSysDungeon.consume.value)));
}
};
ovs.addAll(resourceService.rewards(player.getPlayerId(), dungeon.rewards));
//更新等级
if(infos.get(dungeonId).getDungeonCfgItemId().equals(dungeonItemId)){
@@ -110,7 +117,7 @@ public class GDungeonController {
}
//发放奖励
return NewsResource.onSuccess("挑战成功",infos,resourceService.rewards(player.getPlayerId(), dungeon.rewards));
return NewsResource.onSuccess("挑战成功",infos,ovs);
}

View File

@@ -55,6 +55,16 @@ public class GOnHookController {
//生成的野怪列表
public static Map<Long, Map<String, GOnHookMessage.GOnHookPet>> CREEPS = new HashMap<>();
//清除指定玩家的野怪列表
public void onClearCreeps(Long playerId,List<String> saves){
Map<String, GOnHookMessage.GOnHookPet> creeps = CREEPS.get(playerId);
if(Objects.isNull(creeps)){
CREEPS.put(playerId,new HashMap<>());
}
Map<String, GOnHookMessage.GOnHookPet> collect = creeps.entrySet().stream().filter(item -> saves.contains(item.getKey())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
CREEPS.put(playerId,collect);
}
//获取玩家模式信息
@ApiImplicitParams({})
@ApiOperation(value = "生成野怪")
@@ -87,7 +97,10 @@ public class GOnHookController {
@ApiImplicitParams({})
@ApiOperation(value = "切换地图")
@PostMapping("/setMapId/{mapId}")
public NewsContext<ModeOnHook> setMapId(@CurrentPlayer Player player,@PathVariable Integer mapId){
public NewsContext<ModeOnHook> setMapId(@CurrentPlayer Player player,@PathVariable Integer mapId,@RequestBody List<String> saves){
if(Objects.isNull(saves)) saves = new ArrayList<>();
//判断是否有这个地图
TbGOnHookMaps map = TD.DATA.getTbGOnHookMaps().get(mapId);
if (Objects.isNull(map)) NewsContext.onFail("切换地图失败 没有这个地图哦");
@@ -95,7 +108,7 @@ public class GOnHookController {
data.setOnHookMap(mapId);
modeOnHookService.saveOrUpdate(data);
//切换地图 清理历史野怪
CREEPS.put(player.getPlayerId(),new HashMap<>());
this.onClearCreeps(player.getPlayerId(),saves);
return NewsContext.onSuccess("成功",data);
}
@@ -103,7 +116,9 @@ public class GOnHookController {
@ApiImplicitParams({})
@ApiOperation(value = "下一关")
@PostMapping("/nextLevel")
public NewsContext<ModeOnHook> nextLevel(@CurrentPlayer Player player){
public NewsContext<ModeOnHook> nextLevel(@CurrentPlayer Player player,@RequestBody List<String> saves){
if(Objects.isNull(saves)) saves = new ArrayList<>();
ModeOnHook data = this.getInfo(player).data;
//判断是否战胜当前关卡
@@ -117,12 +132,12 @@ public class GOnHookController {
data.getHookInfo().getMaps().put(data.getOnHookMap(),nextLevel.getId());
//并且重置当前关卡状态
data.getHookInfo().getMapStates().put(data.getOnHookMap(),ModeOnHookInfo.MapState.Fight);
data.getHookInfo().getMapStates().put(data.getOnHookMap(),0);
//保存地图
modeOnHookService.saveOrUpdate(data);
//下一关 清理历史野怪
CREEPS.put(player.getPlayerId(),new HashMap<>());
this.onClearCreeps(player.getPlayerId(),saves);
return NewsContext.onSuccess("下一关",data);
}
@@ -133,7 +148,9 @@ public class GOnHookController {
public NewsContext<ModeOnHook> winLevel(@CurrentPlayer Player player){
ModeOnHook data = this.getInfo(player).data;
data.getHookInfo().getMapStates().put(data.getOnHookMap(), ModeOnHookInfo.MapState.Win);
Integer count = data.getHookInfo().getMapStates().get(data.getOnHookMap());
if(Objects.isNull(count)) count = 0;
data.getHookInfo().getMapStates().put(data.getOnHookMap(),count+1);
//保存地图
modeOnHookService.saveOrUpdate(data);

View File

@@ -73,7 +73,8 @@ public class ModeOnHook {
//是否战胜当前关卡
public boolean isWinLevel(){
return ModeOnHookInfo.MapState.Win.equals(getHookInfo().getMapStates().get(getOnHookMap()));
if(Objects.isNull(getHookInfo().getMapStates().get(getOnHookMap()))) return false;
return getHookInfo().getMapStates().get(getOnHookMap()) >= 4;
}
}

View File

@@ -13,7 +13,7 @@ public class ModeOnHookInfo {
//地图关卡信息 {地图Id: 地图关卡Id}
private Map<Integer,Integer> maps;
//地图关卡状态 {地图Id: 状态(0:战斗中, 1:胜利)}
//地图关卡状态 {地图Id: 战胜次数}
private Map<Integer,Integer> mapStates;
public ModeOnHookInfo(){
@@ -21,9 +21,4 @@ public class ModeOnHookInfo {
mapStates = new HashMap<>();
}
public interface MapState{
Integer Fight = 0;
Integer Win = 1;
}
}