Merge branch 'dev_dh_bt' into bt/newhero

back_recharge
duhui 2023-04-18 15:14:47 +08:00
commit 5dcbfe8d84
6 changed files with 63 additions and 119 deletions

View File

@ -373,11 +373,29 @@ public class CoreService implements RPCRequestIFace.Iface {
jsonObject.getJSONObject("itemManager").put("itemMap",new HashMap<>());
jsonObject.remove("mailManager");
jsonObject.remove("storeManager");
jsonObject.getJSONObject("equipManager").put("jewelMap", getJewelManager(user));
return jsonObject.toString();
}
return "";
}
public HashMap<String, Jewel> getJewelManager(User user){
HashMap<String, Jewel> jewelMap = new HashMap<>();
try {
Map<String, com.ljsd.jieling.logic.dao.PropertyItem> equipMap = user.getEquipManager().getEquipMap();
for (Map.Entry<String, com.ljsd.jieling.logic.dao.PropertyItem> entry : equipMap.entrySet()) {
com.ljsd.jieling.logic.dao.PropertyItem propertyItem = entry.getValue();
if (propertyItem instanceof Jewel){
Jewel jewel = (Jewel) propertyItem;
jewelMap.put(entry.getKey(), jewel);
}
}
}catch (Exception e){
e.printStackTrace();
}
return jewelMap;
}
@Override
public void updateUserInfoByRpc(int uid, String userStr, int type) throws TException {
User thisUser = null;

View File

@ -6,7 +6,6 @@ import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.util.ItemUtil;
import config.SFloodConfig;
import manager.STableManager;
@ -44,6 +43,12 @@ public class GetDemonsTrialRewardHandler extends BaseHandler<MapInfoProto.Demons
}
// 表里是否有配置
SFloodConfig sFloodConfig = STableManager.getConfig(SFloodConfig.class).get(layerId);
// 关卡判断
if (user.getMapManager().getLastMonsterAttack() < sFloodConfig.getId()){
throw new ErrorCodeException(ErrorCode.PHONE_GET,"未达到领取条件");
}
int[][] reward = sFloodConfig.getSpecialReward();
if (reward == null || reward.length <= 0) {
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);

View File

@ -51,15 +51,13 @@ public class ExpeditionExpert extends ExpectRankActivity implements IEventHandle
super(id);
Poster.getPoster().listenEvent(this,EndExpeditionNodeEvent.class);
}
@Override
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
int[][] values = sActivityRewardConfig.getValues();
User user = UserManager.getUser(session.getUid());
Map<Integer, ActivityProgressInfo> value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getActivityMissionMap();
if (value.containsKey(sActivityRewardConfig.getId())&& value.get(sActivityRewardConfig.getId()).getProgrss()< values[1][0]) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
return false;
}
return true;
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not");
return !value.containsKey(sActivityRewardConfig.getId()) || value.get(sActivityRewardConfig.getId()).getProgrss() >= values[1][0];
}
}

View File

