摘星阁,装备重置
parent
fc2eb578d5
commit
8bf8d3c9e6
|
@ -413,4 +413,7 @@ public interface BIReason {
|
||||||
int ZHAIXINGGE_BAKCUP_ITEM = 1308;//摘星阁装备强化调整返还道具
|
int ZHAIXINGGE_BAKCUP_ITEM = 1308;//摘星阁装备强化调整返还道具
|
||||||
int MAXESPECIALEQUIPHANDLE = 1309; //法宝最高上限回滚处理
|
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) {
|
for (String rmHeroId : removeHeroIds) {
|
||||||
|
// 摘星阁,装备重置
|
||||||
|
getHomeEquipStrongReset(user,rmHeroId,baseBuilder);
|
||||||
|
// 删除英雄
|
||||||
heroManager.removeHero(uid, rmHeroId);
|
heroManager.removeHero(uid, rmHeroId);
|
||||||
}
|
}
|
||||||
// 消耗道具
|
// 消耗道具
|
||||||
|
@ -6756,4 +6759,65 @@ public class HeroLogic {
|
||||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.EquipIntensifyResponse_VALUE, builder.build());
|
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);
|
ErrorCode erroMags = checkHeroResolve(heroIdsList, user);
|
||||||
if (null != erroMags) {
|
if (null != erroMags) {
|
||||||
throw new ErrorCodeException(erroMags);
|
throw new ErrorCodeException(erroMags);
|
||||||
//MessageUtil.sendErrorResponse(iSession,0,msgId,erroMags);
|
|
||||||
// return baseBuilder;
|
|
||||||
}
|
}
|
||||||
//1裸角色卡(没有突破过的角色卡)熔炼后返还的材料=当前等级返还升级材料+item表返还材料
|
//1裸角色卡(没有突破过的角色卡)熔炼后返还的材料=当前等级返还升级材料+item表返还材料
|
||||||
//2有过突破的卡 =当前等级返还升级材料+突破表返还材料
|
//2有过突破的卡 =当前等级返还升级材料+突破表返还材料
|
||||||
|
@ -479,8 +477,14 @@ public class ItemLogic {
|
||||||
List<Integer> heroStarReport = new ArrayList<>();
|
List<Integer> heroStarReport = new ArrayList<>();
|
||||||
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
|
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
|
||||||
|
|
||||||
|
CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder();
|
||||||
|
|
||||||
for (String heroId : heroIdsList) {
|
for (String heroId : heroIdsList) {
|
||||||
Hero hero = heroManager.getHeroMap().get(heroId);
|
Hero hero = heroManager.getHeroMap().get(heroId);
|
||||||
|
|
||||||
|
//摘星阁装备强化
|
||||||
|
HeroLogic.getInstance().getHomeEquipStrongReset(user,heroId,drop);
|
||||||
|
|
||||||
//卸下魂印装备
|
//卸下魂印装备
|
||||||
Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
|
Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
|
||||||
Map<Integer, Integer> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
|
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()));
|
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 ChangingPosUnlock = "ChangingPosUnlock";//3个变身卡化身位解锁所需的化身之力等级
|
||||||
public static final String EquipTalismanaUpperLimit = "EquipTalismanaUpperLimit ";//法宝等级上限
|
public static final String EquipTalismanaUpperLimit = "EquipTalismanaUpperLimit ";//法宝等级上限
|
||||||
|
|
||||||
|
public static final String EquipRankResetCost = "EquipRankResetCost";//摘星阁装备强化精炼重置消耗
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue