diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java index e6b5338f5..bf45b6987 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java @@ -1,31 +1,17 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.core.VipPrivilegeType; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; -import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; -import com.ljsd.jieling.jbean.ActivityProgressInfo; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mail.MailLogic; -import com.ljsd.jieling.logic.rank.RankContext; -import com.ljsd.jieling.logic.rank.RankEnum; -import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; -import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import config.*; +import config.SLotterySetting; +import config.SLotterySpecialConfig; import manager.STableManager; -import org.springframework.data.redis.core.ZSetOperations; -import util.TimeUtils; import java.util.*; -import java.util.function.Consumer; -import java.util.function.Predicate; -import java.util.stream.Stream; /** * @author lvxinran diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java index 0174b1ff4..6daaf7b32 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java @@ -1,18 +1,9 @@ package com.ljsd.jieling.logic.activity; -import com.ljsd.jieling.exception.ErrorCode; -import com.ljsd.jieling.exception.ErrorCodeException; -import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; -import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; -import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.MessageUtil; -import config.SActivityRewardConfig; -import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import java.util.Map; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java index 2afc05e3f..e33ea218d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivityNew.java @@ -5,21 +5,22 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.activity.event.IEvent; +import com.ljsd.jieling.logic.activity.event.Poster; +import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SActivityRewardConfig; +import config.SLotterySpecialConfig; import config.SSpiritAnimalSummon; import manager.STableManager; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -31,6 +32,51 @@ public class LimitRandomSpecialMonsterActivityNew extends LimitRandomCardActivit public LimitRandomSpecialMonsterActivityNew(int id) { super(id); + Poster.getPoster().listenEvent(this, RandomCardEvent.class); + } + + @Override + public void onEvent(IEvent event) throws Exception { + if(event instanceof RandomCardEvent){ + RandomCardEvent cardEvent =(RandomCardEvent) event; + if(cardEvent.getType()==0||cardEvent.getType()!=id){ + return; + } + User user = UserManager.getUser(cardEvent.getUid()); + if(user.getActivityManager().getActivityMissionMap().get(id)==null){ + return; + } + + Map mustAppear = cardEvent.getMustAppear(); + int allCount = 0; + if(mustAppear.size()>2){ + return; + } + int index = 1; + List configList = new ArrayList<>(); + for(Map.Entry entry:mustAppear.entrySet()){ + int key = entry.getKey(); + List lotterySpecialConfigListByType = SLotterySpecialConfig.getLotteryListByDifferentType(key); + if(lotterySpecialConfigListByType==null||lotterySpecialConfigListByType.isEmpty()){ + continue; + } + configList.addAll(lotterySpecialConfigListByType); + } + configList.sort(Comparator.comparingInt(SLotterySpecialConfig::getDifferentType)); + for(SLotterySpecialConfig config:configList){ + if(config==null||config.getIsNeedShow()==0){ + continue; + } + allCount +=mustAppear.get(config.getDifferentType())*index; + index*=1000; + } + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + + activityMission.setV(allCount); + update(UserManager.getUser(cardEvent.getUid()),cardEvent.getCount()); + + } + } @Override