【家园功能1.0.1】任务优化,添加升级取消功能
parent
6f3c8768bf
commit
20b1c958e5
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue