英雄升星修改,进阶修改
parent
9904db73d6
commit
20f2fffb71
|
@ -866,7 +866,7 @@ public class HeroLogic{
|
||||||
//删除hero
|
//删除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 = ItemLogic.getInstance().decomposeHero(session,new LinkedList<>(removeHeroIds),Collections.singleton(26),MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE);
|
||||||
// recyleHeroBySystem(user,removeHeroIds);
|
// recyleHeroBySystem(user,removeHeroIds);
|
||||||
rankUpHeroExecute(targetHero,1,8);
|
rankUpHeroExecute(targetHero);
|
||||||
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
|
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
|
||||||
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){
|
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){
|
||||||
if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5)
|
if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5)
|
||||||
|
@ -888,11 +888,19 @@ public class HeroLogic{
|
||||||
}
|
}
|
||||||
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),"");
|
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),"");
|
||||||
}
|
}
|
||||||
private void rankUpHeroExecute(Hero hero,int starCount,int unlockEspecialEquipStar) throws Exception {
|
private void rankUpHeroExecute(Hero hero)throws Exception {
|
||||||
//是否解锁法宝
|
//是否解锁法宝
|
||||||
if(hero.getStar()<unlockEspecialEquipStar&&hero.getStar()+starCount>=unlockEspecialEquipStar){
|
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||||
|
int[][] equipTalismanaUnlock = gameSetting.getEquipTalismanaUnlock();
|
||||||
|
for(int [] lockLimit:equipTalismanaUnlock){
|
||||||
|
//英雄星级解锁
|
||||||
|
if(lockLimit[0]==2) {
|
||||||
|
if (hero.getStar() < lockLimit[1] && hero.getStar() + 1 >= lockLimit[1]) {
|
||||||
hero.updateEspecial(1);
|
hero.updateEspecial(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
hero.upStar( 1 );
|
hero.upStar( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2341,23 +2349,31 @@ public class HeroLogic{
|
||||||
|
|
||||||
heroManager.removeHero(uid,heroId);
|
heroManager.removeHero(uid,heroId);
|
||||||
int[][] returnMaterials = sHeroReturn.getRankupReturn();
|
int[][] returnMaterials = sHeroReturn.getRankupReturn();
|
||||||
|
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
|
||||||
|
int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent);
|
||||||
int returnHero = sHeroReturn.getHeroId();
|
int returnHero = sHeroReturn.getHeroId();
|
||||||
//进阶材料返还乘万分比
|
//进阶材料返还乘万分比
|
||||||
int[][] realReturnMaterials = new int[returnMaterials.length][];
|
Map<Integer,Integer> returnItemMap = new HashMap<>();
|
||||||
for(int i = 0 ; i <realReturnMaterials.length;i++){
|
for(int i = 0 ; i <returnMaterials.length;i++){
|
||||||
realReturnMaterials[i] = new int[]{returnMaterials[i][0],(int)(returnMaterials[i][1]/10000d*returnPercent)};
|
returnItemMap.put(returnMaterials[i][0],(int)(returnMaterials[i][1]/10000d*returnPercent));
|
||||||
}
|
}
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,realReturnMaterials, BIReason.HERO_BACK_REWARD);
|
for(int i = 0 ; i <levelReturn.length;i++){
|
||||||
ItemUtil.drop(user, new int[][]{{returnHero,1}},drop, BIReason.HERO_BACK_REWARD);
|
returnItemMap.put(levelReturn[i][0],returnItemMap.getOrDefault(levelReturn[i][0],0)+levelReturn[i][1]);
|
||||||
|
}
|
||||||
|
returnItemMap.put(returnHero,1);
|
||||||
|
int[][] resultDrop = new int[returnItemMap.size()][];
|
||||||
|
int index = 0;
|
||||||
|
for(Map.Entry<Integer,Integer> entry:returnItemMap.entrySet()){
|
||||||
|
resultDrop[index] = new int[]{entry.getKey(),entry.getValue()};
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, BIReason.HERO_BACK_REWARD);
|
||||||
CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder();
|
CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder();
|
||||||
String createHeroId = heroProto.getId();
|
String createHeroId = heroProto.getId();
|
||||||
heroProto.setStar(star);
|
heroProto.setStar(star);
|
||||||
drop.setHero(0,heroProto.build());
|
drop.setHero(0,heroProto.build());
|
||||||
Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId);
|
Hero newHero = user.getHeroManager().getHeroMap().get(createHeroId);
|
||||||
newHero.setStar(star);
|
newHero.setStar(star);
|
||||||
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
|
|
||||||
int[][] levelUpReturn = sHeroLevlConfig.getSumConsume();
|
|
||||||
ItemUtil.drop(user, ItemLogic.getInstance().itemReturnPercent(levelUpReturn,returnPercent),drop, BIReason.HERO_BACK_REWARD);
|
|
||||||
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
|
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
|
||||||
MessageUtil.sendMessage(session,1,responseMsgId,build,true);
|
MessageUtil.sendMessage(session,1,responseMsgId,build,true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue