灵兽宝阁功能修改

yuanshuai 2021-11-25 18:26:02 +08:00
parent d381581b73
commit 8649778e5c
5 changed files with 54 additions and 21 deletions

View File

@ -23,6 +23,8 @@ import com.ljsd.jieling.util.MessageUtil;
import config.SActivityRewardConfig;
import config.SErrorCodeEerverConfig;
import config.SGlobalActivity;
import config.SSpiritAnimalSummon;
import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import rpc.protocols.CommonProto;
@ -171,11 +173,20 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), activityProgressInfo.getProgrss(), sActivityRewardConfig.getValues());
throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件"));
}
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
//up miss
int[][] reward = sActivityRewardConfig.getReward();
if(sGlobalActivity.getType() == ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY) {
int summonId=activityMission.getActivityMissionMap().get(0).getProgrss();
if (summonId>0){
SSpiritAnimalSummon summonConfig=STableManager.getConfig(SSpiritAnimalSummon.class).get(summonId);
reward[0][0]=summonConfig.getOriginalItem();
}
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
checkAndSetProgress(activityMission, activityProgressInfo, missionId);
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if (null != sGlobalActivity && checkActivityMissionFinishAndTake(session.getUid(),id, activityMission) && sGlobalActivity.getResetGrade() == 1) {
reSetValue(user);
if(sGlobalActivity.getType() != ActivityType.OnlineReward) {

View File

@ -49,6 +49,8 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static manager.STableManager.getConfig;
/**
*
*/
@ -970,7 +972,7 @@ public class ActivityLogic implements IEventHandler{
}
int resultRewardId = 0;
if (activityProgressInfoMap.get(BlessInfoConfig.BLESS_STATUS).getProgrss() == -2) {
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
Map<Integer, SBlessingRewardPool> poolMap = getConfig(SBlessingRewardPool.class);
int[][] result = new int[BlessInfoConfig.START_CAPACITY][];
int index = 0;
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityProgressInfoMap.entrySet()) {
@ -1039,7 +1041,7 @@ public class ActivityLogic implements IEventHandler{
}
}
LOGGER.info("blessChoose uid=>{}本次抽取的Id为{}", user.getId(), resultRewardId);
Map<Integer, SBlessingRewardPool> poolMap = STableManager.getConfig(SBlessingRewardPool.class);
Map<Integer, SBlessingRewardPool> poolMap = getConfig(SBlessingRewardPool.class);
int[][] dropItem = new int[1][];
for (Integer count : SBlessingConfig.blessingConfigMap.get(blessActivityId).getCounts()) {
if (count != activityProgressInfoMap.get(BlessInfoConfig.BLESS_PROGRESS_STATUS).getProgrss()) {
@ -1485,12 +1487,18 @@ 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){
Map<Integer, SSpiritAnimalSummon> summonConfig= STableManager.getConfig(SSpiritAnimalSummon.class);
int summonId=0;
for (Map.Entry<Integer, SSpiritAnimalSummon> summonEntry : summonConfig.entrySet()) {
if (summonEntry.getValue().getActivityID()==activityId&&summonEntry.getValue().getFocusID()==chooseId) {
summonId=summonEntry.getKey();
}
}
if (summonId==0){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
activityMission.getActivityMissionMap().get(0).setProgrss(chooseId);
activityMission.getActivityMissionMap().get(0).setProgrss(summonId);
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true);
}
@ -1585,7 +1593,7 @@ public class ActivityLogic implements IEventHandler{
public void choiceDrawCard(User user,int activityId,int type) throws Exception {
// 初始值
ActivityProto.choiceDrawCardResponse.Builder build = ActivityProto.choiceDrawCardResponse.newBuilder();
SWishActivitySetting setting = STableManager.getConfig(SWishActivitySetting.class).get(1);
SWishActivitySetting setting = getConfig(SWishActivitySetting.class).get(1);
// 抽奖次数
int num = type == 1?1:10;
// 抽奖上限

View File

@ -1,8 +1,18 @@
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;
@ -41,4 +51,9 @@ public class LimitRandomSpecialMonsterActivity extends LimitRandomCardActivity {
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
}
}
@Override
public boolean takeReward(ISession session, int missionId) throws Exception {
return super.takeReward(session, missionId);
}
}

View File

@ -63,6 +63,7 @@ import util.MathUtils;
import util.StringUtil;
import util.TimeUtils;
import java.awt.event.ItemEvent;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.util.*;
@ -731,11 +732,14 @@ public class HeroLogic {
}
//进行替换
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];
SItem itemConfig=SItem.getsItemMap().get(randomItem[0]);
if (itemConfig.getQuantity()<5){
continue;
}
if (itemConfig.getItemType()== GlobalItemType.SpecialMonster) {
randomItem[0]=sSpiritAnimalSummon.getFocusID();
}else if(itemConfig.getItemType()==GlobalItemType.SpecialMonsterItem){
randomItem[0]=sSpiritAnimalSummon.getOriginalItem();
}
}
}

View File

@ -15,9 +15,8 @@ public class SSpiritAnimalSummon implements BaseConfig {
private int activityID;
private int[] originalItemList;
private int originalItem;
private int[] targetItemList;
// public static Map<Integer,Map<Integer,Map<Integer,Integer>>> spiritAnimalSummonMapByActivityId;
@ -50,12 +49,8 @@ public class SSpiritAnimalSummon implements BaseConfig {
return activityID;
}
public int[] getOriginalItemList() {
return originalItemList;
}
public int[] getTargetItemList() {
return targetItemList;
public int getOriginalItem() {
return originalItem;
}