奇门遁甲2.0

back_recharge
duhui 2021-06-29 11:27:28 +08:00
parent 3afb198cf9
commit 29df3cbddd
3 changed files with 22 additions and 14 deletions

View File

@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.security.MessageDigest;
import java.util.List;
import java.util.Random;
/**
@ -90,7 +91,13 @@ public class Utils {
return randStr;
}
public static int[][] changeList(List<int[]> list){
int[][] objects = new int[list.size()][];
for (int i = 0; i < list.size(); i++) {
objects[i] = list.get(i);
}
return objects;
}
}

View File

@ -31,7 +31,7 @@ public final class ActivityManager extends MongoBase {
this.luckWheel = new LuckWheelMission(_o_.luckWheel);
this.luckWheelAdvance = new LuckWheelMission(_o_.luckWheelAdvance);
this.subRewardPoolInfo = new SubRewardPoolInfo(_o_.subRewardPoolInfo);
this.doubleRewardPoolInfo = new HashMap<>();
this.doubleRewardPoolInfo = new HashMap<>(_o_.doubleRewardPoolInfo);
}
public Map<Integer, com.ljsd.jieling.jbean.ActivityMission> getActivityMissionMap() {

View File

@ -25,6 +25,7 @@ import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.tools.Utils;
import com.ljsd.jieling.util.InnerMessageUtil;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
@ -1680,16 +1681,17 @@ public class ActivityLogic implements IEventHandler{
public ActivityProto.qiMenDunJiaDrawResponse qiMenDunJiaDraw(User user,int activityId) throws Exception {
ActivityProto.qiMenDunJiaDrawResponse.Builder response = ActivityProto.qiMenDunJiaDrawResponse.newBuilder();
ArrayList<Integer> hits = new ArrayList<>();
int[][] rewards = new int[2][];
List<int[]> list = new ArrayList<>();
// 根据返回判断是否需要抽外圈
boolean result = qiMenRandom(user, 2, rewards, hits);
boolean result = qiMenRandom(user, 2, list, hits);
if (result){
// 外圈抽奖
qiMenRandom(user, 1, rewards, hits);
qiMenRandom(user, 1, list, hits);
// 事件分发
Poster.getPoster().dispatchEvent(new QiMenDunJiaEvent(user.getId(),activityId,1));
}
// 处理奖励
int[][] rewards = Utils.changeList(list);
CommonProto.Drop.Builder drop = ItemUtil.dropPer(user, rewards, BIReason.QIMENDUNJIA_DRAW);
response.setDrop(drop).addAllIdList(hits);
@ -1700,11 +1702,11 @@ public class ActivityLogic implements IEventHandler{
*
* @param user
* @param type ,
* @param rewards
* @param list
* @param hits id
* @return true: false:
*/
private boolean qiMenRandom(User user, int type, int[][] rewards, List<Integer> hits){
private boolean qiMenRandom(User user, int type, List<int[]> list, List<Integer> hits){
boolean result = false;
// 根据类型获取卡池
@ -1721,20 +1723,19 @@ public class ActivityLogic implements IEventHandler{
for (SLingLongPool pool : smallPool) {
// 中将
if (randomInt <= pool.getGetRate()){
// 物品id
rewards[type][0] = pool.getItemId()[0];
// 物品数量
rewards[type][1] = pool.getItemId()[1];
// 物品
list.add(pool.getItemId());
// 中门
if (pool.getItemId()[0] == 105){
result = true;
// 更新数据用,已经抽中的需要记录
rewardPool.add(pool.getItemId()[0]);
}else {
rewardPool.clear();
}else {
rewardPool.add(pool.getId());
}
// 返回给前端的抽中的id
hits.add(pool.getItemId()[0]);
hits.add(pool.getId());
break;
}
randomInt -= pool.getGetRate();
}