摘星阁,装备重置
parent
fc2eb578d5
commit
8bf8d3c9e6
|
@ -413,4 +413,7 @@ public interface BIReason {
|
|||
int ZHAIXINGGE_BAKCUP_ITEM = 1308;//摘星阁装备强化调整返还道具
|
||||
int MAXESPECIALEQUIPHANDLE = 1309; //法宝最高上限回滚处理
|
||||
|
||||
int HOME_EQUIP_STRONG_RESET_COST =1310;//家园装备强化重置消耗
|
||||
int HOME_EQUIP_STRONG_RESET_GAIN =1311;//家园装备强化重置获得
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.ljsd.jieling.handler.home;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.HeroInfoProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
/**
|
||||
* 摘星阁,装备重置
|
||||
*/
|
||||
@Component
|
||||
public class HomeEquipStrongResetHandler extends BaseHandler<HeroInfoProto.HomeEquipStrongResetRequset> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.HomeEquipStrongResetRequset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession session, HeroInfoProto.HomeEquipStrongResetRequset proto) throws Exception {
|
||||
HeroLogic.getInstance().homeEquipStrongReset(session,proto);
|
||||
}
|
||||
}
|
|
@ -1631,6 +1631,9 @@ public class HeroLogic {
|
|||
|
||||
// 删除英雄
|
||||
for (String rmHeroId : removeHeroIds) {
|
||||
// 摘星阁,装备重置
|
||||
getHomeEquipStrongReset(user,rmHeroId,baseBuilder);
|
||||
// 删除英雄
|
||||
heroManager.removeHero(uid, rmHeroId);
|
||||
}
|
||||
// 消耗道具
|
||||
|
@ -6756,4 +6759,65 @@ public class HeroLogic {
|
|||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.EquipIntensifyResponse_VALUE, builder.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* 装备强化
|
||||
* @param session
|
||||
* @param proto
|
||||
* @throws Exception
|
||||
*/
|
||||
public void homeEquipStrongReset(ISession session, HeroInfoProto.HomeEquipStrongResetRequset proto) throws Exception{
|
||||
String heroId = proto.getHeroId();
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
|
||||
// 校验并消耗
|
||||
int[] costItem = SSpecialConfig.getOnceArrayValue(SSpecialConfig.EquipRankResetCost);
|
||||
if (costItem[1] > 0){
|
||||
boolean cost = ItemUtil.itemCost(user, new int[][]{costItem}, BIReason.HOME_EQUIP_STRONG_RESET_COST, 0);
|
||||
if (!cost){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
}
|
||||
|
||||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
getHomeEquipStrongReset(user, heroId, drop);
|
||||
|
||||
// 返回装备强化信息
|
||||
HeroInfoProto.HomeEquipStrongResetResponse build = HeroInfoProto.HomeEquipStrongResetResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.HomeEquipStrongResetResponse_VALUE, build);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取重置道具
|
||||
* @param user
|
||||
* @param heroId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public void getHomeEquipStrongReset(User user,String heroId,CommonProto.Drop.Builder drop) throws Exception {
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
if (hero == null){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_NO_HERO,"英雄不存在:"+heroId);
|
||||
}
|
||||
// 强化消耗物品
|
||||
TreeMap<Integer, SEquipStrengthen> strongTreeMap = new TreeMap<>(SEquipStrengthen.lvMap);
|
||||
ArrayList<int[][]> itemList = new ArrayList<>();
|
||||
for (HeroEquipStrong strong : hero.getEquipStrongMap().values()) {
|
||||
SortedMap<Integer, SEquipStrengthen> subMap = strongTreeMap.subMap(0, strong.getStrongLv());
|
||||
List<int[][]> collect = subMap.values().stream().map(SEquipStrengthen::getCost).collect(Collectors.toList());
|
||||
itemList.addAll(collect);
|
||||
}
|
||||
|
||||
// 突破消耗物品
|
||||
TreeMap<Integer, SEquipRankUp> rankUpTreeMap = new TreeMap<>(SEquipRankUp.lvMap);
|
||||
SortedMap<Integer, SEquipRankUp> subMap = rankUpTreeMap.subMap(0, hero.getEquipAdvanceLv());
|
||||
List<int[][]> collect = subMap.values().stream().map(SEquipRankUp::getCost).collect(Collectors.toList());
|
||||
itemList.addAll(collect);
|
||||
|
||||
ItemUtil.drop(user, itemList, drop, BIReason.HOME_EQUIP_STRONG_RESET_GAIN);
|
||||
|
||||
// 重置英雄信息
|
||||
hero.setEquipStrongMap(new HashMap<>());
|
||||
hero.setEquipAdvanceLv(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -467,8 +467,6 @@ public class ItemLogic {
|
|||
ErrorCode erroMags = checkHeroResolve(heroIdsList, user);
|
||||
if (null != erroMags) {
|
||||
throw new ErrorCodeException(erroMags);
|
||||
//MessageUtil.sendErrorResponse(iSession,0,msgId,erroMags);
|
||||
// return baseBuilder;
|
||||
}
|
||||
//1裸角色卡(没有突破过的角色卡)熔炼后返还的材料=当前等级返还升级材料+item表返还材料
|
||||
//2有过突破的卡 =当前等级返还升级材料+突破表返还材料
|
||||
|
@ -479,8 +477,14 @@ public class ItemLogic {
|
|||
List<Integer> heroStarReport = new ArrayList<>();
|
||||
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
|
||||
|
||||
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||
|
||||
for (String heroId : heroIdsList) {
|
||||
Hero hero = heroManager.getHeroMap().get(heroId);
|
||||
|
||||
//摘星阁装备强化
|
||||
HeroLogic.getInstance().getHomeEquipStrongReset(user,heroId,drop);
|
||||
|
||||
//卸下魂印装备
|
||||
Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
|
||||
Map<Integer, Integer> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
|
||||
|
@ -543,7 +547,8 @@ public class ItemLogic {
|
|||
ReportUtil.onReportEvent(user, ReportEventEnum.SEND_HERO.getType(), heroIdReport, heroLevelReport, heroStarReport, new ArrayList<>(baseItemMap.keySet()), new ArrayList<>(baseItemMap.values()));
|
||||
}
|
||||
|
||||
return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson);
|
||||
ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson,drop);
|
||||
return drop;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -134,6 +134,8 @@ public class SSpecialConfig implements BaseConfig {
|
|||
public static final String ChangingPosUnlock = "ChangingPosUnlock";//3个变身卡化身位解锁所需的化身之力等级
|
||||
public static final String EquipTalismanaUpperLimit = "EquipTalismanaUpperLimit ";//法宝等级上限
|
||||
|
||||
public static final String EquipRankResetCost = "EquipRankResetCost";//摘星阁装备强化精炼重置消耗
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
|
|
Loading…
Reference in New Issue