back_recharge
wangyuan 2019-05-11 11:41:02 +08:00
parent 983d1d85ce
commit ec99e122cd
3 changed files with 46 additions and 8 deletions

View File

@ -13,13 +13,13 @@ import org.springframework.stereotype.Component;
public class ArenaChallengeHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.ARENA_INFO_REQUEST;
return MessageTypeProto.MessageType.ARENA_CHALLENGE_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
byte[] bytes = netData.parseClientProtoNetData();
ArenaInfoProto.ArenaChallengeRequest arenaChallengeRequest = ArenaInfoProto.ArenaChallengeRequest.parseFrom(bytes);
ArenaLogic.getInstance().challenge(iSession,arenaChallengeRequest.getChallengeUid(),arenaChallengeRequest.getMyAttackTeamId());
ArenaLogic.getInstance().challenge(iSession,arenaChallengeRequest.getChallengeUid(),arenaChallengeRequest.getTeamId());
}
}

View File

@ -106,23 +106,40 @@ public class ArenaLogic {
return;
}
int fightResult=0;
int myscore = 2000;
int myscore = 1000;
int defScore =1000;
int enemyType = enemyInfo.getEnemyType();
int myscoreChange=0;
int defScoreChange=0;
if(arenaManager.getCount() != 0){
myscore = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(challengeUid)).intValue();
}
arenaEnemies = new ArrayList<>();
Set<Integer> robotIds = randomRobot(user.getPlayerInfoManager().getLevel(), 5);
toArenaEnemy(uid,robotIds,arenaEnemies,0);
arenaManager.setArenaEnemies(arenaEnemies);
myscoreChange = calScore(myscore, defScore,fightResult);
defScoreChange = calScore(defScore, myscore,fightResult);
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
if( enemyType == GlobalsDef.ARENA_PLAYER_TYPE){
User defUser = UserManager.getUser(challengeUid);
fightResult = getFightResultByPersonToPerson(user, teamId, defUser, 200);
defScore = RedisUtil.getInstence().getZSetScore("Arena_Rank_1", Integer.toString(challengeUid)).intValue();
defScoreChange = calScore(defScore, myscore,fightResult);
myscoreChange = calScore(myscore, defScore,fightResult);
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(challengeUid),defScoreChange);
}else{
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(challengeUid);
fightResult = getFightResultByPersonToRobot(user, teamId,sArenaRobotConfig);
myscoreChange = calScore(myscore, defScore,fightResult);
defScoreChange = calScore(defScore, myscore,fightResult);
}
if(arenaManager.getCount() == 0){
RedisUtil.getInstence().incrementZsetScore("Arena_Rank_1",Integer.toString(uid),myscoreChange);
}
arenaManager.updateChallenge(fightResult);
//组战斗数据
ArenaInfoProto.ArenaChallengeResponse build = ArenaInfoProto.ArenaChallengeResponse.newBuilder().setMyScoreChange(myscoreChange).setDefScoreChange(defScoreChange).addAllArenaEnemys(getArenaEnemyList(arenaManager.getArenaEnemies())).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,build,true);
@ -217,6 +234,16 @@ public class ArenaLogic {
return robotIds;
}
public Set<Integer> randomPerson(int myScore){
Set<Integer> result = new HashSet<>(5);
int[][] interval = SArenaSetting.getSArenaSetting().getInterval();
for(int[] item: interval){
int high = item[0];
}
return result;
}
private void toArenaEnemy(int uid,Set<Integer> enemyList,List<ArenaEnemy> arenaEnemies,int type){
for(Integer enemyId: enemyList){
if(1 == type && enemyId == uid){
@ -246,7 +273,7 @@ public class ArenaLogic {
.setName(playerInfoManager.getNickName())
.setScore(score)
.setHead(0)
.setRank(start++)
.setRank(++start)
.setTotalForce(totalForce)
.build());
}
@ -256,7 +283,7 @@ public class ArenaLogic {
if(score == -1){
score = 1000;
}else{
myRank= RedisUtil.getInstence().getZSetreverseRank("Arena_Rank_1", Integer.toString(uid)).intValue();
myRank= RedisUtil.getInstence().getZSetreverseRank("Arena_Rank_1", Integer.toString(uid)).intValue()+1;
}
ArenaInfoProto.GetArenaRankInfoResponse build = ArenaInfoProto.GetArenaRankInfoResponse.newBuilder()

View File

@ -24,8 +24,16 @@ public class ArenaManager extends MongoBase {
private List<ArenaEnemy> arenaEnemies;
public void updateScore(int changeScore){
public void updateChallenge(int fightResult){
if(fightResult == 1){
successNums ++;
updateString("successNums",successNums);
}else{
failNums++;
updateString("failNums",failNums);
}
count++;
updateString("count",count);
}
@ -76,4 +84,7 @@ public class ArenaManager extends MongoBase {
updateString("useFreeTimes",useFreeTimes);
this.useFreeTimes = useFreeTimes;
}
}