【家园功能1.0.1】任务优化,添加升级取消功能

back_recharge
duhui 2021-12-24 18:20:10 +08:00
parent 6f3c8768bf
commit 20b1c958e5
2 changed files with 20 additions and 12 deletions

View File

@ -62,28 +62,28 @@ public class HomeLogic {
int now = TimeUtils.nowInt();
Map<Integer, SHomeLandLevel> config = STableManager.getConfig(SHomeLandLevel.class);
for (Integer id : idsList) {
SHomeLandLevel landLevel = config.get(id);
if (landLevel == null){
LOGGER.error("浮生门表信息建筑id不存在{}", id);
continue;
}
// 建筑信息验证
ArchitectureInfo info = user.getPlayerInfoManager().getArchitectureInfoMap().get(id);
if (info == null) {
LOGGER.error("浮生门玩家信息建筑id不存在{}", id);
continue;
}
SHomeLandLevel landLevel = config.get(info.getId());
if (landLevel == null){
LOGGER.error("浮生门表信息建筑id不存在{}", info.getId());
continue;
}
// 最高等级
int maxId = config.values().stream().filter(v->v.getPoolID()==landLevel.getPoolID()).mapToInt(SHomeLandLevel::getlevel).max().orElse(0);
if (info.getId() == maxId) {
LOGGER.error("浮生门建筑等级最高id{}", id);
LOGGER.error("浮生门建筑等级最高id{}", info.getId());
continue;
}
// 需要消耗的道具
int[][] items = landLevel.getCost();
boolean cost = ItemUtil.checkCostLong(user, items, 1);
if (!cost) {
LOGGER.error("浮生门建筑升级要求道具不足id{}", id);
LOGGER.error("浮生门建筑升级要求道具不足id{}", info.getId());
continue;
}
// 普通升级
@ -100,8 +100,9 @@ public class HomeLogic {
SHomeLandLevel landLevel1 = config.get(info.getId());
info.setUpLvEndTime(landLevel1.getTime() + now);
}
}else {
continue;
}
if (type == 3){
info.setUpLvEndTime(0);
}
// 立即完成
if (type == 2 && info.getUpLvEndTime() > now){
@ -120,7 +121,7 @@ public class HomeLogic {
int[][] cost1 = {{Integer.parseInt(stringValue[1]), (int) count}};
boolean itemCost = ItemUtil.itemCost(user, cost1, BIReason.ARCHITECTURE_IMMEDIATELY_UP_LEVEL, 0);
if (!itemCost){
LOGGER.error("浮生门立刻升级失败道具不足id{}", id);
LOGGER.error("浮生门立刻升级失败道具不足id{}", info.getId());
continue;
}
}
@ -130,7 +131,8 @@ public class HomeLogic {
// 最后更新
user.getPlayerInfoManager().putArchitectureInfo(landLevel.getPoolID(),info);
// 需要更新的建筑信息
CommonProto.ArchitectureInfo.Builder builder = CommonProto.ArchitectureInfo.newBuilder().setId(info.getId());
CommonProto.ArchitectureInfo.Builder builder = CommonProto.ArchitectureInfo.newBuilder()
.setId(info.getId()).setProductionStartTime(info.getProductionStartTime()).setUpLvEndTime(info.getUpLvEndTime());
list.add(builder.build());
}
PlayerInfoProto.HomeInfoResponse.Builder builder = PlayerInfoProto.HomeInfoResponse.newBuilder().addAllInfos(list);

View File

@ -65,6 +65,7 @@ public class MissionEventDistributor {
eventProcessor.put(GameEvent.MISTY_TRIP_REFRESH,new MistyTripMissionRefreshProcess());//缥缈之旅刷新开始
typeList = new ArrayList<>();
typeList.add(MissionType.REFRESH_MISSING_ROOM);
eventEnumListMap.put(GameEvent.MISSING_ROOM_REFRESH,typeList);
eventProcessor.put(GameEvent.MISSING_ROOM_REFRESH,new DailyRefreshEventProcess());
@ -572,7 +573,10 @@ public class MissionEventDistributor {
return missionTypeEnumListMap.get(gameMisionType);
}
//请求处理开始时,调用,便于汇总当前请求产生的所有结果
/**
* 便
* 使
*/
public static void requestStart() {
threadUseFlag.set(true);
Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap = threadMissionChangeList.get();
@ -591,7 +595,9 @@ public class MissionEventDistributor {
missionTypeEnumListMap.put(GameMisionType.COWFLYSKYMISSION, new ArrayList<>());
missionTypeEnumListMap.put(GameMisionType.ENDLESS_MISSION, new ArrayList<>());
missionTypeEnumListMap.put(GameMisionType.MISTY_TRIP_MISSION, new ArrayList<>());
missionTypeEnumListMap.put(GameMisionType.HOME_MISSION, new ArrayList<>());
} else {
missionTypeEnumListMap.get(GameMisionType.HOME_MISSION).clear();
missionTypeEnumListMap.get(GameMisionType.VIPMISSION).clear();
missionTypeEnumListMap.get(GameMisionType.DAILYMISSION).clear();
missionTypeEnumListMap.get(GameMisionType.COPYMISSION).clear();