大闹天宫,圣物刷新,去除已刷出得圣物

back_recharge
duhui 2021-03-04 14:09:35 +08:00
parent 220954d949
commit 25aa13bfd5
1 changed files with 32 additions and 0 deletions

View File

@ -1241,6 +1241,12 @@ public class ExpeditionLogic {
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
}
/**
*
* @param user
* @param type
* @return
*/
public Map<Integer, Integer> getType2holy2weightRemoveHas(User user, int type) {
// 策划表的圣物,因为会有删除操作,所以需要重新赋值,而不是直接引用
Map<Integer, Integer> weight = STableManager.getFigureConfig(CommonStaticConfig.class).getType2holy2weight(type);
@ -1261,6 +1267,9 @@ public class ExpeditionLogic {
Set<Integer> expeditonHeroIds = new HashSet<>();
expeditonHeroMap.values().forEach(v->expeditonHeroIds.add(v.getTemplateId()));
// 已生成得节点圣物信息
Set<Integer> nodeHolyInfo = getNodeHolyInfo(user);
// 因为有删除操作所以使用iterator遍历
Iterator<Integer> iterator = valueMap.keySet().iterator();
while (iterator.hasNext()){
@ -1277,8 +1286,31 @@ public class ExpeditionLogic {
iterator.remove();
}
}
// 已经生成过得圣物
if(nodeHolyInfo.contains(v)){
iterator.remove();
}
}
return valueMap;
}
/**
*
* @param user
* @return
*/
private Set<Integer> getNodeHolyInfo(User user){
Set<Integer> set = new HashSet<>();
// 以生成得节点信息,非空验证
Collection<ExpeditionNodeInfo> values = user.getExpeditionManager().getExpeditionNodeInfos().values();
if (values.size() <= 0){
return set;
}
// 聚合操作,首先排除不存在圣物得节点,然后循环添加剩余节点圣物
values.stream()
.filter(val->val.getHolyEquipId() != null && val.getHolyEquipId().size() > 0)
.forEach(val->set.addAll(val.getHolyEquipId()));
return set;
}
}