Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn

back_recharge
jiahuiwen 2021-12-31 10:49:12 +08:00
commit 50d5195692
11 changed files with 150 additions and 32 deletions

View File

@ -3335,6 +3335,8 @@ public class MapLogic {
STrialConfig sTrialConfig = sTrialConfigMap.ceilingEntry(floor).getValue();
response = getBoxReward(sTrialConfig.getBoxPosition(), sTrialConfig.getBoxReward(), user, curXY, type);
}
//森罗幻境自动挂机奖励展示
PlayerLogic.TowerGetRewardInfoShow(response.getBoxDrop(),user);
if (response == null) {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
@ -3461,6 +3463,8 @@ public class MapLogic {
if (response == null) {
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
//森罗幻境自动挂机奖励展示
PlayerLogic.TowerGetRewardInfoShow(response.getDrop(),user);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
}

View File

@ -128,6 +128,8 @@ public class MapManager extends MongoBase {
private EndlessTreasureReward endlessTreasureReward = new EndlessTreasureReward();
//森罗幻境自动挂机奖励展示 TODO 不入库
private Map<Integer,Integer> towerGetRewardInfoShowMap = new HashMap<>();
public MapManager() {
this.setRootCollection(User._COLLECTION_NAME);
}
@ -970,6 +972,13 @@ public class MapManager extends MongoBase {
setTreasureIsBuy(0);
}
public Map<Integer, Integer> getTowerGetRewardInfoShowMap() {
return towerGetRewardInfoShowMap;
}
public void setTowerGetRewardInfoShowMap(Map<Integer, Integer> towerGetRewardInfoShowMap) {
this.towerGetRewardInfoShowMap = towerGetRewardInfoShowMap;
}
}

View File

@ -3,13 +3,17 @@ package com.ljsd.jieling.handler.map.mapHandler;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.CommonProto;
import rpc.protocols.FightInfoProto;
import rpc.protocols.MessageTypeProto;
import com.ljsd.jieling.util.MessageUtil;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class MapFastFightRequestHandler extends BaseHandler {
@Override
@ -21,6 +25,8 @@ public class MapFastFightRequestHandler extends BaseHandler {
public void process(ISession iSession, PacketNetData netData) throws Exception {
FightInfoProto.FastFightResponse.Builder builder = FightInfoProto.FastFightResponse.newBuilder();
MapLogic.getInstance().getMap(UserManager.getUser(iSession.getUid())).fastFight(iSession.getUid(), builder);
//森罗幻境自动挂机奖励展示
PlayerLogic.TowerGetRewardInfoShow(builder.getEnventDrop(),UserManager.getUser(iSession.getUid()));
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_FAST_FIGHT_RESPONSE.getNumber(), builder.build(), true);
}

View File

@ -0,0 +1,41 @@
package com.ljsd.jieling.handler.map.mapHandler;
import com.google.protobuf.GeneratedMessage;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import org.springframework.stereotype.Component;
import rpc.protocols.CommonProto;
import rpc.protocols.MapInfoProto;
import rpc.protocols.MessageTypeProto;
import java.util.Map;
@Component
public class TowerGetRewardInfoShowHandler extends BaseHandler<MapInfoProto.TowerGetRewardInfoShowRequest> {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.TowerGetRewardInfoShowRequest;
}
@Override
public GeneratedMessage processWithProto(int uid, MapInfoProto.TowerGetRewardInfoShowRequest proto) throws Exception {
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
User user = UserManager.getUser(uid);
if(user == null){
return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build();
}
Map<Integer,Integer> dropShow = user.getMapManager().getTowerGetRewardInfoShowMap();
if(dropShow == null || dropShow.size() == 0){
return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().build();
}
for(Map.Entry<Integer,Integer> keyVal : dropShow.entrySet()){
CommonProto.Item.Builder item = CommonProto.Item.newBuilder();
item.setItemId(keyVal.getKey());
item.setItemNum((long)keyVal.getValue());
drop.addItemlist(item.build());
}
dropShow.clear();
return MapInfoProto.TowerGetRewardInfoShowResponse.newBuilder().setDrop(drop).build();
}
}

View File

@ -22,6 +22,7 @@ import com.ljsd.jieling.logic.fight.GameFightType;
import com.ljsd.jieling.logic.fight.PVEFightEvent;
import com.ljsd.jieling.logic.fight.result.FightResult;
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.network.session.ISession;
import rpc.protocols.CommonProto;
@ -670,6 +671,8 @@ public class TowerMap extends AbstractMap {
response.setEssenceValue(-1);
response.setCell(CBean2Proto.getCell(cell));
response.setDrop(drop);
//森罗幻境自动挂机奖励展示
PlayerLogic.TowerGetRewardInfoShow(response.getDrop(),user);
response.setMonsterNum(monsterAmount);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}

View File

@ -7,5 +7,5 @@ import config.SPassiveSkillLogicConfig;
import java.util.Map;
public interface PassiveSkillProcessor {
void process(SPassiveSkillLogicConfig config, Hero hero, Map<Integer, Long> heroSkillAdMap);
void process(SPassiveSkillLogicConfig config, Hero hero, Map<Integer, Long> heroSkillAdMap,User user,int teamId);
}

View File

@ -1,6 +1,8 @@
package com.ljsd.jieling.logic.fight.passiveSkillCal;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import config.SCHero;
@ -8,11 +10,12 @@ import config.SPropertyConfig;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//90 94 171
public enum PassiveskillCalEnum {
SingleAdd(90,(config,hero,heroSkillAdMap)->{
SingleAdd(90,(config,hero,heroSkillAdMap,user,teamId)->{
float[] value = config.getValue();
int battlePropertyId = (int) value[0];
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
@ -32,7 +35,7 @@ public enum PassiveskillCalEnum {
int extraValue = (int) cal(optCode, parm);
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
}),
AllAdd(94,(config,hero,heroSkillAdMap)->{
AllAdd(94,(config,hero,heroSkillAdMap,user,teamId)->{
float[] value = config.getValue();
int battlePropertyId = (int) value[1];
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
@ -53,12 +56,7 @@ public enum PassiveskillCalEnum {
int extraValue = (int) cal(optCode, parm);
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
}),
HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{
int uid = Integer.parseInt(hero.getId().substring(0, 8));
User user = UserManager.getUserInMem(uid);
if (user == null){
return;
}
HEROAFTER100ADD(171,(config,hero,heroSkillAdMap,user,teamId)->{
float[] value = config.getValue();
int battlePropertyId = (int) value[0];
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
@ -70,7 +68,7 @@ public enum PassiveskillCalEnum {
int parm = (int) value[1]*times;
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+parm);
}),//武将100级后每升一级[c]额外增加[d]
HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap)->{
HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap,user,teamId)->{
float[] value = config.getValue();
if(SCHero.getsCHero().get(hero.getTemplateId()).getPropertyName()!=value[0]){
@ -93,6 +91,36 @@ public enum PassiveskillCalEnum {
}
int extraValue = (int) cal(optCode, parm);
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
}),
HERO_HAVE_PROFESSION_ADD(413,(config,hero,heroSkillAdMap,user,teamId)->{
//被动技能,编队每增加一个同属性英雄属性额外增加一定数值
float[] value = config.getValue();
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId);
int haveNum=0;
for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) {
Hero localHero=user.getHeroManager().getHero(teamPosHeroInfo.getHeroId());
if(SCHero.getsCHero().get(localHero.getTemplateId()).getPropertyName()==value[0]){
haveNum++;
}
}
float parm = value[1];
int optCode = (int) value[3];
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID((int)(value[2]));
if(optCode%2==0){
if( sPropertyConfig.getStyle()!= GlobalsDef.PERCENT_TYPE){
sPropertyConfig = SPropertyConfig.getsPropertyConfigByTargetPropertyId(sPropertyConfig.getPropertyId());
}
parm = value[1]*10000*haveNum;
}
if( sPropertyConfig.getStyle()== GlobalsDef.PERCENT_TYPE){
parm = value[1]*10000*haveNum;
}
int extraValue = (int) cal(optCode, parm);
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
}),
;
private int type;

View File

@ -3037,7 +3037,7 @@ public class HeroLogic {
if (null != config.getValue() && config.getValue().length > 2 && config.getValue()[2] != 4) {
PassiveskillCalEnum passiveskillCalEnum = PassiveskillCalEnum.calEnumMap.get(config.getType());
if (null != passiveskillCalEnum) {
passiveskillCalEnum.getPassiveSkillProcessor().process(config, hero, heroSkillAdMap);
passiveskillCalEnum.getPassiveSkillProcessor().process(config, hero, heroSkillAdMap,user,teamId);
}
}
}
@ -3077,7 +3077,7 @@ public class HeroLogic {
if (null != configTmp.getValue() && configTmp.getValue().length > 2 && configTmp.getValue()[2] == 4) {
PassiveskillCalEnum passiveskillCalEnum = PassiveskillCalEnum.calEnumMap.get(configTmp.getType());
if (null != passiveskillCalEnum) {
passiveskillCalEnum.getPassiveSkillProcessor().process(configTmp, hero, heroSkillAdMap);
passiveskillCalEnum.getPassiveSkillProcessor().process(configTmp, hero, heroSkillAdMap,user,teamId);
}
}
});

View File

@ -924,20 +924,10 @@ public class ItemLogic {
PlayerInfoProto.EquipUpLevelResponse.Builder response = PlayerInfoProto.EquipUpLevelResponse.newBuilder();
response.setResult(false);
User user = UserManager.getUser(session.getUid());
int type = SComposeActivity.getTypeById(activityId,equipId);
if(type == -1){
LOGGER.error("type找不到配置活动id:{}装备id:{}",activityId,equipId);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
SComposeBook config = SComposeBook.getBookById(type,equipId);
if(config == null){
LOGGER.error("config找不到配置type:{}装备id:{}",type,equipId);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
int[][] itemC = config.getNeedCost();
if(itemC[0][0] != itemId || itemC[0][1] != itemNum){
LOGGER.error("itemCost不匹配item:{}num:{},conItem:{},conNum:{}",itemId,itemNum,itemC[0],itemC[1]);
throw new ErrorCodeException(ErrorCode.CFG_NULL);
Map<Integer, SComposeBook> config = STableManager.getConfig(SComposeBook.class);
SComposeBook composeBook = config.get(equipId);
if(composeBook == null){
throw new ErrorCodeException(ErrorCode.CFG_NULL,"云游商人idkey配置不存在:"+equipId);
}
ActivityMission misson = user.getActivityManager().getActivityMissionMap().get(activityId);
if(misson == null){
@ -945,24 +935,24 @@ public class ItemLogic {
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
Map<Integer, SComposeActivity> integerSComposeActivityMap = SComposeActivity.getConfigMap().get(activityId);
int typeId = integerSComposeActivityMap.get(type).getId();
int typeId = integerSComposeActivityMap.get(composeBook.getType()).getId();
ActivityProgressInfo progress = misson.getActivityMissionMap().get(typeId);
if(progress == null){
LOGGER.error("progress为空type:{}",type);
LOGGER.error("progress为空type:{}",composeBook.getType());
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
if(progress.getProgrss() <= 0){
LOGGER.error("progress次数不足num:{}",progress.getProgrss());
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT);
}
boolean itemCost = ItemUtil.itemCost(user, new int[][]{{equipId, 1},{itemId, itemNum}}, BIReason.EQUIP_UPLEVEL_COST, equipId);
boolean itemCost = ItemUtil.itemCost(user, new int[][]{composeBook.getNeedItems()[0],composeBook.getNeedCost()[0]}, BIReason.EQUIP_UPLEVEL_COST, equipId);
if(!itemCost){
LOGGER.error("item不足equipId:{},itemId:{},itemNum:{}",equipId,itemId,itemNum);
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
progress.setProgrss(progress.getProgrss()-1);
user.getActivityManager().getActivityMissionMap().put(activityId,misson);
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{{config.getGoalItems()[0][0],config.getGoalItems()[0][1]}},BIReason.EQUIP_UPLEVEL_REWARD);
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{composeBook.getGoalItems()[0]},BIReason.EQUIP_UPLEVEL_REWARD);
response.setResult(true);
response.setDrop(drop);
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);

View File

@ -17,9 +17,9 @@ public class GotSoulMarkManager extends AbstractDataManager {
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
CumulationData.Result result = null;
int itemId = (int)parm[0];
int num = (int)parm[1];
long num = (long)parm[1];
if(missionType == MissionType.GOT_SOUL_MARK){
data.addQualitySoulMarkNum(STableManager.getConfig(SItem.class).get(itemId).getQuantity(),num);
data.addQualitySoulMarkNum(STableManager.getConfig(SItem.class).get(itemId).getQuantity(),(int)num);
result = new CumulationData.Result(missionType);
}
return result;

View File

@ -1784,4 +1784,41 @@ public class PlayerLogic {
User user = gson.fromJson(userStr, User.class);
return user;
}
//森罗幻境自动挂机奖励展示
public static void TowerGetRewardInfoShow(CommonProto.Drop drop,User user){
Map<Integer,Integer> mapItemShow =user.getMapManager().getTowerGetRewardInfoShowMap();
for(CommonProto.Item item :drop.getItemlistList()){
if(mapItemShow.containsKey(item.getItemId())){
mapItemShow.put(item.getItemId(),mapItemShow.get(item.getItemId())+(int)item.getItemNum());
}else{
mapItemShow.put(item.getItemId(),(int)item.getItemNum());
}
LOGGER.error("掉落1->{}->{}",item.getItemId(),item.getItemNum());
}
for(CommonProto.Equip equip:drop.getEquipIdList()){
if(mapItemShow.containsKey(equip.getEquipId())){
mapItemShow.put(equip.getEquipId(),mapItemShow.get(equip.getEquipId())+1);
}else{
mapItemShow.put(equip.getEquipId(),1);
}
LOGGER.error("掉落2->{}->{}",equip.getEquipId(),1);
}
for(CommonProto.Hero hero:drop.getHeroList()){
if(mapItemShow.containsKey(hero.getHeroId())){
mapItemShow.put(hero.getHeroId(),mapItemShow.get(hero.getHeroId())+1);
}else{
mapItemShow.put(hero.getHeroId(),1);
}
LOGGER.error("掉落3->{}->{}",hero.getHeroId(),1);
}
for(CommonProto.PokemonInfo pokemonInfo:drop.getPokemonList()){
if(mapItemShow.containsKey(pokemonInfo.getTempId())){
mapItemShow.put(pokemonInfo.getTempId(),mapItemShow.get(pokemonInfo.getTempId())+1);
}else{
mapItemShow.put(pokemonInfo.getTempId(),1);
}
LOGGER.error("掉落4->{}->{}",pokemonInfo.getTempId(),1);
}
}
}