back_recharge
lvxinran 2019-08-29 05:13:42 +08:00
commit 6bbd27d1f5
1 changed files with 26 additions and 9 deletions

View File

@ -1,9 +1,7 @@
package com.ljsd.jieling.logic.fight; package com.ljsd.jieling.logic.fight;
import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.hero.HeroLogic;
import org.luaj.vm2.Globals; import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaTable; import org.luaj.vm2.LuaTable;
import org.luaj.vm2.LuaValue; import org.luaj.vm2.LuaValue;
@ -11,13 +9,14 @@ import org.luaj.vm2.lib.jse.JsePlatform;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.*; import java.io.File;
import java.io.IOException;
public class CheckFight { public class CheckFight {
private static final Logger LOGGER = LoggerFactory.getLogger(CheckFight.class); private static final Logger LOGGER = LoggerFactory.getLogger(CheckFight.class);
private LuaValue transCoderObj; private ThreadLocal<LuaValue> localTransCoderObj = new ThreadLocal<LuaValue>();
// private String luaFileName = null; // private String luaFileName = null;
@ -49,6 +48,7 @@ public class CheckFight {
init("luafight/BattleMain.lua"); init("luafight/BattleMain.lua");
LOGGER.info("the luahotfix done"); LOGGER.info("the luahotfix done");
hotFixVersion = luaHotFixBean.getVersion(); hotFixVersion = luaHotFixBean.getVersion();
this.localTransCoderObj = new ThreadLocal<LuaValue>();
} }
} }
@ -59,13 +59,12 @@ public class CheckFight {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
Globals globals = JsePlatform.debugGlobals(); // Globals globals = JsePlatform.debugGlobals();
transCoderObj = globals.loadfile(luaFileName).call(); // transCoderObj = globals.loadfile(luaFileName).call();
LuaHotFixBean luaHotFixBean = STableManager.getJsonFilePathInJsonConf("lua-hotfix.json", LuaHotFixBean.class); LuaHotFixBean luaHotFixBean = STableManager.getJsonFilePathInJsonConf("lua-hotfix.json", LuaHotFixBean.class);
if(luaHotFixBean!=null) { if(luaHotFixBean!=null) {
hotFixVersion = luaHotFixBean.getVersion(); hotFixVersion = luaHotFixBean.getVersion();
} }
} }
@ -102,7 +101,8 @@ public class CheckFight {
* @param optionData * @param optionData
* @return {,1,2,3,4,5} * @return {,1,2,3,4,5}
*/ */
public synchronized int[] checkFight(int seed,int maxTime, LuaValue fightData, LuaValue optionData){ public int[] checkFight(int seed,int maxTime, LuaValue fightData, LuaValue optionData){
LuaValue transCoderObj = this.getTransCoderObj();
LuaValue func = transCoderObj.get(LuaValue.valueOf("Execute")); LuaValue func = transCoderObj.get(LuaValue.valueOf("Execute"));
LuaValue args = new LuaTable(); LuaValue args = new LuaTable();
args.set("seed",seed); args.set("seed",seed);
@ -122,6 +122,23 @@ public class CheckFight {
return resultCache; return resultCache;
} }
public LuaValue getTransCoderObj(){
LuaValue transCoderObj = localTransCoderObj.get();
if(transCoderObj == null){
String luaFileName = null;
try {
luaFileName = getPath("luafight/BattleMain.lua");
} catch (IOException e) {
e.printStackTrace();
}
Globals globals = JsePlatform.debugGlobals();
transCoderObj = globals.loadfile(luaFileName).call();
localTransCoderObj.set(transCoderObj);
return transCoderObj;
}
return transCoderObj;
}