临时背包
parent
c259bb3e57
commit
34495dd9b0
|
|
@ -210,11 +210,6 @@ public class MapLogic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cells.isEmpty()) {
|
|
||||||
LOGGER.info("cells.isEmpty()");
|
|
||||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int uid = session.getUid();
|
int uid = session.getUid();
|
||||||
User user = UserManager.getUser(uid);
|
User user = UserManager.getUser(uid);
|
||||||
MapManager mapManager = user.getMapManager();
|
MapManager mapManager = user.getMapManager();
|
||||||
|
|
@ -228,15 +223,21 @@ public class MapLogic {
|
||||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// int leftStep = mapManager.getTotalStep() - cells.size();
|
if (cells.isEmpty() && curXY != mapManager.getCurXY()) {
|
||||||
// if (leftStep <= 0) {
|
LOGGER.info("cells.isEmpty() && curXY=>{} mapManager.getCurXY()=>{}", curXY, mapManager.getCurXY());
|
||||||
// resetMapInfo(mapManager);
|
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "");
|
||||||
// LOGGER.info("updateMap() uid=>{}, leftStep=>{}", uid, leftStep);
|
return;
|
||||||
// MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder().build();
|
}
|
||||||
// MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true);
|
int leftStep = mapManager.getTotalStep() - cells.size();
|
||||||
// return;
|
if (leftStep <= 0) {
|
||||||
// }
|
leftStep = 0;
|
||||||
// mapManager.setTotalStep(leftStep);
|
resetMapInfo(user);
|
||||||
|
LOGGER.info("updateMap() uid=>{}, leftStep=>{}", uid, leftStep);
|
||||||
|
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder().build();
|
||||||
|
MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mapManager.setTotalStep(leftStep);
|
||||||
Cell cell = mapManager.getMapInfo().get(curXY);
|
Cell cell = mapManager.getMapInfo().get(curXY);
|
||||||
if (cell == null) {
|
if (cell == null) {
|
||||||
cell = mapManager.getMapInfo().get(triggerXY);
|
cell = mapManager.getMapInfo().get(triggerXY);
|
||||||
|
|
@ -251,6 +252,7 @@ public class MapLogic {
|
||||||
mapManager.setCurXY(curXY);
|
mapManager.setCurXY(curXY);
|
||||||
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder()
|
MapInfoProto.MapUpdateResponse mapUpdateResponse = MapInfoProto.MapUpdateResponse.newBuilder()
|
||||||
.setEventId(cell.getEventId())
|
.setEventId(cell.getEventId())
|
||||||
|
.setLeftStep(mapManager.getTotalStep())
|
||||||
.build();
|
.build();
|
||||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true);
|
MessageUtil.sendMessage(session, 1, messageType.getNumber(), mapUpdateResponse, true);
|
||||||
}
|
}
|
||||||
|
|
@ -509,11 +511,12 @@ public class MapLogic {
|
||||||
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
MessageUtil.sendErrorResponse(session,0, messageType.getNumber(), "");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
resetMapInfo(mapManager);
|
resetMapInfo(user);
|
||||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
|
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetMapInfo(MapManager mapManager) throws Exception {
|
public void resetMapInfo(User user) throws Exception {
|
||||||
|
MapManager mapManager = user.getMapManager();
|
||||||
mapManager.setMapInfo(new HashMap<>());
|
mapManager.setMapInfo(new HashMap<>());
|
||||||
mapManager.setHeroes(new HashSet<>());
|
mapManager.setHeroes(new HashSet<>());
|
||||||
mapManager.setTypeEight(new HashMap<>());
|
mapManager.setTypeEight(new HashMap<>());
|
||||||
|
|
@ -522,9 +525,7 @@ public class MapLogic {
|
||||||
mapManager.setCurMapId(0);
|
mapManager.setCurMapId(0);
|
||||||
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
|
TemporaryItems temporaryItems = mapManager.getTemporaryItems();
|
||||||
if (temporaryItems != null) {
|
if (temporaryItems != null) {
|
||||||
Map<Integer, Item> items = temporaryItems.items;
|
ItemUtil.addTemporaryItemToBag(user, temporaryItems);
|
||||||
Map<Integer, Equip> equips = temporaryItems.equips;
|
|
||||||
// ItemUtil.addItem();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ public class JumpBehavior extends BaseBehavior {
|
||||||
MapLogic.getInstance().initMap(user.getMapManager(), user);
|
MapLogic.getInstance().initMap(user.getMapManager(), user);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
MapLogic.getInstance().resetMapInfo(user.getMapManager());
|
MapLogic.getInstance().resetMapInfo(user);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -289,21 +289,69 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void useItem(User user,Map<Integer,Integer> useItemMap) throws Exception{
|
/**
|
||||||
|
* 临时背包到背包
|
||||||
|
* @param user
|
||||||
|
* @param temporaryItems
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static void addTemporaryItemToBag(User user, TemporaryItems temporaryItems) throws Exception {
|
||||||
|
Map<Integer, Item> items = temporaryItems.items;
|
||||||
|
Map<Integer, Equip> equips = temporaryItems.equips;
|
||||||
|
if (items.isEmpty() && equips.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
|
||||||
|
for (Map.Entry<Integer, Item> entry : items.entrySet()) {
|
||||||
|
SItem sItem = SItem.getsItemMap().get (entry.getKey());
|
||||||
|
if (sItem == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (sItem.getIsSave() != 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Item item = itemMap.get(entry.getKey());
|
||||||
|
if (item != null) {
|
||||||
|
Item temporaryItem = entry.getValue();
|
||||||
|
item.setItemNum(item.getItemNum() + temporaryItem.getItemNum());
|
||||||
|
}
|
||||||
|
itemMap.put(entry.getKey(), item) ;
|
||||||
|
}
|
||||||
|
user.getItemManager().setItemMap(itemMap);
|
||||||
|
user.getMapManager().setTemporaryItems(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void useItem(User user,Map<Integer,Integer> useItemMap) throws Exception{
|
||||||
if(useItemMap.isEmpty()){
|
if(useItemMap.isEmpty()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ItemManager itemManager = user.getItemManager();
|
ItemManager itemManager = user.getItemManager();
|
||||||
|
Map<Integer, Item> temporaryItemList = new HashMap<>();
|
||||||
|
TemporaryItems temporaryItems = user.getMapManager().getTemporaryItems();
|
||||||
|
if (temporaryItems != null) {
|
||||||
|
temporaryItemList = temporaryItems.items;
|
||||||
|
}
|
||||||
for (Map.Entry<Integer, Integer> userItem : useItemMap.entrySet()) {
|
for (Map.Entry<Integer, Integer> userItem : useItemMap.entrySet()) {
|
||||||
|
Item temporaryItem = temporaryItemList.get(userItem.getKey());
|
||||||
|
int needCount = userItem.getValue();
|
||||||
|
if (temporaryItem != null) {
|
||||||
|
int leftNum = temporaryItem.getItemNum() - needCount;
|
||||||
|
if (leftNum >= 0) {
|
||||||
|
temporaryItem.setItemNum(leftNum);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
temporaryItemList.remove(userItem.getKey());
|
||||||
|
needCount = Math.abs(leftNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
Item myItem = itemManager.getItem(userItem.getKey());
|
Item myItem = itemManager.getItem(userItem.getKey());
|
||||||
if( null == myItem){
|
if (null == myItem) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int needCount = userItem.getValue();
|
if (myItem.getItemNum() <= needCount) {
|
||||||
if(myItem.getItemNum()<=needCount){
|
|
||||||
itemManager.removeItem(userItem.getKey());
|
itemManager.removeItem(userItem.getKey());
|
||||||
}else{
|
} else {
|
||||||
myItem.setItemNum( myItem.getItemNum() - needCount);
|
myItem.setItemNum(myItem.getItemNum() - needCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -379,14 +427,12 @@ public class ItemUtil {
|
||||||
public static boolean itemCost(User user,int[][] costItems) throws Exception {
|
public static boolean itemCost(User user,int[][] costItems) throws Exception {
|
||||||
|
|
||||||
Map<Integer, Integer> itemMap = new HashMap<>();
|
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||||
Map<Integer, Integer> moneyMap = new HashMap<>();
|
selectCost(costItems,itemMap);
|
||||||
selectCost(costItems,itemMap,moneyMap);
|
boolean result = checkCost(user, itemMap);
|
||||||
boolean result = checkCost(user, itemMap, moneyMap);
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
useItem(user, itemMap);
|
useItem(user, itemMap);
|
||||||
// useMoney(user, moneyMap);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -400,41 +446,40 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean checkCost(User user, Map<Integer, Integer> itemMap, Map<Integer, Integer> moneyMap) {
|
private static boolean checkCost(User user, Map<Integer, Integer> itemMap) {
|
||||||
if (itemMap != null) {
|
if (itemMap == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
TemporaryItems temporaryItems = user.getMapManager().getTemporaryItems();
|
||||||
|
Map<Integer, Item> temporaryItemList = new HashMap<>();
|
||||||
|
if (temporaryItems != null) {
|
||||||
|
temporaryItemList = temporaryItems.items;
|
||||||
|
}
|
||||||
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) {
|
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()) {
|
||||||
|
Item temporaryItem = temporaryItemList.get(entry.getKey());
|
||||||
|
if (temporaryItem == null || temporaryItem.getItemNum() < entry.getValue()) {
|
||||||
Item item = user.getItemManager().getItem(entry.getKey());
|
Item item = user.getItemManager().getItem(entry.getKey());
|
||||||
if (item == null || item.getItemNum() < entry.getValue()) {
|
if (item == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (temporaryItem == null && item.getItemNum() < entry.getValue()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (temporaryItem != null && temporaryItem.getItemNum() + item.getItemNum() < entry.getValue()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (moneyMap != null) {
|
|
||||||
// for (Map.Entry<Integer, Integer> entry : moneyMap.entrySet()) {
|
|
||||||
// int count = 0;
|
|
||||||
// if (entry.getKey() == GlobalItemType.GEM) {
|
|
||||||
// count = user.getPlayerInfoManager().getGem();
|
|
||||||
// }
|
|
||||||
// if (count < entry.getValue()) {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void selectCost(int[][] costItems, Map<Integer, Integer> itemMap, Map<Integer, Integer> moneyMap) {
|
private static void selectCost(int[][] costItems, Map<Integer, Integer> itemMap) {
|
||||||
for (int[] costItem : costItems){
|
for (int[] costItem : costItems){
|
||||||
int itemId = costItem[0];
|
int itemId = costItem[0];
|
||||||
int itemNum = costItem[1];
|
int itemNum = costItem[1];
|
||||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
int itemType = getItemType(sItem);
|
int itemType = getItemType(sItem);
|
||||||
switch (itemType) {
|
switch (itemType) {
|
||||||
case GlobalItemType.GEM:
|
|
||||||
putcountMap(itemId,itemNum,moneyMap);
|
|
||||||
break;
|
|
||||||
case GlobalItemType.ITEM:
|
case GlobalItemType.ITEM:
|
||||||
putcountMap(itemId,itemNum,itemMap);
|
putcountMap(itemId,itemNum,itemMap);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue