领取邮件判断

lvxinran 2019-10-30 13:59:56 +08:00
parent d1b82a3879
commit 156456a98e
1 changed files with 49 additions and 25 deletions

View File

@ -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){