天宫秘宝修改

lvxinran 2020-09-25 10:32:09 +08:00
parent 2d788828d5
commit 066de19115
5 changed files with 18 additions and 6 deletions

View File

@ -125,7 +125,7 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
user.getExpeditionManager().addScore(score);
Map<Integer, Integer> rewardStatusMap = user.getExpeditionManager().getWorldTreasureReward().getRewardStatusMap();
ExpeditionLogic.sendTreasureRewardUpdate(iSession,user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime());
ExpeditionLogic.sendTreasureRewardUpdate(iSession,user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime(),expeditionManager.getWorldTreasureReward().getIsBuy());
Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build();
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true);

View File

@ -59,7 +59,7 @@ public class TakeTreasureRewardHandler extends BaseHandler<Expedition.Expedition
worldTreasureReward.updateMissionStatus(id,changeState);
Map<Integer,Integer> stateUpdateMap = new HashMap<>();
stateUpdateMap.put(id,changeState);
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime());
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime(),worldTreasureReward.getIsBuy());
}else{
Map<Integer,Integer> stateUpdateMap = new HashMap<>();
Set<SWorldBossTreasureConfig> sWorldBossTreasureConfigs = idsByPeriods.get(round);
@ -76,7 +76,7 @@ public class TakeTreasureRewardHandler extends BaseHandler<Expedition.Expedition
throw new ErrorCodeException("无奖励可领取");
}
user.getExpeditionManager().onlyUpdateTreasureReward();
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime());
ExpeditionLogic.sendTreasureRewardUpdate(iSession,worldTreasureReward.getScore(),stateUpdateMap,worldTreasureReward.getCreateTime(),worldTreasureReward.getIsBuy());
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, drops, BIReason.EXCEPTION_TREASURE_REWARD);
Expedition.ExpeditionTakeTreasureResponse build = Expedition.ExpeditionTakeTreasureResponse.newBuilder().setDrop(drop).build();

View File

@ -16,6 +16,7 @@ public class WorldTreasureReward extends MongoBase {
private int createTime; //取当天零点 根据其可以推算出期数。
private int round;
private int score;
private int isBuy;
private Map<Integer,Integer> rewardStatusMap = new HashMap<>(); //领取状态 1表示领取基础奖励 2表示领取额外奖励。
WorldTreasureReward(){
@ -34,6 +35,7 @@ public class WorldTreasureReward extends MongoBase {
}
score = 0;
rewardStatusMap = new HashMap<>();
setIsBuy(0);
updateRound(round+1);
}
@ -83,5 +85,12 @@ public class WorldTreasureReward extends MongoBase {
this.firstStartTime = firstStartTime;
}
public int getIsBuy() {
return isBuy;
}
public void setIsBuy(int isBuy) {
this.isBuy = isBuy;
updateString("isBuy",isBuy);
}
}

View File

@ -795,15 +795,16 @@ public class ExpeditionLogic {
Map<Integer, Set<SWorldBossTreasureConfig>> idsByPeriods = worldBossTreasureStaticConfig.getIdsByPeriods();
Map<Integer,Integer> changeStateMap = new HashMap<>(rewardStatusMap);
idsByPeriods.get(worldTreasureReward.getRound()).forEach(item->changeStateMap.putIfAbsent(item.getId(),0));
sendTreasureRewardUpdate(session,0,changeStateMap,worldTreasureReward.getCreateTime());
sendTreasureRewardUpdate(session,0,changeStateMap,worldTreasureReward.getCreateTime(),worldTreasureReward.getIsBuy());
}
}
public static void sendTreasureRewardUpdate(ISession iSession,int score,Map<Integer,Integer> changeStatusMap,int time){
public static void sendTreasureRewardUpdate(ISession iSession,int score,Map<Integer,Integer> changeStatusMap,int time,int isBuy){
Expedition.TreasureStateIndicaion.Builder builder = Expedition.TreasureStateIndicaion.newBuilder().setScore(score);
builder.setResetTime(time);
changeStatusMap.forEach((id,status)-> builder.addTreasureRewardState(Expedition.TreasureRewardState.newBuilder().setId(id).setState(status).build()));
builder.setIsBuy(isBuy);
MessageUtil.sendIndicationMessage(iSession,1, MessageTypeProto.MessageType.EXPEDITION_TREASURE_STATE_INDICATION_VALUE,builder.build(),true);
}
@ -1027,6 +1028,7 @@ public class ExpeditionLogic {
response.addAllTreasureRewardState(states);
response.setScore(worldTreasureReward.getScore());
response.setResetTime(worldTreasureReward.getCreateTime());
response.setIsBuy(worldTreasureReward.getIsBuy());
}else {
response.setResetTime(-1);
}

View File

@ -398,8 +398,9 @@ public class BuyGoodsLogic {
}
if(type==GiftGoodsType.SKY_TREASURE){
user.getExpeditionManager().getWorldTreasureReward().setScore(user.getExpeditionManager().getWorldTreasureReward().getScore()+SSpecialConfig.getIntegerValue(SSpecialConfig.SKY_TREASURE_SCORE_INGIFT));
user.getExpeditionManager().getWorldTreasureReward().setIsBuy(1);
Map<Integer, Integer> rewardStatusMap = user.getExpeditionManager().getWorldTreasureReward().getRewardStatusMap();
ExpeditionLogic.sendTreasureRewardUpdate(OnlineUserManager.getSessionByUid(user.getId()),user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime());
ExpeditionLogic.sendTreasureRewardUpdate(OnlineUserManager.getSessionByUid(user.getId()),user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap,user.getExpeditionManager().getWorldTreasureReward().getCreateTime(),1);
}
if(sRechargeCommodityConfig.getTime() ==5){
rechargeInfo.updateRefreshMapByKey(sRechargeCommodityConfig.getId(),TimeUtils.now()+sRechargeCommodityConfig.getDailyUpdate()*TimeUtils.DAY);