领取邮件判断
parent
d1b82a3879
commit
156456a98e
|
@ -1394,36 +1394,60 @@ public class ItemUtil {
|
|||
|
||||
public static boolean checkCardAndEquipLimit( User user ,int[][] itemArr) {
|
||||
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||
for (int[] ints : itemArr) {
|
||||
int itemId = ints[0];
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int itemType = getItemType(sItem);
|
||||
if (itemType == GlobalItemType.CARD) {
|
||||
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
||||
if (hasHeroNum >= gameSetting.getHeroNumlimit()){
|
||||
return true;
|
||||
}
|
||||
} else if (itemType == GlobalItemType.EQUIP) {
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
int hasEquipNum = equipManager.getEquipMap().size();
|
||||
if (hasEquipNum >= gameSetting.getEquipNumlimit()){
|
||||
return true;
|
||||
}
|
||||
}else if(itemType == GlobalItemType.SOUL_MARK){
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size() >=limit){
|
||||
return true;
|
||||
}
|
||||
}else if(itemType == GlobalItemType.ESPECIAL_EQUIP){
|
||||
int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
if (user.getEquipManager().getEspecialEquipMap().size() >=limit){
|
||||
return true;
|
||||
}
|
||||
Map<Integer, Integer> itemTypeMap = getItemTypeMap(itemArr);
|
||||
for (Map.Entry<Integer, Integer> entry : itemTypeMap.entrySet()) {
|
||||
switch (entry.getKey()){
|
||||
case GlobalItemType.CARD:
|
||||
int hasHeroNum = user.getHeroManager().getHeroMap().size();
|
||||
if (hasHeroNum+entry.getValue() >= gameSetting.getHeroNumlimit()){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.EQUIP:
|
||||
EquipManager equipManager = user.getEquipManager();
|
||||
int hasEquipNum = equipManager.getEquipMap().size();
|
||||
if (hasEquipNum +entry.getValue()>= gameSetting.getEquipNumlimit()){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.SOUL_MARK:
|
||||
int soulLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT);
|
||||
if (user.getEquipManager().getSoulEquipMap().size()+entry.getValue()>=soulLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GlobalItemType.ESPECIAL_EQUIP:
|
||||
int especialLimit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit);
|
||||
if (user.getEquipManager().getEspecialEquipMap().size()+entry.getValue() >=especialLimit){
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物品种类map
|
||||
* @param itemArr
|
||||
* @return
|
||||
*/
|
||||
public static Map<Integer,Integer> getItemTypeMap(int[][] itemArr){
|
||||
Map<Integer,Integer> itemTypeMap = new HashMap<>();
|
||||
for (int[] ints : itemArr) {
|
||||
int itemId = ints[0];
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
int itemType = getItemType(sItem);
|
||||
if(itemTypeMap.containsKey(itemType)){
|
||||
itemTypeMap.put(itemType,itemTypeMap.get(itemType)+ints[1]);
|
||||
}else{
|
||||
itemTypeMap.put(itemType,ints[1]);
|
||||
}
|
||||
}
|
||||
return itemTypeMap;
|
||||
}
|
||||
|
||||
//特权加成收益计算
|
||||
public static int privilegeAdd(User user,int reason,int itemType,int sourceNum){
|
||||
|
|
Loading…
Reference in New Issue