Merge branch 'master' of 60.1.1.230:backend/jieling_server

back_recharge
wangyuan 2019-08-22 19:59:40 +08:00
commit 3a1a415024
4 changed files with 21 additions and 15 deletions

View File

@ -74,6 +74,7 @@ public interface BIReason {
int MONSTERATTACK_BACK = 45; // 妖兽来袭预扣归还
int FIRST_ADVENTURE_REWARD = 46; // 秘境首次奖励外敌挑战券
int UPHERO_DECOMPOS_HERO_REWARD= 47 ;//进阶妖灵师返还奖励
//道具消耗原因 1000开头
int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级

View File

@ -37,7 +37,8 @@ public class UseAndPriceItemHandler extends BaseHandler {
} else if (type == 2){ //分解装备
ItemLogic.getInstance().decomposeEquip(iSession,equipIdsList);
}else{
ItemLogic.getInstance().decomposeHero(iSession,heroIdsList);
CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE);
ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder);
}
}

View File

@ -12,6 +12,7 @@ import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.CombatLogic;
import com.ljsd.jieling.logic.item.ItemLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
@ -626,12 +627,13 @@ public class HeroLogic {
}
//删除hero
recyleHeroBySystem(user,removeHeroIds);
CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE);
// recyleHeroBySystem(user,removeHeroIds);
targetHero.upStar( 1 );
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getStar()));
targetHero.setStarBreakId(scHeroRankUpConfig.getId());
user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar());
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,baseBuilder.build(),true);
if(targetHero.getStar()>=7){
String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_hero_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName(),targetHero.getStar()});
ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,targetHero.getTemplateId(),0,0,0,0,0);

View File

@ -15,10 +15,7 @@ import com.ljsd.jieling.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
public class ItemLogic {
private static final Logger LOGGER = LoggerFactory.getLogger(ItemLogic.class);
@ -92,7 +89,7 @@ public class ItemLogic {
return "";
}
private void sendUseAndPriceItemMessage(ISession iSession, int msgId, CommonProto.Drop.Builder drop) {
public static void sendUseAndPriceItemMessage(ISession iSession, int msgId, CommonProto.Drop.Builder drop) {
PlayerInfoProto.UseAndPriceItemResponse useAndPriceItemResponse = PlayerInfoProto.UseAndPriceItemResponse.newBuilder()
.setDrop(drop)
.build();
@ -200,20 +197,20 @@ public class ItemLogic {
}
/**
*
* |
* @param iSession
* @param heroIdsList
*/
public void decomposeHero(ISession iSession, List<String> heroIdsList) throws Exception {
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
public CommonProto.Drop.Builder decomposeHero(ISession iSession, List<String> heroIdsList,Set<Integer> filterItem,int msgId) throws Exception {
int uid = iSession.getUid();
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
User user = UserManager.getUser(uid);
HeroManager heroManager = user.getHeroManager();
StringBuilder reward = new StringBuilder();
String erroMags = checkHeroResolve(heroIdsList,user);
if (!erroMags.isEmpty()){
MessageUtil.sendErrorResponse(iSession,0,msgId,erroMags);
return;
return baseBuilder;
}
//1裸角色卡没有突破过的角色卡熔炼后返还的材料=当前等级返还升级材料+item表返还材料
//2有过突破的卡 =当前等级返还升级材料+突破表返还材料
@ -248,10 +245,15 @@ public class ItemLogic {
reward.append("#").append(sItem.getResolveReward());
}
}
int reson =BIReason.DECOMPOS_HERO_REWARD;
if(null!=filterItem){
reson= BIReason.UPHERO_DECOMPOS_HERO_REWARD;
filterItem.retainAll(baseItemMap.keySet());
filterItem.forEach(baseItemMap::remove);
}
ItemUtil.combineReward(user,StringUtil.parseFiledInt(reward.toString()),1,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, BIReason.DECOMPOS_HERO_REWARD);
sendUseAndPriceItemMessage(iSession, msgId, baseBuilder);
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap, reson);
return baseBuilder;
}
private String checkHeroResolve(List<String> heroIdsList,User user){