back_recharge
jiahuiwen 2019-02-22 11:48:22 +08:00
commit a1385054a3
3 changed files with 52 additions and 16 deletions

View File

@ -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.globals.Global;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
@ -166,7 +166,8 @@ public class MailLogic {
}else{ }else{
mailItem.append("|").append(mail.getMailItem()); mailItem.append("|").append(mail.getMailItem());
} }
mail.setState(Global.MAIL_DRAW_ST_GOT);
mailManager.addMail(mail);
} }
int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString()); int[][] itemArr = StringUtil.parseFiledInt2(mailItem.toString());
CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr); CommonProto.Drop.Builder dropBuilder = ItemUtil.drop(user, itemArr);

View File

@ -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;
}
}

View File

@ -16,7 +16,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
public class ItemUtil { public class ItemUtil {
private static Map<Integer,String> dropRewardMap = new ConcurrentHashMap<>(); private static Map<Integer,String> dropRewardMap = new ConcurrentHashMap<>();
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class); private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
//掉落 //指定道具掉落(如:邮件,初始化物品)
public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception { public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception {
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
Map<Integer, Integer> itemMap = new HashMap<>(); Map<Integer, Integer> itemMap = new HashMap<>();
@ -25,19 +25,39 @@ public class ItemUtil {
Map<Integer,Integer> randomMap = new HashMap<>(); Map<Integer,Integer> randomMap = new HashMap<>();
selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap); selectItemArr(itemArr,cardMap,itemMap,equipMap,randomMap);
useRandomItem(user,randomMap); useRandomItem(user,randomMap);
addItem(user,itemMap,dropBuilder); addItem(user,itemMap,dropBuilder);
addCard(user,cardMap,dropBuilder); addCard(user,cardMap,dropBuilder);
addEquip(user,equipMap,dropBuilder); addEquip(user,equipMap,dropBuilder);
return dropBuilder; return dropBuilder;
} }
//活动掉落
private static void selectItemArr(int[][] itemArr, Map<Integer, Integer> cardMap, Map<Integer, Integer> public static void activityDrop(User user,CommonProto.Drop.Builder dropBuilder ,int[] dropGroupIds, float dropRatio) throws Exception {
itemMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap) { Map<Integer, Integer> itemMap = new HashMap<>();
for (int[] items : itemArr){ Map<Integer, Integer> cardMap = new HashMap<>();
getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1); Map<Integer, Integer> equipMap = new HashMap<>();
Map<Integer, Integer> 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<int [],Float> dropGroupAndRatioMap) throws Exception {
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
for (Map.Entry<int [],Float> 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); addEquip(user,equipMap,dropBuilder);
return dropBuilder; return dropBuilder;
} }
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception { private static void selectItemArr(int[][] itemArr, Map<Integer, Integer> cardMap, Map<Integer, Integer>
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); itemMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap) {
for (Map.Entry<int [],Float> entry :dropGroupAndRatioMap.entrySet()){ for (int[] items : itemArr){
int[] dropGroupIds = entry.getKey(); getMap(items[0],items[1], itemMap, cardMap,equipMap,randomMap,1);
float dropRatio = entry.getValue();
dropBuilder = drop(user, dropGroupIds, dropRatio);
} }
return dropBuilder;
} }
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap , float dropRatio) { private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,Map<Integer,Integer> randomMap , float dropRatio) {
String dropInfo = dropRewardMap.get(sRewardGroup.getId()); String dropInfo = dropRewardMap.get(sRewardGroup.getId());