公会副本修改
parent
d4ee477baa
commit
656e089d0f
|
@ -42,7 +42,8 @@ public class GuildMyInfo extends MongoBase {
|
|||
//公会副本
|
||||
private int guildChallengeDamage;
|
||||
private int lastMonsterId;
|
||||
|
||||
//已经使用过刷新的boss
|
||||
private Set<Integer> refreshedBoss = new HashSet<>();
|
||||
|
||||
|
||||
public void clearOfLevelGuild(){
|
||||
|
@ -317,4 +318,14 @@ public class GuildMyInfo extends MongoBase {
|
|||
this.lastMonsterId = lastMonsterId;
|
||||
updateString("lastMonsterId",lastMonsterId);
|
||||
}
|
||||
|
||||
public Set<Integer> getRefreshedBoss() {
|
||||
return refreshedBoss;
|
||||
}
|
||||
|
||||
public void addRefreshedBoss(int bossId) {
|
||||
refreshedBoss.add(bossId);
|
||||
updateString("refreshedBoss",refreshedBoss);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,14 +81,19 @@ public class GuildChallengeLogic {
|
|||
double bossHpRemain = guildInfo.getBossHpRemain();
|
||||
GuildMyInfo guildMyInfo = user.getGuildMyInfo();
|
||||
|
||||
int isRefresh = 0 ;
|
||||
//先清除特权
|
||||
if(guildInfo.getCurrBossId()!=0&&guildInfo.getCurrBossId()!= guildMyInfo.getLastMonsterId()&& guildMyInfo.getLastMonsterId()!=0){
|
||||
for(int clearPrivilege:config.getPrivilege()){
|
||||
user.getPlayerInfoManager().clearVipCount(clearPrivilege);
|
||||
if(!guildMyInfo.getRefreshedBoss().contains(guildMyInfo.getLastMonsterId())&&guildMyInfo.getGuildChallengeDamage()!=0){
|
||||
for(int clearPrivilege:config.getPrivilege()){
|
||||
user.getPlayerInfoManager().clearVipCount(clearPrivilege);
|
||||
}
|
||||
user.getPlayerInfoManager().removeVipPriviliageId(3013);
|
||||
user.getStoreManager().removeStoreItemInfo(7,10031);
|
||||
StoreLogic.sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7));
|
||||
guildMyInfo.addRefreshedBoss(guildMyInfo.getLastMonsterId());
|
||||
isRefresh = 1;
|
||||
}
|
||||
user.getPlayerInfoManager().removeVipPriviliageId(3013);
|
||||
user.getStoreManager().removeStoreItemInfo(7,10031);
|
||||
StoreLogic.sendStoreUpdateIndication(uid,user.getStoreManager().getStoreInfoMap().get(7));
|
||||
}
|
||||
int canSweep = 0;
|
||||
if(guildMyInfo.getLastMonsterId()!=0&&currBossId==guildMyInfo.getLastMonsterId()&&guildMyInfo.getGuildChallengeDamage()>0){
|
||||
|
@ -100,6 +105,9 @@ public class GuildChallengeLogic {
|
|||
.setBlood(bossHpRemain==0?10000:(int)(bossHpRemain*10000/config.getMonsterHp()))
|
||||
.setBuffTime(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffOverTime():0)
|
||||
.setBuffCount(guildInfo.getBuffOverTime()> TimeUtils.nowInt()?guildInfo.getBuffIndex():0)
|
||||
.setSweepDamage(guildMyInfo.getGuildChallengeDamage())
|
||||
.addAllRefreshedBoss(guildMyInfo.getRefreshedBoss())
|
||||
.setIsRefresh(isRefresh)
|
||||
.build();
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
|
||||
|
@ -229,6 +237,13 @@ public class GuildChallengeLogic {
|
|||
continue;
|
||||
}
|
||||
AyyncWorker worker = new AyyncWorker(UserManager.getUser(sendUid),false,(user1)->{
|
||||
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
|
||||
if(guildMyInfo.getGuildChallengeDamage()==0){
|
||||
return;
|
||||
}
|
||||
if(guildMyInfo.getRefreshedBoss().contains(bossId)){
|
||||
return;
|
||||
}
|
||||
int[] refreshPrivilege = config.getPrivilege();
|
||||
for(int clearPrivilege:refreshPrivilege){
|
||||
user1.getPlayerInfoManager().clearVipCount(clearPrivilege);
|
||||
|
@ -236,9 +251,9 @@ public class GuildChallengeLogic {
|
|||
user1.getPlayerInfoManager().removeVipPriviliageId(3013);
|
||||
user1.getStoreManager().removeStoreItemInfo(7,10031);
|
||||
StoreLogic.sendStoreUpdateIndication(user1.getId(),user1.getStoreManager().getStoreInfoMap().get(7));
|
||||
GuildMyInfo guildMyInfo = user1.getGuildMyInfo();
|
||||
guildMyInfo.setLastMonsterId(bossId+1);
|
||||
guildMyInfo.setGuildChallengeDamage(0);
|
||||
guildMyInfo.addRefreshedBoss(bossId);
|
||||
});
|
||||
ProtocolsManager.getInstance().updateAyncWorker(worker);
|
||||
}
|
||||
|
@ -256,8 +271,6 @@ public class GuildChallengeLogic {
|
|||
|
||||
GuildLogic.sendIndicationToMemberWithoutUser(guildInfo, MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION,indication.build(),uid);
|
||||
indication.setIsKill(kill);
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
||||
|
||||
//伤害排行
|
||||
|
||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.GUILD_CHALLENGE_RANK.getType());
|
||||
|
@ -279,6 +292,8 @@ public class GuildChallengeLogic {
|
|||
PlayerLogic.getInstance().checkAndUpdate(user,config.getPrivilege()[0],1);
|
||||
|
||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||
|
||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.GUILD_CHALLENGE_INDICATION_VALUE,indication.build(),true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue