From 3defe3d54cc41a8c458d3885ef25968b6d582a31 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 7 Sep 2019 16:31:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=95=E5=AE=9D=E6=8E=89=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/TemporaryItems.java | 3 +++ .../java/com/ljsd/jieling/util/ItemUtil.java | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TemporaryItems.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TemporaryItems.java index f5ca20da6..b12cd8b52 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TemporaryItems.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/TemporaryItems.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.handler.map; import com.ljsd.jieling.logic.dao.Equip; +import com.ljsd.jieling.logic.dao.EspecialEquip; import com.ljsd.jieling.logic.dao.Item; import java.util.HashMap; @@ -14,4 +15,6 @@ public class TemporaryItems { public Set equips = new HashSet<>(); + public Set especialEquips = new HashSet<>(); + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index fe7b0e923..a98e98c14 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -496,6 +496,7 @@ public class ItemUtil { public static void addItemToTemporaryBag(User user, Map itemMap, Map equipMap, CommonProto.Drop.Builder dropBuilder) throws Exception { List itemProtoList = new ArrayList<>(); List equipProtoList = new ArrayList<>(); + List especialEquip = new ArrayList<>(); MapManager mapManager = user.getMapManager(); TemporaryItems temporaryItems = mapManager.getTemporaryItems(); 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()); } Set equips = temporaryItems.equips; + Set especialEquips = temporaryItems.especialEquips; for (Map.Entry entry : equipMap.entrySet()) { SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(entry.getKey()); if (sEquipConfig == null) { + Map 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; } Equip equip = new Equip(user.getId(), entry.getKey()); @@ -534,6 +542,7 @@ public class ItemUtil { if (dropBuilder != null) { dropBuilder.addAllItemlist(itemProtoList); dropBuilder.addAllEquipId(equipProtoList); + dropBuilder.addAllEspecialEquipId(especialEquip); } if(!sendToFront.isEmpty()){ @@ -550,7 +559,8 @@ public class ItemUtil { public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems, boolean isVictory) throws Exception { Map items = temporaryItems.items; Set equips = temporaryItems.equips; - if (items.isEmpty() && equips.isEmpty()) { + Set especialEquips = temporaryItems.especialEquips; + if (items.isEmpty() && equips.isEmpty() && especialEquips.isEmpty()) { return; } Map itemMap = user.getItemManager().getItemMap(); @@ -615,6 +625,10 @@ public class ItemUtil { user.getEquipManager().addEquip(user,equip); 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); if(!isVictory){ String title = SErrorCodeEerverConfig.getI18NMessage("map_overtime_title");