公会战最终提交。。。
parent
5a6b460d8b
commit
8f20e52680
|
@ -17,6 +17,7 @@ public class FamilyFightAttackHandler extends BaseHandler<Family.FamilyFightAtta
|
|||
@Override
|
||||
public void processWithProto(ISession iSession, Family.FamilyFightAttackRequest proto) throws Exception {
|
||||
int attackUid = proto.getAttackUid();
|
||||
GuildFightLogic.familyFightResult(iSession,attackUid, MessageTypeProto.MessageType.FAMILY_FIGHT_ATTACK_RESPONSE);
|
||||
int gid = proto.getGid();
|
||||
GuildFightLogic.familyFightResult(iSession,attackUid,gid, MessageTypeProto.MessageType.FAMILY_FIGHT_ATTACK_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -379,7 +379,7 @@ public class GuildFightLogic {
|
|||
/**
|
||||
* 战斗之后数据更新
|
||||
*/
|
||||
public static void familyFightResult(ISession session, int defendUid, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
public static void familyFightResult(ISession session, int defendUid,int gid, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
User userAttack = UserManager.getUser(session.getUid());
|
||||
RedisUtil redisUtil = RedisUtil.getInstence();
|
||||
//战斗次数
|
||||
|
@ -388,13 +388,10 @@ public class GuildFightLogic {
|
|||
attackCount = 0;
|
||||
}
|
||||
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_ATTACK_COUNT,"",String.valueOf(userAttack.getId()),attackCount+1);
|
||||
User userDefend = UserManager.getUser(defendUid);
|
||||
int defendGuildId = userDefend.getPlayerInfoManager().getGuildId();
|
||||
int defendBuildId = GuilidManager.guildInfoMap.get(defendGuildId).getDefendInfo().get(defendUid);
|
||||
FamilyFightInfo defendInfo = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(defendGuildId), String.valueOf(userDefend.getId()), FamilyFightInfo.class);
|
||||
FamilyFightInfo defendInfo = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(gid), String.valueOf(defendUid), FamilyFightInfo.class);
|
||||
Map<String, FamilyHeroInfo> heroAttribute = defendInfo.getHeroAttribute();
|
||||
//防守血量处理
|
||||
CommonProto.FightTeamInfo fightDefendTeamInfo = BloodLogic.getInstance().fightDataMakeUp(userDefend,heroAttribute,501);
|
||||
CommonProto.FightTeamInfo fightDefendTeamInfo = BloodLogic.getInstance().fightDataMakeUp(defendInfo.getHeroSkills(),heroAttribute,defendInfo.getPokenmonSkills());
|
||||
//攻击者血量处理
|
||||
CommonProto.FightTeamInfo fightAttackTeamInfo = null;
|
||||
List<CommonProto.FightUnitInfo> heroAttackFightInfos = new ArrayList<>();
|
||||
|
@ -408,7 +405,7 @@ public class GuildFightLogic {
|
|||
}
|
||||
StringBuilder skillSb = new StringBuilder();
|
||||
StringBuilder propertySb = new StringBuilder();
|
||||
String heroSkill = HeroLogic.getInstance().getHeroSkills(userDefend, hero, skillSb).toString();
|
||||
String heroSkill = HeroLogic.getInstance().getHeroSkills(userAttack, hero, skillSb).toString();
|
||||
Map<Integer, Integer> heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(userAttack, hero, false, 502);
|
||||
for(Map.Entry<String,String> blood:attackBloodMap.entrySet()){
|
||||
if(teamHero.getHeroId().equals(blood.getKey())){
|
||||
|
@ -474,7 +471,9 @@ public class GuildFightLogic {
|
|||
indexAttack++;
|
||||
}
|
||||
}else{
|
||||
int memberType = GuildLogic.getMemberType(defendUid, GuilidManager.guildInfoMap.get(defendGuildId).getMembers());
|
||||
PlayerInfoCache player = RedisUtil.getInstence().getMapEntry(RedisKey.PLAYER_INFO_CACHE, "", String.valueOf(defendUid), PlayerInfoCache.class);
|
||||
|
||||
int memberType =player.getGuildPosition();
|
||||
int maxStar = sGuildSetting.getStarNum()[memberType-1];
|
||||
int lessStar = maxStar - dieCount*maxStar/5;
|
||||
//倍数k(maxStar/5)
|
||||
|
@ -484,10 +483,10 @@ public class GuildFightLogic {
|
|||
redisUtil.putMapEntry(RedisKey.FAMILY_ATTACK_BLOOD,String.valueOf(userAttack.getId()),attack.getHeroId(),100);
|
||||
}
|
||||
}
|
||||
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(defendGuildId), String.valueOf(userDefend.getId()), defendInfo);
|
||||
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(gid), String.valueOf(defendUid), defendInfo);
|
||||
//发送indication
|
||||
Family.DefeatResponse fightResponse = Family.DefeatResponse.newBuilder().setUid(defendUid).setTeamLostStar(getStar).build();
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(userDefend.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
// GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(gid), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
GuildLogic.sendIndicationToMember(GuilidManager.guildInfoMap.get(userAttack.getPlayerInfoManager().getGuildId()), MessageTypeProto.MessageType.FAMILY_DEFEATE_INDICATION,fightResponse);
|
||||
//获得星数处理
|
||||
int attackGuildId = userAttack.getPlayerInfoManager().getGuildId();
|
||||
|
@ -498,11 +497,11 @@ public class GuildFightLogic {
|
|||
}
|
||||
redisUtil.zsetAddOne(attackRankKey,String.valueOf(userAttack.getId()),starCount+getStar);
|
||||
//建筑星数
|
||||
Integer haveGotStar = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR, String.valueOf(attackGuildId), String.valueOf(defendBuildId), int.class);
|
||||
Integer haveGotStar = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR, String.valueOf(attackGuildId), String.valueOf(defendInfo.getBuildId()), int.class);
|
||||
if(haveGotStar==null){
|
||||
haveGotStar = 0;
|
||||
}
|
||||
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(attackGuildId),String.valueOf(defendBuildId),haveGotStar+getStar);
|
||||
redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_CAL_STAR,String.valueOf(attackGuildId),String.valueOf(defendInfo.getBuildId()),haveGotStar+getStar);
|
||||
Family.FamilyFightAttackResponse response = Family.FamilyFightAttackResponse.newBuilder().setResult(fightResult[0]).setStarCount(getStar).setData(fightData).build();
|
||||
userAttack.getUserMissionManager().onGameEvent(userAttack, GameEvent.FAMILY_FIGHT_ATTACK);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
||||
|
@ -639,6 +638,9 @@ public class GuildFightLogic {
|
|||
redisUtil.removeMapEntrys(RedisKey.FAMILY_FIGHT_BUFF,index,String.valueOf(i));
|
||||
}
|
||||
GuildInfo guildInfo = GuilidManager.guildInfoMap.get(Integer.parseInt(index));
|
||||
if(guildInfo==null){
|
||||
continue;
|
||||
}
|
||||
//删除进攻血量信息
|
||||
for(Map.Entry<Integer,Set<Integer>> entry:guildInfo.getMembers().entrySet()){
|
||||
for(Integer attackId:entry.getValue()){
|
||||
|
|
Loading…
Reference in New Issue