灵兽宝阁活动冲突

back_recharge
duhui 2022-08-29 23:09:58 +08:00
parent a0050f326b
commit e1e551f1f1
3 changed files with 52 additions and 29 deletions

View File

@ -1,31 +1,17 @@
package com.ljsd.jieling.logic.activity; package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.core.VipPrivilegeType; 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.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.activity.event.RandomCardEvent; import com.ljsd.jieling.logic.activity.event.RandomCardEvent;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic; import config.SLotterySetting;
import com.ljsd.jieling.logic.rank.RankContext; import config.SLotterySpecialConfig;
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 manager.STableManager; import manager.STableManager;
import org.springframework.data.redis.core.ZSetOperations;
import util.TimeUtils;
import java.util.*; import java.util.*;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Stream;
/** /**
* @author lvxinran * @author lvxinran

View File

@ -1,18 +1,9 @@
package com.ljsd.jieling.logic.activity; 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.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo; 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.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession; 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; import java.util.Map;

View File

@ -5,21 +5,22 @@ import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo; 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.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import config.SActivityRewardConfig; import config.SActivityRewardConfig;
import config.SLotterySpecialConfig;
import config.SSpiritAnimalSummon; import config.SSpiritAnimalSummon;
import manager.STableManager; import manager.STableManager;
import rpc.protocols.CommonProto; import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto; import rpc.protocols.PlayerInfoProto;
import java.util.Collections; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -31,6 +32,51 @@ public class LimitRandomSpecialMonsterActivityNew extends LimitRandomCardActivit
public LimitRandomSpecialMonsterActivityNew(int id) { public LimitRandomSpecialMonsterActivityNew(int id) {
super(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<Integer, Integer> mustAppear = cardEvent.getMustAppear();
int allCount = 0;
if(mustAppear.size()>2){
return;
}
int index = 1;
List<SLotterySpecialConfig> configList = new ArrayList<>();
for(Map.Entry<Integer,Integer> entry:mustAppear.entrySet()){
int key = entry.getKey();
List<SLotterySpecialConfig> 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 @Override