法宝归元
parent
4a50b29266
commit
d7a98fe7fc
|
@ -142,6 +142,7 @@ public interface BIReason {
|
|||
|
||||
int PROUD_REWARD = 78;//膜拜获得金币奖励
|
||||
int EQUIP_UNLOAD_REWARD = 79;
|
||||
int ESPECIAL_BACK = 80;//法宝归元获得
|
||||
|
||||
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
||||
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
||||
|
|
|
@ -2418,6 +2418,34 @@ public class HeroLogic{
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 法宝归元
|
||||
* @param session
|
||||
* @param heroIdList
|
||||
* @throws Exception
|
||||
*/
|
||||
public void especialEquipBack(ISession session,List<String> heroIdList) throws Exception{
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
Map<Integer,Integer> dropMap = new HashMap<>();
|
||||
for(String heroId:heroIdList){
|
||||
Hero hero = user.getHeroManager().getHero(heroId);
|
||||
if(hero==null||hero.getEspecialEquipLevel()<=1){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
Map<Integer, Integer> dropTempMap = ItemLogic.getInstance().heroEspecialEquipReturnItem(hero);
|
||||
if(dropTempMap==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
dropTempMap.forEach((k,v)->dropMap.put(k,dropMap.getOrDefault(k,0)+v));
|
||||
hero.updateEspecial(1);
|
||||
}
|
||||
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(dropMap), BIReason.ESPECIAL_BACK);
|
||||
HeroInfoProto.EspecialEquipBackResponse response = HeroInfoProto.EspecialEquipBackResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.ESPECIAL_EQUIP_BACK_RESPONSE_VALUE,response,true);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 归元掉落
|
||||
* @param user
|
||||
|
|
|
@ -413,23 +413,28 @@ public class ItemLogic {
|
|||
for(int[] item:breakSHeroSacrifice.getValue()){
|
||||
baseItemMap.put(item[0],baseItemMap.getOrDefault(item[0],0)+item[1]);
|
||||
}
|
||||
// 返还法宝修炼材料
|
||||
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<2){
|
||||
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){
|
||||
baseItemMap.put(rankUpConsume[0],baseItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]);
|
||||
}
|
||||
//// 返还法宝修炼材料
|
||||
// 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<2){
|
||||
// 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){
|
||||
// baseItemMap.put(rankUpConsume[0],baseItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]);
|
||||
// }
|
||||
// }
|
||||
//法宝获得
|
||||
Map<Integer, Integer> especialReturn = heroEspecialEquipReturnItem(hero);
|
||||
if(especialReturn!=null){
|
||||
especialReturn.forEach((k,v)->baseItemMap.put(k,baseItemMap.getOrDefault(k,0)+v));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -454,7 +459,7 @@ public class ItemLogic {
|
|||
/**
|
||||
* 法宝归元所得
|
||||
*/
|
||||
private Map<Integer,Integer> heroEspecialEquipReturnItem(Hero hero){
|
||||
public Map<Integer,Integer> heroEspecialEquipReturnItem(Hero hero){
|
||||
int especialEquipLevel = hero.getEspecialEquipLevel();
|
||||
if(especialEquipLevel==1||especialEquipLevel==0){
|
||||
return null;
|
||||
|
|
Loading…
Reference in New Issue