From 2e94594960b6d59bddd11195a9284899fa551179 Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Wed, 23 Jun 2021 18:33:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/arena/ArenaLogic.java | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index 4bda597ee..e2bdc2a9c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.logic.arena; +import com.google.gson.reflect.TypeToken; import com.ljsd.fight.ArenaRecord; import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.fight.FightType; @@ -67,8 +68,9 @@ public class ArenaLogic { private int viewSeason; private static int state = 0; - private final static int BATTLE_STATE = 1; - private final static int RELAX_STATE = 2; + private final static int NORMAL_STATE = 1; + private final static int BATTLE_STATE = 2; + private final static int RELAX_STATE = 3; public int getCurSeason() { return curSeason; @@ -721,18 +723,24 @@ public class ArenaLogic { } private void b2r(){ - LOGGER.info("罗浮争霸:战斗状态转到休息状态"); - setState(RELAX_STATE); + if(state != RELAX_STATE){ + LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",state); + setState(RELAX_STATE); + } } public void r2e(){ - LOGGER.info("罗浮争霸:休息状态转到未开始状态"); - setState(0); + if(state != NORMAL_STATE){ + LOGGER.info("罗浮争霸:转到未开始状态,nowstate:{} to NORMAL_STATE",state); + setState(NORMAL_STATE); + } } public void e2b(){ - LOGGER.info("罗浮争霸:未开始状态转到战斗状态"); - setState(BATTLE_STATE); + if(state != BATTLE_STATE){ + LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",state); + setState(BATTLE_STATE); + } } private void checkState(){ @@ -743,23 +751,35 @@ public class ArenaLogic { } long diff = (System.currentTimeMillis() - timeControllerOfFunction.getStartTime())/1000; SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1); - switch(state){ - case 0: - if (diff > setting.getBattleTime()[0] && diff <= setting.getBattleTime()[1]) { - e2b(); - } - break; - case 1: - if (diff > setting.getBattleTime()[1] && diff <= setting.getRestTime()[0]) { - b2r(); - } - break; - case 2: - if (diff > setting.getRestTime()[1]) { - r2e(); - } - break; + if(diff > setting.getBattleTime()[0] && diff <= setting.getBattleTime()[1]){ + e2b(); + }else if(diff > setting.getBattleTime()[1] && diff <= setting.getRestTime()[0]){ + b2r(); + }else if(diff > setting.getRestTime()[1]){ + r2e(); } } + /** + * 实时随机 暂时不缓存 + */ + private static TreeSet getMatchID(int index) { + //玩家排名 获取配置 + Integer integer = SMServerArenaMatchConfig.rank2miss.floorKey(index); + Integer integer1 = SMServerArenaMatchConfig.rank2miss.get(integer); + TreeSet objects = new TreeSet<>(); + //分配对手 + SMServerArenaMatchConfig serverArenaMatchConfig = STableManager.getConfig(SMServerArenaMatchConfig.class).get(integer1); + int blockID1 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock1()[1] - serverArenaMatchConfig.getBlock1()[0]) + serverArenaMatchConfig.getBlock1()[0]) ; + int blockID2 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock2()[1] - serverArenaMatchConfig.getBlock2()[0]) + serverArenaMatchConfig.getBlock2()[0]) ; + int blockID3 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock3()[1] - serverArenaMatchConfig.getBlock3()[0]) + serverArenaMatchConfig.getBlock3()[0]) ; + int blockID4 = index-(int) (Math.random() * (serverArenaMatchConfig.getBlock4()[1] - serverArenaMatchConfig.getBlock4()[0]) + serverArenaMatchConfig.getBlock4()[0]) ; + objects.add(blockID1); + objects.add(blockID2); + objects.add(blockID3); + objects.add(blockID4); + return objects; + } + + }