lvxinran 2020-05-25 11:54:29 +08:00
commit 8485c18b7f
4 changed files with 26 additions and 15 deletions

View File

@ -43,8 +43,6 @@ public class StartExpeditionBattleRequest extends BaseHandler<Expedition.StartEx
@Override
public void processWithProto(ISession iSession, Expedition.StartExpeditionBattleRequest proto) throws Exception {
//TODO 新需求 玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。??
User user = UserManager.getUser(iSession.getUid());
int nodeId = proto.getNodeId();
int teamId = proto.getTeamId();

View File

@ -83,9 +83,15 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.EXPEDITION_BOX_REWARD);
//notify
//updata node
Set<CommonProto.ExpeditionNodeInfo> nodeInfos = ExpeditionLogic.openLay(user,nodeInfo.getLay(),nodeId);
Expedition.ExpeditionNodeInfoIndication.Builder indication = Expedition.ExpeditionNodeInfoIndication.newBuilder();
indication.addAllNodeInfo(nodeInfos);
MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_NOINFO_INDICATION_VALUE, indication.build(), true);
HashSet<Integer> objects = new HashSet<>();
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
if(sExpeditionSetting == null){
throw new ErrorCodeException(ErrorCode.CFG_NULL);
@ -93,8 +99,6 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
int[][] fourthOpenRule = sExpeditionSetting.getFourthOpenRule();
if(expeditionManager.getExpeditionLeve()==2){
objects.add(3);
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
@ -104,14 +108,17 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
expeditionManager.setPassTimes(-1);//记录下
objects.add(4);
}
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
}else if(expeditionManager.getExpeditionLeve()==1){
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
objects.add(2);
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
}
Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build();
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true);
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
}
}

View File

@ -29,6 +29,7 @@ public class ExpeditionManager extends MongoBase {
private int expeditionLeve;//猎妖之路阶段
private Set<ExpeditionItem> propertyItems = new HashSet<>();
private WorldTreasureReward worldTreasureReward = new WorldTreasureReward() ;
private int freshTime;//刷新时间
@Transient
private Map<Integer, SExpeditionHolyConfig> effectItems = new HashMap<>();//圣物叠加 不入库
@ -213,6 +214,14 @@ public class ExpeditionManager extends MongoBase {
equipMapTemp.put(equip.getId(),equip);
}
public int getFreshTime() {
return freshTime;
}
public void setFreshTime(int freshTime) {
this.freshTime = freshTime;
updateString("freshTime" , freshTime);
}
public Map<String, Hero> getHeroMapTemp() {
return heroMapTemp;

View File

@ -80,13 +80,11 @@ public class ExpeditionLogic {
//每日重置
public void flushUserdataEveryDay(User user) throws Exception {
//TODO 重置时间 每个大闹天宫CD改为持续48小时
ExpeditionManager manager = user.getExpeditionManager();
TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition);
if(manager.getCurrentTime()==openTimeOfFuntionCacheByType.getTimes()){
return;
}
takeAllReward(user);
manager.clearExpeditionNodeInfos();
manager.setLay(1);
@ -98,10 +96,8 @@ public class ExpeditionLogic {
manager.setCurrentTime(openTimeOfFuntionCacheByType.getTimes());
manager.clearHeroToTemp();
manager.clearEquipToTemp();
//TODO
// checkAndResetTreasure(user);
manager.setFreshTime((int)(System.currentTimeMillis()/1000));
checkAndResetTreasure(user);
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Expedition.getFunctionType());
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
@ -115,7 +111,7 @@ public class ExpeditionLogic {
manager.setSortid(0);
}
if (HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)) {
if (HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)&&OnlineUserManager.getSessionByUid(user.getId())!=null) {
builder.addAllLay(manager.getRewardBox());
builder.addAllHeroInfo(ExpeditionLogic.getInstance().getAllHeroInfo(user));
builder.addAllNodeInfo(ExpeditionLogic.getInstance().getNodeInfo(user));
@ -123,6 +119,7 @@ public class ExpeditionLogic {
builder.addAllHeroList(new ArrayList<>());
builder.addAllEquip(new ArrayList<>());
builder.addAllEquip(new ArrayList<>());
builder.setStartTime(manager.getFreshTime());
}
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()), 1, MessageTypeProto.MessageType.ExpeditionResetIndication.getNumber(), builder.build(), true);
// reSetNode(user);