@ -15,15 +15,16 @@ import com.ljsd.jieling.logic.dao.VipInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.GiftGoodsType;
import com.ljsd.jieling.logic.store.newRechargeInfo.bean.ReceiveWelfareBag;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.SGlobalActivity;
import config.SSpecialConfig;
import config.STreasureSunlongConfig;
import rpc.protocols.CommonProto;
import rpc.protocols.MessageTypeProto;
import rpc.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.*;
import java.util.*;
@ -66,8 +67,6 @@ public class TreasureActivity extends AbstractActivity {
PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel())
.setHadBuy(user.getPlayerInfoManager().getHadBuyTreasure()).build();
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
}
@Override
@ -113,115 +112,35 @@ public class TreasureActivity extends AbstractActivity {
int[][] rewards = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_REWARD);
dropList.add(rewards);
notifyClient(session,user);
} else if (missionId == -1) {
}
else if (missionId == -1) {
getAllTreasureRewards(user, activityMission, destState, dropList);
} else {
}
else {
int state = activityMission.getActivityMissionMap().get(missionId).getState();
if (state == destState || state == ActivityType.FINISH_TAKED) {
throw new ErrorCodeException(ErrorCode.newDefineCode("奖励不可重复领取"));
}
dropByState(dropList, state, destState, missionId);
dropByState(user, dropList, state, destState, missionId);
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setState(destState);
progressInfo.setProgrss(0);
activityMission.getActivityMissionMap().put(missionId, progressInfo);
// missionIds.add(missionId);
}
// sendActivityProgress(session,activityMission,missionIds);
// if (missionId == -1) {
// List<int[][]> dropList = new ArrayList<>(10);
// boolean canTakeFinalReward = true;
// STreasureConfig finalSTreasureConfig = null;
// Map<Integer, ActivityProgressInfo> willUpdateAcP = new HashMap<>();
// for (Map.Entry<Integer, ActivityProgressInfo> activityProgressInfoItem : activityMission.getActivityProgressInfoMap().entrySet()) {
// Integer mineMision = activityProgressInfoItem.getKey();
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(mineMision);
// if (sTreasureConfig.getType() == 2) {
// finalSTreasureConfig = sTreasureConfig;
// continue;
// }
// ActivityProgressInfo value = activityProgressInfoItem.getValue();
// int stateTmp = value.getState();
// if (treasureScore >= sTreasureConfig.getPoints()) {
// if (changeState != stateTmp) {
// STreasureConfig sTreasureConfigTmp = STreasureConfig.configMap.get(mineMision);
// if (stateTmp == ActivityType.WILL_TAKE) {
// dropList.add(sTreasureConfigTmp.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(sTreasureConfigTmp.getTreasureReward());
// }
// willUpdateAcP.put(mineMision, value);
// }
// } else {
// canTakeFinalReward = false;
// }
// }
// for (Map.Entry<Integer, ActivityProgressInfo> item : willUpdateAcP.entrySet()) {
// ActivityProgressInfo value = item.getValue();
// value.setState(changeState);
// activityMission.updateProgressInfo(item.getKey(), value);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, item.getKey());
// }
// if (canTakeFinalReward && finalSTreasureConfig != null) {
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(finalSTreasureConfig.getId());
// int stateTmp = activityProgressInfo.getState();
// if (changeState != stateTmp) {
// if (stateTmp == ActivityType.WILL_TAKE) {
// dropList.add(finalSTreasureConfig.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(finalSTreasureConfig.getTreasureReward());
// }
// activityProgressInfo.setState(changeState);
// activityMission.updateProgressInfo(finalSTreasureConfig.getId(), activityProgressInfo);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, finalSTreasureConfig.getId());
// }
// }
// if (dropList.isEmpty()) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "no one can take");
// return;
// }
// drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
// } else {
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(missionId);
// int type = sTreasureConfig.getType();
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
// int state = activityProgressInfo.getState();
// if (state == changeState) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
// return;
// }
// if (type == 1) {
// List<int[][]> dropList = new ArrayList<>(2);
// if (treasureScore < sTreasureConfig.getPoints()) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
// return;
// }
// if (state == ActivityType.WILL_TAKE) {
// dropList.add(sTreasureConfig.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(sTreasureConfig.getTreasureReward());
// }
// activityProgressInfo.setState(changeState);
// activityMission.updateProgressInfo(missionId, activityProgressInfo);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, missionId);
// }
// }
reportTakeActivityReward(user,dropList.get(0),missionId);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
}
private void dropByState(List<int[][]> dropList,int curState,int targetState,int missionId){
private void dropByState(User user, List<int[][]> dropList, int curState, int targetState, int missionId){
STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(id).get(missionId);
if(curState==ActivityType.WILL_TAKE){
if(rewardConfig.getReward()!=null&&rewardConfig.getReward().length>0){
if (user.getPlayerInfoManager().getTreasureLevel() < rewardConfig.getLevel()){
return;
}
if(curState == ActivityType.WILL_TAKE){
if(rewardConfig.getReward()!=null && rewardConfig.getReward().length>0){
dropList.add(rewardConfig.getReward());
}
if(targetState == ActivityType.FINISH_TAKED){
@ -244,25 +163,26 @@ public class TreasureActivity extends AbstractActivity {
}
return changeState;
}
private void getAllTreasureRewards(User user, ActivityMission activityMission, int destState, List<int[][]> dropList){
for(int i = 1 ; i<=user.getPlayerInfoManager().getTreasureLevel();i++){
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
for(int i = 1 ; i <= user.getPlayerInfoManager().getTreasureLevel();i++){
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
if(progressInfoMap.get(i)==null){
LOGGER.info("问题id:{}",i);
continue;
}
int state =progressInfoMap.get(i).getState();
int state = progressInfoMap.get(i).getState();
if(state == destState || state == ActivityType.FINISH_TAKED) {
continue;
}
dropByState(dropList,state,destState,i);
dropByState(user, dropList, state, destState, i);
ActivityProgressInfo progressInfo = new ActivityProgressInfo();
progressInfo.setProgrss(0);
progressInfo.setState(destState);
activityMission.getActivityMissionMap().put(i, progressInfo);
}
}
@Override
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getDestState(user), itemAttrs);

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.logic.dao.root.User;
import org.springframework.data.annotation.Transient;
import java.util.*;
@ -11,9 +12,8 @@ public class EquipManager extends MongoBase {
private final Map<String,Faxiang> faxiangMap = new HashMap<>();
private final Set<Integer> equipBookEnabled = new HashSet<>();
private final Set<Integer> equipList = new HashSet<>();
// private Equip unDetermined;
@Transient
private final Map<String,Jewel> jewelMap = new HashMap<>();
private final Map<Integer,Integer> equipHandBook;
private int soulEquipPool;//占星装备卡池
@ -56,6 +56,10 @@ public class EquipManager extends MongoBase {
}
}
public Map<String, Jewel> getJewelMap() {
return jewelMap;
}
public Map<String, PropertyItem> getEquipMap() {
return equipMap;
}

View File

@ -27,12 +27,10 @@ import com.ljsd.jieling.logic.activity.eventhandler.PokemonFiveStarGetEventHandl
import com.ljsd.jieling.logic.activity.eventhandler.SaveHeroForceEventHandler;
import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.dao.vo.HeroVo;
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.fight.DuoduiTowerLogic;
import com.ljsd.jieling.logic.fight.passiveSkillCal.PassiveskillCalEnum;
import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum;
import com.ljsd.jieling.logic.help.HelpHero;
@ -3090,11 +3088,12 @@ public class HeroLogic {
if (propertyItem instanceof Jewel){
jewel = (Jewel) propertyItem;
}else {
jewel = new Jewel();
jewel.setHeroId(propertyItem.getHeroId());
jewel.setLevel(propertyItem.getLevel());
jewel.setEquipId(propertyItem.getEquipId());
jewel.setBuildLevel(1);
Map<String, Jewel> jewelMap = equipManager.getJewelMap();
jewel = jewelMap.get(jewelId);
if (jewel == null){
LOGGER.error("计算战力,英雄:{}-{},宝器:{},数据库内找不到",hero.getId(),hero.getTemplateId(),jewelId);
continue;
}
}
SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(jewel.getEquipId());
// 进阶