法宝掉落

back_recharge
lvxinran 2019-09-07 16:31:19 +08:00
parent d88ed321c8
commit 3defe3d54c
2 changed files with 18 additions and 1 deletions

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.handler.map; package com.ljsd.jieling.handler.map;
import com.ljsd.jieling.logic.dao.Equip; import com.ljsd.jieling.logic.dao.Equip;
import com.ljsd.jieling.logic.dao.EspecialEquip;
import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.Item;
import java.util.HashMap; import java.util.HashMap;
@ -14,4 +15,6 @@ public class TemporaryItems {
public Set<Equip> equips = new HashSet<>(); public Set<Equip> equips = new HashSet<>();
public Set<EspecialEquip> especialEquips = new HashSet<>();
} }

View File

@ -496,6 +496,7 @@ public class ItemUtil {
public static void addItemToTemporaryBag(User user, Map<Integer, Integer> itemMap, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception { public static void addItemToTemporaryBag(User user, Map<Integer, Integer> itemMap, Map<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception {
List<CommonProto.Item> itemProtoList = new ArrayList<>(); List<CommonProto.Item> itemProtoList = new ArrayList<>();
List<CommonProto.Equip> equipProtoList = new ArrayList<>(); List<CommonProto.Equip> equipProtoList = new ArrayList<>();
List<CommonProto.Equip> especialEquip = new ArrayList<>();
MapManager mapManager = user.getMapManager(); MapManager mapManager = user.getMapManager();
TemporaryItems temporaryItems = mapManager.getTemporaryItems(); TemporaryItems temporaryItems = mapManager.getTemporaryItems();
if (temporaryItems == null) { if (temporaryItems == null) {
@ -520,9 +521,16 @@ public class ItemUtil {
LOGGER.info("the uid={},the curMapId={},add item={},addItemNum={},totalItemNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),entry.getValue(),item.getItemNum()); LOGGER.info("the uid={},the curMapId={},add item={},addItemNum={},totalItemNum={}",user.getId(),user.getMapManager().getCurMapId(),entry.getKey(),entry.getValue(),item.getItemNum());
} }
Set<Equip> equips = temporaryItems.equips; Set<Equip> equips = temporaryItems.equips;
Set<EspecialEquip> especialEquips = temporaryItems.especialEquips;
for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) { for (Map.Entry<Integer, Integer> entry : equipMap.entrySet()) {
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(entry.getKey()); SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(entry.getKey());
if (sEquipConfig == null) { if (sEquipConfig == null) {
Map<Integer, SEquipTalismana> sEquipTalismanaMap = SEquipTalismana.equipTalismanaStarMap.get(entry.getKey());
if(sEquipTalismanaMap!=null&&sEquipTalismanaMap.size()>0){
EspecialEquip tempEquip = new EspecialEquip(user.getId(),entry.getKey());
especialEquip.add(CBean2Proto.getEquipProto(tempEquip));
especialEquips.add(tempEquip);
}
continue; continue;
} }
Equip equip = new Equip(user.getId(), entry.getKey()); Equip equip = new Equip(user.getId(), entry.getKey());
@ -534,6 +542,7 @@ public class ItemUtil {
if (dropBuilder != null) { if (dropBuilder != null) {
dropBuilder.addAllItemlist(itemProtoList); dropBuilder.addAllItemlist(itemProtoList);
dropBuilder.addAllEquipId(equipProtoList); dropBuilder.addAllEquipId(equipProtoList);
dropBuilder.addAllEspecialEquipId(especialEquip);
} }
if(!sendToFront.isEmpty()){ if(!sendToFront.isEmpty()){
@ -550,7 +559,8 @@ public class ItemUtil {
public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems, boolean isVictory) throws Exception { public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems, boolean isVictory) throws Exception {
Map<Integer, Item> items = temporaryItems.items; Map<Integer, Item> items = temporaryItems.items;
Set<Equip> equips = temporaryItems.equips; Set<Equip> equips = temporaryItems.equips;
if (items.isEmpty() && equips.isEmpty()) { Set<EspecialEquip> especialEquips = temporaryItems.especialEquips;
if (items.isEmpty() && equips.isEmpty() && especialEquips.isEmpty()) {
return; return;
} }
Map<Integer, Item> itemMap = user.getItemManager().getItemMap(); Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
@ -615,6 +625,10 @@ public class ItemUtil {
user.getEquipManager().addEquip(user,equip); user.getEquipManager().addEquip(user,equip);
KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,BIReason.TEMPORARY_REWARD,GlobalsDef.addReason,sItem.getId(),1,-1); KtEventUtils.onKtEvent(user, ParamEventBean.UserItemEvent,BIReason.TEMPORARY_REWARD,GlobalsDef.addReason,sItem.getId(),1,-1);
} }
for(EspecialEquip especialEquip:especialEquips){
user.getEquipManager().addEspecialEquip(user,especialEquip);
}
user.getMapManager().setTemporaryItems(null); user.getMapManager().setTemporaryItems(null);
if(!isVictory){ if(!isVictory){
String title = SErrorCodeEerverConfig.getI18NMessage("map_overtime_title"); String title = SErrorCodeEerverConfig.getI18NMessage("map_overtime_title");