mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-26 10:16:14 +00:00
提交
This commit is contained in:
@@ -23,8 +23,6 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static java.awt.SystemColor.info;
|
||||
|
||||
/**
|
||||
* 玩家宠物
|
||||
*/
|
||||
|
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user