Exemplo n.º 1
0
    /// <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脚本未加载");
        }
    }
Exemplo n.º 2
0
    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));
        }
    }
Exemplo n.º 3
0
    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));
        }
    }
Exemplo n.º 4
0
    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));
        }
    }