From af83955bd5e6c69333dd5f049c9a37bd33df8c2f Mon Sep 17 00:00:00 2001 From: mengchengzhen <13682025901@163.com> Date: Wed, 23 Jun 2021 14:43:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E6=97=B6=E9=97=B4=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/arena/ArenaLogic.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) 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 28036d13d..4bda597ee 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 @@ -66,6 +66,10 @@ public class ArenaLogic { private int curSeason; private int viewSeason; + private static int state = 0; + private final static int BATTLE_STATE = 1; + private final static int RELAX_STATE = 2; + public int getCurSeason() { return curSeason; } @@ -677,6 +681,7 @@ public class ArenaLogic { if(null ==timeControllerOfFunction){ return; } + checkState(); long diff = (System.currentTimeMillis() - timeControllerOfFunction.getStartTime())/1000; SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1); @@ -707,4 +712,54 @@ public class ArenaLogic { } + public static int getState() { + return state; + } + + public static void setState(int state) { + ArenaLogic.state = state; + } + + private void b2r(){ + LOGGER.info("罗浮争霸:战斗状态转到休息状态"); + setState(RELAX_STATE); + } + + public void r2e(){ + LOGGER.info("罗浮争霸:休息状态转到未开始状态"); + setState(0); + } + + public void e2b(){ + LOGGER.info("罗浮争霸:未开始状态转到战斗状态"); + setState(BATTLE_STATE); + } + + private void checkState(){ + long now = System.currentTimeMillis(); + TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena); + if(null ==timeControllerOfFunction){ + return; + } + 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; + } + } + }