公会战布防接口

back_recharge
lvxinran 2019-08-10 14:46:53 +08:00
parent 43458f5fc6
commit 6ede1219a9
4 changed files with 87 additions and 8 deletions

View File

@ -0,0 +1,25 @@
package com.ljsd.jieling.handler.family;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.Family;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class FamilyDefendDetailInfoHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_DETAIL_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
Family.FamilyDefendDetailViewRequest request = Family.FamilyDefendDetailViewRequest.parseFrom(bytes);
GuildLogic.viewDefendDetailInfo(iSession,request.getPlayerId(), MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_DETAIL_RESPONSE);
}
}

View File

@ -0,0 +1,23 @@
package com.ljsd.jieling.handler.family;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.Family;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class FamilyDefendInfoHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
GuildLogic.viewDefendInfo(iSession,MessageTypeProto.MessageType.FAMILY_VIEW_DEFEND_RESPONSE);
}
}

View File

@ -0,0 +1,25 @@
package com.ljsd.jieling.handler.family;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.family.GuildLogic;
import com.ljsd.jieling.netty.cocdex.PacketNetData;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.Family;
import com.ljsd.jieling.protocols.MessageTypeProto;
import org.springframework.stereotype.Component;
@Component
public class FamilyQuickSetDefendHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.FAMILY_QUICK_SET_DEFEND_REQEUST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
Family.FamilyQuickDefendRequest request = Family.FamilyQuickDefendRequest.parseFrom(bytes);
GuildLogic.quickSetDefend(iSession,request.getBuildId(),request.getUid(), MessageTypeProto.MessageType.FAMILY_QUICK_SET_DEFEND_RESPONSE);
}
}

View File

@ -7,6 +7,7 @@ import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.GuildApply;
@ -747,9 +748,9 @@ public class GuildLogic {
Family.FamilyDefendViewResponse.Builder response = Family.FamilyDefendViewResponse.newBuilder();
for(Map.Entry<Integer, Integer> entry:defendInfo.entrySet()){
Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder();
defend.setStarCount(entry.getValue()%1000);
defend.setStarCount(5);
defend.setUid(entry.getKey());
defend.setBuildId(entry.getValue()/1000);
defend.setBuildId(entry.getValue());
defend.setCurForce(HeroLogic.getInstance().calTeamTotalForce(UserManager.getUser(entry.getKey()),501,false));
response.addInfo(defend);
}
@ -792,13 +793,14 @@ public class GuildLogic {
public static void quickSetDefend(ISession session,int buildId,int uid, MessageTypeProto.MessageType messageType) throws Exception {
User user = UserManager.getUser(uid);
TeamPosManager teamPosManager = user.getTeamPosManager();
teamPosManager.updateTeamPosByTeamId(501,teamPosManager.getTeamPosForHero().get(1));
if(teamPosManager.getTeamPosForHero().get(501)==null||teamPosManager.getTeamPosForHero().get(501).size()<1){
teamPosManager.updateTeamPosByTeamId(501,teamPosManager.getTeamPosForHero().get(1));
}
if(buildId==0){
buildId = 1;
}
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
//设置建筑要*1000把星数带进去
guildInfo.updateDefendInfo(uid,buildId*1000+5);//星数未定
guildInfo.updateDefendInfo(uid,buildId);
Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder();
defend.setBuildId(buildId);
defend.setUid(uid);
@ -833,21 +835,25 @@ public class GuildLogic {
for(Integer gid:guildIds){
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid);
Map<Integer, Integer> defendInfo = guildInfo.getDefendInfo();
if(defendInfo==null||defendInfo.size()<1){
continue;
}
for(Map.Entry<Integer,Integer> entry:defendInfo.entrySet()){
User user = UserManager.getUser(entry.getKey());
HeroManager heroManager = user.getHeroManager();
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(501);
TeamPosManager teamPosManager = user.getTeamPosManager();
List<TeamPosHeroInfo> teamPosHeroInfos = teamPosManager.getTeamPosForHero().get(501);
Iterator<TeamPosHeroInfo> it = teamPosHeroInfos.iterator();
FamilyFightInfo fightInfo = new FamilyFightInfo();
FamilyFightInfo fightInfo = new FamilyFightInfo();
Map<String ,Map<Integer,Integer>> heroAllAttribute = new HashMap<>();
while (it.hasNext()){
TeamPosHeroInfo heroInfo = it.next();
heroManager.getHero(heroInfo.getHeroId());
teamPosManager.setCurTeamPosId(501);
Map<Integer, Integer> heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, heroManager.getHero(heroInfo.getHeroId()), false);
heroAllAttribute.put(heroInfo.getHeroId(),heroAttributeMap);
}
fightInfo.setHeroAttribute(heroAllAttribute);
fightInfo.setStarCount(entry.getValue()%1000);
RedisUtil.getInstence().putMapEntry(RedisKey.FAMILY_FIGHT,String.valueOf(guildInfo.getId()),String.valueOf(entry.getKey()),fightInfo);
}
}