From d589cfc1049caba366abd9f5f0b434890e3ace95 Mon Sep 17 00:00:00 2001 From: xuexinpeng Date: Fri, 29 Apr 2022 15:32:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=96=E8=BA=AB=E4=B9=8B=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/globals/BIReason.java | 1 + .../TransformationUpGradeHandler.java | 31 ++++++++++++++++--- .../UpOrDownTransformationHandler.java | 15 ++++++--- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 49a561108..68e26de04 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -405,5 +405,6 @@ public interface BIReason { int TRANSFORMATION_CARD_LEVEL_REWARD = 1245;//身外化身卡片升星奖励 int TRANSFORMATION_CARD_STAR_REWARD= 1246;//身外化身卡片升星奖励 int TRANSFORMATION_FORCE_STAR_COST= 1247;//身外化身之力消耗 + int TRANSFORMATION_CARD_ACTIVATION = 1248;//身外化身卡片升星奖励 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java index c6cb60ebb..ec6dab3c0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/TransformationUpGradeHandler.java @@ -12,6 +12,7 @@ import com.ljsd.jieling.util.ItemUtil; import com.ljsd.jieling.util.MessageUtil; import config.SChangingCard; import config.SChangingCardLevel; +import config.SItem; import manager.STableManager; import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; @@ -55,11 +56,12 @@ public class TransformationUpGradeHandler extends BaseHandler costMap = new HashMap<>(); for (CommonProto.KeyVal keyVal : itemIdList) { if (costMap.containsKey(keyVal.getKey())) { - costMap.put(keyVal.getKey(), costMap.get(keyVal.getKey()) + 1); + costMap.put(keyVal.getKey(), costMap.get(keyVal.getKey()) + keyVal.getVal()); } else { - costMap.put(keyVal.getKey(), 1); + costMap.put(keyVal.getKey(), keyVal.getVal()); } } + int num = 0; + int quantity = 0; + if(changingCard.getStarUpCost().length>= info.getStar() + 1){ + num = changingCard.getStarUpCost()[info.getStar()][1]; + quantity = changingCard.getStarUpCost()[info.getStar()][0]; + } + for(Object itemId:costMap.keySet().toArray()){ + int itemid = (int)itemId; + SItem sItem = SItem.getsItemMap().get(itemid); + if(sItem == null || sItem.getQuantity() != quantity){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.TransformationUpGradeResponse.getNumber(), builder.build(), true); + return; + } + } + if(costMap.values().stream().mapToInt(Integer::intValue).sum() != num ){ + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.TransformationUpGradeResponse.getNumber(), builder.build(), true); + return; + } if (!ItemUtil.itemCost(user, costMap, BIReason.TRANSFORMATION_CARD_STAR_COST, 1)) { + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.TransformationUpGradeResponse.getNumber(), builder.build(), true); return; } if (info != null) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/UpOrDownTransformationHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/UpOrDownTransformationHandler.java index 6c0d7c7dd..783356e2e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/UpOrDownTransformationHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/transformation/UpOrDownTransformationHandler.java @@ -14,6 +14,7 @@ import com.ljsd.jieling.util.MessageUtil; import config.SChangingCard; import manager.STableManager; import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; @@ -43,7 +44,9 @@ public class UpOrDownTransformationHandler extends BaseHandler infoMap = user.getHeroManager().getTransformationList(); TransformationInfo info = infoMap.get(id); if (info != null && info.getStatus() == 0){ @@ -69,15 +72,19 @@ public class UpOrDownTransformationHandler extends BaseHandler