回溯、分解英雄

back_recharge
lvxinran 2020-03-27 14:04:42 +08:00
parent 23489baf4a
commit 1588a437b1
3 changed files with 15 additions and 3 deletions

View File

@ -2174,6 +2174,7 @@ public class HeroLogic{
}
public void heroBack(ISession session,String heroId) throws Exception {
int returnPercent = SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_RETURN_PERCENT);
int uid = session.getUid();
int responseMsgId = MessageTypeProto.MessageType.HERO_RETURN_RESPONSE_VALUE;
User user = UserManager.getUser(uid);
@ -2205,10 +2206,17 @@ public class HeroLogic{
}
heroManager.removeHero(uid,heroId);
int[][] returnMaterials = sHeroReturn.getReturnMaterials();
CommonProto.Drop.Builder drop = ItemUtil.drop(user, returnMaterials, BIReason.HERO_BACK_REWARD);
int[] returnMaterials = sHeroReturn.getRankupReturn();
int[][] returnHero = sHeroReturn.getReturnHero();
//进阶材料返还乘万分比
returnMaterials[1]*=(double)returnPercent/10000;
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{returnMaterials}, BIReason.HERO_BACK_REWARD);
ItemUtil.drop(user, returnHero,drop, BIReason.HERO_BACK_REWARD);
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel());
ItemUtil.drop(user, sHeroLevlConfig.getRankupReturn(),drop, BIReason.HERO_BACK_REWARD);
int[][] levelUpReturn = sHeroLevlConfig.getSumConsume();
//升级材料返还乘万分比
Arrays.stream(levelUpReturn).forEach(i->i[1]*=((double)returnPercent/10000));
ItemUtil.drop(user, levelUpReturn,drop, BIReason.HERO_BACK_REWARD);
HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1,responseMsgId,build,true);

View File

@ -301,10 +301,12 @@ public class ItemLogic {
Map<Integer, Integer> baseCardMap = new HashMap<>();
Map<Integer, Integer> baseEquipMap = new HashMap<>();
Map<Integer,Integer> baseRandomMap = new HashMap<>();
int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT);
for (String heroId : heroIdsList) {
Hero hero = heroManager.getHeroMap().get(heroId);
heroManager.removeHero(uid,heroId);
int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume();
Arrays.stream(sumConsume).forEach(i->i[1]*=((double)rankUpReturnPercent/10000));
ItemUtil.combineReward(sumConsume,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
int breakId = hero.getBreakId();
int starBreakId = hero.getStarBreakId();

View File

@ -52,6 +52,8 @@ public class SSpecialConfig implements BaseConfig {
public static final String LAMP_TEXT_SPEED = "lamp_text_speed";//跑马灯速度
public static final String TIME_LIMIT_RECRUITMENT_INTEGRAL = "time_limit_recruitment_integral";//限时抽卡一次积分
public static final String TIME_LIMIT_RECRUITMENT_FREEINTEGRAL = "time_limit_recruitment_FreeIntegral";//东海寻仙每获得150分赠送一次免费招募
public static final String HERO_RETURN_PERCENT = "hero_return_percent";//回溯返还材料比例 实际百分比为填写数值/10000
public static final String HERO_SACRIFICE_PERCENT = "hero_sacrifice_percent";//献祭返还材料比例 实际百分比为填写数值/10000
@Override
public void init() throws Exception {