神将合成进阶修改

lvxinran 2020-09-07 14:45:25 +08:00
parent e371b00b38
commit cf3704b456
1 changed files with 26 additions and 18 deletions

View File

@ -918,11 +918,14 @@ public class HeroLogic{
//删除hero
// CommonProto.Drop.Builder baseBuilder = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE);
//改成归元获得
//改成归元获得,同时返还法宝获得
CommonProto.Drop.Builder baseBuilder = heroBackDrop(user,new ArrayList<>(removeHeroIds),10000,BIReason.UPHERO_DECOMPOS_HERO_REWARD,true);
for(String rmHeroId:removeHeroIds){
heroManager.removeHero(uid,rmHeroId);
}
// recyleHeroBySystem(user,removeHeroIds);
// recyleHeroBySystem(user,removeHeroIds);
rankUpHeroExecute(targetHero);
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){
@ -2422,6 +2425,7 @@ public class HeroLogic{
if(!b){
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
}
//单纯归元神将,不归元法宝
CommonProto.Drop.Builder drop = heroBackDrop(user, heroList, returnPercent, BIReason.HERO_BACK_REWARD,false);
List<CommonProto.Item> itemList = drop.getItemlistList();
List<Integer> itemId = new ArrayList<>(itemList.size());
@ -2509,23 +2513,27 @@ public class HeroLogic{
continue;
}
//返还法宝修炼材料
int especialEquipLevel = hero.getEspecialEquipLevel();
if(especialEquipLevel!=1&&especialEquipLevel!=0){
continue;
}
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
int[] equipTalismana = scHero.getEquipTalismana();
if(equipTalismana!=null&&equipTalismana.length>1){
continue;
}
TreeMap<Integer, SEquipTalismana> levelMap = (TreeMap<Integer, SEquipTalismana>) SEquipTalismana.equipTalismanaStarMap.get(equipTalismana[1]);
Map<Integer, SEquipTalismana> returnMap = levelMap.subMap(1, hero.getEspecialEquipLevel());
for(Map.Entry<Integer, SEquipTalismana> entry:returnMap.entrySet()){
int[][] rankupBasicMaterial = entry.getValue().getRankupBasicMaterial();
for(int[] rankUpConsume:rankupBasicMaterial){
returnItemMap.put(rankUpConsume[0],returnItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]);
}
Map<Integer, Integer> especialEquipReturnItem = ItemLogic.getInstance().heroEspecialEquipReturnItem(hero);
for(Map.Entry<Integer,Integer> entry:especialEquipReturnItem.entrySet()){
returnItemMap.put(entry.getKey(),returnItemMap.getOrDefault(entry.getKey(),0)+entry.getValue());
}
// int especialEquipLevel = hero.getEspecialEquipLevel();
// if(especialEquipLevel==1||especialEquipLevel==0){
// continue;
// }
// SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
// int[] equipTalismana = scHero.getEquipTalismana();
// if(equipTalismana!=null&&equipTalismana.length>1){
// continue;
// }
// TreeMap<Integer, SEquipTalismana> levelMap = (TreeMap<Integer, SEquipTalismana>) SEquipTalismana.equipTalismanaStarMap.get(equipTalismana[1]);
// Map<Integer, SEquipTalismana> returnMap = levelMap.subMap(1, hero.getEspecialEquipLevel());
// for(Map.Entry<Integer, SEquipTalismana> entry:returnMap.entrySet()){
// int[][] rankupBasicMaterial = entry.getValue().getRankupBasicMaterial();
// for(int[] rankUpConsume:rankupBasicMaterial){
// returnItemMap.put(rankUpConsume[0],returnItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]);
// }
// }
}
int[][] resultDrop = new int[returnItemMap.size()][];
int index = 0;