Merge branch 'master_test_gn' of http://60.1.1.230/backend/jieling_server into master_test_gn
commit
3388120fa1
|
@ -19,7 +19,7 @@ public class Cmd_xuanyuan extends GmRoleAbstract {
|
|||
}
|
||||
User user = getUser();
|
||||
Map<Integer, Integer> pass = user.getPlayerInfoManager().getSituationPass();
|
||||
pass.put(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
|
||||
pass.put(Integer.parseInt(split[0]),Integer.parseInt(split[1]));
|
||||
user.getPlayerInfoManager().updateSituationPass(pass);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1769,10 +1769,10 @@ public class ActivityLogic implements IEventHandler{
|
|||
List<int[]> list = new ArrayList<>();
|
||||
for (int i = 0; i < num; i++) {
|
||||
// 小圈抽奖,根据返回判断是否需要抽外圈
|
||||
boolean result = qiMenRandom(user,2, list, hits);
|
||||
boolean result = qiMenRandom(user,2, list, hits, activityId);
|
||||
if (result){
|
||||
// 大圈/外圈抽奖
|
||||
qiMenRandom(user, 1, list, hits);
|
||||
qiMenRandom(user, 1, list, hits, activityId);
|
||||
}
|
||||
}
|
||||
// 处理奖励
|
||||
|
@ -1811,11 +1811,19 @@ public class ActivityLogic implements IEventHandler{
|
|||
* @param hits 抽中的索引id
|
||||
* @return true:需要进行外圈抽奖 false:不需要外圈抽奖
|
||||
*/
|
||||
private boolean qiMenRandom(User user, int type, List<int[]> list, List<Integer> hits){
|
||||
private boolean qiMenRandom(User user, int type, List<int[]> list, List<Integer> hits, int activityId){
|
||||
boolean result = false;
|
||||
|
||||
// 根据类型获取卡池
|
||||
List<SLingLongPool> smallPool = new ArrayList<>(SLingLongPool.map.get(type));
|
||||
List<SLingLongPool> lingLongPools = Optional.ofNullable(SLingLongPool.map)
|
||||
.map(v -> v.get(activityId))
|
||||
.map(v -> v.get(type))
|
||||
.orElse(new ArrayList<>());
|
||||
if(lingLongPools.isEmpty()){
|
||||
return false;
|
||||
}
|
||||
// 有删除操作,所以需要一个新得对象,不能直接在原对象上操作
|
||||
List<SLingLongPool> smallPool = new ArrayList<>(lingLongPools);
|
||||
// 玩家身上记录已抽中的索引id
|
||||
Map<Integer, List<Integer>> doubleRewardPoolInfo = user.getActivityManager().getDoubleRewardPoolInfo();
|
||||
List<Integer> rewardPool = doubleRewardPoolInfo.getOrDefault(type,new ArrayList<>());
|
||||
|
@ -1846,7 +1854,7 @@ public class ActivityLogic implements IEventHandler{
|
|||
}
|
||||
|
||||
// 外圈抽奖用,抽中全部
|
||||
if (rewardPool.size() >= SLingLongPool.map.get(type).size()){
|
||||
if (rewardPool.size() >= lingLongPools.size()){
|
||||
rewardPool.clear();
|
||||
}
|
||||
|
||||
|
|
|
@ -22,17 +22,25 @@ public class SLingLongPool implements BaseConfig {
|
|||
private int position;
|
||||
|
||||
/**
|
||||
* key: 内圈外圈id value: 对象list
|
||||
* key : 活动id
|
||||
* value:
|
||||
* key: 内圈外圈id
|
||||
* value: 对象list
|
||||
*/
|
||||
public static Map<Integer, List<SLingLongPool>> map = new HashMap<>();
|
||||
public static Map<Integer,Map<Integer, List<SLingLongPool>>> map = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SLingLongPool> config = STableManager.getConfig(SLingLongPool.class);
|
||||
config.values().forEach(v->{
|
||||
List<SLingLongPool> longPools = map.getOrDefault(v.getPosition(), new ArrayList<>());
|
||||
// 根据活动获取本期的奖池
|
||||
Map<Integer, List<SLingLongPool>> activityMap = map.getOrDefault(v.getActivityId(), new HashMap<>());
|
||||
// 根据大小圈获取具体的奖励列表
|
||||
List<SLingLongPool> longPools = activityMap.getOrDefault(v.getPosition(), new ArrayList<>());
|
||||
longPools.add(v);
|
||||
map.put(v.getPosition(),longPools);
|
||||
// 赋值
|
||||
activityMap.put(v.getPosition(),longPools);
|
||||
map.put(v.getActivityId(),activityMap);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue