/// <summary> /// 开始战斗 /// 场景必须切换完毕 /// </summary> /// <param name="mapId">地图Id</param> /// <param name="mapDataPacker">战斗数据包装类</param> /// <param name="isOnline">是否在线游戏</param> public void StartFight(int mapId, MapManager.MapDataParamsPacker mapDataPacker, bool isOnline) { // 加载战斗数据 // 加载障碍曾 var mapInfoData = MapManager.Instance().GetMapInfoById(mapDataPacker.MapId, 1); // 加载建筑层 var mapInfoBuildingData = MapManager.Instance().GetMapInfoById(mapDataPacker.MapId, 2); Debug.Log("加载完毕"); if (AstarFight.Instance != null) { // 是否在线战斗 if (isOnline) { // 设置线上战斗标识 GlobalData.FightData.IsOnline = true; // 启动战斗数据同步 FightDataSyncer.Single.Start(); // 设置消息回调 FightDataSyncer.Single.AddMsgDispatch( MsgId.MsgAskBattleResponse, (headData) => { // 如果收到战斗请求回复 // 加载地图加载建筑 AstarFight.Instance.InitMap(mapInfoData, mapInfoBuildingData); // 请求战斗开始 FightDataSyncer.Single.SendBattleStartMsg(null); }, true); // 请求战斗 FightDataSyncer.Single.SendAskBattleMsg(null); // 如果收到请求开始回复 FightDataSyncer.Single.AddMsgDispatch( MsgId.MsgBattleStartResponse, (headData) => { // 如果收到战斗请求回复 // TODO 开始战斗可以操作 Debug.Log("战斗开始"); }, true); } else { GlobalData.FightData.IsOnline = false; FightDataSyncer.Single.Clear(); // 如果不是在线战斗 // 直接加载战斗 AstarFight.Instance.InitMap(mapInfoData, mapInfoBuildingData); } } else { Debug.LogError("AstarFight脚本未加载"); } }
static int set_EnemyRace(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); MapManager.MapDataParamsPacker obj = (MapManager.MapDataParamsPacker)o; int arg0 = (int)LuaDLL.luaL_checknumber(L, 2); obj.EnemyRace = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index EnemyRace on a nil value" : e.Message)); } }
static int get_TurretLevel(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); MapManager.MapDataParamsPacker obj = (MapManager.MapDataParamsPacker)o; int ret = obj.TurretLevel; LuaDLL.lua_pushinteger(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index TurretLevel on a nil value" : e.Message)); } }
static int _CreateMapManager_MapDataParamsPacker(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 0) { MapManager.MapDataParamsPacker obj = new MapManager.MapDataParamsPacker(); ToLua.PushObject(L, obj); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: MapManager.MapDataParamsPacker.New")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }