商店刷新,分解卡牌
parent
544ba36938
commit
0119d33b6b
|
@ -29,13 +29,15 @@ public class UseAndPriceItemHandler extends BaseHandler {
|
|||
int type = useAndPriceItemRequest.getType();
|
||||
List<CommonProto.Item> itemList = useAndPriceItemRequest.getItemsList();
|
||||
List<String> equipIdsList = useAndPriceItemRequest.getEquipIdsList();
|
||||
List<String> heroIdsList = useAndPriceItemRequest.getHeroIdsList();
|
||||
if (type == 0){ //使用
|
||||
ItemLogic.getInstance().useItem(iSession,itemList);
|
||||
}else if (type == 2){ //分解装备
|
||||
ItemLogic.getInstance().decomposeEquip(iSession,equipIdsList);
|
||||
}else{// 分解道具
|
||||
}else if (type ==1){// 分解道具
|
||||
ItemLogic.getInstance().priceItem(iSession,itemList);
|
||||
|
||||
} else if (type == 2){ //分解装备
|
||||
ItemLogic.getInstance().decomposeEquip(iSession,equipIdsList);
|
||||
}else{
|
||||
ItemLogic.getInstance().decomposeHero(iSession,heroIdsList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1273,5 +1273,15 @@ public class HeroLogic {
|
|||
sArenaRobotConfig.setTotalForce(calRobotTotalForce(sArenaRobotConfig));
|
||||
}
|
||||
}
|
||||
|
||||
//妖灵师是否在阵容中
|
||||
public boolean isBattleArray (User user,String heroId){
|
||||
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = user.getTeamPosManager().getTeamPosForHero();
|
||||
for (Map.Entry<Integer, List<TeamPosHeroInfo>> entry: teamPosForHero.entrySet() ){
|
||||
List<TeamPosHeroInfo> values = entry.getValue();
|
||||
if (values.contains(heroId)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
package com.ljsd.jieling.logic.item;
|
||||
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.logic.dao.Equip;
|
||||
import com.ljsd.jieling.logic.dao.EquipManager;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
|
@ -169,4 +168,57 @@ public class ItemLogic {
|
|||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 分解卡牌
|
||||
* @param iSession
|
||||
* @param heroIdsList
|
||||
*/
|
||||
public void decomposeHero(ISession iSession, List<String> heroIdsList) throws Exception {
|
||||
int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE;
|
||||
int uid = iSession.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
StringBuilder reward = new StringBuilder();
|
||||
String erroMags = checkHeroResolve(heroIdsList,user);
|
||||
if (!erroMags.isEmpty()){
|
||||
MessageUtil.sendErrorResponse(iSession,0,msgId,erroMags);
|
||||
return;
|
||||
}
|
||||
for (String heroId : heroIdsList) {
|
||||
Hero hero = heroManager.getHeroMap().get(heroId);
|
||||
SItem sItem = SItem.getsItemMap().get(hero.getTemplateId());
|
||||
heroManager.removeHero(heroId);
|
||||
if (reward.length() == 0) {
|
||||
reward = new StringBuilder(sItem.getResolveReward());
|
||||
} else {
|
||||
reward.append("#").append(sItem.getResolveReward());
|
||||
}
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,StringUtil.parseFiledInt(reward.toString()),1,0);
|
||||
sendUseAndPriceItemMessage(iSession, msgId, drop);
|
||||
}
|
||||
|
||||
private String checkHeroResolve(List<String> heroIdsList,User user) {
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
if (heroIdsList.size() == 0){
|
||||
return "无可分解妖灵师";
|
||||
}
|
||||
for (String heroId :heroIdsList){
|
||||
Hero hero = heroManager.getHeroMap().get(heroId);
|
||||
if (hero == null){
|
||||
return "无该妖灵师";
|
||||
}
|
||||
boolean battleArray = HeroLogic.getInstance().isBattleArray(user, heroId);
|
||||
if (battleArray){
|
||||
return "妖灵师在阵容中";
|
||||
}
|
||||
SItem sItem = SItem.getsItemMap().get(hero.getTemplateId());
|
||||
if (sItem.getIfResolve() ==0){
|
||||
return "不可分解";
|
||||
}
|
||||
}
|
||||
return "";
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -249,6 +249,7 @@ public class StoreLogic {
|
|||
StoreInfo storeInfo = storeInfoMap.get(storeId);
|
||||
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId);
|
||||
int type = sStoreTypeConfig.getRefreshType()[0];
|
||||
int time = sStoreTypeConfig.getRefreshType()[1];
|
||||
if (type == 1){
|
||||
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
|
||||
LOGGER.info("automaticRefreStore==>uid={},storeid={},type={}",uid,storeId,type);
|
||||
|
@ -258,14 +259,18 @@ public class StoreLogic {
|
|||
long nowTime = System.currentTimeMillis();
|
||||
switch (type){
|
||||
case 2:
|
||||
boolean overTime = TimeUtils.isOverTime(5, storeInfo.getLastRefreshTime());
|
||||
boolean overTime = TimeUtils.isOverTime(time, storeInfo.getLastRefreshTime());
|
||||
if (overTime){
|
||||
itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||
storeInfo.setLastRefreshTime(nowTime);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((nowTime - storeInfo.getEndTime()) > Integer.parseInt(sStoreTypeConfig.getEndTime()) *60 *1000){
|
||||
itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||
long lastRefreshTime = storeInfo.getLastRefreshTime();
|
||||
int intervalTime = time*1000*60*60;
|
||||
if (((nowTime - lastRefreshTime) /1000/60/60) >= time){
|
||||
lastRefreshTime = lastRefreshTime + ((nowTime -lastRefreshTime)/(intervalTime)) *(intervalTime);
|
||||
storeInfo.setLastRefreshTime(lastRefreshTime);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -275,8 +280,6 @@ public class StoreLogic {
|
|||
return;
|
||||
}
|
||||
storeInfo.setItemNumMap(itemNumMap);
|
||||
storeInfo.setLastRefreshTime(nowTime);
|
||||
storeInfo.setRefreshNum(storeInfo.getRefreshNum() +1);
|
||||
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
|
||||
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
|
||||
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
|
||||
|
|
Loading…
Reference in New Issue