奇门遁甲2.0
parent
3afb198cf9
commit
29df3cbddd
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue