From 7dda6284c9b94d12688fd6208b0f9409852c4a75 Mon Sep 17 00:00:00 2001 From: gaojie Date: Thu, 21 Feb 2019 21:00:46 +0800 Subject: [PATCH] =?UTF-8?q?=20=E6=B4=BB=E5=8A=A8=E6=8E=89=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/Mail/MailLogic.java | 5 ++- .../jieling/logic/activity/ActivityLogic.java | 18 ++++++++ .../java/com/ljsd/jieling/util/ItemUtil.java | 45 +++++++++++++------ 3 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/Mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/Mail/MailLogic.java index e4f2a64ce..057c8c667 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/Mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/Mail/MailLogic.java @@ -1,4 +1,4 @@ -package com.ljsd.jieling.logic.Mail; +package com.ljsd.jieling.logic.mail; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.*; @@ -166,7 +166,8 @@ public class MailLogic { }else{ mailItem.append("|").append(mail.getMailItem()); } - + mail.setState(Global.MAIL_DRAW_ST_GOT); + mailManager.addMail(mail); } int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java new file mode 100644 index 000000000..a43d0361f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.logic.activity; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ActivityLogic { + private static final Logger LOGGER = LoggerFactory.getLogger(ActivityLogic.class); + + private ActivityLogic(){} + + public static class Instance { + public final static ActivityLogic instance = new ActivityLogic(); + } + + public static ActivityLogic getInstance() { + return ActivityLogic.Instance.instance; + } +} 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 5512bf821..1f5942a0a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -16,7 +16,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class ItemUtil { private static Map dropRewardMap = new ConcurrentHashMap<>(); private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class); - //掉落 + //指定道具掉落(如:邮件,初始化物品) public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception { CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); Map itemMap = new HashMap<>(); @@ -25,19 +25,39 @@ public class ItemUtil { Map randomMap = new HashMap<>(); selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap); - useRandomItem(user,randomMap); addItem(user,itemMap,dropBuilder); addCard(user,cardMap,dropBuilder); addEquip(user,equipMap,dropBuilder); return dropBuilder; } - - private static void selectItemArr(int[][] itemArr, Map cardMap, Map - itemMap,Map equipMap,Map randomMap) { - for (int[] items : itemArr){ - getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1); + //活动掉落 + public static void activityDrop(User user,CommonProto.Drop.Builder dropBuilder ,int[] dropGroupIds, float dropRatio) throws Exception { + Map itemMap = new HashMap<>(); + Map cardMap = new HashMap<>(); + Map equipMap = new HashMap<>(); + Map randomMap = new HashMap<>(); + for (int dropGroupId : dropGroupIds) { + SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId); + if (sRewardGroup == null) { + continue; + } + selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio); } + useRandomItem(user, randomMap); + addItem(user, itemMap, dropBuilder); + addCard(user, cardMap, dropBuilder); + addEquip(user, equipMap, dropBuilder); + } + //掉落组概率 + public static CommonProto.Drop.Builder drop(User user, Map dropGroupAndRatioMap) throws Exception { + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + for (Map.Entry entry :dropGroupAndRatioMap.entrySet()){ + int[] dropGroupIds = entry.getKey(); + float dropRatio = entry.getValue(); + dropBuilder = drop(user, dropGroupIds, dropRatio); + } + return dropBuilder; } //掉落 @@ -60,14 +80,11 @@ public class ItemUtil { addEquip(user,equipMap,dropBuilder); return dropBuilder; } - public static CommonProto.Drop.Builder drop(User user, Map dropGroupAndRatioMap) throws Exception { - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - for (Map.Entry entry :dropGroupAndRatioMap.entrySet()){ - int[] dropGroupIds = entry.getKey(); - float dropRatio = entry.getValue(); - dropBuilder = drop(user, dropGroupIds, dropRatio); + private static void selectItemArr(int[][] itemArr, Map cardMap, Map + itemMap,Map equipMap,Map randomMap) { + for (int[] items : itemArr){ + getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1); } - return dropBuilder; } private static void selectDrop(SRewardGroup sRewardGroup,Map itemMap, Map cardMap,Map equipMap,Map randomMap , float dropRatio) { String dropInfo = dropRewardMap.get(sRewardGroup.getId());