公会战修改

back_recharge
lvxinran 2019-08-10 10:52:58 +08:00
parent e1824e12d5
commit 24bcf89270
1 changed files with 40 additions and 4 deletions

View File

@ -16,6 +16,7 @@ import com.ljsd.jieling.logic.dao.root.GuildApply;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.GuildLog;
import com.ljsd.jieling.logic.dao.root.User;
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.Family;
@ -88,6 +89,7 @@ public class GuildLogic {
.setFamilyBaseInfo(CBean2Proto.getFamilyBaseInfo(guildInfo))
.setFamilyUserInfo(CBean2Proto.getFamilyUserInfo(user,GlobalsDef.CHAIRMAN)).build();
MessageUtil.sendMessage(session,1,msgId,build,true);
familyFightMatching();
}
@ -425,6 +427,10 @@ public class GuildLogic {
MessageUtil.sendErrorResponse(session,0,msgId,"该人已被踢出");
return;
}
//如果有防守信息则删除
if(guildInfo.getDefendInfo().containsKey((targetUid))){
guildInfo.removeDefendInfo(targetUid);
}
User targetUser = UserManager.getUser(targetUid);
targetUser.getPlayerInfoManager().setGuildId(0);
addGuildLog(guildInfo.getId(),GuildDef.Log.KICK,targetUser.getPlayerInfoManager().getNickName());
@ -724,9 +730,10 @@ 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(5);
defend.setStarCount(entry.getValue()%1000);
defend.setUid(entry.getKey());
defend.setBuildId(entry.getValue());
defend.setBuildId(entry.getValue()/1000);
defend.setCurForce(HeroLogic.getInstance().calTeamTotalForce(UserManager.getUser(entry.getKey()),501,false));
response.addInfo(defend);
}
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
@ -750,6 +757,7 @@ public class GuildLogic {
}
CommonProto.TeamOneTeamInfo.Builder oneInfo = CommonProto.TeamOneTeamInfo.newBuilder()
.setTeam(team);
oneInfo.setTotalForce(HeroLogic.getInstance().calTeamTotalForce(user,501,false));
if(teamPosManager.getTeamPosForPoken().get(1)!=null&&teamPosManager.getTeamPosForPoken().get(1).size()>0){
for(TeamPosForPokenInfo posForPokenInfo:teamPosManager.getTeamPosForPoken().get(1)){
oneInfo.addPokemonInfos(posForPokenInfo.getPokenId());
@ -772,12 +780,13 @@ public class GuildLogic {
buildId = 1;
}
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(user.getPlayerInfoManager().getGuildId());
guildInfo.updateDefendInfo(uid,buildId);
//重复,可提出
//设置建筑要*1000把星数带进去
guildInfo.updateDefendInfo(uid,buildId*1000+5);//星数未定
Family.FamilyDefendInfo.Builder defend = Family.FamilyDefendInfo.newBuilder();
defend.setBuildId(buildId);
defend.setUid(uid);
defend.setStarCount(5);
defend.setCurForce(HeroLogic.getInstance().calTeamTotalForce(user,501,false));
sendIndicationToMember(guildInfo,MessageTypeProto.MessageType.FAMILY_QUICK_SET_DEFEND_INDICATION,defend.build());
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}
@ -799,4 +808,31 @@ public class GuildLogic {
}
}
}
public static void familyFightMatching() throws Exception {
Set<Integer> guildIds= GuilidManager.guildInfoMap.keySet();
if(guildIds.size()<1){
return;
}
for(Integer gid:guildIds){
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(gid);
Map<Integer, Integer> defendInfo = guildInfo.getDefendInfo();
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);
Iterator<TeamPosHeroInfo> it = teamPosHeroInfos.iterator();
FamilyFightInfo fightInfo = new FamilyFightInfo();
Map<String ,Map<Integer,Integer>> heroAllAttribute = new HashMap<>();
while (it.hasNext()){
TeamPosHeroInfo heroInfo = it.next();
heroManager.getHero(heroInfo.getHeroId());
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);
}
}
}
}