恭送英雄返还神印

back_recharge
duhui 2023-02-17 15:24:41 +08:00
parent 639a6e92f6
commit 8cd5a70b94
1 changed files with 16 additions and 10 deletions

View File

@ -145,7 +145,6 @@ public class HeroLogic {
pokemonTemplate.add(HeroAttributeEnum.CureFacter.getPropertyId()); // 受治疗
}
public static final String VERTICAL = "|";
public static final String DIVISION = "#";
public static final int HERO_MAX_STAR = 10; // 英雄最大星级大于10星为觉醒
@ -4381,15 +4380,17 @@ public class HeroLogic {
Hero hero = user.getHeroManager().getHero(heroId);
//如果是进阶把装备、宝物返还
if (reason == BIReason.UPHERO_DECOMPOS_HERO_REWARD) {
// 装备
Map<Integer, Integer> equipByPositionMap = hero.getEquipByPositionMap();
Map<Integer, Integer> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
if (equipByPositionMap != null && equipByPositionMap.size() > 0) {
equipByPositionMap.forEach((k, v) -> returnItemMap.put(v, returnItemMap.getOrDefault(v, 0) + 1));
}
// 魂印
Map<Integer, Integer> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
if (soulEquipByPositionMap != null && soulEquipByPositionMap.size() > 0) {
soulEquipByPositionMap.forEach((k, v) -> returnItemMap.put(v, returnItemMap.getOrDefault(v, 0) + 1));
}
// 宝器
Set<String> jewelInfo = new HashSet<>(hero.getJewelInfo());
for (String equipId : jewelInfo) {
if (!equipMap.containsKey(equipId)) {
@ -4398,6 +4399,13 @@ public class HeroLogic {
equipMap.get(equipId).setHeroId("");
hero.removeJewel(equipId);
}
// 神印
Map<Integer, Integer> godSealByPositionMap = hero.getGodSealByPositionMap();
if (godSealByPositionMap != null && !godSealByPositionMap.isEmpty()){
for (Integer integer : godSealByPositionMap.values()) {
returnItemMap.put(integer,1);
}
}
}
int breakId = hero.getBreakId();
int templateId = hero.getTemplateId();
@ -4409,11 +4417,11 @@ public class HeroLogic {
SHeroLevlConfig sHeroLevlConfig = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getOriginalLevel());
int[][] levelReturn = ItemLogic.getInstance().itemReturnPercent(sHeroLevlConfig.getSumConsume(), returnPercent);
//进阶材料返还乘万分比
for (int i = 0; i < returnMaterials.length; i++) {
returnItemMap.put(returnMaterials[i][0], returnItemMap.getOrDefault(returnMaterials[i][0], 0) + (int) (returnMaterials[i][1] / 10000d * returnPercent));
for (int[] returnMaterial : returnMaterials) {
returnItemMap.put(returnMaterial[0], returnItemMap.getOrDefault(returnMaterial[0], 0) + (int) (returnMaterial[1] / 10000d * returnPercent));
}
for (int i = 0; i < levelReturn.length; i++) {
returnItemMap.put(levelReturn[i][0], returnItemMap.getOrDefault(levelReturn[i][0], 0) + levelReturn[i][1]);
for (int[] ints : levelReturn) {
returnItemMap.put(ints[0], returnItemMap.getOrDefault(ints[0], 0) + ints[1]);
}
if (!isAddEspecial) {
continue;
@ -4432,9 +4440,7 @@ public class HeroLogic {
resultDrop[index] = new int[]{entry.getKey(), entry.getValue()};
index++;
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, reason);
return drop;
return ItemUtil.drop(user, resultDrop, reason);
}
public void changeHeroLockState(ISession session, String heroId, int lockState) throws Exception {