灵兽抽卡修改

lvxinran 2020-11-16 21:09:43 +08:00
parent 3a9dd33fe9
commit 23bfdbe50f
3 changed files with 53 additions and 1 deletions

View File

@ -1391,6 +1391,10 @@ public class ActivityLogic implements IEventHandler{
if(activityMission==null||!activityMission.getActivityMissionMap().containsKey(0)){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
Map<Integer, SSpiritAnimalSummon> sSpiritAnimalSummon = STableManager.getConfig(SSpiritAnimalSummon.class);
if(!sSpiritAnimalSummon.containsKey(chooseId)||sSpiritAnimalSummon.get(chooseId).getActivityID()!=activityId){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
activityMission.getActivityMissionMap().get(0).setProgrss(chooseId);
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true);

View File

@ -14,6 +14,8 @@ import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.globals.GlobalItemType;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.ktbeans.ReportEventEnum;
import com.ljsd.jieling.ktbeans.ReportUtil;
import com.ljsd.jieling.logic.activity.ActivityType;
@ -333,6 +335,10 @@ public class HeroLogic{
for(int i = 0;i<tenTimesMustGetItem.length;i++) {
resultRandom[i+index+1] = tenTimesMustGetItem[i];
}
//是否需要根据活动替换所得物品
if(sLotterySetting.getLotteryType()==10){
changeRandomItem(user,sLotterySetting.getActivityId(),resultRandom);
}
Poster.getPoster().dispatchEvent(new RandomCardEvent(user.getId(),sLotterySetting.getActivityId(),heroManager.getRandomPoolByType().get(sLotterySetting.getMergePool()),sLotterySetting.getPerCount()));
@ -350,6 +356,35 @@ public class HeroLogic{
}
private void changeRandomItem(User user,int activityId,int[][] random){
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(activityId);
if(activityMission==null||activityMission.getActivityMissionMap().get(0)==null){
return;
}
// Map<Integer, Map<Integer, Integer>> spiritAnimalSummonMapByActivityId = SSpiritAnimalSummo.spiritAnimalSummonMapByActivityId;
ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(0);
if(activityProgressInfo==null||activityProgressInfo.getProgrss()==0){
return;
}
Map<Integer, SSpiritAnimalSummon> config = STableManager.getConfig(SSpiritAnimalSummon.class);
if(!config.containsKey(activityProgressInfo.getProgrss())){
return;
}
SSpiritAnimalSummon sSpiritAnimalSummon = config.get(activityProgressInfo.getProgrss());
if(sSpiritAnimalSummon.getActivityID()!=activityId){
return;
}
//进行替换
for(int[] randomItem:random){
int length = Math.min(sSpiritAnimalSummon.getOriginalItemList().length,sSpiritAnimalSummon.getTargetItemList().length);
for(int i = 0 ; i <length;i++){
if(randomItem[0]==sSpiritAnimalSummon.getOriginalItemList()[i]){
randomItem[0] = sSpiritAnimalSummon.getTargetItemList()[i];
}
}
}
}
private void reportRandom(User user,SLotterySetting sLotterySetting,int[][] resultRandom,int[] costItem) {
int lotteryType = sLotterySetting.getLotteryType();
ReportEventEnum eventEnum = null;

View File

@ -3,6 +3,7 @@ package config;
import manager.STableManager;
import manager.Table;
import java.util.HashMap;
import java.util.Map;
@Table(name ="SpiritAnimalSummon")
@ -18,10 +19,22 @@ public class SSpiritAnimalSummon implements BaseConfig {
private int[] targetItemList;
// public static Map<Integer,Map<Integer,Map<Integer,Integer>>> spiritAnimalSummonMapByActivityId;
@Override
public void init() throws Exception {
// Map<Integer,Map<Integer,Map<Integer,Integer>>> spiritAnimalSummonMapByActivityIdTemp = new HashMap<>();
// Map<Integer, SSpiritAnimalSummon> config = STableManager.getConfig(SSpiritAnimalSummon.class);
// for(Map.Entry<Integer,SSpiritAnimalSummon> entry:config.entrySet()){
// SSpiritAnimalSummon value = entry.getValue();
// spiritAnimalSummonMapByActivityIdTemp.putIfAbsent(value.getActivityID(),new HashMap<>());
// spiritAnimalSummonMapByActivityIdTemp.get(entry.getKey())
// for(int i = 0 ; i <value.getOriginalItemList().length;i++){
// spiritAnimalSummonMapByActivityIdTemp.get(value.getActivityID()).put(value.getOriginalItemList()[i],value.getTargetItemList()[i]);
// }
// }
// spiritAnimalSummonMapByActivityId = spiritAnimalSummonMapByActivityIdTemp;
}