diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/store/BuyStoreItemHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/store/BuyStoreItemHandler.java index 31d8aa27a..8de55c986 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/store/BuyStoreItemHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/store/BuyStoreItemHandler.java @@ -1,6 +1,10 @@ package com.ljsd.jieling.handler.store; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; @@ -23,6 +27,9 @@ public class BuyStoreItemHandler extends BaseHandler { PlayerInfoProto.BuyStoreItemRequest buyStoreItemRequest = PlayerInfoProto.BuyStoreItemRequest.parseFrom(netData.parseClientProtoNetData()); CommonProto.Drop drop = StoreLogic.buyStoreItem(iSession.getUid(), buyStoreItemRequest.getStoreId(), buyStoreItemRequest.getItemId(), buyStoreItemRequest.getItemNum()); + if (buyStoreItemRequest.getItemId()==1106){ + Poster.getPoster().dispatchEvent(new NewWelfareEvent(UserManager.getUser(iSession.getUid()), NewWelfareTypeEnum.BUY_1106.getType(),0)); + } int msgId = MessageTypeProto.MessageType.BUY_STORE_ITEM_RESPONSE_VALUE; PlayerInfoProto.BuyStoreItemResponse builder = PlayerInfoProto.BuyStoreItemResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(iSession, 1,msgId, builder, true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index cdacf19ad..be604aa36 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -100,6 +100,9 @@ public class ActivityLogic implements IEventHandler{ //更新累计充值天数 ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY); + //更新新积天豪礼天数 + ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY); + ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCKY_GET); ActivityLogic.getInstance().resumeActivity(user,ActivityType.JADE_DYNASTY_MISSION); @@ -579,6 +582,7 @@ public class ActivityLogic implements IEventHandler{ if(activityId == 7201){ continue; } + int activityStatus = activityMission.getActivityState(); if(activityStatus == -1){ continue; @@ -587,6 +591,12 @@ public class ActivityLogic implements IEventHandler{ if(sGlobalActivity == null){ continue; } + if (sGlobalActivity.getType()==ActivityType.RECHARGE_SUM_DAY){ + if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) { + continue; + } + } + if(activityStatus == ActivityType.CLOSE_STATE){ long prepareTime = ToolsUtil.getEndTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),0, sGlobalActivity.getGapTime()); activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).setEndTime((int)(prepareTime/1000)).build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index f01421b17..6c2f48958 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -104,11 +104,13 @@ public interface ActivityType { int TRANSFORMATION_DRAW_CARD = 86;//方寸寻宝 int CONTINUOUS_GIFT_NEW = 87;//新连续礼包 int ARENA_RANK_EXPERIMENT = 88;//竞技试炼 + int NEW_RECHARGE_SUM_DAY = 90;//新积天豪礼 int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动 int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 + int NEW_GENERAL_ATTACK = 200;//新将来袭 int HERO_STAR = 500; int ITEMS_STORE= 6000;//百宝商会 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index 66f9023ab..96b3ab866 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -94,6 +94,7 @@ public enum ActivityTypeEnum { TRANSFORMATION_DRAW_CARD(ActivityType.TRANSFORMATION_DRAW_CARD,DefaultEmptyActivity::new),//方寸寻宝 CONTINUOUS_GIFT_NEW(ActivityType.CONTINUOUS_GIFT_NEW,ContinuousGiftActivity::new),//新连续礼包 ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼 + NEW_RECHARGE_SUM_DAY(ActivityType.NEW_RECHARGE_SUM_DAY,NewRechargeSumDayActivity::new),//新积天豪礼 SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝 ; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java new file mode 100644 index 000000000..02c8f562d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewRechargeSumDayActivity.java @@ -0,0 +1,76 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.config.clazzStaticCfg.ActivityStaticConfig; +import com.ljsd.jieling.jbean.ActivityManager; +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import config.SActivityRewardConfig; +import manager.STableManager; + +import java.util.Map; + +class NewRechargeSumDayActivity extends AbstractActivity { + + public NewRechargeSumDayActivity(int id) { + super(id); + } + + @Override + public void onResume(User user) { + ActivityManager activityManager = user.getActivityManager(); + ActivityMission activityMission = activityManager.getActivityMissionMap().get(id); + int buyNum=0; + for (Map.Entry progressInfoEntry : activityMission.getActivityMissionMap().entrySet()) { + if (progressInfoEntry.getValue().getState()==ActivityType.HAD_TAKED){ + buyNum++; + } + } + if (buyNum > activityMission.getV()) { + activityMission.setV(activityMission.getV() + 1); + } + if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { + ActivityLogic.getInstance().initMissionInfo(activityMission,id); + } + } + + @Override + void updateProgress(ActivityMission activityMission, int count) { + + int missionId =STableManager.getFigureConfig(ActivityStaticConfig.class).getRechargeDaySum().get(activityMission.getV() + 1); + ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(missionId); + if (activityProgressInfo == null || activityProgressInfo.getProgrss() == 1) { + return; + } + if (count>0 ) {//只要是充值就算 + //>= SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0] + activityProgressInfo.setProgrss(1); + } + } + + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + return checkValue(session, sActivityRewardConfig, activityProgressInfo); + } + + /** + * 根据配置解析数值进度完成度 + */ + @Override + boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + int[][] values = sActivityRewardConfig.getValues(); + User user = UserManager.getUser(session.getUid()); + int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV() + 1; + if (value < values[0][1]) { + return false; + } + if(activityProgressInfo.getProgrss()!=1){ + return false; + } + return true; + } + +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java index c0704938b..953e2b0b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewWelfareActivity.java @@ -30,6 +30,11 @@ public class NewWelfareActivity extends AbstractActivity { Poster.getPoster().listenEvent(this, NewWelfareEvent.class); } + @Override + public void initActivity(User user) throws Exception { + super.initActivity(user); + } + @Override public void onEvent(IEvent event) throws Exception { if (!(event instanceof NewWelfareEvent)) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java index dd5114447..9a5cd64c3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeSumDayActivity.java @@ -30,9 +30,9 @@ class RechargeSumDayActivity extends AbstractActivity { // SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0] activityMission.setV(activityMission.getV() + 1); } - if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { - ActivityLogic.getInstance().initMissionInfo(activityMission,id); - } +// if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) { +// ActivityLogic.getInstance().initMissionInfo(activityMission,id); +// } } @Override diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java index 985848b0b..3a76fd93c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsNewLogic.java @@ -227,9 +227,7 @@ public class BuyGoodsNewLogic { //处理特权 activePrivilege(user,config); resultRes.setResultCode(1); - if (goodsId==1106){ - Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.BUY_1106.getType(),0)); - } + //发送邮件 int[] mail = config.getMail(); if(config.getPrice()!=0&&mail!=null&&mail.length>1){