跨服时间状态

back_recharge
mengchengzhen 2021-06-23 14:43:00 +08:00
parent 93e86b5d88
commit af83955bd5
1 changed files with 55 additions and 0 deletions

View File

@ -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;
}
}
}